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

dlych pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb-clients.git


The following commit(s) were added to refs/heads/master by this push:
     new d934ea8  [NO ISSUE] Update version, enhance fetchResult()
d934ea8 is described below

commit d934ea8662ed202d7b8b5c5a4c545f4619485989
Author: Dmitry Lychagin <[email protected]>
AuthorDate: Wed Mar 30 11:50:50 2022 -0700

    [NO ISSUE] Update version, enhance fetchResult()
    
    Details:
    - Change version to 0.9.8-SNAPSHOT
    - Add SubmitStatementOptions parameter
      to ADBProtocolBase.fetchResult()
    - Added executionId into SubmitStatementOptions
    
    Change-Id: Id77be49aa749f7b5667144e3b0ddb5a224cd260d
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb-clients/+/15923
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Ian Maxon <[email protected]>
---
 asterixdb-jdbc/asterix-jdbc-core/pom.xml           |  2 +-
 .../asterix/jdbc/core/ADBPreparedStatement.java    |  3 +--
 .../apache/asterix/jdbc/core/ADBProtocolBase.java  |  8 +++++---
 .../org/apache/asterix/jdbc/core/ADBStatement.java | 24 +++++++++++++---------
 asterixdb-jdbc/asterix-jdbc-driver/pom.xml         |  2 +-
 .../java/org/apache/asterix/jdbc/ADBProtocol.java  | 10 ++++-----
 asterixdb-jdbc/asterix-jdbc-taco/pom.xml           |  2 +-
 asterixdb-jdbc/pom.xml                             |  2 +-
 8 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/asterixdb-jdbc/asterix-jdbc-core/pom.xml 
b/asterixdb-jdbc/asterix-jdbc-core/pom.xml
index 1fc08fe..b4a7163 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/pom.xml
+++ b/asterixdb-jdbc/asterix-jdbc-core/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <artifactId>apache-asterixdb-jdbc</artifactId>
     <groupId>org.apache.asterix</groupId>
-    <version>0.9.7-SNAPSHOT</version>
+    <version>0.9.8-SNAPSHOT</version>
   </parent>
   <artifactId>asterix-jdbc-core</artifactId>
 
diff --git 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
index 7a6d5af..f87eede 100644
--- 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
+++ 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBPreparedStatement.java
@@ -54,8 +54,7 @@ public class ADBPreparedStatement extends ADBStatement 
implements PreparedStatem
         ADBProtocolBase.SubmitStatementOptions stmtOptions = 
createSubmitStatementOptions();
         stmtOptions.compileOnly = true;
         stmtOptions.timeoutSeconds = 0; /* TODO:timeout */
-        ADBProtocolBase.QueryServiceResponse response =
-                connection.protocol.submitStatement(sql, null, null, 
stmtOptions);
+        ADBProtocolBase.QueryServiceResponse response = 
connection.protocol.submitStatement(sql, null, stmtOptions);
         int parameterCount = 
connection.protocol.getStatementParameterCount(response);
         boolean isQuery = connection.protocol.isStatementCategory(response,
                 ADBProtocolBase.QueryServiceResponse.StatementCategory.QUERY);
diff --git 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProtocolBase.java
 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProtocolBase.java
