lidavidm commented on code in PR #586:
URL: https://github.com/apache/arrow-adbc/pull/586#discussion_r1175878043
##########
.github/workflows/native-unix.yml:
##########
@@ -189,6 +189,165 @@ jobs:
env BUILD_ALL=0 BUILD_DRIVER_MANAGER=1 ./ci/scripts/cpp_build.sh
"$(pwd)" "$(pwd)/build"
env BUILD_ALL=0 BUILD_DRIVER_MANAGER=1 ./ci/scripts/cpp_test.sh
"$(pwd)" "$(pwd)/build"
+ # ------------------------------------------------------------
+ # C/C++ driver service integration tests
Review Comment:
I just merged it!
##########
go/adbc/go.mod:
##########
@@ -22,51 +22,87 @@ go 1.18
require (
github.com/apache/arrow/go/v12 v12.0.0-20230421000340-388f3a88c647
github.com/bluele/gcache v0.0.2
- github.com/stretchr/testify v1.8.1
- golang.org/x/exp v0.0.0-20230206171751-46f607a40771
+ github.com/snowflakedb/gosnowflake v1.6.19-0.20230228202026-7c7d86c6b3d0
+ github.com/stretchr/testify v1.8.2
+ golang.org/x/exp v0.0.0-20230420155640-133eef4313cb
golang.org/x/sync v0.1.0
- golang.org/x/tools v0.6.0
- google.golang.org/grpc v1.53.0
- google.golang.org/protobuf v1.28.1
+ golang.org/x/tools v0.8.0
+ google.golang.org/grpc v1.54.0
+ google.golang.org/protobuf v1.30.0
)
require (
- github.com/andybalholm/brotli v1.0.4 // 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.5.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect
+ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c //
indirect
+ github.com/andybalholm/brotli v1.0.5 // indirect
+ github.com/apache/arrow/go/v11 v11.0.0 // indirect
github.com/apache/thrift v0.17.0 // indirect
+ github.com/aws/aws-sdk-go-v2 v1.17.8 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 //
indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.13.20 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.63 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.24 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11
// indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.27 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.1 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.32.0 // indirect
+ github.com/aws/smithy-go v1.13.5 // indirect
+ github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
- github.com/goccy/go-json v0.10.0 // indirect
- github.com/golang/protobuf v1.5.2 // indirect
+ github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
+ github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect
+ github.com/gabriel-vasile/mimetype v1.4.2 // indirect
+ github.com/goccy/go-json v0.10.2 // indirect
+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
+ github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
- github.com/google/flatbuffers v23.1.21+incompatible // indirect
+ github.com/google/flatbuffers v23.3.3+incompatible // indirect
github.com/google/uuid v1.3.0 // indirect
+ github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c //
indirect
+ github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 //
indirect
github.com/klauspost/asmfmt v1.3.2 // indirect
- github.com/klauspost/compress v1.15.15 // indirect
- github.com/klauspost/cpuid/v2 v2.2.3 // indirect
+ github.com/klauspost/compress v1.16.5 // indirect
+ github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/kr/text v0.2.0 // indirect
- github.com/mattn/go-isatty v0.0.17 // indirect
+ github.com/mattn/go-isatty v0.0.18 // indirect
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 //
indirect
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
+ github.com/mtibben/percent v0.2.1 // indirect
github.com/pierrec/lz4/v4 v4.1.17 // indirect
+ github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec //
indirect
+ github.com/sirupsen/logrus v1.9.0 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
- golang.org/x/mod v0.8.0 // indirect
- golang.org/x/net v0.7.0 // indirect
- golang.org/x/sys v0.5.0 // indirect
- golang.org/x/text v0.7.0 // indirect
+ golang.org/x/crypto v0.8.0 // indirect
+ golang.org/x/mod v0.10.0 // indirect
+ golang.org/x/net v0.9.0 // indirect
+ golang.org/x/sys v0.7.0 // indirect
+ golang.org/x/term v0.7.0 // indirect
+ golang.org/x/text v0.9.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
- google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc //
indirect
+ gonum.org/v1/gonum v0.12.0 // indirect
+ google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 //
indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- lukechampine.com/uint128 v1.2.0 // indirect
+ lukechampine.com/uint128 v1.3.0 // indirect
modernc.org/cc/v3 v3.40.0 // indirect
modernc.org/ccgo/v3 v3.16.13 // indirect
- modernc.org/libc v1.22.2 // indirect
+ modernc.org/libc v1.22.4 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.5.0 // indirect
modernc.org/opt v0.1.3 // indirect
- modernc.org/sqlite v1.20.4 // indirect
+ modernc.org/sqlite v1.21.2 // indirect
modernc.org/strutil v1.1.3 // indirect
modernc.org/token v1.1.0 // indirect
)
+
+replace github.com/snowflakedb/gosnowflake => github.com/zeroshade/gosnowflake
v0.0.0-20230419185854-4870fd63961f
Review Comment:
We should also re-run the dependency analyzer and make any necessary updates.
##########
docs/source/driver/go/snowflake.rst:
##########
@@ -0,0 +1,325 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+..
+.. http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+================
+Snowflake Driver
+================
+
+The Snowflake Driver provides access to Snowflake Database Warehouses.
+
+Installation
+============
+
+The Snowflake Driver is shipped as a standalone library
+
+.. tab-set::
+
+ .. tab-item:: Go
+ :sync: go
+
+ .. code-block:: shell
+
+ go get github.com/apache/arrow-adbc/go/adbc/driver/snowflake
+
+Usage
+=====
+
+To connect to a Snowflake database you can supply the "uri" parameter when
+constructing the :cpp::class:`AdbcDatabase`.
+
+.. tab-set::
+
+ .. tab-item:: C++
+ :sync: cpp
+
+ .. code-block:: cpp
+
+ #include "adbc.h"
+
+ // Ignoring error handling
+ struct AdbcDatabase database;
+ AdbcDatabaseNew(&database, nullptr);
+ AdbcDatabaseSetOption(&database, "driver", "adbc_driver_snowflake",
nullptr);
+ AdbcDatabaseSetOption(&database, "uri", "<snowflake uri>", nullptr);
+ AdbcDatabaseInit(&database, nullptr);
+
+URI Format
+----------
+
+The Snowflake URI should be of one of the following formats:
+
+- ``user[:password]@account/database/schema[?param1=value1¶mN=valueN]``
+- ``user[:password]@account/database[?param1=value1¶mN=valueN]``
+-
``user[:password]@host:port/database/schema?account=user_account[¶m1=value1¶mN=valueN]``
+-
``host:port/database/schema?account=user_account[¶m1=value1¶mN=valueN]``
+
+Alternately, instead of providing a full URI, the configuration can
+be entirely supplied using the other available options or some combination
+of the URI and other options. If a URI is provided, it will be parsed first
+and any explicit options provided will override anything parsed from the URI.
+
+Supported Features
+==================
+
+The Snowflake driver generally supports features defined in the ADBC API
+specification 1.0.0, as well as some additional, custom options.
+
+Authentication
+--------------
+
+Snowflake requires some form of authentication to be enabled. By default
+it will attempt to use Username/Password authentication. The username and
+password can be provided in the URI or via the ``username`` and ``password``
+options to the :cpp:class:`AdbcDatabase`.
+
+Alternately, other types of authentication can be specified and customized.
+See "Client Options" below.
+
+Bulk Ingestion
+--------------
+
+Bulk ingestion is supported. The mapping from Arrow types to Snowflake types
+is provided below.
+
+Partitioned Result Sets
+-----------------------
+
+Partitioned result sets are not currently supported.
+
+Performance
+-----------
+
+Formal benchmarking is forthcoming. Snowflake does provide an Arrow native
+format for requesting results, but bulk ingestion is still currently executed
+using the REST API. As described in the `Snowflake Documentation
+<https://pkg.go.dev/github.com/snowflakedb/gosnowflake#hdr-Batch_Inserts_and_Binding_Parameters>`
+the driver will potentially attempt to improve performance by streaming the
data
+(without creating files on the local machine) to a temporary stage for
ingestion
+if the number of values exceeds some threshold.
+
+In order for the driver to leverage this temporary stage, the user must have
+the ``CREATE STAGE`` privilege on the schema. If the user does not have this
+privilege, the driver will fall back to sending the data with the query
+to the snowflake database.
+
+In addition, the current database and schema for the session must be set. If
+these are not set, the ``CREATE TEMPORARY STAGE`` command executed by the
driver
+can fail with the following error:
+
+.. code-block::
+ CREATE TEMPORARY STAGE SYSTEM$BIND file_format=(type=csv
field_optionally_enclosed_by='"')
+ CANNOT perform CREATE STAGE. This session does not have a current schema.
Call 'USE SCHEMA' or use a qualified name.
+
+In addition, results are potentially fetched in parallel from multiple
endpoints.
+A limited number of batches are queued per endpoint, though data is always
+returned to the client in the order of the endpoints.
+
+The queue size can be changed by setting an option on the
:cpp:class:`AdbcStatement`:
+
+``adbc.sql.results.rpc.queue_size``
+ The number of batches to queue per endpoint. Defaults to 5.
+
+Transactions
+------------
+
+Transactions are supported. Keep in mind that Snowflake transactions will
+implicitly commit if any DDL statements are run, such as ``CREATE TABLE``.
+
+Client Options
+--------------
+
+The options used for creating a Snowflake Database connection can be
customized.
+These options map 1:1 with the Snowflake `Config object
<https://pkg.go.dev/github.com/snowflakedb/gosnowflake#Config>`.
+
+``adbc.snowflake.sql.db``
+ The database this session should default to using.
+
+``adbc.snowflake.sql.schema``
+ The schema this session should default to using.
+
+``adbc.snowflake.sql.warehouse``
+ The warehouse this session should default to using.
+
+``adbc.snowflake.sql.role``
+ The role that should be used for authentication.
+
+``adbc.snowflake.sql.region``
+ The Snowflake region to use for constructing the connection URI.
+
+``adbc.snowflake.sql.account``
+ The Snowflake account that should be used for authentication and building
the
+ connection URI.
+
+``adbc.snowflake.sql.uri.protocol``
+ This should be either `http` or `https`.
+
+``adbc.snowflake.sql.uri.port``
+ The port to use for constructing the URI for connection.
+
+``adbc.snowflake.sql.uri.host``
+ The explicit host to use for constructing the URL to connect to.
+
+``adbc.snowflake.sql.auth_type``
+ Allows specifying alternate types of authentication, the allowed values
are:
+
+ - ``auth_snowflake``: General username/password authentication (this is
the default)
+ - ``auth_oauth``: Use OAuth authentication for the snowflake connection.
+ - ``auth_ext_browser``: Use an external browser to access a FED and
perform SSO auth.
+ - ``auth_okta``: Use a native Okta URL to perform SSO authentication using
Okta
+ - ``auth_jwt``: Use a provided JWT to perform authentication.
+ - ``auth_mfa``: Use a username and password with MFA.
+
+``adbc.snowflake.sql.client_option.auth_token``
+ If using OAuth or another form of authentication, this option is how you
can
+ explicitly specify the token to be used for connection.
+
+``adbc.snowflake.sql.client_option.okta_url``
+ If using ``auth_okta``, this option is required in order to specify the
+ Okta URL to connect to for SSO authentication.
+
+``adbc.snowflake.sql.client_option.login_timeout``
+ Specify login retry timeout *excluding* network roundtrip and reading http
responses.
+ Value should be formatted as described `here
<https://pkg.go.dev/time#ParseDuration>`,
+ such as ``300ms``, ``1.5s`` or ``1m30s``. Even though negative values are
accepted,
+ the absolute value of such a duration will be used.
+
+``adbc.snowflake.sql.client_option.request_timeout``
+ Specify request retry timeout *excluding* network roundtrip and reading
http responses.
+ Value should be formatted as described `here
<https://pkg.go.dev/time#ParseDuration>`,
+ such as ``300ms``, ``1.5s`` or ``1m30s``. Even though negative values are
accepted,
+ the absolute value of such a duration will be used.
+
+``adbc.snowflake.sql.client_option.jwt_expire_timeout``
+ JWT expiration will occur after this timeout.
+ Value should be formatted as described `here
<https://pkg.go.dev/time#ParseDuration>`,
+ such as ``300ms``, ``1.5s`` or ``1m30s``. Even though negative values are
accepted,
+ the absolute value of such a duration will be used.
+
+``adbc.snowflake.sql.client_option.client_timeout``
+ Specify timeout for network roundtrip and reading http responses.
+ Value should be formatted as described `here
<https://pkg.go.dev/time#ParseDuration>`,
+ such as ``300ms``, ``1.5s`` or ``1m30s``. Even though negative values are
accepted,
+ the absolute value of such a duration will be used.
+
+``adbc.snowflake.sql.client_option.app_name``
+ Allows specifying the Application Name to Snowflake for the connection.
+
+``adbc.snowflake.sql.client_option.tls_skip_verify``
+ Disable verification of the server's TLS certificate. Value should be
``true``
+ or ``false``.
+
+``adbc.snowflake.sql.client_option.ocsp_fail_open_mode``
+ Control the fail open mode for OCSP. Default is ``true``. Value should
+ be either ``true`` or ``false``.
+
+``adbc.snowflake.sql.client_option.keep_session_alive``
+ Enable the session to persist even after the connection is closed. Value
+ should be either ``true`` or ``false``.
+
+``adbc.snowflake.sql.client_option.jwt_private_key``
+ Specify the RSA private key which should be used to sign the JWT for
+ authentication. This should be a path to a file containing a PKCS1
+ private key to be read in and parsed. Commonly encoded in PEM blocks
+ of type "RSA PRIVATE KEY".
+
+``adbc.snowflake.sql.client_option.disable_telemetry``
+ The Snowflake driver allows for telemetry information which can be
+ disabled by setting this to ``true``. Value should be either ``true``
+ or ``false``.
+
+``adbc.snowflake.sql.client_option.tracing``
+ Set the logging level
+
+``adbc.snowflake.sql.client_option.cache_mfa_token``
+ When ``true``, the MFA token is cached in the credential manager. Defaults
+ to ``true`` on Windows/OSX, ``false`` on Linux.
+
+``adbc.snowflake.sql.client_option.store_temp_creds``
+ When ``true``, the ID token is cached in the credential manager. Defaults
+ to ``true`` on Windows/OSX, ``false`` on Linux.
+
+
+Metadata
+--------
+
+When calling :cpp:`AdbcConnectionGetTableSchema`, the returned Arrow Schema
+will contain metadata on each field:
Review Comment:
Maybe we should eventually standardize something like Flight SQL's scheme
for encoding this sort of info...
##########
go/adbc/go.mod:
##########
@@ -22,51 +22,87 @@ go 1.18
require (
github.com/apache/arrow/go/v12 v12.0.0-20230421000340-388f3a88c647
github.com/bluele/gcache v0.0.2
- github.com/stretchr/testify v1.8.1
- golang.org/x/exp v0.0.0-20230206171751-46f607a40771
+ github.com/snowflakedb/gosnowflake v1.6.19-0.20230228202026-7c7d86c6b3d0
+ github.com/stretchr/testify v1.8.2
+ golang.org/x/exp v0.0.0-20230420155640-133eef4313cb
golang.org/x/sync v0.1.0
- golang.org/x/tools v0.6.0
- google.golang.org/grpc v1.53.0
- google.golang.org/protobuf v1.28.1
+ golang.org/x/tools v0.8.0
+ google.golang.org/grpc v1.54.0
+ google.golang.org/protobuf v1.30.0
)
require (
- github.com/andybalholm/brotli v1.0.4 // 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.5.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect
+ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c //
indirect
+ github.com/andybalholm/brotli v1.0.5 // indirect
+ github.com/apache/arrow/go/v11 v11.0.0 // indirect
github.com/apache/thrift v0.17.0 // indirect
+ github.com/aws/aws-sdk-go-v2 v1.17.8 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 //
indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.13.20 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.63 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.32 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.26 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.24 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11
// indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.27 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.26 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.1 //
indirect
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.32.0 // indirect
+ github.com/aws/smithy-go v1.13.5 // indirect
+ github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
- github.com/goccy/go-json v0.10.0 // indirect
- github.com/golang/protobuf v1.5.2 // indirect
+ github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
+ github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect
+ github.com/gabriel-vasile/mimetype v1.4.2 // indirect
+ github.com/goccy/go-json v0.10.2 // indirect
+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
+ github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
- github.com/google/flatbuffers v23.1.21+incompatible // indirect
+ github.com/google/flatbuffers v23.3.3+incompatible // indirect
github.com/google/uuid v1.3.0 // indirect
+ github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c //
indirect
+ github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 //
indirect
github.com/klauspost/asmfmt v1.3.2 // indirect
- github.com/klauspost/compress v1.15.15 // indirect
- github.com/klauspost/cpuid/v2 v2.2.3 // indirect
+ github.com/klauspost/compress v1.16.5 // indirect
+ github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/kr/text v0.2.0 // indirect
- github.com/mattn/go-isatty v0.0.17 // indirect
+ github.com/mattn/go-isatty v0.0.18 // indirect
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 //
indirect
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
+ github.com/mtibben/percent v0.2.1 // indirect
github.com/pierrec/lz4/v4 v4.1.17 // indirect
+ github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec //
indirect
+ github.com/sirupsen/logrus v1.9.0 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
- golang.org/x/mod v0.8.0 // indirect
- golang.org/x/net v0.7.0 // indirect
- golang.org/x/sys v0.5.0 // indirect
- golang.org/x/text v0.7.0 // indirect
+ golang.org/x/crypto v0.8.0 // indirect
+ golang.org/x/mod v0.10.0 // indirect
+ golang.org/x/net v0.9.0 // indirect
+ golang.org/x/sys v0.7.0 // indirect
+ golang.org/x/term v0.7.0 // indirect
+ golang.org/x/text v0.9.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
- google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc //
indirect
+ gonum.org/v1/gonum v0.12.0 // indirect
+ google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 //
indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- lukechampine.com/uint128 v1.2.0 // indirect
+ lukechampine.com/uint128 v1.3.0 // indirect
modernc.org/cc/v3 v3.40.0 // indirect
modernc.org/ccgo/v3 v3.16.13 // indirect
- modernc.org/libc v1.22.2 // indirect
+ modernc.org/libc v1.22.4 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.5.0 // indirect
modernc.org/opt v0.1.3 // indirect
- modernc.org/sqlite v1.20.4 // indirect
+ modernc.org/sqlite v1.21.2 // indirect
modernc.org/strutil v1.1.3 // indirect
modernc.org/token v1.1.0 // indirect
)
+
+replace github.com/snowflakedb/gosnowflake => github.com/zeroshade/gosnowflake
v0.0.0-20230419185854-4870fd63961f
Review Comment:
https://infra.apache.org/licensing-howto.html#alv2-dep
gosnowflake is Apache-2 without a NOTICE file, but we should still update
LICENSE.txt (and its copies...) just for completeness
--
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]