From deaaaf5cc0646011b9bc2feefa487bd4bc35ee74 Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 18 Aug 2025 13:37:58 -0700 Subject: [PATCH 1/5] fix(csharp/src/Drivers/Apache/Hive2): add check to see if operation is already closed. From 2db20346990f7c50047e0da475dd4b0851fd811d Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 18 Aug 2025 13:38:30 -0700 Subject: [PATCH 2/5] fix(csharp/src/Drivers/Apache/Hive2): add check to see if operation is already closed. --- .../Drivers/Apache/Hive2/HiveServer2Reader.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/csharp/src/Drivers/Apache/Hive2/HiveServer2Reader.cs b/csharp/src/Drivers/Apache/Hive2/HiveServer2Reader.cs index 64d0a2f517..d13914f80c 100644 --- a/csharp/src/Drivers/Apache/Hive2/HiveServer2Reader.cs +++ b/csharp/src/Drivers/Apache/Hive2/HiveServer2Reader.cs @@ -429,13 +429,17 @@ protected override void Dispose(bool disposing) /// The response for the operation. /// The server response for the CloseOperation call. /// - internal static async Task CloseOperationAsync(IHiveServer2Statement statement, IResponse response) + internal static async Task CloseOperationAsync(IHiveServer2Statement statement, IResponse response) { - CancellationToken cancellationToken = ApacheUtility.GetCancellationToken(statement.QueryTimeoutSeconds, ApacheUtility.TimeUnit.Seconds); - TCloseOperationReq request = new TCloseOperationReq(response.OperationHandle!); - TCloseOperationResp resp = await statement.Client.CloseOperation(request, cancellationToken); - HiveServer2Connection.HandleThriftResponse(resp.Status, activity: null); - return resp; + if (response.DirectResults?.CloseOperation?.Status?.StatusCode != TStatusCode.SUCCESS_STATUS) + { + CancellationToken cancellationToken = ApacheUtility.GetCancellationToken(statement.QueryTimeoutSeconds, ApacheUtility.TimeUnit.Seconds); + TCloseOperationReq request = new TCloseOperationReq(response.OperationHandle!); + TCloseOperationResp resp = await statement.Client.CloseOperation(request, cancellationToken); + HiveServer2Connection.HandleThriftResponse(resp.Status, activity: null); + return resp; + } + return null; } } } From d86a58f7ee3f53146fef4c241cd61eb98b24e962 Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 18 Aug 2025 16:12:27 -0700 Subject: [PATCH 3/5] restored functionality to set the direct result on Databricks connection --- csharp/src/Drivers/Databricks/DatabricksConnection.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/csharp/src/Drivers/Databricks/DatabricksConnection.cs b/csharp/src/Drivers/Databricks/DatabricksConnection.cs index 2739197e8f..2757dac51e 100644 --- a/csharp/src/Drivers/Databricks/DatabricksConnection.cs +++ b/csharp/src/Drivers/Databricks/DatabricksConnection.cs @@ -294,6 +294,16 @@ private void ValidateProperties() /// internal bool EnableDirectResults => _enableDirectResults; + /// + protected internal override bool TrySetGetDirectResults(IRequest request) + { + if (EnableDirectResults) + { + return base.TrySetGetDirectResults(request); + } + return false; + } + /// /// Gets whether CloudFetch is enabled. /// From 73a1328282e1913cdb07e464beff0602e50c6c4b Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 18 Aug 2025 16:32:55 -0700 Subject: [PATCH 4/5] revert: restored functionality to set the direct result on Databricks connection From 30752235f54709d8aa836df02a0c39fd0d7cf1da Mon Sep 17 00:00:00 2001 From: Bruce Irschick Date: Mon, 18 Aug 2025 16:33:05 -0700 Subject: [PATCH 5/5] revert: restored functionality to set the direct result on Databricks connection --- csharp/src/Drivers/Databricks/DatabricksConnection.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/csharp/src/Drivers/Databricks/DatabricksConnection.cs b/csharp/src/Drivers/Databricks/DatabricksConnection.cs index 2757dac51e..2739197e8f 100644 --- a/csharp/src/Drivers/Databricks/DatabricksConnection.cs +++ b/csharp/src/Drivers/Databricks/DatabricksConnection.cs @@ -294,16 +294,6 @@ private void ValidateProperties() /// internal bool EnableDirectResults => _enableDirectResults; - /// - protected internal override bool TrySetGetDirectResults(IRequest request) - { - if (EnableDirectResults) - { - return base.TrySetGetDirectResults(request); - } - return false; - } - /// /// Gets whether CloudFetch is enabled. ///