AMashenkov commented on a change in pull request #613:
URL: https://github.com/apache/ignite-3/pull/613#discussion_r802498486



##########
File path: 
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/ExecutionServiceImpl.java
##########
@@ -230,12 +234,33 @@ public void start() {
                 plan = prepareSingle(qry0, pctx);
             }
 
+            checkQueryType(plan.type(), isQuery);
+
             cursors.add(executePlan(UUID.randomUUID(), pctx, plan));
         }
 
         return cursors;
     }
 
+    /**
+     * Check expected statement type (when it is set by JDBC) and given 
statement type.
+     *
+     * @param qryType Query type.
+     * @param isQuery {@code null} if not applicable, {@code true} for select 
queries,
+     *                           otherwise (DML/DDL queries) {@code false}.
+     */
+    private static void checkQueryType(Type qryType, Boolean isQuery) {
+        if (isQuery == null || qryType == Type.EXPLAIN) {
+            return;
+        }
+        if (isQuery && qryType != Type.QUERY) {
+            throw new IgniteInternalException("Given statement type does not 
match that declared by JDBC driver");

Review comment:
       Why does the error that is thrown from common executor module, refers to 
JDBC driver?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to