googleapis / googleapis/google-cloud-go

spannertest: got "INSERT" while expecting "SELECT"

Open
#11,790 3 comments 0 reactions 1 assignee Assigned to @rahul2393 View on GitHub
api: spanner priority: p2
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.