ywc88 commented on code in PR #980:
URL: https://github.com/apache/arrow-adbc/pull/980#discussion_r1301971921
##########
go/adbc/driver/flightsql/flightsql_adbc_server_test.go:
##########
@@ -627,3 +632,89 @@ func (suite *DataTypeTests) TestListInt() {
func (suite *DataTypeTests) TestMapIntInt() {
suite.DoTestCase("map[int]int", SchemaMapIntInt)
}
+
+// ---- Multi Table Tests --------------------
+
+type MultiTableTestServer struct {
+ flightsql.BaseServer
+}
+
+func (server *MultiTableTestServer) GetFlightInfoStatement(ctx
context.Context, cmd flightsql.StatementQuery, desc *flight.FlightDescriptor)
(*flight.FlightInfo, error) {
+ query := cmd.GetQuery()
+ tkt, err := flightsql.CreateStatementQueryTicket([]byte(query))
+ if err != nil {
+ return nil, err
+ }
+
+ return &flight.FlightInfo{
+ Endpoint: []*flight.FlightEndpoint{{Ticket:
&flight.Ticket{Ticket: tkt}}},
+ FlightDescriptor: desc,
+ TotalRecords: -1,
+ TotalBytes: -1,
+ }, nil
+}
+
+func (server *MultiTableTestServer) GetFlightInfoTables(ctx context.Context,
cmd flightsql.GetTables, desc *flight.FlightDescriptor) (*flight.FlightInfo,
error) {
+ schema := schema_ref.Tables
+ if cmd.GetIncludeSchema() {
+ schema = schema_ref.TablesWithIncludedSchema
+ }
+ server.Alloc = memory.NewCheckedAllocator(memory.DefaultAllocator)
+ info := &flight.FlightInfo{
+ Endpoint: []*flight.FlightEndpoint{
+ {Ticket: &flight.Ticket{Ticket: desc.Cmd}},
+ },
+ FlightDescriptor: desc,
+ Schema: flight.SerializeSchema(schema, server.Alloc),
+ TotalRecords: -1,
+ TotalBytes: -1,
+ }
+
+ return info, nil
+}
+
+func (server *MultiTableTestServer) DoGetTables(ctx context.Context, cmd
flightsql.GetTables) (*arrow.Schema, <-chan flight.StreamChunk, error) {
+ bldr := array.NewRecordBuilder(server.Alloc, adbc.GetTableSchemaSchema)
+
+ bldr.Field(0).(*array.StringBuilder).AppendValues([]string{"", ""}, nil)
+ bldr.Field(1).(*array.StringBuilder).AppendValues([]string{"", ""}, nil)
+ bldr.Field(2).(*array.StringBuilder).AppendValues([]string{"tbl1",
"tbl2"}, nil)
Review Comment:
This test does fail without the fix:
```
go test flightsql_adbc_server_test.go -v -run TestMultiTable
=== RUN TestMultiTable
=== RUN TestMultiTable/TestGetTableSchema
flightsql_adbc_server_test.go:719:
Error Trace: /Users/ywc/Voltron
Data/ywc88/arrow-adbc/go/adbc/driver/flightsql/flightsql_adbc_server_test.go:719
Error: Not equal:
expected:
&arrow.Schema{fields:[]arrow.Field{arrow.Field{Name:"b",
Type:(*arrow.Int32Type)(0x1057ab240), Nullable:true,
Metadata:arrow.Metadata{keys:[]string(nil), values:[]string(nil)}}},
index:map[string][]int{"b":[]int{0}}, meta:arrow.Metadata{keys:[]string(nil),
values:[]string(nil)}, endianness:0}
actual :
&arrow.Schema{fields:[]arrow.Field{arrow.Field{Name:"a",
Type:(*arrow.Int32Type)(0x1057ab240), Nullable:true,
Metadata:arrow.Metadata{keys:[]string(nil), values:[]string(nil)}}},
index:map[string][]int{"a":[]int{0}}, meta:arrow.Metadata{keys:[]string(nil),
values:[]string(nil)}, endianness:0}
Diff:
--- Expected
+++ Actual
@@ -3,3 +3,3 @@
(arrow.Field) {
- Name: (string) (len=1) "b",
+ Name: (string) (len=1) "a",
Type: (*arrow.Int32Type)({
@@ -14,3 +14,3 @@
index: (map[string][]int) (len=1) {
- (string) (len=1) "b": ([]int) (len=1) {
+ (string) (len=1) "a": ([]int) (len=1) {
(int) 0
Test: TestMultiTable/TestGetTableSchema
--- FAIL: TestMultiTable (0.01s)
--- FAIL: TestMultiTable/TestGetTableSchema (0.00s)
FAIL
FAIL command-line-arguments 0.194s
FAIL
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]