summaryrefslogtreecommitdiffstats
path: root/yql/essentials/core/common_opt
Commit message (Collapse)AuthorAgeFilesLines
* YQL-20631: Support WITH CTE columns and fix UNION column order for YqlSelectvitya-smirnov3 days1-3/+3
| | | | | | | | | | | Implemented a column names specification for a WITH CTE. It requires a column order derivation. It was not working on `YqlSelect` until PR https://nda.ya.ru/t/qOC3TNqn7gAcy6 was merged. Also there was a bug with `UNION` column order inference, which is essential for RECURSIVE queries. There was compatibility problems with `PgSelect` `UNION` positional column order semantics, so it was tweaked in `YqlSelect` mode. commit_hash:c96192270ca6d51eaa0cb39cf59b65c3951ce3fe
* Fix fusing two CalcOverWindow with ExtractMembers in-betweenaneporada2026-06-121-5/+21
| | | | commit_hash:ec04ae964cc2923fe432b2bf75d339459452065a
* Fix PayloadRenameOverWindow in overwrite caseaneporada2026-06-111-7/+7
| | | | commit_hash:867eb4209058a877aa60f86931daddf1e25ac600
* optimize switch over extract membersgrigoriypisar2026-06-041-20/+66
| | | | | Added switch optimization over extract members commit_hash:351e8a76ae8ab7fa4e1539588f0253cf8c31eec2
* YQL-21246: Propagate ExtractMembers over TableSourceimunkin2026-05-273-0/+20
| | | | commit_hash:048f5c5f1cf2f507a91c2f4cdb24aec0cc71a004
* YQL-21152: Support implicit USING at YqlSelectvitya-smirnov2026-05-271-66/+173
| | | | commit_hash:958a606c2956a1155a487070452acc770455bf66
* Check lambda scope in the linear checkervvvv2026-05-261-0/+9
| | | | commit_hash:65d1e3053e157375f7a704f1e635467ded5a7ef2
* YQL-21046: Support RANGE window on YqlSelectvitya-smirnov2026-05-221-21/+184
| | | | commit_hash:2cb369cb2091489e28790782fe9e7679d367fbb3
* Retire ExtractCommonPredicatesFromLogicalOps feature flaganeporada2026-05-221-17/+8
| | | | commit_hash:e88f9eae8add4cdb21d7d432d4495f49ecebee74
* Retire ExtractMembersForPartitionsByKeys feature flaganeporada2026-05-222-7/+0
| | | | commit_hash:ffd67fcee1482addcf347c78191d5e671ba2225a
* Enable ToFlowOverCollect by defaultimunkin2026-05-181-1/+1
| | | | commit_hash:01842381ef76c8906ec3d33c2dcf2d1ffab107f4
* added new streaming contraintgrigoriypisar2026-05-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | ## Что означает Streaming Constraint Пусть `O` - колабл для которого выставлен Streaming Constraint и `I` - множество входов оператора для которых также выставлен Streaming Constraint. ### Streaming constraint для Unordered List Если `O` принимает на вход List и логически является Unordered (нету гарантий на порядок выхода относительно проядка входа), то: * При добавлении одного элемента в конец списка любого входа из `I` -- в мульти множестве результата `O` могут только появиться новые значения (либо ничего не добавится) ### Streaming constraint для Ordered List Тоже самое, что и для Unordered List, но добавляется ограничение, что: * При добавлении одного элемента в конец списка любого входа из `I` -- в упорядоченный список строк, являющийся результатом `O` могут добавиться строки только в конец списка ### Streaming constraint для Stream / Flow Тоже самое, что для Ordered / Unordered List, но добавляется ограничение: * Если в любом из входов `I` типа Stream / Flow возможны Yield, то обновлённый результат оператора должен выводиться с ограниченной задержкой при поступлении Yield commit_hash:1e9e2deac133179c46ad15daa32fb421a3998296
* YQL-20095: Enable modernize-use-emplacevitya-smirnov2026-05-133-6/+6
| | | | commit_hash:4d6e2f6fcc1639f09725c0c96de8d2f7f0f70404
* YQL-20095: Enable readability-uppercase-literal-suffixvitya-smirnov2026-05-073-12/+12
| | | | commit_hash:41791bb9a63f1993010fb68562e9a5607927307d
* YQL-21048: Support Grouping function at YqlSelectvitya-smirnov2026-04-281-26/+56
| | | | | | Now `Grouping` function kindly works, but with some known bug, that will be fixed in the next PR. It gives 4 TPC-DS queries. commit_hash:e891401453cbd9d9d964f673053b856e55ea8b56
* YQL-21046: Support window functions for YqlSelectvitya-smirnov2026-04-282-136/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for `RowNumber`, `CumeDist`, `NTile`, `Rank`, `DenseRank`, `PercentRank`, `Lead`, `Lag`, `FirstValue`, `LastValue` and `NthValue`. It gives +3 TPC-DS queries and +5 TPC-DS bugs unlocked. The callable `YqlWin` was introduces, having the following form: ```yqls (YqlWin 'function_name 'window_name '() # options (Void) # type slot ...) # args ``` During the callable type annotation and expansion the same code for implementation functions substitution is used and shared even with a pgSQL. There was an issue with a `listType` for `YqlAgg`, `YqlAggWin` and `YqlWin`, because it was built incorrectly by referencing an atom "row" instead of _that_ argument row. It is fixed with a new "type slot". Now it has 3 states: `(Void)`, which is set by translator just as a stub, `row` that is set by `YqlSetItemWrapper` during the `RebuildLambdaColumns`, so then on the `YqlWin` type annotation it can take this `row` and wrap it to the `listType`, pass to the function and call for a repetition, so in a next stage the `resultType` will be ready. commit_hash:256fc2cb359714a646a308359b340b1715919f5d
* YQL-20095: Enable readability-inconsistent-declaration-parameter-namevitya-smirnov2026-04-281-6/+6
| | | | commit_hash:9589937209af8e742c0c6401bd1c232f073856bf
* Drop SqlInWithNothingOrNull feature flaganeporada2026-04-271-10/+3
| | | | commit_hash:1980242770cd95d5974e385c2cbbc670a17bd1d8
* Drop PullJustFromLogicalOps feature flaganeporada2026-04-271-45/+5
| | | | commit_hash:a16f8473cf78747f726d9e67b5c8b4e12b5b8204
* Drop FieldSubsetEnableMultiusage feature flaganeporada2026-04-272-54/+3
| | | | commit_hash:556c06c5bf1d640b18071688c6d13850a02491c9
* Drop OptimizeXNotX feature flaganeporada2026-04-271-14/+4
| | | | commit_hash:0dd4dfc3e6869e4867679d9becbf9803fa674231
* Drop LMapSubsetFields feature flaganeporada2026-04-271-4/+0
| | | | commit_hash:36c3353317375da5e1b56cce83d3e38f5d23faa0
* YQL-21034: Convert integers to Uint64 at ListSampleNmariibykova2026-04-201-45/+11
| | | | commit_hash:f508795113ebbfadfb1bc05529f4af46ae7837d2
* Pushdown/fuse Filter + CalcOverWindowaneporada2026-04-204-102/+673
| | | | commit_hash:198ce0c7875d77fab8082382d915bf1261775f68
* YQL-21046: Support window aggregation over YqlSelectvitya-smirnov2026-04-202-65/+68
| | | | | | | | | Introduce `YqlAggWin` callable and adapt `PgWindow` as `YqlWindow`. The `YqlAggWin` is similar to `YqlAgg`, but with window reference (name) included. Moved `PgWindowWrapper` to `SqlWindowWrapper`. It gives +6 TPC-DS test cases. Window functions are not yet supported, because they have separate callables and an extra design is required. commit_hash:ccef4463fd994779da21514dc9f6f596c511bbfe
* YQL-20095: Enable readability-isolate-declarationvitya-smirnov2026-04-134-16/+39
| | | | commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
* YQL-20095: Enable modernize-use-starts-ends-withvitya-smirnov2026-04-091-1/+1
| | | | commit_hash:22bd519b464916c6de877000d7442345b86110a8
* Retire PayloadRenameOverWindow and CheckWindowFramesFieldSubset feature flagsaneporada2026-04-081-26/+6
| | | | commit_hash:fbe50ab4ba4f4bdf8441f8ce9f5af22a6c3acbd9
* YQL-20095: Enable readability-container-size-emptyvitya-smirnov2026-04-074-6/+6
| | | | commit_hash:464a95fd6de1a395f8ffe20092e837df995e623c
* YQL-19768: Enable optimizers for purecalc block pipelineimunkin2026-04-031-3/+2
| | | | commit_hash:36cc4e038807245cc6e15c4d4ed78ec199a08bb6
* YQL-19768: Introduce ToFlowOverCollect optimizerimunkin2026-04-021-0/+14
| | | | commit_hash:999fe8998858c2a634c729f992e7fec7d6ae5fb0
* YQL-21026: Fix IS DISTINCT from pg and nullatarasov52026-04-011-2/+2
| | | | commit_hash:fb14ee5b8cca07451478bfbffcc9a2f0b3d751f5
* YQL-19768: Introduce ToFlowOverIteratorWithDepends optimizerimunkin2026-03-311-0/+22
| | | | commit_hash:4db98c64fcd9875d7d3766e81fd88e68af26e05f
* YQL-20095: Enable modernize-use-designated-initializersvitya-smirnov2026-03-172-3/+3
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-designated-initializers.html commit_hash:d73eb463c7bec2bda4c362aab10af49979a7ddd3
* YQL-20095: Enable modernize-pass-by-valuevitya-smirnov2026-03-021-1/+2
| | | | commit_hash:4939dfad654f18bb31e40711ee0c39063889f17b
* YQL-20095: Enable modernize-loop-convertvitya-smirnov2026-02-274-12/+13
| | | | | | | | - https://clang.llvm.org/extra/clang-tidy/checks/modernize/loop-convert.html Semi-automatic translation was performed. Manually rewritten some types and names. commit_hash:0ad921f0d512dd4a8ccc8af557197ce6a02582e1
* Enable NormalizeEqualityFilterOverJoin by defaultaneporada2026-02-211-1/+1
| | | | commit_hash:b7e7a3daaa633ccf378fd5275a801a17fd8e74b6
* YQL-20928: Split SqlSelect, PgSelect and YqlSelect logicvitya-smirnov2026-02-208-4538/+4552
| | | | | | | We came to a situation, where a `PgXxxXxx` wrappers and expanders serve for both `PgSelect` and `YqlSelect`, so I propose to rename them into `SqlXxxXxx` and extract to a separate file. commit_hash:e9a994b7b6e93a19df74a9e380638ee4e19d8bbe
* YQL-20095: Enable modernize-avoid-c-arraysvitya-smirnov2026-02-193-6/+6
| | | | commit_hash:da491ee93c4f4d3c885c7908a22b4d5d66c80388
* YQL-20895: Preserve annotation at ExpandSqlSelectvitya-smirnov2026-02-122-26/+100
| | | | | | | | | After a `SqlSelect` expansion the column order must be preserved, and so type annotation required. During an expansion the `ExprNode` graph is transformed and so at later stages type annotation is lost, so we need to backup it. The solution is too pass an original `xxxAnn` `ExprNode` with `xxx` `ExprNode` to every subprocedure. commit_hash:e2c4d727ca7617d835e0608c3d341cf76e416a30
* YQL-20861: introduce TCheckedDerefPtrlukashevich842026-02-051-1/+1
| | | | | Relates: YQL-20861 commit_hash:2b6703c343bcd728622c1e0d9c3f8f1f21596128
* Enable SqlInWithNothingOrNull by defaultaneporada2026-02-031-1/+1
| | | | commit_hash:ec49cb52dcb45c1e45150f083b269c7337825088
* Enable PayloadRenameOverWindow by defaultaneporada2026-02-021-1/+1
| | | | commit_hash:9bbc0389b337833c2bd2799e95698978c14dc620
* YQL-20856: Fix sort traits handlingatarasov52026-02-022-54/+120
| | | | commit_hash:887866a3147abe01015c4f2c326e6bdd763a84c6
* Enable CheckWindowFramesFieldSubset by defaultaneporada2026-02-021-1/+1
| | | | commit_hash:89a6325536bd6ae43bab59dfb065da0df140b940
* YQL-20095: Enable some hicpp checksvitya-smirnov2026-01-301-0/+6
| | | | | | - https://clang.llvm.org/extra/clang-tidy/checks/hicpp/exception-baseclass.html - https://clang.llvm.org/extra/clang-tidy/checks/hicpp/multiway-paths-covered.html commit_hash:d1e41cca7d2fd5612d559cf1f3c9f8253e8eaf0e
* EmitPruneKeys minor refactoringaneporada2026-01-191-63/+71
| | | | commit_hash:21ba9456992d9a1aacfd99a3ca34596463a7726e
* YQL-13448: Introduce window RANGE logicatarasov52026-01-191-2/+0
| | | | | | | | Introduce window RANGE logic. Зеркальный пр с включение фичи путем инлайнинга в коде <https://nda.ya.ru/t/p2qAEoNq7SNwUJ> Зеркальный пр где я провожу perf измерения <https://nda.ya.ru/t/7UdlI38n7SNwUL> - в нем я описал результаты commit_hash:2626d7d6b77f1ccb31e395d974a2beaa60f27a97
* make OptimizeXNotX enabled for defaultlucius2026-01-151-1/+1
| | | | commit_hash:54982e714f162386ffa15aa0b55fa18552e5510e
* YQL-20793 Part #2 fixes for qplayer2vvvv2025-12-301-1/+3
| | | | commit_hash:c622ad1113247b2ddbd09777abc2c56ebc760d84