Merge pull request #70623 from ClickHouse/backport/24.8/70264

Backport #70264 to 24.8: Fix segfault on creating materialized view with intersect
This commit is contained in:
Nikita Taranov 2024-10-14 19:07:56 +02:00 committed by GitHub
commit 4bdf94f150
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 5 deletions

View File

@ -100,17 +100,20 @@ void checkAllowedQueries(const ASTSelectQuery & query)
/// check if only one single select query in SelectWithUnionQuery /// check if only one single select query in SelectWithUnionQuery
static bool isSingleSelect(const ASTPtr & select, ASTPtr & res) static bool isSingleSelect(const ASTPtr & select, ASTPtr & res)
{ {
auto new_select = select->as<ASTSelectWithUnionQuery &>(); auto * new_select = select->as<ASTSelectWithUnionQuery>();
if (new_select.list_of_selects->children.size() != 1) if (new_select == nullptr)
return false; return false;
auto & new_inner_query = new_select.list_of_selects->children.at(0);
if (new_select->list_of_selects->children.size() != 1)
return false;
auto & new_inner_query = new_select->list_of_selects->children.at(0);
if (new_inner_query->as<ASTSelectQuery>()) if (new_inner_query->as<ASTSelectQuery>())
{ {
res = new_inner_query; res = new_inner_query;
return true; return true;
} }
else
return isSingleSelect(new_inner_query, res); return isSingleSelect(new_inner_query, res);
} }
SelectQueryDescription SelectQueryDescription::getSelectQueryFromASTForMatView(const ASTPtr & select, bool refreshable, ContextPtr context) SelectQueryDescription SelectQueryDescription::getSelectQueryFromASTForMatView(const ASTPtr & select, bool refreshable, ContextPtr context)

View File

@ -0,0 +1 @@
CREATE MATERIALIZED VIEW v0 AS (SELECT 1) INTERSECT (SELECT 1); --{serverError QUERY_IS_NOT_SUPPORTED_IN_MATERIALIZED_VIEW}