@Override 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(FlowFileTable.class), "project", Expressions.constant(fields)))); }
@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)); }
@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)); }
@Override public Expression getExpression(Class clazz) { return relOptTable.getExpression(clazz); }
public Expression getExpression(Class clazz) { return parent.getExpression(clazz); }
public Expression getExpression(Class clazz) { return parent.getExpression(clazz); }
public JdbcTableModify(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, Prepare.CatalogReader catalogReader, RelNode input, Operation operation, List<String> updateColumnList, List<RexNode> sourceExpressionList, boolean flattened) { super(cluster, traitSet, table, catalogReader, input, operation, updateColumnList, sourceExpressionList, flattened); assert input.getConvention() instanceof JdbcConvention; assert getConvention() instanceof JdbcConvention; final ModifiableTable modifiableTable = table.unwrap(ModifiableTable.class); if (modifiableTable == null) { throw new AssertionError(); // TODO: user error in validator } this.expression = table.getExpression(Queryable.class); if (expression == null) { throw new AssertionError(); // TODO: user error in validator } }
public JdbcTableModify(RelOptCluster cluster, RelTraitSet traitSet, RelOptTable table, Prepare.CatalogReader catalogReader, RelNode input, Operation operation, List<String> updateColumnList, List<RexNode> sourceExpressionList, boolean flattened) { super(cluster, traitSet, table, catalogReader, input, operation, updateColumnList, sourceExpressionList, flattened); assert input.getConvention() instanceof JdbcConvention; assert getConvention() instanceof JdbcConvention; final ModifiableTable modifiableTable = table.unwrap(ModifiableTable.class); if (modifiableTable == null) { throw new AssertionError(); // TODO: user error in validator } this.expression = table.getExpression(Queryable.class); if (expression == null) { throw new AssertionError(); // TODO: user error in validator } }
private Expression getExpression(PhysType physType) { final Expression expression = table.getExpression(Queryable.class); final Expression expression2 = toEnumerable(expression); assert Types.isAssignableFrom(Enumerable.class, expression2.getType()); return toRows(physType, expression2); }
private Expression getExpression(PhysType physType) { final Expression expression = table.getExpression(Queryable.class); final Expression expression2 = toEnumerable(expression); assert Types.isAssignableFrom(Enumerable.class, expression2.getType()); return toRows(physType, expression2); }
@Override public RelNode convert(RelNode rel) { LogicalTableScan scan = (LogicalTableScan) rel; final RelOptTable relOptTable = scan.getTable(); final Table table = relOptTable.unwrap(Table.class); if (!EnumerableTableScan.canHandle(table)) { return null; } final Expression expression = relOptTable.getExpression(Object.class); if (expression == null) { return null; } return EnumerableTableScan.create(scan.getCluster(), relOptTable); } }
@Override public RelNode convert(RelNode rel) { LogicalTableScan scan = (LogicalTableScan) rel; final RelOptTable relOptTable = scan.getTable(); final Table table = relOptTable.unwrap(Table.class); if (!EnumerableTableScan.canHandle(table)) { return null; } final Expression expression = relOptTable.getExpression(Object.class); if (expression == null) { return null; } return EnumerableTableScan.create(scan.getCluster(), relOptTable); } }
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)))); } }
@Override 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(FlowFileTable.class), "project", Expressions.constant(fields)))); }
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)))); } }
@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)); }
@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)); }
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()))))); }
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()))))); }
final Expression table = block.append("table", implementor.table .getExpression(ElasticsearchTable.ElasticsearchQueryable.class)); List<String> opList = implementor.list; final Expression ops = block.append("ops", constantArrayList(opList, String.class));