mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Backport #64174 to 24.3: Prevent LOGICAL_ERROR on CREATE TABLE as MaterializedView
This commit is contained in:
parent
714b1863e2
commit
ca68f49798
@ -978,6 +978,13 @@ void InterpreterCreateQuery::setEngine(ASTCreateQuery & create) const
|
||||
if (as_create.is_ordinary_view)
|
||||
throw Exception(ErrorCodes::INCORRECT_QUERY, "Cannot CREATE a table AS {}, it is a View", qualified_name);
|
||||
|
||||
if (as_create.is_materialized_view && as_create.to_table_id)
|
||||
throw Exception(
|
||||
ErrorCodes::INCORRECT_QUERY,
|
||||
"Cannot CREATE a table AS {}, it is a Materialized View without storage. Use \"AS `{}`\" instead",
|
||||
qualified_name,
|
||||
as_create.to_table_id.getQualifiedName());
|
||||
|
||||
if (as_create.is_live_view)
|
||||
throw Exception(ErrorCodes::INCORRECT_QUERY, "Cannot CREATE a table AS {}, it is a Live View", qualified_name);
|
||||
|
||||
|
14
tests/queries/0_stateless/03161_create_table_as_mv.sql
Normal file
14
tests/queries/0_stateless/03161_create_table_as_mv.sql
Normal file
@ -0,0 +1,14 @@
|
||||
DROP TABLE IF EXISTS base_table;
|
||||
DROP TABLE IF EXISTS target_table;
|
||||
DROP TABLE IF EXISTS mv_from_base_to_target;
|
||||
DROP TABLE IF EXISTS mv_with_storage;
|
||||
DROP TABLE IF EXISTS other_table_1;
|
||||
DROP TABLE IF EXISTS other_table_2;
|
||||
|
||||
CREATE TABLE base_table (date DateTime, id String, cost Float64) ENGINE = MergeTree() ORDER BY date;
|
||||
CREATE TABLE target_table (id String, total AggregateFunction(sum, Float64)) ENGINE = MergeTree() ORDER BY id;
|
||||
CREATE MATERIALIZED VIEW mv_from_base_to_target TO target_table AS Select id, sumState(cost) FROM base_table GROUP BY id;
|
||||
CREATE MATERIALIZED VIEW mv_with_storage ENGINE=MergeTree() ORDER BY id AS Select id, sumState(cost) FROM base_table GROUP BY id;
|
||||
|
||||
CREATE TABLE other_table_1 AS mv_with_storage;
|
||||
CREATE TABLE other_table_2 AS mv_from_base_to_target; -- { serverError INCORRECT_QUERY }
|
Loading…
Reference in New Issue
Block a user