@Override protected Void visitInsert(Insert node, Integer indent) { builder.append("INSERT INTO ") .append(node.getTarget()); if (node.getColumns().isPresent()) { builder.append(" (") .append(Joiner.on(", ").join(node.getColumns().get())) .append(")"); } builder.append("\n"); process(node.getQuery(), indent); return null; }
@Override protected Void visitInsert(Insert node, Integer indent) { builder.append("INSERT INTO ") .append(node.getTarget()); if (node.getColumns().isPresent()) { builder.append(" (") .append(Joiner.on(", ").join(node.getColumns().get())) .append(")"); } builder.append("\n"); process(node.getQuery(), indent); return null; }
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()); }
@Override protected Scope visitInsert(Insert insert, Optional<Scope> scope) QualifiedObjectName targetTable = createQualifiedObjectName(session, insert, insert.getTarget()); if (metadata.getView(session, targetTable).isPresent()) { throw new SemanticException(NOT_SUPPORTED, insert, "Inserting into views is not supported");
@Override protected Scope visitInsert(Insert insert, Optional<Scope> scope) QualifiedObjectName targetTable = createQualifiedObjectName(session, insert, insert.getTarget()); if (metadata.getView(session, targetTable).isPresent()) { throw new SemanticException(NOT_SUPPORTED, insert, "Inserting into views is not supported");
assertEquals(insert.getTarget(), createTable.getName()); assertEquals(insert.getColumns(), Optional.of(ImmutableList.of(identifier("b"), identifier("a"), identifier("c"))));