Backport #69676 to 24.8: fix bug about CREATE ... AS WITH RECURSIVE

This commit is contained in:
robot-clickhouse 2024-10-01 15:09:58 +00:00
parent ad92f57223
commit 66375a32af
3 changed files with 14 additions and 1 deletions

View File

@ -121,7 +121,10 @@ private:
{
if (select.recursive_with)
for (const auto & child : select.with()->children)
with_aliases.insert(child->as<ASTWithElement>()->name);
{
if (typeid_cast<ASTWithElement *>(child.get()))
with_aliases.insert(child->as<ASTWithElement>()->name);
}
if (select.tables())
tryVisit<ASTTablesInSelectQuery>(select.refTables());

View File

@ -0,0 +1,10 @@
drop table if exists t;
SET enable_analyzer = 1;
create table t1 (a Int64, s DateTime('Asia/Istanbul')) Engine = MergeTree() ORDER BY a;
create view t AS (
WITH RECURSIVE 42 as ttt,
toDate(s) as start_date,
_table as (select 1 as number union all select number + 1 from _table where number < 10)
SELECT a, ttt from t1 join _table on t1.a = _table.number and start_date = '2024-09-23'
);
drop table t;