From 63cdb21c3f2b03feb7f00af2716cc8a0db918ec4 Mon Sep 17 00:00:00 2001 From: Gibbs Geng Date: Mon, 30 Mar 2026 21:46:28 +0000 Subject: [PATCH] [SNOW-3249917] JDBC removal Step 9c: Swap telemetry imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mechanical import swaps only — no logic changes: SnowflakeSQLLoggedException (6 of 12 JDBC imports swapped): - ObjectMapperFactory → same package (already replicated) - SqlState → same package (already replicated) - TelemetryEvent → same package (replicated in Step 9b) - TelemetryService (OOB) → same package (replicated in Step 9b) - LoginInfoDTO.SF_JDBC_APP_ID → SnowflakeDriverConstants.SF_JDBC_APP_ID - SnowflakeDriver.implementVersion → SnowflakeDriverConstants.implementVersion Kept from JDBC: SFBaseSession, SFSession, SFException (parameter types), Telemetry, TelemetryField, TelemetryUtil (interact with session.getTelemetryClient()) TelemetryClient (1 of 5 JDBC imports swapped): - TelemetryThreadPool → ingest version (replicated in Step 9b) Kept from JDBC: HttpUtil, SFSession, SnowflakeConnectionV1, SnowflakeSQLException Co-Authored-By: Claude Opus 4.6 --- .../connection/telemetry/TelemetryClient.java | 2 +- .../SnowflakeSQLLoggedException.java | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/snowflake/ingest/connection/telemetry/TelemetryClient.java b/src/main/java/net/snowflake/ingest/connection/telemetry/TelemetryClient.java index dda2b5b18..dd3eca27f 100644 --- a/src/main/java/net/snowflake/ingest/connection/telemetry/TelemetryClient.java +++ b/src/main/java/net/snowflake/ingest/connection/telemetry/TelemetryClient.java @@ -18,8 +18,8 @@ import net.snowflake.client.core.SFSession; import net.snowflake.client.jdbc.SnowflakeConnectionV1; import net.snowflake.client.jdbc.SnowflakeSQLException; -import net.snowflake.client.jdbc.telemetryOOB.TelemetryThreadPool; import net.snowflake.ingest.streaming.internal.fileTransferAgent.ObjectMapperFactory; +import net.snowflake.ingest.streaming.internal.fileTransferAgent.TelemetryThreadPool; import net.snowflake.ingest.streaming.internal.fileTransferAgent.log.SFLogger; import net.snowflake.ingest.streaming.internal.fileTransferAgent.log.SFLoggerFactory; import net.snowflake.ingest.utils.Stopwatch; diff --git a/src/main/java/net/snowflake/ingest/streaming/internal/fileTransferAgent/SnowflakeSQLLoggedException.java b/src/main/java/net/snowflake/ingest/streaming/internal/fileTransferAgent/SnowflakeSQLLoggedException.java index 5466b7c3f..0285314cd 100644 --- a/src/main/java/net/snowflake/ingest/streaming/internal/fileTransferAgent/SnowflakeSQLLoggedException.java +++ b/src/main/java/net/snowflake/ingest/streaming/internal/fileTransferAgent/SnowflakeSQLLoggedException.java @@ -3,7 +3,12 @@ * Source: https://github.com/snowflakedb/snowflake-jdbc/blob/v3.25.1/src/main/java/net/snowflake/client/jdbc/SnowflakeSQLLoggedException.java * * Permitted differences: package, SFLogger/isNullOrEmpty/ErrorCode/SnowflakeSQLException use - * ingest versions. JDBC telemetry/session imports kept temporarily. + * ingest versions. OOB telemetry imports swapped to ingest replicated versions: + * ObjectMapperFactory/SqlState/TelemetryEvent/TelemetryService use ingest versions (same package). + * LoginInfoDTO.SF_JDBC_APP_ID/SnowflakeDriver.implementVersion → SnowflakeDriverConstants. + * IB telemetry imports (Telemetry/TelemetryField/TelemetryUtil) kept from JDBC — they interact + * with session.getTelemetryClient() which returns JDBC types. + * SFBaseSession/SFSession/SFException kept from JDBC temporarily (parameter types). */ package net.snowflake.ingest.streaming.internal.fileTransferAgent; @@ -21,18 +26,12 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import net.minidev.json.JSONObject; -import net.snowflake.client.core.ObjectMapperFactory; import net.snowflake.client.core.SFBaseSession; import net.snowflake.client.core.SFException; import net.snowflake.client.core.SFSession; -import net.snowflake.client.jdbc.SnowflakeDriver; -import net.snowflake.client.jdbc.internal.snowflake.common.core.LoginInfoDTO; -import net.snowflake.client.jdbc.internal.snowflake.common.core.SqlState; import net.snowflake.client.jdbc.telemetry.Telemetry; import net.snowflake.client.jdbc.telemetry.TelemetryField; import net.snowflake.client.jdbc.telemetry.TelemetryUtil; -import net.snowflake.client.jdbc.telemetryOOB.TelemetryEvent; -import net.snowflake.client.jdbc.telemetryOOB.TelemetryService; import net.snowflake.ingest.streaming.internal.fileTransferAgent.log.SFLogger; import net.snowflake.ingest.streaming.internal.fileTransferAgent.log.SFLoggerFactory; @@ -139,8 +138,8 @@ static String maskStacktrace(String stackTrace) { static JSONObject createOOBValue(String queryId, String SQLState, int vendorCode) { JSONObject oobValue = new JSONObject(); oobValue.put("type", TelemetryField.SQL_EXCEPTION.toString()); - oobValue.put("DriverType", LoginInfoDTO.SF_JDBC_APP_ID); - oobValue.put("DriverVersion", SnowflakeDriver.implementVersion); + oobValue.put("DriverType", SnowflakeDriverConstants.SF_JDBC_APP_ID); + oobValue.put("DriverVersion", SnowflakeDriverConstants.implementVersion); if (!isNullOrEmpty(queryId)) { oobValue.put("QueryID", queryId); } @@ -164,8 +163,8 @@ static JSONObject createOOBValue(String queryId, String SQLState, int vendorCode static ObjectNode createIBValue(String queryId, String SQLState, int vendorCode) { ObjectNode ibValue = mapper.createObjectNode(); ibValue.put("type", TelemetryField.SQL_EXCEPTION.toString()); - ibValue.put("DriverType", LoginInfoDTO.SF_JDBC_APP_ID); - ibValue.put("DriverVersion", SnowflakeDriver.implementVersion); + ibValue.put("DriverType", SnowflakeDriverConstants.SF_JDBC_APP_ID); + ibValue.put("DriverVersion", SnowflakeDriverConstants.implementVersion); if (!isNullOrEmpty(queryId)) { ibValue.put("QueryID", queryId); }