You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ze...@apache.org on 2024/02/07 18:30:02 UTC

(arrow-adbc) branch main updated: feat(go/adbc/driver/snowflake): add '[ADBC]' to snowflake application name (#1525)

This is an automated email from the ASF dual-hosted git repository.

zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 21fba985 feat(go/adbc/driver/snowflake): add '[ADBC]' to snowflake application name (#1525)
21fba985 is described below

commit 21fba985231990fa9639d217157f8f5d38df47cf
Author: Matt Topol <zo...@gmail.com>
AuthorDate: Wed Feb 7 13:29:56 2024 -0500

    feat(go/adbc/driver/snowflake): add '[ADBC]' to snowflake application name (#1525)
    
    To help Snowflake track adoption and usage of the ADBC driver, we can
    explicitly add a prefix to any client application name to indicate the
    ADBC driver is the source of the requests.
    
    ---------
    
    Co-authored-by: David Li <li...@gmail.com>
---
 go/adbc/driver/snowflake/snowflake_database.go                 | 8 ++++++++
 python/adbc_driver_snowflake/adbc_driver_snowflake/__init__.py | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/go/adbc/driver/snowflake/snowflake_database.go b/go/adbc/driver/snowflake/snowflake_database.go
index 7b76fa5a..76ab4684 100644
--- a/go/adbc/driver/snowflake/snowflake_database.go
+++ b/go/adbc/driver/snowflake/snowflake_database.go
@@ -176,6 +176,11 @@ func (d *databaseImpl) SetOptions(cnOptions map[string]string) error {
 		}
 	}
 
+	defaultAppName := "[ADBC][Go-" + infoDriverVersion + "]"
+	// set default application name to track
+	// unless user overrides it
+	d.cfg.Application = defaultAppName
+
 	var err error
 	for k, v := range cnOptions {
 		v := v // copy into loop scope
@@ -265,6 +270,9 @@ func (d *databaseImpl) SetOptions(cnOptions map[string]string) error {
 			}
 			d.cfg.ClientTimeout = dur
 		case OptionApplicationName:
+			if !strings.HasPrefix(v, "[ADBC]") {
+				v = defaultAppName + v
+			}
 			d.cfg.Application = v
 		case OptionSSLSkipVerify:
 			switch v {
diff --git a/python/adbc_driver_snowflake/adbc_driver_snowflake/__init__.py b/python/adbc_driver_snowflake/adbc_driver_snowflake/__init__.py
index 701de23e..19b3bbc1 100644
--- a/python/adbc_driver_snowflake/adbc_driver_snowflake/__init__.py
+++ b/python/adbc_driver_snowflake/adbc_driver_snowflake/__init__.py
@@ -131,6 +131,10 @@ def connect(
     kwargs = (db_kwargs or {}).copy()
     if uri is not None:
         kwargs["uri"] = uri
+    appname = kwargs.get(DatabaseOptions.APPLICATION_NAME.value, "")
+    kwargs[
+        DatabaseOptions.APPLICATION_NAME.value
+    ] = f"[ADBC][Python-{__version__}]{appname}"
     return adbc_driver_manager.AdbcDatabase(driver=_driver_path(), **kwargs)