@Override public Node visitLikeClause(SqlBaseParser.LikeClauseContext context) { return new LikeClause( getLocation(context), getQualifiedName(context.qualifiedName()), Optional.ofNullable(context.optionType) .map(AstBuilder::getPropertiesOption)); }
StringBuilder builder = new StringBuilder(elementIndent); builder.append("LIKE ") .append(formatName(likeClause.getTableName())); if (likeClause.getPropertiesOption().isPresent()) { builder.append(" ") .append(likeClause.getPropertiesOption().get().name()) .append(" PROPERTIES");
QualifiedObjectName likeTableName = createQualifiedObjectName(session, statement, likeClause.getTableName()); if (!metadata.getCatalogHandle(session, likeTableName.getCatalogName()).isPresent()) { throw new SemanticException(MISSING_CATALOG, statement, "LIKE table catalog '%s' does not exist", likeTableName.getCatalogName()); Optional<LikeClause.PropertiesOption> propertiesOption = likeClause.getPropertiesOption(); if (propertiesOption.isPresent() && propertiesOption.get().equals(LikeClause.PropertiesOption.INCLUDING)) { if (includingProperties) {
private Query rewriteInsertQuery(Connection connection, Query query, Insert statement) throws SQLException, QueryRewriteException { QualifiedName temporaryTableName = generateTemporaryTableName(statement.getTarget()); Statement createTemporaryTable = new CreateTable(temporaryTableName, ImmutableList.of(new LikeClause(statement.getTarget(), Optional.of(INCLUDING))), true, ImmutableList.of(), Optional.empty()); String createTemporaryTableSql = formatSql(createTemporaryTable, Optional.empty()); String insertSql = formatSql(new Insert(temporaryTableName, statement.getColumns(), statement.getQuery()), Optional.empty()); String checksumSql = checksumSql(getColumnsForTable(connection, query.getCatalog(), query.getSchema(), statement.getTarget().toString()), temporaryTableName); String dropTableSql = dropTableSql(temporaryTableName); return new Query(query.getCatalog(), query.getSchema(), ImmutableList.of(createTemporaryTableSql, insertSql), checksumSql, ImmutableList.of(dropTableSql), query.getUsername(), query.getPassword(), query.getSessionProperties()); }
StringBuilder builder = new StringBuilder(elementIndent); builder.append("LIKE ") .append(formatName(likeClause.getTableName())); if (likeClause.getPropertiesOption().isPresent()) { builder.append(" ") .append(likeClause.getPropertiesOption().get().name()) .append(" PROPERTIES");
new CreateTable(QualifiedName.of("bar"), ImmutableList.of( new LikeClause(QualifiedName.of("like_table"), Optional.empty())), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.empty())), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.empty()), new ColumnDefinition(identifier("d"), "DATE", emptyList(), Optional.empty())), new CreateTable(QualifiedName.of("bar"), ImmutableList.of( new LikeClause(QualifiedName.of("like_table"), Optional.of(LikeClause.PropertiesOption.INCLUDING))), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.of(LikeClause.PropertiesOption.EXCLUDING))), true,
StringBuilder builder = new StringBuilder(elementIndent); builder.append("LIKE ") .append(formatName(likeClause.getTableName())); if (likeClause.getPropertiesOption().isPresent()) { builder.append(" ") .append(likeClause.getPropertiesOption().get().name()) .append(" PROPERTIES");
@Override public Node visitLikeClause(SqlBaseParser.LikeClauseContext context) { return new LikeClause( getLocation(context), getQualifiedName(context.qualifiedName()), Optional.ofNullable(context.optionType) .map(AstBuilder::getPropertiesOption)); }
new CreateTable(QualifiedName.of("bar"), ImmutableList.of( new LikeClause(QualifiedName.of("like_table"), Optional.empty())), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.empty())), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.empty()), new ColumnDefinition(identifier("d"), "DATE", emptyList(), Optional.empty())), new CreateTable(QualifiedName.of("bar"), ImmutableList.of( new LikeClause(QualifiedName.of("like_table"), Optional.of(LikeClause.PropertiesOption.INCLUDING))), true, ImmutableList.of( new ColumnDefinition(identifier("c"), "TIMESTAMP", emptyList(), Optional.empty()), new LikeClause(QualifiedName.of("like_table"), Optional.of(LikeClause.PropertiesOption.EXCLUDING))), true,