@Override public void applyOptions(OptionManager manager) { if (enableLeafLimits) { manager.setOption(createBoolean(QUERY, PlannerSettings.ENABLE_LEAF_LIMITS.getOptionName(), true)); manager.setOption(createLong(QUERY, ExecConstants.MAX_WIDTH_GLOBAL_KEY, manager.getOption(PlannerSettings.LEAF_LIMIT_MAX_WIDTH))); manager.setOption(createLong(QUERY, ExecConstants.SLICE_TARGET, 1)); } if (enableOutputLimits) { manager.setOption(createBoolean(QUERY, PlannerSettings.ENABLE_OUTPUT_LIMITS.getOptionName(), true)); } // always store results manager.setOption(createString(QUERY, PlannerSettings.STORE_QUERY_RESULTS.getOptionName(), StoreQueryResultsPolicy.PATH_AND_ATTEMPT_ID.name())); manager.setOption(createString(QUERY, PlannerSettings.QUERY_RESULTS_STORE_TABLE.getOptionName(), queryResultsStorePath)); if (!allowPartitionPruning) { manager.setOption(createBoolean(QUERY, PlannerSettings.ENABLE_PARTITION_PRUNING.getOptionName(), false)); } if (internalSingleThreaded) { manager.setOption(createBoolean(QUERY, ExecConstants.SORT_FILE_BLOCKS.getOptionName(), true)); manager.setOption(createBoolean(QUERY, PlannerSettings.EXCHANGE.getOptionName(), true)); } }
@Override public void applyOptions(OptionManager manager) { if (optionProvider != null) { optionProvider.applyOptions(manager); } // TODO(DX-5912): disable hash join after merge join is implemented // manager.setOption(OptionValue.createBoolean(OptionValue.OptionType.QUERY, // PlannerSettings.HASHJOIN.getOptionName(), false)); manager.setOption(OptionValue.createBoolean(OptionValue.OptionType.QUERY, PlannerSettings.HASHAGG.getOptionName(), false)); } }
@Override public void setOption(OptionValue value) { final OptionValidator validator = fallback.getValidator(value.getName()); validator.validate(value); // validate the option // fallback if unable to set locally if (!setLocalOption(value)) { fallback.setOption(value); } }
@BeforeClass public static void setUpTestNative() { if (System.getProperty("execPreferenceGandivaOnly") != null) { execPreferenceGandivaOnly = System.getProperty("execPreferenceGandivaOnly"); } testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, execPreferenceGandivaOnly)); }
@Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createLong(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
@Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createString(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
@Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createDouble(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
@Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createBoolean(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
@Test public void testToDate_Timezone() throws Exception { testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, execPreferenceMixed)); testFunctions(new Object[][]{ {"extractYear(to_date(c0, 'YYYYMMDD HHMISS tzo', 0))","19671211 121212 +08:00", 1967l} }); testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, execPreferenceGandivaOnly)); }
<T extends SingleInputOperator> long runOne(String preference, String expr, TpchTable table, double scale, PhysicalOperator operator, Class<T> clazz) throws Exception { ExecutorService service = Executors.newFixedThreadPool(numThreads); testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, preference)); List<Future<OperatorStats>> futures = new ArrayList<>(); for (int i = 0; i < numThreads; ++i) { Future<OperatorStats> ret = service.submit(new RunWithPreference(table, scale, operator, clazz)); futures.add(ret); } long totalEvalTime = 0; long javaCodegenEvalTime = 0; long gandivaCodegenEvalTime = 0; for (Future<OperatorStats> future : futures) { OperatorStats stats = future.get(); javaCodegenEvalTime += stats.getLongStat(Metric.JAVA_EVALUATE_TIME); gandivaCodegenEvalTime += stats.getLongStat(Metric.GANDIVA_EVALUATE_TIME); } totalEvalTime = javaCodegenEvalTime + gandivaCodegenEvalTime; System.out.println("evaluate time with pref " + preference + " for [" + expr + "] is " + " [" + " eval : " + (javaCodegenEvalTime + gandivaCodegenEvalTime) + "ms " + " javaCodeGen : " + javaCodegenEvalTime + "ms " + " gandivaCodeGen : " + gandivaCodegenEvalTime + "ms " + "]"); return totalEvalTime; }
@Test public void testDx14049() throws Exception { try { testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, execPreferenceJava )); testFunctionsCompiledOnly(new Object[][]{ {"months_between(c0, castDATE(c1))",new LocalDate(), new LocalDateTime(), 0.0} }); } finally { testContext.getOptions().setOption(OptionValue.createString( OptionValue.OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION_KEY, execPreferenceGandivaOnly )); } }
public static void setControls(final UserSession session, final String controls) { validateControlsString(controls); final OptionValue opValue = OptionValue.createString(OptionValue.OptionType.SESSION, NODE_CONTROL_INJECTIONS, controls); final OptionManager options = session.getOptions(); try { NODE_CONTROLS_VALIDATOR.validate(opValue); options.setOption(opValue); } catch (final Exception e) { fail("Could not set controls options: " + e.getMessage()); } session.incrementQueryCount(); }
public AutoCloseable with(final BooleanValidator validator, final boolean value){ final boolean oldValue = testContext.getOptions().getOption(validator); testContext.getOptions().setOption(OptionValue.createBoolean(OptionType.SYSTEM, validator.getOptionName(), value)); return new AutoCloseable(){ @Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createBoolean(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
public AutoCloseable with(final StringValidator validator, final String value){ final String oldValue = testContext.getOptions().getOption(validator); testContext.getOptions().setOption(OptionValue.createString(OptionType.SYSTEM, validator.getOptionName(), value)); return new AutoCloseable(){ @Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createString(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
public AutoCloseable with(final DoubleValidator validator, final double value){ final double oldValue = testContext.getOptions().getOption(validator); testContext.getOptions().setOption(OptionValue.createDouble(OptionType.SYSTEM, validator.getOptionName(), value)); return new AutoCloseable(){ @Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createDouble(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
public AutoCloseable with(final LongValidator validator, final long value){ final long oldValue = testContext.getOptions().getOption(validator); testContext.getOptions().setOption(OptionValue.createLong(OptionType.SYSTEM, validator.getOptionName(), value)); return new AutoCloseable(){ @Override public void close() throws Exception { testContext.getOptions().setOption(OptionValue.createLong(OptionType.SYSTEM, validator.getOptionName(), oldValue)); }}; }
options.setOption(optionValue); } else { // RESET option if ("ALL".equalsIgnoreCase(name)) {
testContext.getOptions().setOption(OptionValue.createBoolean(OptionType.SYSTEM, ExecConstants.FAST_OR_ENABLE.getOptionName(), false)); testFunction(expr, ObjectArrays.concat(objects, result)); } catch(Throwable t) { testContext.getOptions().setOption(OptionValue.createString(OptionType.SYSTEM, ExecConstants.QUERY_EXEC_OPTION.getOptionName(), SupportedEngines.CodeGenOption.Java.name())); InExpression.COUNT.set(0); try {
session.getOptions().setOption(OptionValue.createBoolean(OptionType.SESSION, ExecConstants.USE_LEGACY_CATALOG_NAME.getOptionName(), true));
optionManager.setOption(OptionValue.createBoolean( OptionValue.OptionType.SYSTEM, ExecConstants.SPLIT_ENABLED.getOptionName(), true)); ExpressionEvaluationOptions options = new ExpressionEvaluationOptions(optionManager);