diff options
author | Arina Ielchiieva <arina.yelchiyeva@gmail.com> | 2018-12-23 17:10:39 +0200 |
---|---|---|
committer | Vitalii Diravka <vitalii.diravka@gmail.com> | 2018-12-24 17:49:01 +0200 |
commit | 44f17eaf1b9489fc16fadee0178e975f6aff5185 (patch) | |
tree | 3dee74abb5ad7287a2badebaa04c22f97c43975d /exec/java-exec/src/main/java/org/apache/drill/exec/planner | |
parent | 4a771d0af83beccbb0a7fc9f03b22966c1292724 (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.java | 12 |
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); } |