JdbcConvention jc = JdbcConvention.of(jdbcDialect, null, dataBaseType); JdbcSchema schema = new JdbcSchema(ds, jc.dialect, jc, null/*catalog */, null/*schema */); JdbcTable jt = (JdbcTable) schema.getTable(tableName);
@Override public boolean matches(RelOptRuleCall call) { final HiveUnion union = call.rel(0); final HiveJdbcConverter converter1 = call.rel(1); final HiveJdbcConverter converter2 = call.rel(2); // First we compare the convention if (!converter1.getJdbcConvention().getName().equals(converter2.getJdbcConvention().getName())) { return false; } // Second, we compare the connection string if (!converter1.getConnectionUrl().equals(converter2.getConnectionUrl())) { return false; } // Third, we compare the connection user if (!converter1.getConnectionUser().equals(converter2.getConnectionUser())) { return false; } return union.getInputs().size() == 2; }
public static JdbcConvention of(SqlDialect dialect, Expression expression, String name) { return new JdbcConvention(dialect, expression, name); }
@Override public TableModify toModificationRel(RelOptCluster cluster, RelOptTable table, CatalogReader catalogReader, RelNode input, Operation operation, List<String> updateColumnList, List<RexNode> sourceExpressionList, boolean flattened) { jdbcSchema.convention.register(cluster.getPlanner()); return new LogicalTableModify(cluster, cluster.traitSetOf(Convention.NONE), table, catalogReader, input, operation, updateColumnList, sourceExpressionList, flattened); }
public static JdbcConvention of(SqlDialect dialect, Expression expression, String name) { return new JdbcConvention(dialect, expression, name); }
@Override public TableModify toModificationRel(RelOptCluster cluster, RelOptTable table, CatalogReader catalogReader, RelNode input, Operation operation, List<String> updateColumnList, List<RexNode> sourceExpressionList, boolean flattened) { jdbcSchema.convention.register(cluster.getPlanner()); return new LogicalTableModify(cluster, cluster.traitSetOf(Convention.NONE), table, catalogReader, input, operation, updateColumnList, sourceExpressionList, flattened); }
public static JournalledJdbcSchema create( SchemaPlus parentSchema, String name, Map<String, Object> operand ) { DataSource dataSource; try { dataSource = parseDataSource(operand); } catch (Exception e) { throw new IllegalArgumentException("Error while reading dataSource", e); } String catalog = (String) operand.get("jdbcCatalog"); String schema = (String) operand.get("jdbcSchema"); Expression expression = null; if (parentSchema != null) { expression = Schemas.subSchemaExpression(parentSchema, name, JdbcSchema.class); } final SqlDialect dialect = createDialect(dataSource); final JdbcConvention convention = JdbcConvention.of(dialect, expression, name); return new JournalledJdbcSchema(dataSource, dialect, convention, catalog, schema, operand); }
EnumerableRules.ENUMERABLE_PROJECT_RULE); JdbcConvention out = new JdbcConvention(null, null, "myjdbc"); Program program1 = Programs.ofRules( new MockJdbcProjectRule(out), new MockJdbcTableRule(out));
@Override public boolean matches(RelOptRuleCall call) { final HiveJoin join = call.rel(0); final RexNode cond = join.getCondition(); final HiveJdbcConverter converter1 = call.rel(1); final HiveJdbcConverter converter2 = call.rel(2); // First we compare the convention if (!converter1.getJdbcConvention().getName().equals(converter2.getJdbcConvention().getName())) { return false; } // Second, we compare the connection string if (!converter1.getConnectionUrl().equals(converter2.getConnectionUrl())) { return false; } // Third, we compare the connection user if (!converter1.getConnectionUser().equals(converter2.getConnectionUser())) { return false; } //We do not push cross join if (cond.isAlwaysTrue()) { return false; } return JDBCRexCallValidator.isValidJdbcOperation(cond, converter1.getJdbcDialect()); }
public static JdbcSchema create( SchemaPlus parentSchema, String name, DataSource dataSource, SqlDialectFactory dialectFactory, String catalog, String schema) { final Expression expression = Schemas.subSchemaExpression(parentSchema, name, JdbcSchema.class); final SqlDialect dialect = createDialect(dialectFactory, dataSource); final JdbcConvention convention = JdbcConvention.of(dialect, expression, name); return new JdbcSchema(dataSource, dialect, convention, catalog, schema); }
EnumerableRules.ENUMERABLE_PROJECT_RULE); JdbcConvention out = new JdbcConvention(null, null, "myjdbc"); Program program1 = Programs.ofRules( new MockJdbcProjectRule(out), new MockJdbcTableRule(out));
public static JdbcSchema create( SchemaPlus parentSchema, String name, DataSource dataSource, SqlDialectFactory dialectFactory, String catalog, String schema) { final Expression expression = Schemas.subSchemaExpression(parentSchema, name, JdbcSchema.class); final SqlDialect dialect = createDialect(dialectFactory, dataSource); final JdbcConvention convention = JdbcConvention.of(dialect, expression, name); return new JdbcSchema(dataSource, dialect, convention, catalog, schema); }