public static String denormalizePart(String identifier) { if (isShouldBeQuoted(identifier)) { return StringUtils.doubleQuote(identifier); } else { return identifier; } }
@Override public Identifier apply(@Nullable String input) { return Identifier._(input, IdentifierUtil.isShouldBeQuoted(input)); } });
/** * It takes interned strings. It assumes all parameters already stripped. It is used only for tests. * @param names interned strings * @return QualifiedIdentifier */ @VisibleForTesting public static QualifiedIdentifier $(String...names) { final ImmutableList.Builder<Identifier> builder = ImmutableList.builder(); for (String n : names) { for (String split : n.split(StringUtils.escapeRegexp(""+DefaultPolicy().getIdentifierSeperator()))) { builder.add(Identifier._(split, IdentifierUtil.isShouldBeQuoted(split))); } } return new QualifiedIdentifier(builder.build()); }
@Test public void testBuildColumn() throws Exception { String [] tobeUnquoted = { "column_name", "columnname", "column_1", }; for (String columnName : tobeUnquoted) { assertFalse(IdentifierUtil.isShouldBeQuoted(columnName)); } String [] quoted = { "Column_Name", "COLUMN_NAME", "컬럼", "$column_name", "Column_Name1", "with", "when" }; for (String columnName : quoted) { assertTrue(IdentifierUtil.isShouldBeQuoted(columnName)); } } }