<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/tests/sql/suites/join, branch oidc-1.2.6.0-dev</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=oidc-1.2.6.0-dev</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=oidc-1.2.6.0-dev'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-08-13T16:26:32Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2025-08-13T16:26:32Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-08-13T16:14:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=aae2cfe567a3498ec7c2d50a736c816fe57c4a9f'/>
<id>urn:sha1:aae2cfe567a3498ec7c2d50a736c816fe57c4a9f</id>
<content type='text'>
commit_hash:e6cca97ec9c9627f1ba82a11abf454518fc90972
</content>
</entry>
<entry>
<title>YQL-20211 YQL-20223: skip nulls in pushdown over optional side</title>
<updated>2025-08-08T08:40:53Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-08-08T07:53:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=cd8c631d29f7e015c27f5038539827c919b58b59'/>
<id>urn:sha1:cd8c631d29f7e015c27f5038539827c919b58b59</id>
<content type='text'>
Добавляю поддержку фильтрации нуллов при пушдауне на необязательную сторону джоина (до этого она работала только при пушдауне на обязательную сторону).

Как в пушдауне предиката с левой стороны одновременно на правую (PredicatePushdownOverEquiJoinBothSides), так и в пушдауне сразу на правую (FilterPushdownOverJoinOptionalSide).

Включается по флагу PredicatePushdownOverEquiJoinBothSides.

Тесты с включением можно посмотреть тут: &lt;https://nda.ya.ru/t/e2f09Qw_7HNvu6&gt;
commit_hash:0f101bfced2a510995577e1bca90eef6d2505992
</content>
</entry>
<entry>
<title>YQL-20209: use Filter+Unessential instead of SkipNullMembers in EmitSkipNullOnPushdown</title>
<updated>2025-08-01T10:43:15Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-08-01T10:17:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=363e5825447a1519cab9e46a42797ebb40bb9052'/>
<id>urn:sha1:363e5825447a1519cab9e46a42797ebb40bb9052</id>
<content type='text'>
commit_hash:464cfa9be3ee98de47a47ff4e88db5b0d9eb37ec
</content>
</entry>
<entry>
<title>YQL-19896: allow optional side in SingleInputPredicatePushdownOverEquiJoin in some cases</title>
<updated>2025-07-21T11:13:37Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-07-21T10:57:54Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=fea05ea76fdac14746236e14bda98ce8cc29fb00'/>
<id>urn:sha1:fea05ea76fdac14746236e14bda98ce8cc29fb00</id>
<content type='text'>
Разрешаем пушить на необязательную сторону предикат, который использует только ключевые колонки с обязательной стороны джоина.

1) рассматриваемый предикат зависит только 1 стороны и это обязательная сторона джоина

2) предикат зависит только от ключевых колонок джоина

3) все соответствующие по ключу джоина колонки в обязательном  и необязательном инпутах должны полностью совпадать по типу

В этих случаях мы пушим предикат не только на обязательную, но и на необязательную сторону
commit_hash:1404e877fdd271dbe8342478a20b99b6f99a4fda
</content>
</entry>
<entry>
<title>YQL-19896 allow onlyKeys=true in FilterPushdownOverJoinOptionalSide</title>
<updated>2025-07-10T11:24:32Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-07-10T11:08:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b21ba11dd54a6d80cabdde4beebff2dc3a1373e6'/>
<id>urn:sha1:b21ba11dd54a6d80cabdde4beebff2dc3a1373e6</id>
<content type='text'>
Сейчас FilterPushdownOverJoinOptionalSide не работает если в предикате используются только колонки из ключа джоина — причин так делать нет, исправляю (под флагом временно чтобы канонизировать тесты ydb)
commit_hash:93aa956e4460d95e9e8592595de5e8a77027786b
</content>
</entry>
<entry>
<title>YQL-20085: fix FilterPushdownOverJoinOptionalSide</title>
<updated>2025-07-04T07:47:46Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-07-04T07:22:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=94d6d80a1937f3cf2817a2a1d7e04b28eaa7565f'/>
<id>urn:sha1:94d6d80a1937f3cf2817a2a1d7e04b28eaa7565f</id>
<content type='text'>
Тут чинятся 2 проблемы:

1) Rename settings во вложенных джоинах после преобразования не позволяли применить пропушенный предикат, что-нибудь типа "Unknown table name:… Failed to parse labels of struct…"
2) Если до пушдауна типизатор вывел distinct у джоина, а мы его заменили на union all, то типизатор не мог доказать что distinct сохранился и падал. Типизатор править не стали, решили через KeepUniqueDistinct.

Обе проблемы немного по-разному проявляются и чинятся в двух случаях:

1) Делаем пушдаун в инпут из последнего джоина (верхний/корневой в дереве) — исходный джоин заменяется на union all из двух джоинов

2) Пушдаун в инпут НЕ из последнего джоина (НЕ верхний/корневой в дереве) — union all появляется внутри "исходного" джоина
commit_hash:cc7cfbb973bc7dcabba202ab9a637c3b9f1cb5dd
</content>
</entry>
<entry>
<title>DropAnyOverDistinctEquiJoinInput optimizer</title>
<updated>2025-06-19T09:29:47Z</updated>
<author>
<name>ziganshinmr</name>
<email>ziganshinmr@yandex-team.com</email>
</author>
<published>2025-06-19T09:14:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1223801cc77e826dc90a5ac0017a24d4c163cc64'/>
<id>urn:sha1:1223801cc77e826dc90a5ac0017a24d4c163cc64</id>
<content type='text'>
commit_hash:f3a7045b9ba62617929a3d5ad882c9dd2702f2eb
</content>
</entry>
<entry>
<title>Save distinct constraint for PruneKeys</title>
<updated>2025-06-03T14:18:41Z</updated>
<author>
<name>mpereskokova</name>
<email>mpereskokova@yandex-team.com</email>
</author>
<published>2025-06-03T12:52:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f341c9126a1c66f49b841f6ef787ab18bc3d3bf5'/>
<id>urn:sha1:f341c9126a1c66f49b841f6ef787ab18bc3d3bf5</id>
<content type='text'>
commit_hash:c571530f0a74edc44a65da0388e8e4c543121044
</content>
</entry>
<entry>
<title>Fix FilterPushDownJoinOverJoinOptionalSide parent join is a Cross join aka TPCDS49</title>
<updated>2025-05-05T09:54:35Z</updated>
<author>
<name>deniskhalikov</name>
<email>deniskhalikov@yandex-team.com</email>
</author>
<published>2025-05-05T09:36:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f27bf502e7bc7fb070667216006bcb5436781643'/>
<id>urn:sha1:f27bf502e7bc7fb070667216006bcb5436781643</id>
<content type='text'>
commit_hash:4f17c967af68dec9e71fc475a9e08cc5a10f7b7f
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-04-24T11:40:41Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-04-24T11:26:14Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=161ecf84d5fd2bfd842e91ac2f628e9ca2e900da'/>
<id>urn:sha1:161ecf84d5fd2bfd842e91ac2f628e9ca2e900da</id>
<content type='text'>
commit_hash:b561940fa34bb32aa7a67fa8522fb39ffe55d141
</content>
</entry>
</feed>
