.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(); }
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(); }
/** * Appends a hygienic SQL string. * * @param s SQL string to append * @return This builder */ public SqlBuilder append(SqlString s) { buf.append(s.getSql()); return this; }
/** * Appends a hygienic SQL string. * * @param s SQL string to append * @return This builder */ public SqlBuilder append(SqlString s) { buf.append(s.getSql()); return this; }
public String toString() { return toSqlString(null).getSql(); }
protected void generateTypeString(StringBuilder sb, boolean withDetail) { sb.append("INTERVAL "); final SqlDialect dialect = AnsiSqlDialect.DEFAULT; final SqlPrettyWriter writer = new SqlPrettyWriter(dialect); writer.setAlwaysUseParentheses(false); writer.setSelectListItemsOnSeparateLines(false); writer.setIndentation(0); intervalQualifier.unparse(writer, 0, 0); final String sql = writer.toString(); sb.append(new SqlString(dialect, sql).getSql()); }
protected void generateTypeString(StringBuilder sb, boolean withDetail) { sb.append("INTERVAL "); final SqlDialect dialect = AnsiSqlDialect.DEFAULT; final SqlPrettyWriter writer = new SqlPrettyWriter(dialect); writer.setAlwaysUseParentheses(false); writer.setSelectListItemsOnSeparateLines(false); writer.setIndentation(0); intervalQualifier.unparse(writer, 0, 0); final String sql = writer.toString(); sb.append(new SqlString(dialect, sql).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", " "); }
public Enumerable<Object[]> scan(DataContext root) { final JavaTypeFactory typeFactory = root.getTypeFactory(); final SqlString sql = generateSql(); return ResultSetEnumerable.of(jdbcSchema.getDataSource(), sql.getSql(), JdbcUtils.ObjectArrayRowBuilder.factory(fieldClasses(typeFactory))); }
public Enumerable<Object[]> scan(DataContext root) { final JavaTypeFactory typeFactory = root.getTypeFactory(); final SqlString sql = generateSql(); return ResultSetEnumerable.of(jdbcSchema.getDataSource(), sql.getSql(), JdbcUtils.ObjectArrayRowBuilder.factory(fieldClasses(typeFactory))); }
public Enumerator<T> enumerator() { final JavaTypeFactory typeFactory = ((CalciteConnection) queryProvider).getTypeFactory(); final SqlString sql = generateSql(); //noinspection unchecked final Enumerable<T> enumerable = (Enumerable<T>) ResultSetEnumerable.of( jdbcSchema.getDataSource(), sql.getSql(), JdbcUtils.ObjectArrayRowBuilder.factory(fieldClasses(typeFactory))); return enumerable.enumerator(); } }
public Enumerator<T> enumerator() { final JavaTypeFactory typeFactory = ((CalciteConnection) queryProvider).getTypeFactory(); final SqlString sql = generateSql(); //noinspection unchecked final Enumerable<T> enumerable = (Enumerable<T>) ResultSetEnumerable.of( jdbcSchema.getDataSource(), sql.getSql(), JdbcUtils.ObjectArrayRowBuilder.factory(fieldClasses(typeFactory))); return enumerable.enumerator(); } }
public void checkExp( String sql, String expected) { final SqlNode sqlNode = parseExpressionAndHandleEx(sql); String actual = sqlNode.toSqlString(null, true).getSql(); if (LINUXIFY.get()[0]) { actual = Util.toLinux(actual); } TestUtil.assertEqualsVerbose(expected, actual); }
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 void check( String sql, String expected) { final SqlNode sqlNode = parseStmtAndHandleEx(sql); // no dialect, always parenthesize String actual = sqlNode.toSqlString(null, true).getSql(); if (LINUXIFY.get()[0]) { actual = Util.toLinux(actual); } TestUtil.assertEqualsVerbose(expected, actual); }
public void check( String sql, String expected) { final SqlNode sqlNode = parseStmtAndHandleEx(sql); // no dialect, always parenthesize String actual = sqlNode.toSqlString(null, true).getSql(); if (LINUXIFY.get()[0]) { actual = Util.toLinux(actual); } TestUtil.assertEqualsVerbose(expected, actual); }
public void checkRewrite( SqlValidator validator, String query, String expectedRewrite) { SqlNode rewrittenNode = parseAndValidate(validator, query); String actualRewrite = rewrittenNode.toSqlString(AnsiSqlDialect.DEFAULT, false).getSql(); TestUtil.assertEqualsVerbose(expectedRewrite, Util.toLinux(actualRewrite)); }
public void checkRewrite( SqlValidator validator, String query, String expectedRewrite) { SqlNode rewrittenNode = parseAndValidate(validator, query); String actualRewrite = rewrittenNode.toSqlString(AnsiSqlDialect.DEFAULT, false).getSql(); TestUtil.assertEqualsVerbose(expectedRewrite, Util.toLinux(actualRewrite)); }
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(); }