return io.EOF for empty Query statements

This commit is contained in:
Gani Georgiev 2024-10-12 01:53:22 +03:00
parent 82bc911e85
commit 823d03f3f8
2 changed files with 29 additions and 1 deletions

View File

@ -2206,7 +2206,7 @@ func (rc *SQLiteRows) nextSyncLocked(dest []driver.Value) error {
if rv != C.SQLITE_OK {
return rc.s.c.lastError()
}
return nil
return io.EOF
}
rc.declTypes()

View File

@ -1997,6 +1997,34 @@ func TestNamedParam(t *testing.T) {
}
}
func TestEmptyQuery(t *testing.T) {
db, err := sql.Open("sqlite3", ":memory:")
if err != nil {
t.Fatal("Failed to open database:", err)
}
defer db.Close()
queries := []string{
"",
";",
" -- comment ",
}
for _, q := range queries {
t.Run(fmt.Sprintf("query:%q", q), func(t *testing.T) {
rows, err := db.Query(q)
if err != nil {
t.Fatal("Failed to run empty query:", err)
}
defer rows.Close()
if rows.Next() != false {
t.Fatal("Expected no rows")
}
})
}
}
var customFunctionOnce sync.Once
func BenchmarkCustomFunctions(b *testing.B) {