<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/sql/v1/namespace.h, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-06-19T13:23:50Z</updated>
<entry>
<title>YQL-20631: Support RECURSIVE WITH CTE on YqlSelect</title>
<updated>2026-06-19T13:23:50Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-06-19T12:39:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3d79ff71a5cb0a74ef11f187827a2955ff83b355'/>
<id>urn:sha1:3d79ff71a5cb0a74ef11f187827a2955ff83b355</id>
<content type='text'>
Implemented a RECURSIVE WITH CTE translation for YqlSelect. It relies on YqlSelf callable.
As this callable binds to enclosing YqlSelect, the diagnostic that subquery can't reference
an enclosing RECURSIVE WITH CTE was added, it is better, that an existing for pgSQL, where
just "table not found" is emitted. The core idea under RECURSIVE handling is that a
"not ready" CTE entry is added to a namespace (with a `nullptr` node), so it can be recognized.
Checked some interesting test cases and wrote TODOs.
commit_hash:65b8646e0615ae070b04822ce7af24245c203bbe
</content>
</entry>
<entry>
<title>YQL-20631: Support simple CTEs on YqlSelect</title>
<updated>2026-06-18T15:30:10Z</updated>
<author>
<name>vitya-smirnov</name>
<email>vitya-smirnov@yandex-team.com</email>
</author>
<published>2026-06-18T14:54:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4265d9121fd0635072e106e1895db92e900e7508'/>
<id>urn:sha1:4265d9121fd0635072e106e1895db92e900e7508</id>
<content type='text'>
The first iteration on WITH CTE support. Only simple CTEs are supported.

Properties:

1. Redefinition is forbidden.

2. Shadowing is supported.

3. Nested WITH CTEs are supported.

Following features are not yet implemented:

1. Column names specification. There is an assertion failure at core because
   of an absent column order when translating it like for the `PgSelect`.

2. `RECURSIVE` is postponed. There a more sophisticated translation with
   `YqlSelf` callable is required.

Also there was a potential defect because of an empty `Id` result not expected.
commit_hash:759676d8a9d369f7eedd9b87f79455b2f8a9fcff
</content>
</entry>
</feed>
