.getTypeFactory()); final JdbcImplementor.Result result = jdbcImplementor.visitChild(0, optimizedOptiqPlan); String sql = result.asStatement().toSqlString(dialect).getSql(); return sql.replaceAll("VARCHAR\\(2147483647\\)", "STRING"); } catch (Exception ex) {
public String generateSql() { SqlDialect dialect = getJdbcDialect(); final HiveJdbcImplementor jdbcImplementor = new HiveJdbcImplementor(dialect, (JavaTypeFactory) getCluster().getTypeFactory()); Project topProject; if (getInput() instanceof Project) { topProject = (Project) getInput(); } else { // If it is not a project operator, we add it on top of the input // to force generating the column names instead of * while // translating to SQL RelNode nodeToTranslate = getInput(); RexBuilder builder = getCluster().getRexBuilder(); List<RexNode> projects = new ArrayList<>( nodeToTranslate.getRowType().getFieldList().size()); for (int i = 0; i < nodeToTranslate.getRowType().getFieldCount(); i++) { projects.add(builder.makeInputRef(nodeToTranslate, i)); } topProject = new JdbcProject(nodeToTranslate.getCluster(), nodeToTranslate.getTraitSet(), nodeToTranslate, projects, nodeToTranslate.getRowType()); } final HiveJdbcImplementor.Result result = jdbcImplementor.translate(topProject); return result.asStatement().toSqlString(dialect).getSql(); }
protected String sql(SqlDialect dialect) { SqlNode sqlNode = new RelToSqlConverter(dialect).visitChild(0, relNode).asStatement(); return Util.toLinux(sqlNode.toSqlString(dialect).getSql()).replaceAll("\n", " "); }
String exec() { final Planner planner = getPlanner(null, SqlParser.Config.DEFAULT, schema, config); try { SqlNode parse = planner.parse(sql); SqlNode validate = planner.validate(parse); RelNode rel = planner.rel(validate).rel; for (Function<RelNode, RelNode> transform : transforms) { rel = transform.apply(rel); } final RelToSqlConverter converter = new RelToSqlConverter(dialect); final SqlNode sqlNode = converter.visitChild(0, rel).asStatement(); return sqlNode.toSqlString(dialect).getSql(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } }
private SqlString generateSql(SqlDialect dialect) { final JdbcImplementor jdbcImplementor = new JdbcImplementor(dialect, (JavaTypeFactory) getCluster().getTypeFactory()); final JdbcImplementor.Result result = jdbcImplementor.visitChild(0, getInput()); return result.asStatement().toSqlString(dialect); } }
/** Converts a relational expression to SQL in a given dialect. */ private static String toSql(RelNode root, SqlDialect dialect) { final RelToSqlConverter converter = new RelToSqlConverter(dialect); final SqlNode sqlNode = converter.visitChild(0, root).asStatement(); return sqlNode.toSqlString(dialect).getSql(); }
private String unparseRelTree(RelNode root) { SqlDialect dialect = SqlDialect.DatabaseProduct.CALCITE.getDialect(); final RelToSqlConverter converter = new RelToSqlConverter(dialect); final SqlNode sqlNode = converter.visitChild(0, root).asStatement(); return sqlNode.toSqlString(dialect).getSql(); }
/** * RelNode to SQL with special Dialect. * * @return sql */ public String sql() { SqlDialect dialect = new HiveSqlDialect(SqlDialect.EMPTY_CONTEXT); RelToSqlConverter converter = new RelToSqlConverter(dialect); SqlNode sqlNode = converter.visitChild(0, parent).asStatement(); return Util.toLinux(sqlNode.toSqlString(dialect).getSql()).replaceAll("\n", " "); }
private String generateSql(SqlDialect dialect) { final JdbcImplementor jdbcImplementor = new JdbcImplementor(dialect, (JavaTypeFactory) getCluster().getTypeFactory()); final JdbcImplementor.Result result = jdbcImplementor.visitChild(0, getInput()); return result.asStatement().toSqlString(dialect).getSql(); } }
public JdbcPrel(RelOptCluster cluster, RelTraitSet traitSet, JdbcIntermediatePrel prel) { super(cluster, traitSet); final RelNode input = prel.getInput(); rows = input.estimateRowCount(cluster.getMetadataQuery()); convention = (DrillJdbcConvention) input.getTraitSet().getTrait(ConventionTraitDef.INSTANCE); // generate sql for tree. final SqlDialect dialect = convention.getPlugin().getDialect(); final JdbcImplementor jdbcImplementor = new JdbcImplementor( dialect, (JavaTypeFactory) getCluster().getTypeFactory()); final JdbcImplementor.Result result = jdbcImplementor.visitChild(0, input.accept(new SubsetRemover())); sql = result.asStatement().toSqlString(dialect).getSql(); rowType = input.getRowType(); }