summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests
Commit message (Collapse)AuthorAgeFilesLines
* YQL-20631: Support WITH CTE columns and fix UNION column order for YqlSelectvitya-smirnov3 days16-0/+360
| | | | | | | | | | | 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
* Preserve AssumeColumnOrder on DeriveColumnOrdervitya-smirnov4 days4-12/+12
| | | | commit_hash:c978cba70a9b24aa2e202caa54dc44f419e19468
* YQL-21048: Fix GROUPING SETS aggregation optionality on YqlSelectvitya-smirnov4 days10-0/+855
| | | | | | | | | | | | This patch fixes the query <https://nda.ya.ru/t/pYH4zpRH7fw6U4>. If you remove `PRAGMA YqlSelect`, you'll see that it works on a legacy translation. It is also required to fix PR <https://nda.ya.ru/t/IZFPoRjS7fw6j8>, because saving a column order makes the bug visible. The `nokey` flag of `YqlAgg` callable was renamed to `as_optional` and also an expansion was fixed by rewriting `MatchType` on `Optional` to `AsOptionalType` to handle `Null` and `pg` types properly. commit_hash:dc435437e87006c79bb93984d65931aaf5901af4
* YQL-21338: Better error messageatarasov54 days19-6/+232
| | | | | | | | | | | | | | #### Better error messages for window frame expressions ✎ - Improved error messaging for RANGE window frames to provide more specific information about unsupported column types and invalid ORDER BY expressions - Removed obsolete error handling for multiple sort columns and simplified the sort traits variant - Enhanced error reporting with detailed type information when RANGE frames are used with non-numeric or complex expressions - Added better handling for error types in ORDER BY expressions with improved diagnostic messages including nested error details - Updated error messages to be more descriptive and actionable, showing the actual column type causing the issue - Added new test cases covering various error scenarios including NULL types, optional types, and invalid expressions <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:1d2301ac75b3ff7bc9ca97213e9005507654e56b
* YQL-20631: Support RECURSIVE WITH CTE on YqlSelectvitya-smirnov7 days22-0/+391
| | | | | | | | | | Implemented a RECURSIVE WITH CTE translation for YqlSelect. It relies on YqlSelf callable. As this callable binds to enclosing YqlSelect, the diagnostic that subquery can't reference an enclosing RECURSIVE WITH CTE was added, it is better, that an existing for pgSQL, where just "table not found" is emitted. The core idea under RECURSIVE handling is that a "not ready" CTE entry is added to a namespace (with a `nullptr` node), so it can be recognized. Checked some interesting test cases and wrote TODOs. commit_hash:65b8646e0615ae070b04822ce7af24245c203bbe
* Intermediate changesrobot-piglet8 days2-0/+22
| | | | commit_hash:4507aae4a5289d1cf8e95efbac0170ac1b63c956
* YQL-20631: Support simple CTEs on YqlSelectvitya-smirnov8 days8-0/+147
| | | | | | | | | | | | | | | | | | | | | | | The first iteration on WITH CTE support. Only simple CTEs are supported. Properties: 1. Redefinition is forbidden. 2. Shadowing is supported. 3. Nested WITH CTEs are supported. Following features are not yet implemented: 1. Column names specification. There is an assertion failure at core because of an absent column order when translating it like for the `PgSelect`. 2. `RECURSIVE` is postponed. There a more sophisticated translation with `YqlSelf` callable is required. Also there was a potential defect because of an empty `Id` result not expected. commit_hash:759676d8a9d369f7eedd9b87f79455b2f8a9fcff
* YQL-21321 don't check for persistable in agg traits typecheckvvvv9 days4-0/+39
| | | | | | | | | | | #### `YQL-21321`: Adjust type checking for aggregate traits ✎ - Replaced persistable type check with computable type check during aggregate trait validation to allow more flexible type handling - Added new test cases to verify the behavior of unused aggregate types and ensure proper error reporting - Updated canonical data and test artifacts to reflect the changes in type checking logic and error messages <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:e14b06e4a135d9aef8ae78a75c3fb23d983365a6
* Use Cons! in translator instead of Nthudovichenko-r9 days1-1047/+1047
| | | | commit_hash:ec28efb62da755bd372bba274c8eaa0f3f5233f3
* YQL-16277: Implement MKQL provider for ListJoinCoreimunkin9 days3-2/+14
| | | | | | | | | | | #### Implement MKQL provider for ListJoinCore callable ✎ - Added support for compiling the `ListJoinCore` callable within the MKQL (MapReduce Query Language) provider, enabling its use in query execution plans - Implemented the necessary type and lambda building logic to correctly handle input structures, key types, and join operations for the new callable - Updated test configurations to remove xfail status and include new test artifacts for the ListJoinCore functionality, indicating successful integration and testing <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:dbddedaedf354d5e9cf66c69ab3c5f9a3b58cc32
* YQL-16277: Implement type annotation for ListJoinCoreimunkin10 days2-0/+27
| | | | | | | | | | | | | #### Implement type annotation for ListJoinCore ✎ - Added type annotation support for the ListJoinCore operator to enable proper type inference and validation during query compilation - Implemented comprehensive type checking logic that validates input stream structure, key types, and lambda function signatures - Introduced helper functions to validate argument types and ensure compatibility between input streams and premap lambdas - Added support for universal type handling to maintain compatibility with existing code patterns - Included test configuration to verify the implementation and catch potential regressions <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:ea0fd4fbb79c2ccaf60691b6fe648d2657a1fde3
* YQL-21321 deep error check for EnsurePersistablevvvv10 days4-0/+53
| | | | | | | | | | | | #### Deep error checking for EnsurePersistable ✎ - Replaced shallow error checking with comprehensive error detection in `EnsurePersistable` functions to ensure all type annotation errors are properly identified - Introduced new `HasAnyError` function that performs thorough error traversal to catch nested or indirect type errors - Updated test cases to verify error handling behavior and ensure proper error reporting for incompatible types in SQL operations - Enhanced type annotation validation to provide more reliable persistence checks for expression nodes <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:019e5924e7d6bdfea7fa46be3da3615b17727b76
* Fix PayloadRenameOverWindow in overwrite caseaneporada2026-06-114-0/+86
| | | | commit_hash:867eb4209058a877aa60f86931daddf1e25ac600
* YQL-21297: Handle Interval64 in aggregate/windowvitya-smirnov2026-06-1017-0/+422
| | | | commit_hash:10c8d54083c7064e63989ad9c341711fe84409b4
* Intermediate changesrobot-piglet2026-06-091-1/+1
| | | | commit_hash:3bc6b3fe94e77b29cd3130cbfba1e1a04df560ee
* YQL-20234: Fix agg phases over Null and disallow DISTINCTvitya-smirnov2026-06-0833-117/+193
| | | | | | | - Fixed histogram, (bottom/top)(by)?, topfreq, random_(value/sample) over Null - Disabled DISTINCT with agg phases - Refactored code by phase predicates extraction commit_hash:c82f790224e84e542572d5cd270766e3244b4178
* YQL-21292 fixed switching of cycle detector & better diagsvvvv2026-06-0511-1997/+1899
| | | | commit_hash:1a546dc230518eb6846155c77db762e4d83281d5
* YQL-16277: Implement type annotation for SqlCombineimunkin2026-06-0414-9/+214
| | | | commit_hash:7d19863b9dbf9c332d5f8793e47891793fc9091e
* Watermarks: YQL: Fix table hintsvokayndzop2026-06-041-3/+3
| | | | commit_hash:feaa364ef3d3f71bfa70a7d64e2cc6e3854d79a5
* optimize switch over extract membersgrigoriypisar2026-06-042-6/+13
| | | | | Added switch optimization over extract members commit_hash:351e8a76ae8ab7fa4e1539588f0253cf8c31eec2
* YQL-16277: Allow using expressions in equi predicates for COMBINE commandimunkin2026-06-027-8/+84
| | | | commit_hash:3d559c0475767547557bc9401ecd54bb6c531ee0
* hybrid rank callable placeholder KIKIMR-25488gvit2026-06-026-0/+85
| | | | commit_hash:eabe9b632535a58658e2ffa4220cd5782df5b2da
* YQL-21246: Propagate ExtractMembers over TableSourceimunkin2026-05-275-6/+59
| | | | commit_hash:048f5c5f1cf2f507a91c2f4cdb24aec0cc71a004
* Intermediate changesrobot-piglet2026-05-275-3/+23
| | | | commit_hash:0cd6fc0bf2710bf89ee654ef4c3771c74fb493a6
* YQL-20855: Support NULL as a type namevitya-smirnov2026-05-274-12/+11
| | | | commit_hash:e420d2d62e3a77af79abbec946f1008c1fa359c6
* YQL-21111: Introduce feature registryvitya-smirnov2026-05-272-2/+11
| | | | | | | | | | A feature registry lets us to reference features by name, rather than a concrete langver. It makes easier to find feature references and releasing incubating features (under max langver during the development). Features are described at `yql/essentials/data/language/features.json` and the C++ code is generated. The unit `feature.h` also introduces a convenience functions to check a feature availability and emit a standard error message. All features in the translator where replaced with named. commit_hash:c47f540536212a65f7bc5e8dc6051e73d006be8d
* YQL-21152: Support implicit USING at YqlSelectvitya-smirnov2026-05-2735-1/+568
| | | | commit_hash:958a606c2956a1155a487070452acc770455bf66
* Check lambda scope in the linear checkervvvv2026-05-2613-24/+103
| | | | commit_hash:65d1e3053e157375f7a704f1e635467ded5a7ef2
* YQL-21046: Support RANGE window on YqlSelectvitya-smirnov2026-05-2221-288/+671
| | | | commit_hash:2cb369cb2091489e28790782fe9e7679d367fbb3
* Intermediate changesrobot-piglet2026-05-1965-14886/+14987
| | | | commit_hash:5e471728023b5404426daed232c4b00dbba8026c
* YQL-20234: Support Percentile agg phasesvitya-smirnov2026-05-1840-84/+3081
| | | | commit_hash:617264515b5da826be1327cb91b7fc6f6801a835
* Enable ToFlowOverCollect by defaultimunkin2026-05-181-3/+3
| | | | commit_hash:01842381ef76c8906ec3d33c2dcf2d1ffab107f4
* YQL-19936: Introduce YQL_UDF_MINITESTimunkin2026-05-157-111/+248
| | | | commit_hash:abd1dd6b4cccdb62524bbe3eb1cd2c8b2080c88c
* YQL-16277: Implement frontend for COMBINE commandimunkin2026-05-134-0/+71
| | | | commit_hash:5a7847c000c3e5ec4cadf6880184d3eebb26d3b1
* YQL-20234: Support RandomValue agg phasesvitya-smirnov2026-05-1319-0/+1478
| | | | commit_hash:934d9bd00af5903f26796cf610789aaa4a7bf39c
* YQL-21228 fix nulled == over variantsvvvv2026-05-124-0/+34
| | | | commit_hash:72d0f5c9f96875682a71eb11e67783a723112cce
* Enable window new pipeline by defaultatarasov52026-05-0824-1188/+1197
| | | | | | | Canonize more tests Canonize -F "*window*" -F "*tpcds*" tests Enable window new pipeline by default commit_hash:6b5900972f1d065c6956e7ee03e734a80e0c6fa5
* YQL-21210 new lang vervvvv2026-05-079-22/+17
| | | | commit_hash:23ab69eb08e7c8f74df14dfc43e6109479b8dd15
* YQL-19813: Udf implementationatarasov52026-05-075-11/+13
| | | | commit_hash:183e3a952a021c4701c20d6677800f245239d822
* YQL-21136: Fix AvgIf(Interval64) result typevitya-smirnov2026-05-066-0/+287
| | | | commit_hash:13889e43b6156f11945dcee2ab2b59cdb056ce49
* YQL-20234: Support Corr and Cov agg phasesvitya-smirnov2026-05-0625-0/+1994
| | | | commit_hash:cb540d095291ddee3bb60c2d3addee54d23daa1c
* Intermediate changesrobot-piglet2026-05-055-0/+278
| | | | commit_hash:a876b0522ba7aa9c9d4af22e749605f0a57343c2
* YQL-20928: Fix RIGHT JOIN for YqlSelectvitya-smirnov2026-04-3020-20/+391
| | | | | | | | | | Support `FULL JOIN` and fix `RIGHT JOIN` for `YqlSelect`. The problem with `RIGHT JOIN` is that in a situation, when we have `[a, b, c, d, e]` on a stack and are going to "perform" `right`, all of `[a, b, c, d, e]` are marked optional, because the `inputIndex` is equal to stack size. But we must mark only `[a, b, c, d]` as optionals. commit_hash:b78c5bcecba4b736475d3428918c2a3c377373bb
* YQL-21128: create AsOptionalmariibykova2026-04-304-0/+47
| | | | commit_hash:c998ba15db7c4e5137f44904de85755aa7322e8e
* YQL-20928: Support SELECT DISTINCT for YqlSelectvitya-smirnov2026-04-307-18/+80
| | | | commit_hash:af4c180548bf1699ec6afb335167a4220418386c
* YQL-19813: Pass runtime settings to minikql + YT + minirunatarasov52026-04-2912-8/+79
| | | | commit_hash:054395f57e37951159c1184eae2e6d4bc81245f8
* YQL-21048: Support Grouping function at YqlSelectvitya-smirnov2026-04-284-0/+66
| | | | | | 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-2857-31/+1322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-16594 hide warnings in some casesvvvv2026-04-2313-76/+36
| | | | commit_hash:a201cbc3a08b7bad471d4d6a15f3dfc3f63d989b
* YQL-21171: Fix window for V0 syntaxatarasov52026-04-225-0/+110
| | | | commit_hash:be492d367e30019197d70cb6484fd3b1ce6a9481