From 221a2bc36401ece2dbccadca27150cfd3daefc4a Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 19 Jan 2026 11:53:20 -0800 Subject: [PATCH 1/2] feat(csharp): port change from arrow-adbc --- csharp/arrow-adbc | 2 +- csharp/src/Hive2/HiveServer2Statement.cs | 3 ++ csharp/test/Common/StatementTests.cs | 44 ++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/csharp/arrow-adbc b/csharp/arrow-adbc index e9e5c5c..778f780 160000 --- a/csharp/arrow-adbc +++ b/csharp/arrow-adbc @@ -1 +1 @@ -Subproject commit e9e5c5c5d0ef248fc8cdfdd041e062a9d1df0e6f +Subproject commit 778f7801dbaaeb57e5498f396eb649656b2908bc diff --git a/csharp/src/Hive2/HiveServer2Statement.cs b/csharp/src/Hive2/HiveServer2Statement.cs index 2e5e2ca..ef2eda6 100644 --- a/csharp/src/Hive2/HiveServer2Statement.cs +++ b/csharp/src/Hive2/HiveServer2Statement.cs @@ -327,6 +327,9 @@ public override void SetOption(string key, string value) this.EscapePatternWildcards = escapePatternWildcards; } break; + case AdbcOptions.Telemetry.TraceParent: + SetTraceParent(string.IsNullOrWhiteSpace(value) ? null : value); + break; default: throw AdbcException.NotImplemented($"Option '{key}' is not implemented."); } diff --git a/csharp/test/Common/StatementTests.cs b/csharp/test/Common/StatementTests.cs index 767f401..498ce97 100644 --- a/csharp/test/Common/StatementTests.cs +++ b/csharp/test/Common/StatementTests.cs @@ -22,12 +22,14 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using AdbcDrivers.HiveServer2; using Apache.Arrow; using Apache.Arrow.Adbc; using Apache.Arrow.Adbc.Tests; using Apache.Arrow.Adbc.Tests.Xunit; +using Apache.Arrow.Adbc.Tracing; using Apache.Arrow.Types; using Xunit; using Xunit.Abstractions; @@ -340,6 +342,48 @@ public async Task CanGetColumns() Assert.Equal(TestConfiguration.Metadata.ExpectedColumnCount, actualBatchLength); } + [SkippableFact] + public void CanSetOptionTraceParent() + { + const string traceId0 = "11111111111111111111111111111111"; + const string spanId0 = "2222222222222222"; + const string statementTraceParent = $"00-{traceId0}-{spanId0}-01"; + const string traceId1 = "33333333333333333333333333333333"; + const string spanId1 = "4444444444444444"; + const string connectionTraceParent = $"00-{traceId1}-{spanId1}-01"; + + var testConfiguration = TestConfiguration.Clone() as TConfig; + using AdbcConnection connection = NewConnection(testConfiguration); + using var statement = connection.CreateStatement(); + + IActivityTracer tracingConnection = (IActivityTracer)connection; + IActivityTracer tracingStatement = (IActivityTracer)statement; + + // Initial state with TraceParent not set + Assert.Null(tracingConnection.TraceParent); + Assert.Null(tracingStatement.TraceParent); + + // Set TraceParent on the statement only + statement.SetOption(AdbcOptions.Telemetry.TraceParent, statementTraceParent); + Assert.Equal(statementTraceParent, tracingStatement.TraceParent); + Assert.Null(tracingConnection.TraceParent); + + // Set TraceParent on the connection, in addition to the statement + connection.SetOption(AdbcOptions.Telemetry.TraceParent, connectionTraceParent); + Assert.Equal(statementTraceParent, tracingStatement.TraceParent); + Assert.Equal(connectionTraceParent, tracingConnection.TraceParent); + + // Clear TraceParent on the statement, connection value should remain + statement.SetOption(AdbcOptions.Telemetry.TraceParent, string.Empty); + Assert.Equal(connectionTraceParent, tracingStatement.TraceParent); + Assert.Equal(connectionTraceParent, tracingConnection.TraceParent); + + // Clear TraceParent on the connection, statement value should remain cleared + connection.SetOption(AdbcOptions.Telemetry.TraceParent, string.Empty); + Assert.Null(tracingConnection.TraceParent); + Assert.Null(tracingStatement.TraceParent); + } + /// /// Validates if the driver can execute GetPrimaryKeys metadata command. /// From 369f96e8e818efb704d6dc6f87b28a1a18900c57 Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 19 Jan 2026 11:55:48 -0800 Subject: [PATCH 2/2] remove unnecessary 'using' statements --- csharp/test/Common/StatementTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/csharp/test/Common/StatementTests.cs b/csharp/test/Common/StatementTests.cs index 498ce97..c52ca3d 100644 --- a/csharp/test/Common/StatementTests.cs +++ b/csharp/test/Common/StatementTests.cs @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using AdbcDrivers.HiveServer2; using Apache.Arrow;