org.apache.calcite.runtime.Hook类的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(7.2k)|赞(0)|评价(0)|浏览(101)

本文整理了Java中org.apache.calcite.runtime.Hook类的一些代码示例,展示了Hook类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Hook类的具体详情如下:
包路径:org.apache.calcite.runtime.Hook
类名称:Hook

Hook介绍

[英]Collection of hooks that can be set by observers and are executed at various parts of the query preparation process.

For testing and debugging rather than for end-users.
[中]可以由观察者设置并在查询准备过程的各个部分执行的钩子集合。
用于测试和调试,而不是用于最终用户。

代码示例

代码示例来源:origin: apache/storm

/**
 * StormDataContext Constructor.
 */
public StormDataContext() {
  // Store the time at which the query started executing. The SQL
  // standard says that functions such as CURRENT_TIMESTAMP return the
  // same value throughout the query.
  final Holder<Long> timeHolder = Holder.of(System.currentTimeMillis());
  // Give a hook chance to alter the clock.
  Hook.CURRENT_TIME.run(timeHolder);
  final long time = timeHolder.get();
  final TimeZone timeZone = Calendar.getInstance().getTimeZone();
  final long localOffset = timeZone.getOffset(time);
  final long currentOffset = localOffset;
  ImmutableMap.Builder<Object, Object> builder = ImmutableMap.builder();
  builder.put(Variable.UTC_TIMESTAMP.camelName, time)
      .put(Variable.CURRENT_TIMESTAMP.camelName, time + currentOffset)
      .put(Variable.LOCAL_TIMESTAMP.camelName, time + localOffset)
      .put(Variable.TIME_ZONE.camelName, timeZone);
  map = builder.build();
}

代码示例来源:origin: apache/incubator-druid

@Override
 public void evaluate() throws Throwable
 {
  clearRecordedQueries();
  final Consumer<Object> function = query -> {
   try {
    recordedQueries.add((Query) query);
    log.info(
      "Issued query: %s",
      objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(query)
    );
   }
   catch (Exception e) {
    log.warn(e, "Failed to serialize query: %s", query);
   }
  };
  try (final Hook.Closeable unhook = Hook.QUERY_PLAN.add(function)) {
   base.evaluate();
  }
 }
};

代码示例来源:origin: Qihoo360/Quicksql

/** @deprecated Use {@link #addThread(Consumer)}. */
@SuppressWarnings("Guava")
@Deprecated // to be removed in 2.0
public <T, R> Closeable addThread(
  final com.google.common.base.Function<T, R> handler) {
 return addThread((Consumer<T>) handler::apply);
}

代码示例来源:origin: org.apache.calcite/calcite-core

@Test public <T> void testReduceCaseNullabilityChange() throws Exception {
 HepProgram program = new HepProgramBuilder()
   .addRuleInstance(ReduceExpressionsRule.FILTER_INSTANCE)
   .addRuleInstance(ReduceExpressionsRule.PROJECT_INSTANCE)
   .build();
 try (Hook.Closeable a = Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false))) {
  checkPlanning(program,
    "select case when empno = 1 then 1 when 1 IS NOT NULL then 2 else null end as qx "
      + "from emp");
 }
}

代码示例来源:origin: Qihoo360/Quicksql

final boolean b = value instanceof Boolean
  && (Boolean) value;
closer.add(Hook.ENABLE_BINDABLE.addThread(Hook.propertyJ(b)));

代码示例来源:origin: Qihoo360/Quicksql

/** Adds a property hook. */
public <V> AssertQuery withProperty(Hook hook, V value) {
 return withHook(hook, Hook.propertyJ(value));
}

代码示例来源:origin: Qihoo360/Quicksql

