summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql
Commit message (Collapse)AuthorAgeFilesLines
...
* Intermediate changesrobot-piglet2025-08-1224-0/+0
| | | | commit_hash:ed91bc01a9eb89e8817a6441ee293bf98524290c
* Intermediate changesrobot-piglet2025-08-114-8/+8
| | | | commit_hash:5b0aadf271c553415c536606ff7f52575bd267c4
* YQL-20211 YQL-20223: skip nulls in pushdown over optional sidelucius2025-08-087-0/+451
| | | | | | | | | | | Добавляю поддержку фильтрации нуллов при пушдауне на необязательную сторону джоина (до этого она работала только при пушдауне на обязательную сторону). Как в пушдауне предиката с левой стороны одновременно на правую (PredicatePushdownOverEquiJoinBothSides), так и в пушдауне сразу на правую (FilterPushdownOverJoinOptionalSide). Включается по флагу PredicatePushdownOverEquiJoinBothSides. Тесты с включением можно посмотреть тут: <https://nda.ya.ru/t/e2f09Qw_7HNvu6> commit_hash:0f101bfced2a510995577e1bca90eef6d2505992
* YQL-20247 Depends for Udf functionvvvv2025-08-059-0/+82
| | | | commit_hash:4ee9d9b9079b90e8eeb91accc41d6a3a30c3a18c
* Handle DependsOn with tuple arg in optimizersziganshinmr2025-08-041-3/+3
| | | | commit_hash:1753b28fb549f00ea6ed88d12d64ac9c9ddaddd5
* YQL-20206: Optimize X AND/OR Not X YQL-20229lucius2025-08-0110-0/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Делает возможным такие оптимизации: - `X AND NOT X -> FALSE` - `X OR NOT X -> 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 -> IF(X IS NULL, NULL, FALSE)`. Неочевидно что это улучшение и пока решили не делать. Оптимизатор под флагом. Тесты с включением флага тут: [https://nda.ya.ru/t/6YuCsGDE7H8Dnd](https://nda.ya.ru/t/YVdMA5B37H8Dne commit_hash:c34cf075a46c6b06c742ff0b15697b93ede75924
* YQL-20258 side effects infrastructurevvvv2025-08-0118-0/+210
| | | | commit_hash:cb76201226f30679f63457a9f9e1ebdb31dcd05b
* YQL-20209: use Filter+Unessential instead of SkipNullMembers in ↵lucius2025-08-017-0/+140
| | | | | | EmitSkipNullOnPushdown commit_hash:464cfa9be3ee98de47a47ff4e88db5b0d9eb37ec
* YQL-20229: Add WideMap stream overloadatarasov52025-08-0110-170/+170
| | | | commit_hash:297647045a9ca9c90137f0ec6488181f81fe2447
* NormalizeDependsOn pipeline stageziganshinmr2025-07-307-0/+102
| | | | commit_hash:a563966e2448de9828c0786f9ba9939b55fc21fd
* YQL-20216 position aware csse nodesvvvv2025-07-284-0/+33
| | | | commit_hash:78445e1b3b0bb001e0d08b36fd4d31bcd9e37eb4
* YQL-20132: Block compress rewriteatarasov52025-07-252-6/+6
| | | | | Для более простого Review можно смотреть по коммитам / патчам commit_hash:ab2aa7e49035c55216017186e1989c8ddcd62e4f
* YQL-19200: Return persistable expression from FLATTEN BY clauselambda-delta2025-07-2516-0/+162
| | | | | Return persistable expression from FLATTEN BY clause commit_hash:8b19ad7f7ddf436c2741f9aa1c5402732fc31f06
* YQL-20237 fixvvvv2025-07-242-6/+6
| | | | commit_hash:bd6e641a706a082a31d12e3064aecb994df7b220
* YQL-20230: Handle singular types in DoConvertScalaratarasov52025-07-234-0/+145
| | | | commit_hash:c22dc757dcd7996bac8fb892184281503a2ab003
* YQL-20205 added struct type validationvvvv2025-07-234-0/+20
| | | | | init commit_hash:beef3d18a5b85dc793380a01249358243137df70
* YQL-20197: fix FilterOverAggregate when predicate uses all fieldslucius2025-07-224-0/+70
| | | | | Оказалось что пушдаун предиката через Aggregate не работал когда в предикате используются все поля из Aggregate. Чиню commit_hash:c2e8cab88a0adb496464b9dac52807fcc95f433d
* YQL-19896: allow optional side in SingleInputPredicatePushdownOverEquiJoin ↵lucius2025-07-214-0/+346
| | | | | | | | | | | | | | | in some cases Разрешаем пушить на необязательную сторону предикат, который использует только ключевые колонки с обязательной стороны джоина. 1) рассматриваемый предикат зависит только 1 стороны и это обязательная сторона джоина 2) предикат зависит только от ключевых колонок джоина 3) все соответствующие по ключу джоина колонки в обязательном  и необязательном инпутах должны полностью совпадать по типу В этих случаях мы пушим предикат не только на обязательную, но и на необязательную сторону commit_hash:1404e877fdd271dbe8342478a20b99b6f99a4fda
* Intermediate changesrobot-piglet2025-07-174-0/+41
| | | | commit_hash:50d34a5b1e277a0ff5dce83a9cf485e2c0d1a471
* Fix 'Member over renaming FlatMap' optimizeraneporada2025-07-154-0/+35
| | | | commit_hash:589383be883e0948cdf7db8928c5842d60c5c628
* YQL-20098: Wide{Skip,Take}Blocks rewrite from Flow to Streamatarasov52025-07-151-2/+2
| | | | | | | Переписал Wide\{Skip,Take\}Blocks с flow на stream тип Прогон тестов с понижением версии <https://nda.ya.ru/t/as0XUfAF7GUcdA> commit_hash:b953c006690680e4711424f407db5af16b9c2e1c
* YQL-20171: Fix aggregation joining keyvitya-smirnov2025-07-154-0/+80
| | | | | | | | | | | | | | | | There was a bug with a aggregation deduplication by a column at the translator. For a single column the system joining all aggregations using the generic key. The generic key was just a column name without source name what leads to collision when aggregating multiple different sources with same column names. This patch fixes the generic key by adding a data source name there. Also tests are added. commit_hash:1c0a9da512f68c58d2830e096de76b769b733cb2
* YQL-17269: Fix UNION/EXCEPT/INTERSECT precedencevitya-smirnov2025-07-134-23/+23
| | | | | | | There was a mistake, because actually EXCEPT has the same precedence as UNION. INTERSECT has higher precedence than. commit_hash:20375ef498861c6704571161fa3c4eebf54e895c
* YQL-20125 fixvvvv2025-07-114-0/+113
| | | | commit_hash:f51c77dc72df30e1a870e784f99b1e8148e6cedb
* YQL-20121 fixvvvv2025-07-104-0/+66
| | | | commit_hash:f5827e9ccc7926e7d8a7ed8040c3d3427b8ef592
* YQL-19896 allow onlyKeys=true in FilterPushdownOverJoinOptionalSidelucius2025-07-104-0/+77
| | | | | Сейчас FilterPushdownOverJoinOptionalSide не работает если в предикате используются только колонки из ключа джоина — причин так делать нет, исправляю (под флагом временно чтобы канонизировать тесты ydb) commit_hash:93aa956e4460d95e9e8592595de5e8a77027786b
* YQL-20167 canonized short key contentvvvv2025-07-1010-0/+208
| | | | commit_hash:0cc244f5272c4bc099db5bf8fb56566a11391158
* YQL-20170 fixvvvv2025-07-095-0/+55
| | | | commit_hash:2c408c6ee755878a488f1591510d196d1bf5fba1
* YQL-17269: Support UNION/INTERSECT/EXCEPT combinationsvitya-smirnov2025-07-0917-0/+532
| | | | | | | | | | | | Introduce `UNION` and `INTERSECT/EXCEPT` grammar rules for precedence. Rewrote `Build` procedure into `BuildStmt`, `BuildUnion`, `BuildIntersection`. Added tests, modify format. It took a lot of time trying to adapt the existing `Build` procedure. The I noticed that the logic for `union` and `intersection` is different, since `union` groups arguments into bundles, but `intersection` is a strictly binary operation. commit_hash:70008ae3c2603364b6dfbeeb189fdc7f5237433d
* YQL-20080: flow -> stream rewriteatarasov52025-07-091-3/+3
| | | | | | | | В этом пре переписал ноды `Wide{Top,TopSort,Sort}Blocks` с flow на stream реализацию. Я разбил пр на два коммита: первый, это просто двигаю классы вверх вниз. Второй - сами изменения. [Прогон тестов](https://nda.ya.ru/t/P9kfAmHr7GFmgy с понижением Runtime версии commit_hash:0813a74aaa904b12846692c0e7504334170ea6db
* Fix pruneKeys over flatMapmpereskokova2025-07-084-0/+69
| | | | commit_hash:cff54a61ed3e2bccb0914d089c0e3d1f33931449
* YQL-19536: Block ifpresentatarasov52025-07-0825-0/+557
| | | | commit_hash:15146ac1817e0abc0483b2c138207daf3b63fdd5
* YQL-20153 params fixesvvvv2025-07-0411-0/+84
| | | | commit_hash:6a71bff1ad52eddd1b8c7d516f0810f0decf401e
* YQL-20085: fix FilterPushdownOverJoinOptionalSidelucius2025-07-047-0/+267
| | | | | | | | | | | | | | Тут чинятся 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
* YQL-20126 fixvvvv2025-07-044-0/+32
| | | | commit_hash:9a7d4b30d4dd2a5d2fa2d9bd9e34c5153196d288
* Do not generate empty Or in ExtractCommonPredicatesFromLogicalOpsaneporada2025-06-264-0/+41
| | | | commit_hash:7a57d8950e16c8237574833f4289a25ed54226bf
* YQL-17269: coherent EXCEPT DISTINCT behaviour with PostgreSQLkndrvt2025-06-243-21/+21
| | | | commit_hash:612ca36961d59bab6ffd93ee882f538b3e0d7bda
* YQL-17269: support PositionalUnionAll for INTERSECT and EXCEPTkndrvt2025-06-2312-0/+744
| | | | commit_hash:4c68311d9e875b6643dd49aae1c385aace4ca978
* YQL-17269: support INTERSECT and EXCEPT without PositionalUnionAllkndrvt2025-06-2026-10/+885
| | | | commit_hash:632e24794e8bcf6ef0502b7e8c031e964d28d36a
* DropAnyOverDistinctEquiJoinInput optimizerziganshinmr2025-06-194-0/+387
| | | | commit_hash:f3a7045b9ba62617929a3d5ad882c9dd2702f2eb
* Add PruneKeys in YT optmpereskokova2025-06-181-0/+7
| | | | commit_hash:b12d341458bb39ffb6b4a4d7a99c3ef25a417ca5
* YQL-20073 type diff for TryConvertvvvv2025-06-171-3/+3
| | | | | | | better convert error test for reproducing commit_hash:c20630a1f03ea1eed119778895b19087143f4400
* YQL-20079 drop optimizervvvv2025-06-164-0/+38
| | | | commit_hash:c94ae2e1918d822a6a01192bc2e42d668cf16b4d
* Intermediate changesrobot-piglet2025-06-161-4/+0
| | | | commit_hash:18e311c0ad94b55003cb5a6c0487a16830fac5cd
* Intermediate changesrobot-piglet2025-06-161-0/+1
| | | | commit_hash:6e56cbea6a1c12b4f9e6b065eedf177763a329d2
* Improve OptimizeSubsetFieldsForNodeWithMultiUsage for Optionalsaneporada2025-06-091-6/+6
| | | | commit_hash:44ab80a72c410e6d0afbb4a8cb818ce01426115e
* YQL-20054: Fix pg typesatarasov52025-06-064-0/+53
| | | | commit_hash:b0bb9ec1e8b00c8383d182b073073d6eaf04ab2f
* Fix block coalesce for multioptionalatarasov52025-06-064-0/+52
| | | | commit_hash:a9766abf73088d74351c34d5136a3eeb7191ac04
* Save distinct constraint for PruneKeysmpereskokova2025-06-034-0/+94
| | | | commit_hash:c571530f0a74edc44a65da0388e8e4c543121044
* YQL-17269: add DISTINCT to UNIONkndrvt2025-05-274-0/+41
| | | | commit_hash:d002e9690bd7cbd1874fdbfe454c9f7a00256839