diff options
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); } |