• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java EnumerableRelImplementor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.calcite.adapter.enumerable.EnumerableRelImplementor的典型用法代码示例。如果您正苦于以下问题:Java EnumerableRelImplementor类的具体用法?Java EnumerableRelImplementor怎么用?Java EnumerableRelImplementor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



EnumerableRelImplementor类属于org.apache.calcite.adapter.enumerable包,在下文中一共展示了EnumerableRelImplementor类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
@Override
    public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
        final BlockBuilder list = new BlockBuilder();
        final GremlinTraversalRel.Implementor gremlinImplementor =
                new GremlinTraversalRel.Implementor();
        gremlinImplementor.visitChild(0, getInput());

        PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(),
                getRowType(), pref.preferArray());

        return implementor.result(
                physType,
                Blocks.toBlock(
                        Expressions.call(GremlinTraversalScan.class,
                                "scan")));
//        return null;
    }
 
开发者ID:twilmes,项目名称:sql-gremlin,代码行数:18,代码来源:GremlinTraversalToEnumerableRelConverter.java


示例2: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(),
          getRowType(),
          pref.preferArray());

  if (table instanceof JsonTable) {
    return implementor.result(
        physType,
        Blocks.toBlock(
            Expressions.call(table.getExpression(JsonTable.class),
                "enumerable")));
  }
  return implementor.result(
      physType,
      Blocks.toBlock(
          Expressions.call(table.getExpression(CsvTranslatableTable.class),
              "project", implementor.getRootExpression(),
              Expressions.constant(fields))));
}
 
开发者ID:apache,项目名称:calcite,代码行数:22,代码来源:CsvTableScan.java


示例3: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  // Generate:
  //   RDD rdd = ...;
  //   return SparkRuntime.asEnumerable(rdd);
  final BlockBuilder list = new BlockBuilder();
  final SparkRel child = (SparkRel) getInput();
  final PhysType physType =
      PhysTypeImpl.of(implementor.getTypeFactory(),
          getRowType(),
          JavaRowFormat.CUSTOM);
  SparkRel.Implementor sparkImplementor =
      new SparkImplementorImpl(implementor);
  final SparkRel.Result result = child.implementSpark(sparkImplementor);
  final Expression rdd = list.append("rdd", result.block);
  final Expression enumerable =
      list.append(
          "enumerable",
          Expressions.call(
              SparkMethod.AS_ENUMERABLE.method,
              rdd));
  list.add(
      Expressions.return_(null, enumerable));
  return implementor.result(physType, list.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:25,代码来源:SparkToEnumerableConverter.java


示例4: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
@Override
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
    final PhysType physType =
            PhysTypeImpl.of(
                    implementor.getTypeFactory(),
                    getRowType(),
                    pref.preferArray());
    return implementor.result(
            physType,
            Blocks.toBlock(
                    Expressions.call(table.getExpression(OctopusMetaModelTable.class),
                            "project")));
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:14,代码来源:OctopusMetaModelTableScan.java


示例5: getTimeZoneExpression

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
private UnaryExpression getTimeZoneExpression(
        EnumerableRelImplementor implementor) {
    return Expressions.convert_(
            Expressions.call(
                    implementor.getRootExpression(),
                    "get",
                    Expressions.constant("timeZone")),
            TimeZone.class);
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:10,代码来源:JdbcToEnumerableConverter.java


示例6: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(),
          getRowType(),
          pref.preferArray());

  return implementor.result(
      physType,
      Blocks.toBlock(
          Expressions.call(table.getExpression(QuarkTable.class),
              "project",
              Expressions.constant(QuarkEnumerator.identityList(
                  getRowType().getFieldCount())))));
}
 
开发者ID:qubole,项目名称:quark,代码行数:16,代码来源:QuarkTableScan.java


示例7: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(),
          getRowType(),
          pref.preferArray());

  return implementor.result(
      physType,
      Blocks.toBlock(
          Expressions.call(table.getExpression(QuarkTileTable.class),
              "project", Expressions.constant(
                  QuarkEnumerator.identityList(getRowType().getFieldCount())))));
}
 
开发者ID:qubole,项目名称:quark,代码行数:15,代码来源:QuarkTileScan.java


