Skip to content

Commit 39764c0

Browse files
authored
chore: enable Last flag in tests and check for only one dialect (#485)
1 parent 2a48bb7 commit 39764c0

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

driver.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"context"
1919
"database/sql"
2020
"database/sql/driver"
21+
"errors"
2122
"fmt"
2223
"io"
2324
"log/slog"
@@ -38,6 +39,7 @@ import (
3839
"cloud.google.com/go/spanner/apiv1/spannerpb"
3940
"github.com/google/uuid"
4041
"github.com/googleapis/gax-go/v2"
42+
"google.golang.org/api/iterator"
4143
"google.golang.org/api/option"
4244
"google.golang.org/api/option/internaloption"
4345
"google.golang.org/grpc"
@@ -766,6 +768,13 @@ func determineDialect(ctx context.Context, client *spanner.Client) (databasepb.D
766768
if err := row.Columns(&dialectName); err != nil {
767769
return databasepb.DatabaseDialect_DATABASE_DIALECT_UNSPECIFIED, err
768770
}
771+
if _, err := it.Next(); !errors.Is(err, iterator.Done) {
772+
if err == nil {
773+
return databasepb.DatabaseDialect_DATABASE_DIALECT_UNSPECIFIED, fmt.Errorf("more than one dialect result returned")
774+
} else {
775+
return databasepb.DatabaseDialect_DATABASE_DIALECT_UNSPECIFIED, err
776+
}
777+
}
769778
if dialect, ok := databasepb.DatabaseDialect_value[dialectName]; ok {
770779
return databasepb.DatabaseDialect(dialect), nil
771780
} else {

testutil/inmem_spanner_server.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,19 +162,22 @@ func (s *StatementResult) ToPartialResultSets(resumeToken []byte) (result []*spa
162162
} else {
163163
rt = s.ResumeTokens[startIndex]
164164
}
165-
result = append(result, &spannerpb.PartialResultSet{
165+
partial := &spannerpb.PartialResultSet{
166166
Metadata: s.ResultSet.Metadata,
167167
Values: values,
168168
ResumeToken: rt,
169-
})
169+
}
170+
result = append(result, partial)
170171

171172
startIndex += rowCount
172173
if startIndex == totalRows {
174+
partial.Last = true
173175
break
174176
}
175177
}
176178
} else {
177179
result = append(result, &spannerpb.PartialResultSet{
180+
Last: true,
178181
Metadata: s.ResultSet.Metadata,
179182
})
180183
}
@@ -198,6 +201,7 @@ func (s *StatementResult) updateCountToPartialResultSet(exact bool, resultSetWit
198201
Metadata: &spannerpb.ResultSetMetadata{
199202
RowType: &spannerpb.StructType{},
200203
},
204+
Last: true,
201205
Stats: s.convertUpdateCountToResultSet(exact).Stats,
202206
}
203207
if resultSetWithTx != nil && resultSetWithTx.Metadata != nil && resultSetWithTx.Metadata.Transaction != nil {

0 commit comments

Comments
 (0)