| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
commit_hash:7007950c8dbbf4d1c8edd5c275eaea723e29e56b
|
| |
|
|
| |
commit_hash:39b07bbc84e57d9df02c839273366c28442b789f
|
| |
|
|
|
|
| |
There was an issue that a query with warnings
as errors passed translation.
commit_hash:890d18853380b5ad669e9684553cdb6991827cff
|
| |
|
|
| |
commit_hash:27dc40f323e5d24af0dae4f3917a63248f8f8386
|
| |
|
|
| |
commit_hash:ad0cc5722938a8e337f7bc9b5f4a631a299c6a99
|
| |
|
|
|
|
| |
Added absent checks for `langVer` at `EXCEPT/INTERSECT/DISTINCT`
translation. In next PR will get rid of `.sqlx` file extensions.
commit_hash:699cc8f6084d1d2fc19ecd53c35a56496dc842f4
|
| |
|
|
| |
commit_hash:4b93115d4e3d46770946a7a462c7413d6183282f
|
| |
|
|
|
| |
init
commit_hash:7169a3cfe8408c4baff8524a8022b5b219900b94
|
| |
|
|
|
| |
Support `FLATTEN [OPTIONAL] BY` for any data type
commit_hash:6fb221fadf29d1dcc7ea4590a21c115fc506aa51
|
| |
|
|
| |
commit_hash:8ca485c564bd7f0ff3ce9685470a06e07e99d0f4
|
| |
|
|
|
| |
YQL-20150: Add OptimizeLMap optimizer
commit_hash:065921d83e492d815fa95f3e9bedd006aee0c887
|
| |
|
|
| |
commit_hash:45d5b2e2dd994307de6d103f3b9658f40fd3696b
|
| |
|
|
| |
commit_hash:44e30306b80ccb5f73f3fc9ab17545e0af3b413f
|
| |
|
|
| |
commit_hash:5b0aadf271c553415c536606ff7f52575bd267c4
|
| |
|
|
|
|
|
|
|
|
|
| |
Добавляю поддержку фильтрации нуллов при пушдауне на необязательную сторону джоина (до этого она работала только при пушдауне на обязательную сторону).
Как в пушдауне предиката с левой стороны одновременно на правую (PredicatePushdownOverEquiJoinBothSides), так и в пушдауне сразу на правую (FilterPushdownOverJoinOptionalSide).
Включается по флагу PredicatePushdownOverEquiJoinBothSides.
Тесты с включением можно посмотреть тут: <https://nda.ya.ru/t/e2f09Qw_7HNvu6>
commit_hash:0f101bfced2a510995577e1bca90eef6d2505992
|
| |
|
|
| |
commit_hash:4ee9d9b9079b90e8eeb91accc41d6a3a30c3a18c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Делает возможным такие оптимизации:
- `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
|
| |
|
|
| |
commit_hash:cb76201226f30679f63457a9f9e1ebdb31dcd05b
|
| |
|
|
|
|
| |
EmitSkipNullOnPushdown
commit_hash:464cfa9be3ee98de47a47ff4e88db5b0d9eb37ec
|
| |
|
|
| |
commit_hash:a563966e2448de9828c0786f9ba9939b55fc21fd
|
| |
|
|
| |
commit_hash:78445e1b3b0bb001e0d08b36fd4d31bcd9e37eb4
|
| |
|
|
|
| |
Return persistable expression from FLATTEN BY clause
commit_hash:8b19ad7f7ddf436c2741f9aa1c5402732fc31f06
|
| |
|
|
| |
commit_hash:c22dc757dcd7996bac8fb892184281503a2ab003
|
| |
|
|
|
| |
init
commit_hash:beef3d18a5b85dc793380a01249358243137df70
|
| |
|
|
|
| |
Оказалось что пушдаун предиката через Aggregate не работал когда в предикате используются все поля из Aggregate. Чиню
commit_hash:c2e8cab88a0adb496464b9dac52807fcc95f433d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in some cases
Разрешаем пушить на необязательную сторону предикат, который использует только ключевые колонки с обязательной стороны джоина.
1) рассматриваемый предикат зависит только 1 стороны и это обязательная сторона джоина
2) предикат зависит только от ключевых колонок джоина
3) все соответствующие по ключу джоина колонки в обязательном и необязательном инпутах должны полностью совпадать по типу
В этих случаях мы пушим предикат не только на обязательную, но и на необязательную сторону
commit_hash:1404e877fdd271dbe8342478a20b99b6f99a4fda
|
| |
|
|
| |
commit_hash:50d34a5b1e277a0ff5dce83a9cf485e2c0d1a471
|
| |
|
|
| |
commit_hash:589383be883e0948cdf7db8928c5842d60c5c628
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
There was a mistake, because actually EXCEPT
has the same precedence as UNION. INTERSECT has
higher precedence than.
commit_hash:20375ef498861c6704571161fa3c4eebf54e895c
|
| |
|
|
| |
commit_hash:f51c77dc72df30e1a870e784f99b1e8148e6cedb
|
| |
|
|
| |
commit_hash:f5827e9ccc7926e7d8a7ed8040c3d3427b8ef592
|
| |
|
|
|
| |
Сейчас FilterPushdownOverJoinOptionalSide не работает если в предикате используются только колонки из ключа джоина — причин так делать нет, исправляю (под флагом временно чтобы канонизировать тесты ydb)
commit_hash:93aa956e4460d95e9e8592595de5e8a77027786b
|
| |
|
|
| |
commit_hash:0cc244f5272c4bc099db5bf8fb56566a11391158
|
| |
|
|
| |
commit_hash:2c408c6ee755878a488f1591510d196d1bf5fba1
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:cff54a61ed3e2bccb0914d089c0e3d1f33931449
|
| |
|
|
| |
commit_hash:15146ac1817e0abc0483b2c138207daf3b63fdd5
|
| |
|
|
| |
commit_hash:6a71bff1ad52eddd1b8c7d516f0810f0decf401e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Тут чинятся 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
|
| |
|
|
| |
commit_hash:9a7d4b30d4dd2a5d2fa2d9bd9e34c5153196d288
|
| |
|
|
| |
commit_hash:7a57d8950e16c8237574833f4289a25ed54226bf
|
| |
|
|
| |
commit_hash:4c68311d9e875b6643dd49aae1c385aace4ca978
|
| |
|
|
| |
commit_hash:632e24794e8bcf6ef0502b7e8c031e964d28d36a
|
| |
|
|
| |
commit_hash:f3a7045b9ba62617929a3d5ad882c9dd2702f2eb
|
| |
|
|
| |
commit_hash:b12d341458bb39ffb6b4a4d7a99c3ef25a417ca5
|
| |
|
|
| |
commit_hash:c94ae2e1918d822a6a01192bc2e42d668cf16b4d
|
| |
|
|
| |
commit_hash:6e56cbea6a1c12b4f9e6b065eedf177763a329d2
|
| |
|
|
| |
commit_hash:b0bb9ec1e8b00c8383d182b073073d6eaf04ab2f
|
| |
|
|
| |
commit_hash:a9766abf73088d74351c34d5136a3eeb7191ac04
|