示例8: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的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.adapter.enumerable.EnumerableRelImplementor; //导入依赖的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.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
/**
 * {@inheritDoc}
 *
 * <p>This implementation does not actually execute the associated Pig Latin
 * script and return results. Instead it returns an empty
 * {@link org.apache.calcite.adapter.enumerable.EnumerableRel.Result}
 * in order to allow for testing and verification of every step of query
 * processing up to actual physical execution and result verification.
 *
 * <p>Next step is to invoke Pig from here, likely in local mode, have it
 * store results in a predefined file so they can be read here and returned as
 * a {@code Result} object.
 */
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  final BlockBuilder list = new BlockBuilder();
  final PhysType physType =
      PhysTypeImpl.of(implementor.getTypeFactory(), rowType,
          pref.prefer(JavaRowFormat.ARRAY));
  PigRel.Implementor impl = new PigRel.Implementor();
  impl.visitChild(0, getInput());
  Hook.QUERY_PLAN.run(impl.getScript()); // for script validation in tests
  list.add(
      Expressions.return_(null,
          Expressions.call(
              BuiltInMethod.EMPTY_ENUMERABLE.method)));
  return implementor.result(physType, list.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:28,代码来源:PigToEnumerableConverter.java


示例11: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(),
          getRowType(),
          pref.preferArray());

  return implementor.result(
      physType,
      Blocks.toBlock(
          Expressions.call(table.getExpression(FileTable.class), "project",
              Expressions.constant(fields))));
}
 
开发者ID:apache,项目名称:calcite,代码行数:14,代码来源:FileTableScan.java


示例12: getTimeZoneExpression

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
private UnaryExpression getTimeZoneExpression(
    EnumerableRelImplementor implementor) {
  return Expressions.convert_(
      Expressions.call(
          implementor.getRootExpression(),
          "get",
          Expressions.constant("timeZone")),
      TimeZone.class);
}
 
开发者ID:apache,项目名称:calcite,代码行数:10,代码来源:JdbcToEnumerableConverter.java


