本文整理汇总了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;未经允许,请勿转载。 |
请发表评论