if (Hook.ENABLE_BINDABLE.get(false)) {
 return LogicalTableScan.create(cluster, this);

代码示例来源:origin: org.apache.calcite/calcite-core

/** Adds a handler for this thread. */
public <T> Closeable addThread(final Consumer<T> handler) {
 //noinspection unchecked
 threadHandlers.get().add((Consumer<Object>) handler);
 return () -> removeThread(handler);
}

代码示例来源:origin: Qihoo360/Quicksql

/** Adds a handler for this Hook.
 *
 * <p>Returns a {@link Hook.Closeable} so that you can use the following
 * try-finally pattern to prevent leaks:</p>
 *
 * <blockquote><pre>
 *     final Hook.Closeable closeable = Hook.FOO.add(HANDLER);
 *     try {
 *         ...
 *     } finally {
 *         closeable.close();
 *     }</pre>
 * </blockquote>
 */
public <T> Closeable add(final Consumer<T> handler) {
 //noinspection unchecked
 handlers.add((Consumer<Object>) handler);
 return () -> remove(handler);
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** @deprecated Use {@link #addThread(Consumer)}. */
@SuppressWarnings("Guava")
@Deprecated // to be removed in 2.0
public <T, R> Closeable addThread(
  final com.google.common.base.Function<T, R> handler) {
 return addThread((Consumer<T>) handler::apply);
}

代码示例来源:origin: org.apache.drill.exec/drill-java-exec

public RelRoot toRel(final SqlNode validatedNode) {
 if (planner == null) {
  planner = new VolcanoPlanner(costFactory, settings);
  planner.setExecutor(new DrillConstExecutor(functions, util, settings));
  planner.clearRelTraitDefs();
  planner.addRelTraitDef(ConventionTraitDef.INSTANCE);
  planner.addRelTraitDef(DrillDistributionTraitDef.INSTANCE);
  planner.addRelTraitDef(RelCollationTraitDef.INSTANCE);
 }
 if (cluster == null) {
  initCluster();
 }
 final SqlToRelConverter sqlToRelConverter =
   new SqlToRelConverter(new Expander(), validator, catalog, cluster, DrillConvertletTable.INSTANCE,
     sqlToRelConverterConfig);
 /*
  * Sets value to false to avoid simplifying project expressions
  * during creating new projects since it may cause changing data mode
  * which causes to assertion errors during type validation
  */
 Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false));
 //To avoid unexpected column errors set a value of top to false
 final RelRoot rel = sqlToRelConverter.convertQuery(validatedNode, false, false);
 return rel.withRel(sqlToRelConverter.flattenTypes(rel.rel, true));
}

代码示例来源:origin: org.apache.calcite/calcite-core

final boolean b = value instanceof Boolean
  && (Boolean) value;
closer.add(Hook.ENABLE_BINDABLE.addThread(Hook.propertyJ(b)));

代码示例来源:origin: org.apache.calcite/calcite-core

/** Adds a property hook. */
public <V> AssertQuery withProperty(Hook hook, V value) {
 return withHook(hook, Hook.propertyJ(value));
}

代码示例来源:origin: org.apache.calcite/calcite-core

if (Hook.ENABLE_BINDABLE.get(false)) {
 return LogicalTableScan.create(cluster, this);

代码示例来源:origin: Qihoo360/Quicksql

/** Adds a handler for this thread. */
public <T> Closeable addThread(final Consumer<T> handler) {
 //noinspection unchecked
 threadHandlers.get().add((Consumer<Object>) handler);
 return () -> removeThread(handler);
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** Adds a handler for this Hook.
 *
 * <p>Returns a {@link Hook.Closeable} so that you can use the following
 * try-finally pattern to prevent leaks:</p>
 *
 * <blockquote><pre>
 *     final Hook.Closeable closeable = Hook.FOO.add(HANDLER);
 *     try {
 *         ...
 *     } finally {
 *         closeable.close();
 *     }</pre>
 * </blockquote>
 */
public <T> Closeable add(final Consumer<T> handler) {
 //noinspection unchecked
 handlers.add((Consumer<Object>) handler);
 return () -> remove(handler);
}

代码示例来源:origin: apache/incubator-druid

@SuppressWarnings("unchecked")
private <T> Sequence<T> runQuery(Query<T> query)
{
 Hook.QUERY_PLAN.run(query);
 final String queryId = UUID.randomUUID().toString();
 plannerContext.addNativeQueryId(queryId);
 query = query.withId(queryId)
        .withSqlQueryId(plannerContext.getSqlQueryId());
 final AuthenticationResult authenticationResult = plannerContext.getAuthenticationResult();
 return queryLifecycleFactory.factorize().runSimple(query, authenticationResult, null);
}

代码示例来源:origin: Qihoo360/Quicksql

@Before public void before() {
 this.closeable =
   Hook.CONVERTED.addThread(SqlToRelConverterExtendedTest::foo);
}

代码示例来源:origin: org.apache.calcite/calcite-core

/** @deprecated Use {@link #add(Consumer)}. */
@SuppressWarnings("Guava")
@Deprecated // to be removed in 2.0
public <T, R> Closeable add(final Function<T, R> handler) {
 return add((Consumer<T>) handler::apply);
}

代码示例来源:origin: org.apache.calcite/calcite-core

public <V> Sql withProperty(Hook hook, V value) {
 return withHook(hook, Hook.propertyJ(value));
}

相关文章

微信公众号

最新文章

更多