@Override public Node visitLikeClause(SqlBaseParser.LikeClauseContext context) { return new LikeClause( getLocation(context), getQualifiedName(context.qualifiedName()), Optional.ofNullable(context.optionType) .map(AstBuilder::getPropertiesOption)); }
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()); }
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,
@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,