| 1 | #include "duckdb/parser/statement/delete_statement.hpp" |
|---|---|
| 2 | #include "duckdb/parser/transformer.hpp" |
| 3 | |
| 4 | using namespace duckdb; |
| 5 | using namespace std; |
| 6 | |
| 7 | unique_ptr<DeleteStatement> Transformer::TransformDelete(PGNode *node) { |
| 8 | auto stmt = reinterpret_cast<PGDeleteStmt *>(node); |
| 9 | assert(stmt); |
| 10 | auto result = make_unique<DeleteStatement>(); |
| 11 | |
| 12 | result->condition = TransformExpression(stmt->whereClause); |
| 13 | result->table = TransformRangeVar(stmt->relation); |
| 14 | if (result->table->type != TableReferenceType::BASE_TABLE) { |
| 15 | throw Exception("Can only delete from base tables!"); |
| 16 | } |
| 17 | return result; |
| 18 | } |
| 19 |