<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/tests/sql/suites, 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-19T15:33:56Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2025-08-19T15:33:56Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-08-19T15:04:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=29b8e38029d8274b6d3439ad2c27f1470d75b67e'/>
<id>urn:sha1:29b8e38029d8274b6d3439ad2c27f1470d75b67e</id>
<content type='text'>
commit_hash:8ca485c564bd7f0ff3ce9685470a06e07e99d0f4
</content>
</entry>
<entry>
<title>YQL-20150: Add OptimizeLMap optimizer</title>
<updated>2025-08-19T15:27:32Z</updated>
<author>
<name>maxkovalev</name>
<email>maxkovalev@yandex-team.com</email>
</author>
<published>2025-08-19T14:31:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=24dd9f1329627628e9b0efe054c0d9cb4542002a'/>
<id>urn:sha1:24dd9f1329627628e9b0efe054c0d9cb4542002a</id>
<content type='text'>
YQL-20150: Add OptimizeLMap optimizer
commit_hash:065921d83e492d815fa95f3e9bedd006aee0c887
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-08-18T15:20:54Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-08-18T14:35:13Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d957f38499c4ae46301a4d5b79e3e97f074e7d52'/>
<id>urn:sha1:d957f38499c4ae46301a4d5b79e3e97f074e7d52</id>
<content type='text'>
commit_hash:45d5b2e2dd994307de6d103f3b9658f40fd3696b
</content>
</entry>
<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>Intermediate changes</title>
<updated>2025-08-12T12:21:59Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-08-12T12:04:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a84a916fe9eff84d52151ee74e4c6ddcebcf00c2'/>
<id>urn:sha1:a84a916fe9eff84d52151ee74e4c6ddcebcf00c2</id>
<content type='text'>
commit_hash:ed91bc01a9eb89e8817a6441ee293bf98524290c
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-08-11T13:09:24Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-08-11T12:54:55Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=aadaac8b7487cac5fb041864293156b5e5a368ae'/>
<id>urn:sha1:aadaac8b7487cac5fb041864293156b5e5a368ae</id>
<content type='text'>
commit_hash:5b0aadf271c553415c536606ff7f52575bd267c4
</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-20247 Depends for Udf function</title>
<updated>2025-08-05T17:39:19Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-08-05T17:15:00Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4d576a194855d3d3725914b7330af3f6478e0e13'/>
<id>urn:sha1:4d576a194855d3d3725914b7330af3f6478e0e13</id>
<content type='text'>
commit_hash:4ee9d9b9079b90e8eeb91accc41d6a3a30c3a18c
</content>
</entry>
<entry>
<title>YQL-20206: Optimize X AND/OR Not X YQL-20229</title>
<updated>2025-08-01T17:56:28Z</updated>
<author>
<name>lucius</name>
<email>lucius@yandex-team.com</email>
</author>
<published>2025-08-01T17:38:14Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d26972227453799b411b840c959784b73d6d99db'/>
<id>urn:sha1:d26972227453799b411b840c959784b73d6d99db</id>
<content type='text'>
Делает возможным такие оптимизации:

- `X AND NOT X -&gt; FALSE`

- `X OR NOT X -&gt; TRUE`

Работает в том числе если X будет завернут в Unessential.

Только для неопциональных X.

Пример замены когда много аргументов:

```
In:  A and     X and B and NOT X and C and X and D
Out: A and FALSE and B           and C       and D
```

Выражение из примера можно преобразовать если X, B и C не требуют побочных эффектов.

Или вот пример если B' требует побочных эффектов:

```
In:  A and X and B' and NOT X and C and X and D
Out: A and X and B' and FALSE and C       and D
```

Про что думал, но не стал делать:

1) Можно заменять на константу не только X / NOT X, но и всю цепочку подряд идущих узлов без побочных эффектов. Оставляю это другим оптимизаторам, чтобы меньше думать про нюансы и не дублировать код (в частности чтобы не заботиться о типизации если в цепочке оказался Optional Bool).

2) Можно поддержать опциональные X, тогда будет примерно такое преобразование `X AND NOT X -&gt; IF(X IS NULL, NULL, FALSE)`. Неочевидно что это улучшение и пока решили не делать.

Оптимизатор под флагом. Тесты с включением флага тут: [https://nda.ya.ru/t/6YuCsGDE7H8Dnd](https://nda.ya.ru/t/YVdMA5B37H8Dne
commit_hash:c34cf075a46c6b06c742ff0b15697b93ede75924
</content>
</entry>
<entry>
<title>YQL-20258 side effects infrastructure</title>
<updated>2025-08-01T13:40:18Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-08-01T13:25:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0030e78e89809f2a0c8c10260592f15cda5cbc81'/>
<id>urn:sha1:0030e78e89809f2a0c8c10260592f15cda5cbc81</id>
<content type='text'>
commit_hash:cb76201226f30679f63457a9f9e1ebdb31dcd05b
</content>
</entry>
</feed>
