public String convertSql(String orig) { // for jdbc source, convert quote from backtick to double quote String converted = orig.replaceAll("`", "\""); if (!configurer.skipHandleDefault()) { String escapedDefault = SqlDialect.CALCITE .quoteIdentifier(configurer.useUppercaseDefault() ? "DEFAULT" : "default"); converted = converted.replaceAll("(?i)default\\.", escapedDefault + "."); // use Calcite dialect to cater to SqlParser converted = converted.replaceAll("\"(?i)default\"\\.", escapedDefault + "."); } if (!configurer.skipDefaultConvert()) { try { SqlNode sqlNode = SqlParser.create(converted).parseQuery(); sqlNode = sqlNode.accept(sqlNodeConverter); converted = sqlWriter.format(sqlNode); } catch (Throwable e) { logger.error("Failed to default convert sql, will use the input: {}", orig, e); } finally { sqlWriter.reset(); } } converted = configurer.fixAfterDefaultConvert(converted); return converted; }
@Override public void identifier(String name) { String convertName = name; if (configurer.isCaseSensitive()) { convertName = configurer.fixIdentifierCaseSensitve(name); } if (configurer.enableQuote()) { String quoted = getDialect().quoteIdentifier(convertName); print(quoted); setNeedWhitespace(true); } else { if (!configurer.skipHandleDefault() && convertName.trim().equalsIgnoreCase("default")) { String quoted = getDialect().quoteIdentifier(convertName); print(quoted); setNeedWhitespace(true); } else { super.identifier(convertName); } } }
/** * Appends a compound identifier to this buffer, quoting accordingly. * * @param names Parts of a compound identifier * @return This builder */ public SqlBuilder identifier(List<String> names) { dialect.quoteIdentifier(buf, names); return this; }
/** * Appends an identifier to this buffer, quoting accordingly. * * @param name Identifier * @return This builder */ public SqlBuilder identifier(String name) { dialect.quoteIdentifier(buf, name); return this; }
/** * Appends a compound identifier to this buffer, quoting accordingly. * * @param names Parts of a compound identifier * @return This builder */ public SqlBuilder identifier(List<String> names) { dialect.quoteIdentifier(buf, names); return this; }
/** * Appends an identifier to this buffer, quoting accordingly. * * @param name Identifier * @return This builder */ public SqlBuilder identifier(String name) { dialect.quoteIdentifier(buf, name); return this; }
/** * Quotes a multi-part identifier. * * @param buf Buffer * @param identifiers List of parts of the identifier to quote * @return The buffer */ public StringBuilder quoteIdentifier( StringBuilder buf, List<String> identifiers) { int i = 0; for (String identifier : identifiers) { if (i++ > 0) { buf.append('.'); } quoteIdentifier(buf, identifier); } return buf; }
/** * Quotes a multi-part identifier. * * @param buf Buffer * @param identifiers List of parts of the identifier to quote * @return The buffer */ public StringBuilder quoteIdentifier( StringBuilder buf, List<String> identifiers) { int i = 0; for (String identifier : identifiers) { if (i++ > 0) { buf.append('.'); } quoteIdentifier(buf, identifier); } return buf; }
/** * Appends one or more identifiers to this buffer, quoting accordingly. * * @param names Varargs array of identifiers * @return This builder */ public SqlBuilder identifier(String... names) { dialect.quoteIdentifier(buf, UnmodifiableArrayList.of(names)); return this; }
/** * Appends one or more identifiers to this buffer, quoting accordingly. * * @param names Varargs array of identifiers * @return This builder */ public SqlBuilder identifier(String... names) { dialect.quoteIdentifier(buf, UnmodifiableArrayList.of(names)); return this; }
public void toSql(SqlWriter writer) { writer.dialect.quoteIdentifier(writer.buf, identifiers()); }
public void identifier(String name) { String qName = name; if (isQuoteAllIdentifiers() || dialect.identifierNeedsToBeQuoted(name)) { qName = dialect.quoteIdentifier(name); } maybeWhitespace(qName); pw.print(qName); charCount += qName.length(); setNeedWhitespace(true); }
public void identifier(String name) { String qName = name; if (isQuoteAllIdentifiers() || dialect.identifierNeedsToBeQuoted(name)) { qName = dialect.quoteIdentifier(name); } maybeWhitespace(qName); pw.print(qName); charCount += qName.length(); setNeedWhitespace(true); }
dialect.quoteIdentifier(buf, column.identifiers()); dialect.quoteIdentifier(groupBuf, column.identifiers()); final String fieldName = uniqueColumnNames.get(i); columnNames.add(fieldName); if (!column.alias.equals(fieldName)) { buf.append(" AS "); dialect.quoteIdentifier(buf, fieldName); buf.append(", "); dialect.quoteIdentifier(buf, arg.identifiers()); ++m; dialect.quoteIdentifier(buf, measureName); buf.append("\nJOIN "); dialect.quoteIdentifier(buf, node.scan.getTable().getQualifiedName()); buf.append(" AS "); dialect.quoteIdentifier(buf, node.alias); if (node.parent != null) { buf.append(" ON "); dialect.quoteIdentifier(buf, left.identifiers()); buf.append(" = "); final Column right = columns.get(node.startCol + pair.target); dialect.quoteIdentifier(buf, right.identifiers());
dialect.quoteIdentifier(buf, column.alias); ++m; dialect.quoteIdentifier(buf, measureName); buf.append("\nJOIN "); dialect.quoteIdentifier(buf, node.table.t.getQualifiedName()); buf.append(" AS "); dialect.quoteIdentifier(buf, node.alias); if (node instanceof LatticeChildNode) { final LatticeChildNode node1 = (LatticeChildNode) node;
public String convertSql(String orig) { // for jdbc source, convert quote from backtick to double quote String converted = orig.replaceAll("`", "\""); if (!configurer.skipHandleDefault()) { String escapedDefault = SqlDialect.CALCITE .quoteIdentifier(configurer.useUppercaseDefault() ? "DEFAULT" : "default"); converted = converted.replaceAll("(?i)default\\.", escapedDefault + "."); // use Calcite dialect to cater to SqlParser converted = converted.replaceAll("\"(?i)default\"\\.", escapedDefault + "."); } if (!configurer.skipDefaultConvert()) { try { SqlNode sqlNode = SqlParser.create(converted).parseQuery(); sqlNode = sqlNode.accept(sqlNodeConverter); converted = sqlWriter.format(sqlNode); } catch (Throwable e) { logger.error("Failed to default convert sql, will use the input: {}", orig, e); } finally { sqlWriter.reset(); } } converted = configurer.fixAfterDefaultConvert(converted); return converted; }
@Override public void identifier(String name) { String convertName = name; if (configurer.isCaseSensitive()) { convertName = configurer.fixIdentifierCaseSensitve(name); } if (configurer.enableQuote()) { String quoted = getDialect().quoteIdentifier(convertName); print(quoted); setNeedWhitespace(true); } else { if (!configurer.skipHandleDefault() && convertName.trim().equalsIgnoreCase("default")) { String quoted = getDialect().quoteIdentifier(convertName); print(quoted); setNeedWhitespace(true); } else { super.identifier(convertName); } } }