.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(); }
public SqlString toSqlString(SqlDialect dialect) { return toSqlString(dialect, false); }
public SqlString toSqlString(SqlDialect dialect) { return toSqlString(dialect, false); }
/** Writes an expression. */ public SqlWriter write(RexNode e) { final SqlNode node = context.toSql(null, e); buf.append(node.toSqlString(dialect)); return this; } }
public String toString() { return toSqlString(null).getSql(); }
protected static String toSqlString(SqlNode node) { return node.toSqlString(DUMMY).toString(); }
/** * 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 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); } }
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 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); }
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 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); }
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)); }
/** 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(); }
/** Tests that Hive dialect does not generate "AS". */ @Test public void testHiveDialect() throws SqlParseException { Planner planner = getPlanner(null); SqlNode parse = planner.parse( "select * from (select * from \"emps\") as t\n" + "where \"name\" like '%e%'"); final SqlDialect hiveDialect = SqlDialect.DatabaseProduct.HIVE.getDialect(); assertThat(Util.toLinux(parse.toSqlString(hiveDialect).getSql()), equalTo("SELECT *\n" + "FROM (SELECT *\n" + "FROM emps) T\n" + "WHERE name LIKE '%e%'")); }