.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) {
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()); }
assertEquals(CalciteSqlDialect.DEFAULT, sqlString.getDialect()); assertEquals(buf.getSql(), sqlString.getSql()); assertEquals(buf.getSqlAndClear(), sqlString.getSql()); assertEquals(0, buf.length());
(JdbcConvention) child.getConvention(); SqlString sqlString = generateSql(jdbcConvention.dialect); String sql = sqlString.getSql(); if (CalcitePrepareImpl.DEBUG) { System.out.println("[" + sql + "]"); if (sqlString.getDynamicParameters() != null && !sqlString.getDynamicParameters().isEmpty()) { final Expression preparedStatementConsumer_ = builder0.append("preparedStatementConsumer",
protected static String toSqlString(SqlNode node) { return node.toSqlString(DUMMY).toString(); }
/** * Returns the contents of this SQL buffer as a 'certified kocher' SQL * string. * * <p>Use this method in preference to {@link #toString()}. It indicates * that the SQL string has been constructed using good hygiene, and is * therefore less likely to contain SQL injection or badly quoted * identifiers or strings. * * @return Contents of this builder as a SQL string. */ public SqlString toSqlString() { return new SqlString(dialect, buf.toString()); }
private List<ConstantExpression> toIndexesTableExpression(SqlString sqlString) { return sqlString.getDynamicParameters().stream() .map(Expressions::constant) .collect(Collectors.toList()); }
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()); }
assertEquals(CalciteSqlDialect.DEFAULT, sqlString.getDialect()); assertEquals(buf.getSql(), sqlString.getSql()); assertEquals(buf.getSqlAndClear(), sqlString.getSql()); assertEquals(0, buf.length());
/** * Strips namespace from identifiers of sql * * @param node * @param namespace * @param dialect * @return */ private String stripNamespace(final SqlNode node, final String namespace, final SqlDialect dialect) { final SqlNode transformedNode = node.accept( new SqlShuttle() { @Override public SqlNode visit(SqlIdentifier id) { if (id.names.size() > 1 && id.names.get(0).toUpperCase().equals(namespace.toUpperCase())) { return id.getComponent(1, id.names.size()); } else { return id; } } }); String result = transformedNode.toSqlString(dialect).toString(); return result.replace("\n", " "); } }
/** * Returns the contents of this SQL buffer as a 'certified kocher' SQL * string. * * <p>Use this method in preference to {@link #toString()}. It indicates * that the SQL string has been constructed using good hygiene, and is * therefore less likely to contain SQL injection or badly quoted * identifiers or strings. * * @return Contents of this builder as a SQL string. */ public SqlString toSqlString() { return new SqlString(dialect, buf.toString()); }
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(); }
new SqlPrettyWriter(CalciteSqlDialect.DEFAULT); op.unparse(writer, call, 0, 0); final String s = writer.toSqlString().toString(); if (s.startsWith("OVERLAY(") || s.contains(" / 0")
public SqlString toSqlString() { ImmutableList<Integer> dynamicParameters = this.dynamicParameters == null ? null : this.dynamicParameters.build(); return new SqlString(dialect, toString(), dynamicParameters); }
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(); }
new SqlPrettyWriter(CalciteSqlDialect.DEFAULT); op.unparse(writer, call, 0, 0); final String s = writer.toSqlString().toString(); if (s.startsWith("OVERLAY(") || s.contains(" / 0")
/** * Returns the SQL text of the tree of which this <code>SqlNode</code> is * the root. * * @param dialect Dialect * @param forceParens wraps all expressions in parentheses; good for parse * test, but false by default. * * <p>Typical return values are:</p> * <ul> * <li>'It''s a bird!'</li> * <li>NULL</li> * <li>12.3</li> * <li>DATE '1969-04-29'</li> * </ul> */ public SqlString toSqlString(SqlDialect dialect, boolean forceParens) { if (dialect == null) { dialect = AnsiSqlDialect.DEFAULT; } SqlPrettyWriter writer = new SqlPrettyWriter(dialect); writer.setAlwaysUseParentheses(forceParens); writer.setSelectListItemsOnSeparateLines(false); writer.setIndentation(0); unparse(writer, 0, 0); final String sql = writer.toString(); return new SqlString(dialect, sql); }
/** * 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(); }