示例13: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
@Override public Result implement(EnumerableRelImplementor implementor, Prefer prefer) {
  final BlockBuilder list = new BlockBuilder();
  final ElasticsearchRel.Implementor elasticsearchImplementor =
      new ElasticsearchRel.Implementor();
  elasticsearchImplementor.visitChild(0, getInput());
  final RelDataType rowType = getRowType();
  final PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), rowType,
      prefer.prefer(JavaRowFormat.ARRAY));
  final Expression fields = list.append("fields",
      constantArrayList(
          Pair.zip(ElasticsearchRules.elasticsearchFieldNames(rowType),
              new AbstractList<Class>() {
                @Override public Class get(int index) {
                  return physType.fieldClass(index);
                }

                @Override public int size() {
                  return rowType.getFieldCount();
                }
              }),
          Pair.class));
  final Expression table = list.append("table",
      elasticsearchImplementor.table
          .getExpression(AbstractElasticsearchTable.ElasticsearchQueryable.class));
  List<String> opList = elasticsearchImplementor.list;
  final Expression ops = list.append("ops", constantArrayList(opList, String.class));
  Expression enumerable = list.append("enumerable",
      Expressions.call(table, ElasticsearchMethod.ELASTICSEARCH_QUERYABLE_FIND.method, ops,
          fields));
  if (CalcitePrepareImpl.DEBUG) {
    System.out.println("Elasticsearch: " + opList);
  }
  Hook.QUERY_PLAN.run(opList);
  list.add(Expressions.return_(null, enumerable));
  return implementor.result(physType, list.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:37,代码来源:ElasticsearchToEnumerableConverter.java


示例14: generateGet

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
private void generateGet(EnumerableRelImplementor implementor,
                         PhysType physType, BlockBuilder builder, ParameterExpression resultSet,
                         int i, Expression target, Expression calendar,
                         CalendarPolicy calendarPolicy) {
    final Primitive primitive = Primitive.ofBoxOr(physType.fieldClass(i));
    final RelDataType fieldType =
            physType.getRowType().getFieldList().get(i).getType();
    final List<Expression> dateTimeArgs = new ArrayList<Expression>();
    dateTimeArgs.add(Expressions.constant(i + 1));
    SqlTypeName sqlTypeName = fieldType.getSqlTypeName();
    boolean offset = false;
    switch (calendarPolicy) {
    case LOCAL:
        dateTimeArgs.add(calendar);
        break;
    case NULL:
        // We don't specify a calendar at all, so we don't add an argument and
        // instead use the version of the getXXX that doesn't take a Calendar
        break;
    case DIRECT:
        sqlTypeName = SqlTypeName.ANY;
        break;
    case SHIFT:
        switch (sqlTypeName) {
        case TIMESTAMP:
        case DATE:
            offset = true;
            break;
        default:
        }
        break;
    default:
    }
    final Expression source;
    switch (sqlTypeName) {
    case DATE:
    case TIME:
    case TIMESTAMP:
        source = Expressions.call(
                getMethod(sqlTypeName, fieldType.isNullable(), offset),
                Expressions.<Expression>list()
                        .append(
                                Expressions.call(resultSet,
                                        getMethod2(sqlTypeName), dateTimeArgs))
                        .appendIf(offset, getTimeZoneExpression(implementor)));
        break;
    case ARRAY:
        final Expression x = Expressions.convert_(
                Expressions.call(resultSet, jdbcGetMethod(primitive),
                        Expressions.constant(i + 1)),
                java.sql.Array.class);
        source = Expressions.call(BuiltInMethod.JDBC_ARRAY_TO_LIST.method, x);
        break;
    default:
        source = Expressions.call(
                resultSet, jdbcGetMethod(primitive), Expressions.constant(i + 1));
    }
    builder.add(
            Expressions.statement(
                    Expressions.assign(
                            target, source)));

    // [CALCITE-596] If primitive type columns contain null value, returns null
    // object
    if (primitive != null) {
        builder.add(
                Expressions.ifThen(
                        Expressions.call(resultSet, "wasNull"),
                        Expressions.statement(
                                Expressions.assign(target,
                                        Expressions.constant(null)))));
    }
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:74,代码来源:JdbcToEnumerableConverter.java


示例15: JavaImplementor

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public JavaImplementor(EnumerableRelImplementor enumImplementor) {
    super(enumImplementor.getRexBuilder(), new LinkedHashMap<String, Object>());
}
 
开发者ID:apache,项目名称:kylin,代码行数:4,代码来源:OLAPRel.java


示例16: SparkImplementorImpl

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
SparkImplementorImpl(EnumerableRelImplementor implementor) {
  super(implementor.getRexBuilder());
  this.implementor = implementor;
}
 
开发者ID:apache,项目名称:calcite,代码行数:5,代码来源:SparkToEnumerableConverter.java


示例17: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
  // Generates a call to "find" or "aggregate", depending upon whether
  // an aggregate is present.
  //
  //   ((MongoTable) schema.getTable("zips")).find(
  //     "{state: 'CA'}",
  //     "{city: 1, zipcode: 1}")
  //
  //   ((MongoTable) schema.getTable("zips")).aggregate(
  //     "{$filter: {state: 'CA'}}",
  //     "{$group: {_id: '$city', c: {$sum: 1}, p: {$sum: "$pop"}}")
  final BlockBuilder list = new BlockBuilder();
  final MongoRel.Implementor mongoImplementor = new MongoRel.Implementor();
  mongoImplementor.visitChild(0, getInput());
  int aggCount = 0;
  int findCount = 0;
  String project = null;
  String filter = null;
  for (Pair<String, String> op : mongoImplementor.list) {
    if (op.left == null) {
      ++aggCount;
    }
    if (op.right.startsWith("{$match:")) {
      filter = op.left;
      ++findCount;
    }
    if (op.right.startsWith("{$project:")) {
      project = op.left;
      ++findCount;
    }
  }
  final RelDataType rowType = getRowType();
  final PhysType physType =
      PhysTypeImpl.of(
          implementor.getTypeFactory(), rowType,
          pref.prefer(JavaRowFormat.ARRAY));
  final Expression fields =
      list.append("fields",
          constantArrayList(
              Pair.zip(MongoRules.mongoFieldNames(rowType),
                  new AbstractList<Class>() {
                    @Override public Class get(int index) {
                      return physType.fieldClass(index);
                    }

                    @Override public int size() {
                      return rowType.getFieldCount();
                    }
                  }),
              Pair.class));
  final Expression table =
      list.append("table",
          mongoImplementor.table.getExpression(
              MongoTable.MongoQueryable.class));
  List<String> opList = Pair.right(mongoImplementor.list);
  final Expression ops =
      list.append("ops",
          constantArrayList(opList, String.class));
  Expression enumerable =
      list.append("enumerable",
          Expressions.call(table,
              MongoMethod.MONGO_QUERYABLE_AGGREGATE.method, fields, ops));
  if (CalcitePrepareImpl.DEBUG) {
    System.out.println("Mongo: " + opList);
  }
  Hook.QUERY_PLAN.run(opList);
  list.add(
      Expressions.return_(null, enumerable));
  return implementor.result(physType, list.toBlock());
}
 
开发者ID:apache,项目名称:calcite,代码行数:71,代码来源:MongoToEnumerableConverter.java


示例18: generateGet

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
private void generateGet(EnumerableRelImplementor implementor,
    PhysType physType, BlockBuilder builder, ParameterExpression resultSet_,
    int i, Expression target, Expression calendar_,
    SqlDialect.CalendarPolicy calendarPolicy) {
  final Primitive primitive = Primitive.ofBoxOr(physType.fieldClass(i));
  final RelDataType fieldType =
      physType.getRowType().getFieldList().get(i).getType();
  final List<Expression> dateTimeArgs = new ArrayList<Expression>();
  dateTimeArgs.add(Expressions.constant(i + 1));
  SqlTypeName sqlTypeName = fieldType.getSqlTypeName();
  boolean offset = false;
  switch (calendarPolicy) {
  case LOCAL:
    dateTimeArgs.add(calendar_);
    break;
  case NULL:
    // We don't specify a calendar at all, so we don't add an argument and
    // instead use the version of the getXXX that doesn't take a Calendar
    break;
  case DIRECT:
    sqlTypeName = SqlTypeName.ANY;
    break;
  case SHIFT:
    switch (sqlTypeName) {
    case TIMESTAMP:
    case DATE:
      offset = true;
    }
    break;
  }
  final Expression source;
  switch (sqlTypeName) {
  case DATE:
  case TIME:
  case TIMESTAMP:
    source = Expressions.call(
        getMethod(sqlTypeName, fieldType.isNullable(), offset),
        Expressions.<Expression>list()
            .append(
                Expressions.call(resultSet_,
                    getMethod2(sqlTypeName), dateTimeArgs))
        .appendIf(offset, getTimeZoneExpression(implementor)));
    break;
  case ARRAY:
    final Expression x = Expressions.convert_(
        Expressions.call(resultSet_, jdbcGetMethod(primitive),
            Expressions.constant(i + 1)),
        java.sql.Array.class);
    source = Expressions.call(BuiltInMethod.JDBC_ARRAY_TO_LIST.method, x);
    break;
  default:
    source = Expressions.call(
        resultSet_, jdbcGetMethod(primitive), Expressions.constant(i + 1));
  }
  builder.add(
      Expressions.statement(
          Expressions.assign(
              target, source)));

  // [CALCITE-596] If primitive type columns contain null value, returns null
  // object
  if (primitive != null) {
    builder.add(
        Expressions.ifThen(
            Expressions.call(resultSet_, "wasNull"),
            Expressions.statement(
                Expressions.assign(target,
                    Expressions.constant(null)))));
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:71,代码来源:JdbcToEnumerableConverter.java


示例19: implement

import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor; //导入依赖的package包/类
@Override public Result implement(EnumerableRelImplementor implementor,
    Prefer pref) {
  return null;
}
 
开发者ID:apache,项目名称:calcite,代码行数:5,代码来源:VolcanoPlannerTraitTest.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ListCachePoolsRequestProto类代码示例发布时间:2022-05-22
下一篇:
Java StringLiteralConcatenation类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap