Check if the mutation query is valid.

This commit is contained in:
Christoph Wurm 2024-10-31 12:04:24 +00:00
parent e29c488b05
commit b229fb1664
3 changed files with 22 additions and 0 deletions

View File

@ -1386,6 +1386,9 @@ void MutationsInterpreter::validate()
} }
} }
// Make sure the mutations query is valid
prepareQueryAffectedQueryTree(commands, source.getStorage(), context);
QueryPlan plan; QueryPlan plan;
initQueryPlan(stages.front(), plan); initQueryPlan(stages.front(), plan);

View File

@ -0,0 +1,19 @@
DROP TABLE IF EXISTS t;
DROP TABLE IF EXISTS t2;
CREATE TABLE t (x int) ENGINE = MergeTree() ORDER BY ();
DELETE FROM t WHERE y in (SELECT y FROM t); -- { serverError 47 }
DELETE FROM t WHERE x in (SELECT y FROM t); -- { serverError 47 }
DELETE FROM t WHERE x IN (SELECT * FROM t2); -- { serverError 60 }
ALTER TABLE t DELETE WHERE x in (SELECT y FROM t); -- { serverError 47 }
ALTER TABLE t UPDATE x = 1 WHERE x IN (SELECT y FROM t); -- { serverError 47 }
ALTER TABLE t ADD COLUMN y int;
DELETE FROM t WHERE y in (SELECT y FROM t);
CREATE TABLE t2 (x int) ENGINE = MergeTree() ORDER BY ();
DELETE FROM t WHERE x IN (SELECT * FROM t2);
DROP TABLE t;
DROP TABLE t2;