当前位置: 首页>>代码示例>>Java>>正文


Java Expressions.call方法代码示例

本文整理汇总了Java中org.apache.calcite.linq4j.tree.Expressions.call方法的典型用法代码示例。如果您正苦于以下问题:Java Expressions.call方法的具体用法?Java Expressions.call怎么用?Java Expressions.call使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.calcite.linq4j.tree.Expressions的用法示例。


在下文中一共展示了Expressions.call方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: constantStringList

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private static Expression constantStringList(final List<String> strings) {
  return Expressions.call(
      Arrays.class,
      "asList",
      Expressions.newArrayInit(
          Object.class,
          new AbstractList<Expression>() {
            @Override public Expression get(int index) {
              return Expressions.constant(strings.get(index));
            }

            @Override public int size() {
              return strings.size();
            }
          }));
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:SplunkTableScan.java

示例2: implementSpark

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Result implementSpark(Implementor implementor) {
  // Generate:
  //   Enumerable source = ...;
  //   return SparkRuntime.createRdd(sparkContext, source);
  final BlockBuilder list = new BlockBuilder();
  final EnumerableRel child = (EnumerableRel) getInput();
  final PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(), getRowType(),
          JavaRowFormat.CUSTOM);
  final Expression source = null; // TODO:
  final Expression sparkContext =
      Expressions.call(
          SparkMethod.GET_SPARK_CONTEXT.method,
          implementor.getRootExpression());
  final Expression rdd =
      list.append(
          "rdd",
          Expressions.call(
              SparkMethod.CREATE_RDD.method,
              sparkContext,
              source));
  list.add(
      Expressions.return_(null, rdd));
  return implementor.result(physType, list.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:27,代码来源:EnumerableToSparkConverter.java

示例3: testCompile

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Test public void testCompile() throws NoSuchMethodException {
  // Creating a parameter for the expression tree.
  ParameterExpression param = Expressions.parameter(String.class);

  // Creating an expression for the method call and specifying its
  // parameter.
  MethodCallExpression methodCall =
      Expressions.call(
          Integer.class,
          "valueOf",
          Collections.<Expression>singletonList(param));

  // The following statement first creates an expression tree,
  // then compiles it, and then runs it.
  int x =
      Expressions.<Function1<String, Integer>>lambda(
          methodCall,
          new ParameterExpression[] { param })
          .getFunction()
          .apply("1234");
  assertEquals(1234, x);
}
 
开发者ID:apache,项目名称:calcite,代码行数:23,代码来源:ExpressionTest.java

示例4: generateSelector

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Expression generateSelector(
    ParameterExpression parameter,
    List<Integer> fields,
    JavaRowFormat targetFormat) {
  // Optimize target format
  switch (fields.size()) {
  case 0:
    targetFormat = JavaRowFormat.LIST;
    break;
  case 1:
    targetFormat = JavaRowFormat.SCALAR;
    break;
  }
  final PhysType targetPhysType =
      project(fields, targetFormat);
  switch (format) {
  case SCALAR:
    return Expressions.call(BuiltInMethod.IDENTITY_SELECTOR.method);
  default:
    return Expressions.lambda(Function1.class,
        targetPhysType.record(fieldReferences(parameter, fields)), parameter);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:24,代码来源:PhysTypeImpl.java

示例5: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  final JavaTypeFactory typeFactory = implementor.getTypeFactory();
  final BlockBuilder builder = new BlockBuilder();
  final PhysType physType =
      PhysTypeImpl.of(typeFactory, getRowType(), JavaRowFormat.ARRAY);
  final Expression interpreter_ = builder.append("interpreter",
      Expressions.new_(Interpreter.class,
          implementor.getRootExpression(),
          implementor.stash(getInput(), RelNode.class)));
  final Expression sliced_ =
      getRowType().getFieldCount() == 1
          ? Expressions.call(BuiltInMethod.SLICE0.method, interpreter_)
          : interpreter_;
  builder.add(sliced_);
  return implementor.result(physType, builder.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:EnumerableInterpreter.java

示例6: getExpression

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override
public Expression getExpression(SchemaPlus parentSchema,
                                String name) {
    return Expressions.call(
            DataContext.ROOT,
            BuiltInMethod.DATA_CONTEXT_GET_ROOT_SCHEMA.method);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:8,代码来源:CalciteConnectionImpl.java

示例7: getExpression

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override
public Expression getExpression(SchemaPlus parentSchema,
                                String name) {
  return Expressions.call(
      DataContext.ROOT,
      BuiltInMethod.DATA_CONTEXT_GET_ROOT_SCHEMA.method);
}
 
开发者ID:qubole,项目名称:quark,代码行数:8,代码来源:RelSchema.java

示例8: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {

    context.setReturnTupleInfo(rowType, columnRowType);

    PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), pref.preferArray());
    RelOptTable factTable = context.firstTableScan.getTable();
    MethodCallExpression exprCall = Expressions.call(factTable.getExpression(OLAPTable.class), "executeOLAPQuery",
            implementor.getRootExpression(), Expressions.constant(context.id));
    return implementor.result(physType, Blocks.toBlock(exprCall));
}
 
开发者ID:apache,项目名称:kylin,代码行数:12,代码来源:OLAPJoinRel.java

示例9: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {

    context.setReturnTupleInfo(rowType, columnRowType);
    String execFunction = genExecFunc();

    PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), JavaRowFormat.ARRAY);
    MethodCallExpression exprCall = Expressions.call(table.getExpression(OLAPTable.class), execFunction,
            implementor.getRootExpression(), Expressions.constant(context.id));
    return implementor.result(physType, Blocks.toBlock(exprCall));
}
 
开发者ID:apache,项目名称:kylin,代码行数:12,代码来源:OLAPTableScan.java

示例10: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override
public Expression implement(RexToLixTranslator rexToLixTranslator, RexCall rexCall, List<Expression> operands) {
    int snapshotId = SnapshotHolder.put(snapshot);

    return Expressions.call(
            Expressions.new_(getConstructor(SnapshotFunctions.class, Integer.TYPE), Expressions.constant(snapshotId, Integer.TYPE)),
            functionMethod, operands);
}
 
开发者ID:vlsi,项目名称:mat-calcite-plugin,代码行数:9,代码来源:SnapshotFunctions.java

示例11: constantArrayList

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
/** E.g. {@code constantArrayList("x", "y")} returns
 * "Arrays.asList('x', 'y')". */
private static <T> MethodCallExpression constantArrayList(List<T> values,
    Class clazz) {
  return Expressions.call(
      BuiltInMethod.ARRAYS_AS_LIST.method,
      Expressions.newArrayInit(clazz, constantList(values)));
}
 
开发者ID:apache,项目名称:calcite,代码行数:9,代码来源:CassandraToEnumerableConverter.java

示例12: getImplementor

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
@Override public CallImplementor getImplementor() {
  return new CallImplementor() {
    public Expression implement(RexToLixTranslator translator, RexCall call, NullAs nullAs) {
      Method lookupMethod =
          Types.lookupMethod(Smalls.AllTypesFunction.class,
              "arrayAppendFun", List.class, Integer.class);
      return Expressions.call(lookupMethod,
          translator.translateList(call.getOperands(), nullAs));
    }
  };
}
 
开发者ID:apache,项目名称:calcite,代码行数:12,代码来源:UdfTest.java

示例13: callBackupMethodAnyType

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
private Expression callBackupMethodAnyType(RexToLixTranslator translator,
    RexCall call, List<Expression> expressions) {
  final String backupMethodNameForAnyType =
      backupMethodName + METHOD_POSTFIX_FOR_ANY_TYPE;

  // one or both of parameter(s) is(are) ANY type
  final Expression expression0 = maybeBox(expressions.get(0));
  final Expression expression1 = maybeBox(expressions.get(1));
  return Expressions.call(SqlFunctions.class, backupMethodNameForAnyType,
      expression0, expression1);
}
 
开发者ID:apache,项目名称:calcite,代码行数:12,代码来源:RexImpTable.java

示例14: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Expression implement(
    RexToLixTranslator translator,
    RexCall call,
    NullAs nullAs) {
  switch (nullAs) {
  case IS_NULL:
    return Expressions.constant(false);
  case IS_NOT_NULL:
    return Expressions.constant(true);
  }
  final SqlOperator op = call.getOperator();
  final Expression root = translator.getRoot();
  if (op == CURRENT_USER
      || op == SESSION_USER
      || op == USER) {
    return Expressions.constant("sa");
  } else if (op == SYSTEM_USER) {
    return Expressions.constant(System.getProperty("user.name"));
  } else if (op == CURRENT_PATH
      || op == CURRENT_ROLE
      || op == CURRENT_CATALOG) {
    // By default, the CURRENT_ROLE and CURRENT_CATALOG functions return the
    // empty string because a role or a catalog has to be set explicitly.
    return Expressions.constant("");
  } else if (op == CURRENT_TIMESTAMP) {
    return Expressions.call(BuiltInMethod.CURRENT_TIMESTAMP.method, root);
  } else if (op == CURRENT_TIME) {
    return Expressions.call(BuiltInMethod.CURRENT_TIME.method, root);
  } else if (op == CURRENT_DATE) {
    return Expressions.call(BuiltInMethod.CURRENT_DATE.method, root);
  } else if (op == LOCALTIMESTAMP) {
    return Expressions.call(BuiltInMethod.LOCAL_TIMESTAMP.method, root);
  } else if (op == LOCALTIME) {
    return Expressions.call(BuiltInMethod.LOCAL_TIME.method, root);
  } else {
    throw new AssertionError("unknown function " + op);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:39,代码来源:RexImpTable.java

示例15: implement

import org.apache.calcite.linq4j.tree.Expressions; //导入方法依赖的package包/类
public Expression implement(RexToLixTranslator translator,
    RexCall call, List<Expression> translatedOperands) {
  translatedOperands =
      EnumUtils.fromInternal(method.getParameterTypes(), translatedOperands);
  if ((method.getModifiers() & Modifier.STATIC) != 0) {
    return Expressions.call(method, translatedOperands);
  } else {
    // The UDF class must have a public zero-args constructor.
    // Assume that the validator checked already.
    final Expression target =
        Expressions.new_(method.getDeclaringClass());
    return Expressions.call(target, method, translatedOperands);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:15,代码来源:ReflectiveCallNotNullImplementor.java


注:本文中的org.apache.calcite.linq4j.tree.Expressions.call方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。