index 6bf6c1f..3186aa0 100644
--- 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProtocolBase.java
+++ 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBProtocolBase.java
@@ -85,10 +85,11 @@ public abstract class ADBProtocolBase {
 
     public abstract boolean ping(int timeoutSeconds);
 
-    public abstract QueryServiceResponse submitStatement(String sql, List<?> 
args, UUID executionId,
-            SubmitStatementOptions options) throws SQLException;
+    public abstract QueryServiceResponse submitStatement(String sql, List<?> 
args, SubmitStatementOptions options)
+            throws SQLException;
 
-    public abstract JsonParser fetchResult(QueryServiceResponse response) 
throws SQLException;
+    public abstract JsonParser fetchResult(QueryServiceResponse response, 
SubmitStatementOptions options)
+            throws SQLException;
 
     public abstract void cancelRunningStatement(UUID executionId) throws 
SQLException;
 
@@ -264,6 +265,7 @@ public abstract class ADBProtocolBase {
         public boolean forceReadOnly;
         public boolean compileOnly;
         public boolean sqlCompatMode;
+        public UUID executionId;
     }
 
     public static class QueryServiceResponse {
diff --git 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
index 6eea813..cdbece6 100644
--- 
a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
+++ 
b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBStatement.java
@@ -90,6 +90,7 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
     protected final ConcurrentLinkedQueue<WeakReference<ADBResultSet>> 
resultSetsWithoutResources;
 
     // execute() result field
+    protected ADBProtocolBase.SubmitStatementOptions executeStmtOptions;
     protected ADBProtocolBase.QueryServiceResponse executeResponse;
     protected ADBResultSet executeResultSet;
 
@@ -158,9 +159,9 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
         // note: we're not assigning executeResponse field at this method
         try {
             ADBProtocolBase.SubmitStatementOptions stmtOptions = 
createSubmitStatementOptions();
+            stmtOptions.executionId = executionId;
             stmtOptions.forceReadOnly = true;
-            ADBProtocolBase.QueryServiceResponse response =
-                    connection.protocol.submitStatement(sql, args, 
executionId, stmtOptions);
+            ADBProtocolBase.QueryServiceResponse response = 
connection.protocol.submitStatement(sql, args, stmtOptions);
             boolean isQuery = connection.protocol.isStatementCategory(response,
                     
ADBProtocolBase.QueryServiceResponse.StatementCategory.QUERY);
             if (!isQuery) {
@@ -168,7 +169,7 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
             }
             warnings = connection.protocol.getWarningIfExists(response);
             updateCount = -1;
-            return fetchResultSet(response);
+            return fetchResultSet(response, stmtOptions);
         } finally {
             resetExecutionId();
         }
@@ -219,8 +220,8 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
     protected int executeUpdateImpl(String sql, List<Object> args) throws 
SQLException {
         try {
             ADBProtocolBase.SubmitStatementOptions stmtOptions = 
createSubmitStatementOptions();
-            ADBProtocolBase.QueryServiceResponse response =
-                    connection.protocol.submitStatement(sql, args, 
executionId, stmtOptions);
+            stmtOptions.executionId = executionId;
+            ADBProtocolBase.QueryServiceResponse response = 
connection.protocol.submitStatement(sql, args, stmtOptions);
             boolean isQuery = connection.protocol.isStatementCategory(response,
                     
ADBProtocolBase.QueryServiceResponse.StatementCategory.QUERY);
             // TODO: remove result set on the server (both query and update 
returning cases)
@@ -259,9 +260,10 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
     protected boolean executeImpl(String sql, List<Object> args) throws 
SQLException {
         try {
             ADBProtocolBase.SubmitStatementOptions stmtOptions = 
createSubmitStatementOptions();
-            ADBProtocolBase.QueryServiceResponse response =
-                    connection.protocol.submitStatement(sql, args, 
executionId, stmtOptions);
+            stmtOptions.executionId = executionId;
+            ADBProtocolBase.QueryServiceResponse response = 
connection.protocol.submitStatement(sql, args, stmtOptions);
             warnings = connection.protocol.getWarningIfExists(response);
+            executeStmtOptions = stmtOptions;
             boolean isQuery = connection.protocol.isStatementCategory(response,
                     
ADBProtocolBase.QueryServiceResponse.StatementCategory.QUERY);
             if (isQuery) {
@@ -347,9 +349,10 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
         if (response == null) {
             return null;
         }
-        ADBResultSet rs = fetchResultSet(response);
+        ADBResultSet rs = fetchResultSet(response, executeStmtOptions);
         executeResultSet = rs;
         executeResponse = null;
+        executeStmtOptions = null;
         return rs;
     }
 
@@ -406,7 +409,8 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
 
     // ResultSet lifecycle
 
-    protected ADBResultSet fetchResultSet(ADBProtocolBase.QueryServiceResponse 
execResponse) throws SQLException {
+    protected ADBResultSet fetchResultSet(ADBProtocolBase.QueryServiceResponse 
execResponse,
+            ADBProtocolBase.SubmitStatementOptions stmtOptions) throws 
SQLException {
         List<ADBColumn> columns = connection.protocol.getColumns(execResponse);
         if (getLogger().isLoggable(Level.FINER)) {
             getLogger().log(Level.FINE, "result schema " + columns);
@@ -417,7 +421,7 @@ public class ADBStatement extends ADBWrapperSupport 
implements java.sql.Statemen
                     connection.protocol.fetchExplainOnlyResult(execResponse, 
stringSer::serializeToString);
             return createSystemResultSet(columns, explainResult);
         } else {
-            JsonParser rowParser = 
connection.protocol.fetchResult(execResponse);
+            JsonParser rowParser = 
connection.protocol.fetchResult(execResponse, stmtOptions);
             return createResultSetImpl(columns, rowParser, true, maxRows);
         }
     }
diff --git a/asterixdb-jdbc/asterix-jdbc-driver/pom.xml 
b/asterixdb-jdbc/asterix-jdbc-driver/pom.xml
index 8c03da0..3ef116a 100644
--- a/asterixdb-jdbc/asterix-jdbc-driver/pom.xml
+++ b/asterixdb-jdbc/asterix-jdbc-driver/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <artifactId>apache-asterixdb-jdbc</artifactId>
     <groupId>org.apache.asterix</groupId>
-    <version>0.9.7-SNAPSHOT</version>
+    <version>0.9.8-SNAPSHOT</version>
   </parent>
   <artifactId>asterix-jdbc-driver</artifactId>
 
diff --git 
a/asterixdb-jdbc/asterix-jdbc-driver/src/main/java/org/apache/asterix/jdbc/ADBProtocol.java
 
b/asterixdb-jdbc/asterix-jdbc-driver/src/main/java/org/apache/asterix/jdbc/ADBProtocol.java
index 2f95b57..bb477b0 100644
--- 
a/asterixdb-jdbc/asterix-jdbc-driver/src/main/java/org/apache/asterix/jdbc/ADBProtocol.java
+++ 
b/asterixdb-jdbc/asterix-jdbc-driver/src/main/java/org/apache/asterix/jdbc/ADBProtocol.java
@@ -207,8 +207,8 @@ final class ADBProtocol extends ADBProtocolBase {
     }
 
     @Override
-    public QueryServiceResponse submitStatement(String sql, List<?> args, UUID 
executionId,
-            SubmitStatementOptions options) throws SQLException {
+    public QueryServiceResponse submitStatement(String sql, List<?> args, 
SubmitStatementOptions options)
+            throws SQLException {
         HttpPost httpPost = new HttpPost(queryEndpoint);
         httpPost.setHeader(HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON
                 .withParameters(new BasicNameValuePair(FORMAT_LOSSLESS_ADM, 
Boolean.TRUE.toString())).toString());
@@ -239,8 +239,8 @@ final class ADBProtocol extends ADBProtocolBase {
             if (options.dataverseName != null) {
                 jsonGen.writeStringField(DATAVERSE, options.dataverseName);
             }
-            if (executionId != null) {
-                jsonGen.writeStringField(CLIENT_CONTEXT_ID, 
executionId.toString());
+            if (options.executionId != null) {
+                jsonGen.writeStringField(CLIENT_CONTEXT_ID, 
options.executionId.toString());
             }
             if (args != null && !args.isEmpty()) {
                 jsonGen.writeFieldName(ARGS);
@@ -305,7 +305,7 @@ final class ADBProtocol extends ADBProtocolBase {
     }
 
     @Override
-    public JsonParser fetchResult(QueryServiceResponse response) throws 
SQLException {
+    public JsonParser fetchResult(QueryServiceResponse response, 
SubmitStatementOptions options) throws SQLException {
         if (response.handle == null) {
             throw getErrorReporter().errorInProtocol();
         }
diff --git a/asterixdb-jdbc/asterix-jdbc-taco/pom.xml 
b/asterixdb-jdbc/asterix-jdbc-taco/pom.xml
index 71eef77..ff13772 100644
--- a/asterixdb-jdbc/asterix-jdbc-taco/pom.xml
+++ b/asterixdb-jdbc/asterix-jdbc-taco/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <artifactId>apache-asterixdb-jdbc</artifactId>
     <groupId>org.apache.asterix</groupId>
-    <version>0.9.7-SNAPSHOT</version>
+    <version>0.9.8-SNAPSHOT</version>
   </parent>
   <artifactId>asterix-jdbc-taco</artifactId>
   <packaging>jar</packaging>
diff --git a/asterixdb-jdbc/pom.xml b/asterixdb-jdbc/pom.xml
index 9e318bb..2996e7f 100644
--- a/asterixdb-jdbc/pom.xml
+++ b/asterixdb-jdbc/pom.xml
@@ -21,7 +21,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.asterix</groupId>
   <artifactId>apache-asterixdb-jdbc</artifactId>
-  <version>0.9.7-SNAPSHOT</version>
+  <version>0.9.8-SNAPSHOT</version>
   <packaging>pom</packaging>
   <parent>
     <groupId>org.apache</groupId>

Reply via email to