public RexBuilder getRexBuilder() { return new RexBuilder(typeFactory); }
public AbstractStreamsProcessor compile(Map<String, ISqlStreamsDataSource> sources, String query) throws Exception { StreamsRel relNode = getPlan(query); StreamsPlanCreator streamsPlanCreator = new StreamsPlanCreator(sources, new RexBuilder(typeFactory)); relNode.streamsPlan(streamsPlanCreator); final StreamBuilder streamBuilder = streamsPlanCreator.getStreamBuilder(); final Stream<Values> lastStream = streamsPlanCreator.pop(); final DataContext dc = streamsPlanCreator.getDataContext(); final List<CompilingClassLoader> cls = streamsPlanCreator.getClassLoaders(); return new AbstractStreamsProcessor() { @Override public StormTopology build() { return streamBuilder.build(); } @Override public Stream<Values> outputStream() { return lastStream; } @Override public DataContext getDataContext() { return dc; } @Override public List<CompilingClassLoader> getClassLoaders() { return cls; } }; }
private static RelNode createMaterializedViewScan(HiveConf conf, Table viewTable) { final RexBuilder rexBuilder = new RexBuilder( new JavaTypeFactoryImpl( new HiveTypeSystemImpl()));
@Before public void before() { HepProgramBuilder programBuilder = new HepProgramBuilder(); programBuilder.addRuleInstance(HiveReduceExpressionsWithStatsRule.INSTANCE); planner = new HepPlanner(programBuilder.build()); JavaTypeFactoryImpl typeFactory = new JavaTypeFactoryImpl(); RexBuilder rexBuilder = new RexBuilder(typeFactory); final RelOptCluster optCluster = RelOptCluster.create(planner, rexBuilder); RelDataType rowTypeMock = typeFactory.createStructType(MyRecord.class); Mockito.doReturn(rowTypeMock).when(tableMock).getRowType(); Mockito.doReturn(tableMock).when(schemaMock).getTableForMember(Matchers.any()); statObj = new ColStatistics("_int", "int"); Mockito.doReturn(Lists.newArrayList(statObj)).when(tableMock).getColStat(Matchers.anyListOf(Integer.class), Matchers.eq(false)); Mockito.doReturn(hiveTableMDMock).when(tableMock).getHiveTableMD(); Mockito.doReturn(tableParams).when(hiveTableMDMock).getParameters(); builder = HiveRelFactories.HIVE_BUILDER.create(optCluster, schemaMock); StatsSetupConst.setStatsStateForCreateTable(tableParams, Lists.newArrayList("_int"), StatsSetupConst.TRUE); tableParams.put(StatsSetupConst.ROW_COUNT, "3"); }
@Before public void before() { HepProgramBuilder programBuilder = new HepProgramBuilder(); programBuilder.addRuleInstance(new HivePointLookupOptimizerRule.FilterCondition(2)); planner = new HepPlanner(programBuilder.build()); JavaTypeFactoryImpl typeFactory = new JavaTypeFactoryImpl(); RexBuilder rexBuilder = new RexBuilder(typeFactory); final RelOptCluster optCluster = RelOptCluster.create(planner, rexBuilder); RelDataType rowTypeMock = typeFactory.createStructType(MyRecord.class); Mockito.doReturn(rowTypeMock).when(tableMock).getRowType(); Mockito.doReturn(tableMock).when(schemaMock).getTableForMember(Matchers.any()); Mockito.doReturn(hiveTableMDMock).when(tableMock).getHiveTableMD(); builder = HiveRelFactories.HIVE_BUILDER.create(optCluster, schemaMock); }
private static RelNode createTableScan(Table viewTable) { final RexBuilder rexBuilder = new RexBuilder(new JavaTypeFactoryImpl()); final RelOptCluster cluster = RelOptCluster.create(planner, rexBuilder);
RexBuilder rexBuilder = new RexBuilder(new JavaTypeFactoryImpl()); RelOptCluster cluster = RelOptCluster.create(planner, rexBuilder);
@Test public void testCBOMaxNumToCNF1() { // OR(=($0, 1), AND(=($0, 0), =($1, 8))) // transformation creates 7 nodes AND(OR(=($0, 1), =($0, 0)), OR(=($0, 1), =($1, 8))) // thus, it is triggered final RelDataTypeFactory typeFactory = new JavaTypeFactoryImpl(); final RexBuilder rexBuilder = new RexBuilder(typeFactory); final RexNode cond = rexBuilder.makeCall(SqlStdOperatorTable.OR, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0), rexBuilder.makeLiteral(1, typeFactory.createSqlType(SqlTypeName.INTEGER), false)), rexBuilder.makeCall(SqlStdOperatorTable.AND, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0), rexBuilder.makeLiteral(0, typeFactory.createSqlType(SqlTypeName.INTEGER), false)), rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 1), rexBuilder.makeLiteral(8, typeFactory.createSqlType(SqlTypeName.INTEGER), false)))); final RexNode newCond = RexUtil.toCnf(rexBuilder, maxNumNodesCNF, cond); assertEquals(newCond.toString(), "AND(OR(=($0, 1), =($0, 0)), OR(=($0, 1), =($1, 8)))"); }
@Test public void testCBOMaxNumToCNF2() { // OR(=($0, 1), =($0, 2), AND(=($0, 0), =($1, 8))) // transformation creates 9 nodes AND(OR(=($0, 1), =($0, 2), =($0, 0)), OR(=($0, 1), =($0, 2), =($1, 8))) // thus, it is NOT triggered final RelDataTypeFactory typeFactory = new JavaTypeFactoryImpl(); final RexBuilder rexBuilder = new RexBuilder(typeFactory); final RexNode cond = rexBuilder.makeCall(SqlStdOperatorTable.OR, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0), rexBuilder.makeLiteral(1, typeFactory.createSqlType(SqlTypeName.INTEGER), false)), rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0), rexBuilder.makeLiteral(2, typeFactory.createSqlType(SqlTypeName.INTEGER), false)), rexBuilder.makeCall(SqlStdOperatorTable.AND, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0), rexBuilder.makeLiteral(0, typeFactory.createSqlType(SqlTypeName.INTEGER), false)), rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, rexBuilder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 1), rexBuilder.makeLiteral(8, typeFactory.createSqlType(SqlTypeName.INTEGER), false)))); final RexNode newCond = RexUtil.toCnf(rexBuilder, maxNumNodesCNF, cond); assertEquals(newCond.toString(), "OR(=($0, 1), =($0, 2), AND(=($0, 0), =($1, 8)))"); }
public RelNodeCompiler(PrintWriter pw, JavaTypeFactory typeFactory) { this.pw = pw; this.typeFactory = typeFactory; this.rexCompiler = new RexNodeToJavaCodeCompiler(new RexBuilder(typeFactory)); }
/** Creates a translator for translating aggregate functions. */ public static RexToLixTranslator forAggregation(JavaTypeFactory typeFactory, BlockBuilder list, InputGetter inputGetter, SqlConformance conformance) { final ParameterExpression root = DataContext.ROOT; return new RexToLixTranslator(null, typeFactory, root, inputGetter, list, Collections.emptyMap(), new RexBuilder(typeFactory), conformance, null, null); }
/** Creates a translator for translating aggregate functions. */ public static RexToLixTranslator forAggregation(JavaTypeFactory typeFactory, BlockBuilder list, InputGetter inputGetter, SqlConformance conformance) { final ParameterExpression root = DataContext.ROOT; return new RexToLixTranslator(null, typeFactory, root, inputGetter, list, Collections.emptyMap(), new RexBuilder(typeFactory), conformance, null, null); }
static RelOptCluster newCluster(VolcanoPlanner planner) { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(org.apache.calcite.rel.type.RelDataTypeSystem.DEFAULT); return RelOptCluster.create(planner, new RexBuilder(typeFactory)); }
static RelOptCluster newCluster(VolcanoPlanner planner) { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(org.apache.calcite.rel.type.RelDataTypeSystem.DEFAULT); return RelOptCluster.create(planner, new RexBuilder(typeFactory)); }
@Before public void setUp() { JavaTypeFactory typeFactory = new JavaTypeFactoryImpl(RelDataTypeSystem.DEFAULT); integerDataType = typeFactory.createSqlType(SqlTypeName.INTEGER); integerType = SqlTypeUtil.convertTypeToSpec(integerDataType); rexBuilder = new RexBuilder(typeFactory); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-2306">[CALCITE-2306] * AssertionError in {@link RexLiteral#getValue3} with null literal of type * DECIMAL</a>. */ @Test public void testDecimalLiteral() { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT); final RelDataType type = typeFactory.createSqlType(SqlTypeName.DECIMAL); final RexBuilder builder = new RexBuilder(typeFactory); final RexLiteral literal = builder.makeExactLiteral(null, type); assertThat(literal.getValue3(), nullValue()); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-2306">[CALCITE-2306] * AssertionError in {@link RexLiteral#getValue3} with null literal of type * DECIMAL</a>. */ @Test public void testDecimalLiteral() { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT); final RelDataType type = typeFactory.createSqlType(SqlTypeName.DECIMAL); final RexBuilder builder = new RexBuilder(typeFactory); final RexLiteral literal = builder.makeExactLiteral(null, type); assertThat(literal.getValue3(), nullValue()); }
private void checkCancelFlag(RelOptPlanner planner) { expectedException.expect(UserException.class); RelOptCluster cluster = RelOptCluster.create(planner, new RexBuilder(SqlTypeFactoryImpl.INSTANCE)); RelNode root = new NoneRel(cluster); planner.setRoot(root); planner.findBestExp(); }
/** * Test RexBuilder.ensureType() */ @Test public void testEnsureTypeWithItself() { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT); RexBuilder builder = new RexBuilder(typeFactory); RexNode node = new RexLiteral( Boolean.TRUE, typeFactory.createSqlType(SqlTypeName.BOOLEAN), SqlTypeName.BOOLEAN); RexNode ensuredNode = builder.ensureType( typeFactory.createSqlType(SqlTypeName.BOOLEAN), node, true); assertEquals(node, ensuredNode); }
/** * Test RexBuilder.ensureType() */ @Test public void testEnsureTypeWithAny() { final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT); RexBuilder builder = new RexBuilder(typeFactory); RexNode node = new RexLiteral( Boolean.TRUE, typeFactory.createSqlType(SqlTypeName.BOOLEAN), SqlTypeName.BOOLEAN); RexNode ensuredNode = builder.ensureType( typeFactory.createSqlType(SqlTypeName.ANY), node, true); assertEquals(node, ensuredNode); }