aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/planner
diff options
context:
space:
mode:
authorArina Ielchiieva <arina.yelchiyeva@gmail.com>2018-12-23 17:10:39 +0200
committerVitalii Diravka <vitalii.diravka@gmail.com>2018-12-24 17:49:01 +0200
commit44f17eaf1b9489fc16fadee0178e975f6aff5185 (patch)
tree3dee74abb5ad7287a2badebaa04c22f97c43975d /exec/java-exec/src/main/java/org/apache/drill/exec/planner
parent4a771d0af83beccbb0a7fc9f03b22966c1292724 (diff)
DRILL-6922: Do not set return result set option on query level if it is the same as current value
1. Rename return result option name to `exec.query.return_result_set_for_ddl`. 2. Add check if option value is the same as current value in DrillSqlWorker before setting result set option on query level. 3. Separate Session and Query options on Web UI. closes #1584
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
index c7963a50a..c92f5f830 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java
@@ -173,11 +173,13 @@ public class DrillSqlWorker {
handler = new DefaultSqlHandler(config, textPlan);
}
- boolean returnResultSet = context.getOptions().getBoolean(ExecConstants.RETURN_RESULT_SET_FOR_DDL);
- // Determine whether result set should be returned for the query based on `exec.return_result_set_for_ddl`
- // and sql node kind. Overrides the option on a query level.
- context.getOptions().setLocalOption(ExecConstants.RETURN_RESULT_SET_FOR_DDL,
- returnResultSet || !SqlKind.DDL.contains(sqlNode.getKind()));
+ // Determines whether result set should be returned for the query based on return result set option and sql node kind.
+ // Overrides the option on a query level if it differs from the current value.
+ boolean currentReturnResultValue = context.getOptions().getBoolean(ExecConstants.RETURN_RESULT_SET_FOR_DDL);
+ boolean newReturnResultSetValue = currentReturnResultValue || !SqlKind.DDL.contains(sqlNode.getKind());
+ if (newReturnResultSetValue != currentReturnResultValue) {
+ context.getOptions().setLocalOption(ExecConstants.RETURN_RESULT_SET_FOR_DDL, true);
+ }
return handler.getPlan(sqlNode);
}