googleapis / googleapis/google-cloud-go
spannertest: got "INSERT" while expecting "SELECT"
- Dominant language
- Go
- Stars
- 4.5k
- Forks
- 1.6k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 109
Description
I'm trying to use cloud.google.com/go/spanner/spannertest with go-sql-spanner in my unit tests, and I'm running into problem with simple insert statement. Here is my test:
## Code and Dependencies
```go
package aaa
import (
"database/sql"
"fmt"
"testing"
"cloud.google.com/go/spanner/spannertest"
_ "github.com/googleapis/go-sql-spanner"
)
func TestInsertWithSpannertest(t *testing.T) {
span, err := spannertest.NewServer("localhost:0")
if err != nil {
t.Fatal(err)
}
defer span.Close()
db, err := sql.Open("spanner", fmt.Sprintf("%s/projects/test/instances/test/databases/test;usePlainText=true", span.Addr))
if err != nil {
t.Fatal(err)
}
defer db.Close()
_, err = db.Exec("CREATE TABLE test_struct (id int64, comment string(100)) primary key (id)")
if err != nil {
t.Fatal(err)
}
_, err = db.Exec("INSERT INTO test_struct (id, comment) VALUES (10, 'hello')")
if err != nil {
t.Fatal(err)
}
}
```
go.mod
```text
module aaa
go 1.23.5
require (
cloud.google.com/go/spanner v1.77.0
github.com/googleapis/go-sql-spanner v1.11.2
)
// indirect deps here...
```
## Expected behavior
Executing `INSERT` statement should work.
## Actual behavior
Executing `INSERT` statement against `spannertest` instance returns `spanner: code = "InvalidArgument", desc = "bad query: -:1.0: got \"INSERT\" while expecting \"SELECT\""` error.
Same code works fine against cloud Spanner instance.
Originally reported in https://github.com/googleapis/go-sql-spanner/issues/392, as I'm not sure whether this is a problem in `spannertest` or `go-sql-spanner` library.
Contributor guide
Assessment
This issue has not been assessed yet.