Skip to content

Commit

Permalink
fix(go/adbc/driver/snowflake): Bump gosnowflake to fix context error (#…
Browse files Browse the repository at this point in the history
…2091)

Fixes: #2062

- Bump gosnowflake dependency to pull in merged changes from
snowflakedb/gosnowflake#1196.
- Add test that fails before dependency bump but passes after to confirm
fix.
  • Loading branch information
joellubi authored Aug 20, 2024
1 parent 8d15780 commit c85b3a3
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 92 deletions.
59 changes: 59 additions & 0 deletions go/adbc/driver/snowflake/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2057,3 +2057,62 @@ func (suite *SnowflakeTests) TestIngestEmptyChunk() {
suite.Require().NoError(err)
suite.EqualValues(int64(3), n)
}

func TestIngestCancelContext(t *testing.T) {
withQuirks(t, func(q *SnowflakeQuirks) {
ctx := context.Background()

drv := q.SetupDriver(t)
defer q.TearDownDriver(t, drv)

db, err := drv.NewDatabase(q.DatabaseOptions())
require.NoError(t, err)

cnxn, err := db.Open(ctx)
require.NoError(t, err)

stmt, err := cnxn.NewStatement()
require.NoError(t, err)

require.NoError(t, q.DropTable(cnxn, "bulk_ingest_cancel_context"))

sc := arrow.NewSchema([]arrow.Field{
{
Name: "col_int64", Type: arrow.PrimitiveTypes.Int64,
Nullable: true,
},
}, nil)

bldr := array.NewRecordBuilder(q.Alloc(), sc)
defer bldr.Release()

bldr.Field(0).(*array.Int64Builder).AppendValues([]int64{1, 2, 3}, nil)

rec := bldr.NewRecord()
defer rec.Release()

rdr, err := array.NewRecordReader(sc, []arrow.Record{rec})
require.NoError(t, err)
defer rdr.Release()

require.NoError(t, stmt.BindStream(ctx, rdr))
require.NoError(t, stmt.SetOption(adbc.OptionKeyIngestTargetTable, "bulk_ingest_cancel_context"))

var buf bytes.Buffer
logger := gosnowflake.GetLogger()
logger.SetOutput(&buf)
defer logger.SetOutput(os.Stderr)

ctxCancel, cancel := context.WithCancel(ctx)
n, err := stmt.ExecuteUpdate(ctxCancel)
require.NoError(t, err)
require.EqualValues(t, int64(3), n)
cancel()

require.NoError(t, stmt.Close())
require.NoError(t, cnxn.Close())
require.NoError(t, db.Close())

require.Equal(t, "", buf.String())
})
}
45 changes: 22 additions & 23 deletions go/adbc/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ require (
github.com/bluele/gcache v0.0.2
github.com/golang/protobuf v1.5.4
github.com/google/uuid v1.6.0
github.com/snowflakedb/gosnowflake v1.10.1
github.com/snowflakedb/gosnowflake v1.11.1-0.20240820132919-5649c7a3d6f6
github.com/stretchr/testify v1.9.0
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a
golang.org/x/exp v0.0.0-20240529005216-23cca8864a10
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa
golang.org/x/oauth2 v0.22.0
golang.org/x/sync v0.8.0
golang.org/x/tools v0.24.0
Expand All @@ -45,32 +45,32 @@ require (
cloud.google.com/go/iam v1.1.12 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
github.com/99designs/keyring v1.2.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 // indirect
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/apache/arrow/go/v15 v15.0.2 // indirect
github.com/apache/thrift v0.20.0 // indirect
github.com/aws/aws-sdk-go-v2 v1.27.0 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.16 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.54.3 // indirect
github.com/aws/smithy-go v1.20.2 // indirect
github.com/danieljoos/wincred v1.2.1 // indirect
github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.28 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.11 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.59.0 // indirect
github.com/aws/smithy-go v1.20.4 // indirect
github.com/danieljoos/wincred v1.2.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/dvsekhvalnov/jose2go v1.7.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/gabriel-vasile/mimetype v1.4.4 // indirect
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/goccy/go-json v0.10.3 // indirect
Expand All @@ -84,7 +84,6 @@ require (
github.com/googleapis/gax-go/v2 v2.13.0 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/klauspost/asmfmt v1.3.2 // indirect
github.com/klauspost/compress v1.17.9 // indirect
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
Expand All @@ -109,11 +108,11 @@ require (
golang.org/x/crypto v0.26.0 // indirect
golang.org/x/mod v0.20.0 // indirect
golang.org/x/net v0.28.0 // indirect
golang.org/x/sys v0.23.0 // indirect
golang.org/x/sys v0.24.0 // indirect
golang.org/x/term v0.23.0 // indirect
golang.org/x/text v0.17.0 // indirect
golang.org/x/time v0.6.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect
google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240725223205-93522f1f2a9f // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf // indirect
Expand Down
Loading

0 comments on commit c85b3a3

Please sign in to comment.