fix: change alter query to ternary expression

This commit is contained in:
sunny19930321 2024-08-30 15:02:09 +08:00
parent 4f77893c79
commit 6143f99f7a
3 changed files with 6 additions and 12 deletions

View File

@ -78,15 +78,9 @@ BlockIO InterpreterDeleteQuery::execute()
String alter_query =
"ALTER TABLE " + table->getStorageID().getFullTableName()
+ (delete_query.cluster.empty() ? "" : " ON CLUSTER " + backQuoteIfNeed(delete_query.cluster))
+ " UPDATE `_row_exists` = 0 WHERE " + serializeAST(*delete_query.predicate);
if (delete_query.partition)
{
alter_query =
"ALTER TABLE " + table->getStorageID().getFullTableName()
+ (delete_query.cluster.empty() ? "" : " ON CLUSTER " + backQuoteIfNeed(delete_query.cluster))
+ " UPDATE `_row_exists` = 0 IN PARTITION " + serializeAST(*delete_query.partition) + " WHERE "
+ serializeAST(*delete_query.predicate);
}
+ " UPDATE `_row_exists` = 0"
+ (delete_query.partition ? " IN PARTITION " + serializeAST(*delete_query.partition) : "")
+ " WHERE " + serializeAST(*delete_query.predicate);
ParserAlterQuery parser;
ASTPtr alter_ast = parseQuery(

View File

@ -19,7 +19,7 @@ public:
return removeOnCluster<ASTDeleteQuery>(clone(), params.default_database);
}
/** Used in DROP PARTITION, ATTACH PARTITION FROM, UPDATE, DELETE, DELETE FROM queries.
/** Used in DELETE FROM queries.
* The value or ID of the partition is stored here.
*/
ASTPtr partition;

View File

@ -5,10 +5,10 @@ CREATE TABLE t_merge_tree(time Date, id String , name String) ENGINE = MergeTree
CREATE TABLE t_replicated_merge_tree(time Date, id String, name String) ENGINE = ReplicatedMergeTree('/test/02352/{database}/t_rep','1') PARTITION BY time ORDER BY id;
INSERT INTO t_merge_tree select '2024-08-01', '1', toString(number) FROM numbers(100);
INSERT INTO t_merge_tree select '2024-08-02', '2', toString(number) FROM numbers(100);
INSERT INTO t_merge_tree select '2024-08-02', '1', toString(number) FROM numbers(100);
INSERT INTO t_replicated_merge_tree select '2024-08-01', '1', toString(number) FROM numbers(100);
INSERT INTO t_replicated_merge_tree select '2024-08-02', '2', toString(number) FROM numbers(100);
INSERT INTO t_replicated_merge_tree select '2024-08-02', '1', toString(number) FROM numbers(100);
SELECT COUNT() FROM t_merge_tree;
SELECT COUNT() FROM t_replicated_merge_tree;