| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
commit_hash:e9f9f235622634ecdf8656af507d5c1ba8dc0375
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operations
#### Add CREATE IF NOT EXISTS, CREATE OR REPLACE, ALTER/DROP IF EXISTS for SECRET operations ✎
- Introduce support for `CREATE IF NOT EXISTS` and `CREATE OR REPLACE` syntax for secret creation, allowing conditional secret creation based on existence
- Add `ALTER IF EXISTS` and `DROP IF EXISTS` syntax for secret modification and deletion, preventing errors when operating on non-existent secrets
- Extend secret operation parsing to handle optional keywords for conditional operations while maintaining backward compatibility
- Update secret parameter validation and error handling to support new conditional operation modes
- Add comprehensive test coverage for all new conditional secret operations including error cases and expression support
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:5da22cd6acc7bb610627c562280556c497d57a10
|
| |
|
|
| |
commit_hash:9ad4de6a95ef5173379f58dc372a6b208386f34b
|
| |
|
|
|
| |
Copy of https://nda.ya.ru/t/ceJZ5osd7jHYXe.
commit_hash:07f1b0533bb4ba214af84233eee20c113010fa09
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A warning on WITH CTE column names specification and corresponding select
column order mismatch was introduced. It is not complete, because there can be
autogenerated columns (e.g. `column0`, `column1`) and now there is no way to
get if they are autogenerated or user-specified, so there is a regex heuristic now.
Good implementation requires passing a new attribute from a translator and a lot of
recanonization. I can do it, but propose to make it in a separate PR.
Also there was a problem of repetitive warning emission, because of
"Type Annotation (repeat)". A classical approach with `Warn` suffix is not very
useful in SqlSelect, because its type annotation is so huge and has a lot of `Repeat`s.
So I found a solution in introduction of a new attribute `warnings`, where warning
ids are stored in an atom list, so lookup in this list does the deduplication.
commit_hash:e67198223e224ef80ff2bf48d6d9bb7bbe3f264a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Add GENERATED ALWAYS AS syntax support ✎
- Introduces support for GENERATED ALWAYS AS column syntax in CREATE TABLE and ALTER TABLE statements, including both STORED and VIRTUAL variants
- Adds parsing and semantic validation for generated columns, ensuring they are only supported for YDB provider and table types
- Extends SQL grammar with new keywords and rules to handle generated column definitions and expressions
- Implements proper highlighting and formatting for GENERATED ALWAYS AS syntax across different language parsers
- Includes comprehensive test coverage for various generated column scenarios, including expressions, nested paths, and error conditions
- Adds validation to prevent usage in external tables, tablestores, and non-YDB providers
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:cb2260d56b17f0d8e9044dcebc59a25147e85bd6
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Replace MakeLangVersion with features.json-based feature system ✎
- Introduces a new feature system based on `features.json` to manage language version dependencies instead of hardcoded `MakeLangVersion` calls
- Replaces direct language version checks with references to named features defined in JSON configuration
- Adds validation and initialization logic for features to ensure version consistency
- Updates all existing language version checks to use the new feature-based approach
- Centralizes feature version definitions in a single JSON file for better maintainability and clarity
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:fe9823c0442060337a30186fd957ae294f1aa1c2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### `YQL-21404`: Implemented syscache, table, and function call support for collations ✎
- Added support for PostgreSQL collation handling in function calls, enabling explicit collation specification via named arguments
- Implemented syscache and table catalog support for pg_collation system table to provide complete catalog information
- Enhanced type annotation and runtime compilation to properly handle collation OIDs and validate collation names
- Introduced ICU locale collation support with stable OID assignment based on locale position in generated catalog
- Added comprehensive test coverage for collation functionality including standard and ICU locales, collation validation, and error cases
- Extended SQL parsing to support COLLATE clauses and proper collation propagation in function calls
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:e9a32cc848bef7b68b4f57f71a1f5f69e0de9653
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Allow watermark options in YQL ✎
- Extend watermark functionality to support additional configuration options such as watermark granularity and idle timeout
- Modify internal representation to include watermark settings as a separate parameter in watermark generator nodes
- Update SQL parser to recognize and process watermark-related hints with proper validation
- Add validation logic to ensure watermark options conform to expected format and types
- Introduce unit tests to verify the new watermark option parsing and handling
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:76e9ae7e1709a2bcd8cd2ccaaf132ceedac0517f
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Change MATERIALIZE grammar to exclude hints ambiguity ✎
- Restructured the MATERIALIZE statement grammar to resolve ambiguity between table hints and cluster specification by reordering clauses to place hints after the target cluster
- Updated minimum language version requirement for the MATERIALIZE feature to 2026.02
- Modified format tests and validation logic to align with the new grammar structure
- Added tests for single and multiple hints to ensure proper parsing and handling
- Updated canonical test outputs to reflect the new syntax order with hints positioned after the INTO clause and before the ON clause
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:0dec4e34cf45e66962a8e8884c6cee893ad3dfb2
|
| |
|
|
|
|
|
|
|
|
|
| |
#### Enable misc-unused-using-decls check ✎
- Enabled the `misc-unused-using-decls` clang-tidy check to enforce removal of unused using-declarations
- Removed several unused using-declarations across multiple files to comply with the new check
- Updated clang-tidy configuration to activate the check instead of suppressing it
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:5dd7bcf766b71f2041902fbf314e13f2b81d9a4d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Support PruneUnusedColumns in Materialize ✎
- Adds support for the `prune_unused_columns` setting in Materialize operations, enabling optimization to remove unused columns from materialized tables
- Extends the YtProvider to recognize and validate the new PruneUnusedColumns setting for both Materialize and Persist operations
- Implements optimizations to handle column pruning in Materialize operations, including handling ExtractMembers over Materialize cases and multi-usage scenarios
- Updates physical finalizing logic to properly handle Persist operations with PruneUnusedColumns setting
- Adds new test cases to verify the functionality of column pruning in Materialize operations with various filtering scenarios
- Modifies existing tests to reflect changes in behavior and ensure compatibility with the new optimization feature
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:83c18981b8767ac2b789c1b1ae81aaa1ee164a92
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Support EvaluateAtom source in YqlSelect ✎
- Introduces support for `EvaluateAtom` as a source in YqlSelect, enabling dynamic cluster and key resolution at query execution time
- Replaces literal string fields with deferred atom types to allow expression evaluation for cluster and key identifiers
- Adds logic to convert deferred atoms to `EvaluateAtom` nodes during query compilation, supporting complex expressions in table references
- Enables usage of variables and string concatenation in cluster and table path specifications, enhancing query flexibility
- Updates parsing and building logic to handle deferred atoms in table references while maintaining backward compatibility
- Adds new test cases to verify the functionality with variable expressions and dynamic table paths
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:89e4e90dd2d018de373373af560f48a1015e01e8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Introduce multi-column statistics support ✎
- Adds support for defining multi-column statistics in table schemas, allowing users to specify statistics for combinations of columns rather than individual columns
- Introduces new SQL syntax for CREATE TABLE and ALTER TABLE statements to declare statistics with optional type specifications
- Implements validation for statistics definitions, ensuring column references are valid and names are unique
- Extends the query processing pipeline to handle statistics declarations during table creation and modification operations
- Updates syntax highlighting and parsing rules to recognize the new statistics keyword and related constructs
- Adds comprehensive unit tests covering various statistics scenarios including multi-column definitions, type specifications, and validation rules
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:5ca3f8721d3e3660f2bb890c1408e420cf7c3e81
|
| |
|
|
| |
commit_hash:dcbc4a9fa6d4ed8b299b0b755e174f7abf2a8ca5
|
| |
|
|
|
|
|
|
|
|
|
| |
#### Fix TLangVerProxyNode::Clone and add related test cases ✎
- Corrected the `Clone` method implementation to properly handle deep copying of inner nodes using `SafeClone`, ensuring correct node duplication behavior.
- Introduced new test cases and canonical data to validate the functionality of `GROUP BY ROLLUP` with `NULLIF` and `COUNT(DISTINCT)` expressions.
- Added corresponding test configuration and SQL format validation files to support the new test scenario.
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:2f81ec1dbc9dd24149f8553a87e915809c800a74
|
| |
|
|
|
|
|
|
|
|
|
|
| |
#### Support PRAGMA TablePathPrefix in YqlSelect ✎
- Added support for resolving table paths with prefix when using YqlSelect, ensuring that table names are properly qualified with the specified prefix
- Implemented logic to handle both regular and temporary tables correctly, applying the prefix only to regular tables and not to temporary ones
- Enhanced test coverage to verify correct behavior of table path prefixing in various scenarios including SELECT statements and variable assignments
- Updated canonical data and test results to reflect the new functionality and ensure consistent behavior across different execution modes
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:e1569e6986e49af29f1edc130551e330f91bd1f7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
attributes of the topic shared consumer
#### Add support for YQL receive message wait time and delay attributes ✎
- Added support for `receive_message_wait_time` and `receive_message_delay` attributes in YQL topic shared consumer settings
- Implemented validation and storage logic for interval-type consumer settings with proper error handling
- Extended SQL parsing and translation to handle the new consumer attributes during topic creation and modification
- Added unit tests to verify the functionality of the new attributes in both CREATE and ALTER topic statements
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:ff5168f29a3e348820de931e10d2e1d8334a4960
|
| |
|
|
|
| |
https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html
commit_hash:780ff6a63be44998cb2336a05f3dc33e68a676bf
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Support custom rank/score lambdas in HybridRank ✎
- Introduces support for custom fusion lambdas in the `HybridRank` function, allowing users to define their own ranking or scoring logic
- Adds validation for lambda types and ensures proper argument handling with either `RankLambda` or `ScoreLambda` markers
- Implements lifting of fusion lambdas from named arguments struct to positional parameters during SQL parsing
- Enables flexible score computation by accepting user-defined functions that process per-branch values
- Maintains backward compatibility while extending functionality with custom lambda support
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:8ecb852b1a2b307d795cf04fa59b92944d22cb33
|
| |
|
|
|
|
|
|
|
|
|
|
| |
#### Fix inline subquery handling in expressions ✎
- Introduces proper handling of inline subqueries within coalesce expressions and other binary operations to prevent incorrect source allowance
- Ensures that when processing expressions containing inline subqueries, the parser correctly manages the `IsSourceAllowed_` flag to avoid invalid syntax cases
- Adds comprehensive test coverage for various expression types including bitwise, comparison, logical, and conditional operations with inline subqueries
- Implements consistent child expression context propagation to maintain proper scoping and validation rules during parsing
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:2a78a541658269c736c51689c0a734f02b2821f1
|
| |
|
|
|
| |
Extend the SHOW CREATE grammar with a third target (EXTERNAL DATA SOURCE)
commit_hash:bd4e85d867c4ef8bcf2ab99bc8f0326f5b8f8859
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Remove extra system columns handling ✎
- Introduces a unified `RemoveSystemColumns` function to handle removal of both built-in `_yql_` prefixed system columns and additional provider-specific prefixes configured via `ExtraSystemColumnPrefixes`
- Replaces ad-hoc implementations with a centralized utility that properly processes extra system column prefixes using `RemovePrefixMembers` when needed
- Updates all relevant code paths to use the new function, ensuring consistent system column removal behavior across different SQL constructs
- Removes redundant member function `RemoveSystemColumns` and centralizes the logic in a standalone utility function
- Adjusts test expectations to reflect the updated function call stack in generated code, removing explicit mentions of `RemoveSystemMembers` in some warning messages
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:f325c1dcc6db559a038dd68e2d8ec089863297e7
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
https://clang.llvm.org/extra/clang-tidy/checks/performance/move-const-arg.html
This check useful, as it shows, when a `std::move` is useless, so
to expectations of a programmer are not aligned with reality. The
most useful profit is to see `const T&` arguments, that are
potentially can be replaced with `T`.
Also disabled `CheckTriviallyCopyableMove`,
see https://nda.ya.ru/t/Emvgx5Z67fpZY5 why.
commit_hash:c80c264a9774721aabbac85b350ccdbb8b9a39a2
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### SQL Parser and Type Annotation for Materialize Statement ✎
- Added support for the `MATERIALIZE` SQL statement including parser rules and syntax highlighting updates
- Implemented type annotation and validation for the `MATERIALIZE` statement with proper error handling
- Enhanced SQL query processing to handle `MATERIALIZE` statements in various contexts including subqueries and limited views
- Added runtime support for `MATERIALIZE` operations with sort preservation and proper data sink handling
- Integrated `MATERIALIZE` into the SQL grammar and updated completion suggestions
- Added comprehensive unit tests covering various `MATERIALIZE` scenarios and edge cases
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:32b04f93ceadf624b4d39fd6512798f9354bfd80
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
#### Allow Removal of Custom System Prefixes ✎
- Introduces support for removing custom system column prefixes in addition to default ones during SQL translation
- Adds a new configuration option to specify extra system column prefixes that should be stripped from column names
- Modifies the column cleanup logic to handle both default system prefixes and user-defined custom prefixes
- Includes comprehensive unit tests to verify the behavior with configured prefixes and default cleanup
- Ensures backward compatibility by maintaining default system prefix removal when no custom prefixes are configured
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:b88e8ae9e4905fc2e32299ae104042e8ffa64b57
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:3682aa4bbce05c002af982ecdc21ea73784a939e
|
| |
|
|
| |
commit_hash:ec28efb62da755bd372bba274c8eaa0f3f5233f3
|
| |
|
|
|
|
|
| |
- Renamed `TAstNodeFlags::IgnoredContent` to `TAstNodeFlags::UnstableFormat` to better reflect its purpose.
- Removed the `MarkQueryTextAtomWithIgnoredContent` translation setting. The `UnstableFormat` flag is now unconditionally applied to query text atoms during parsing.
- Updated `CheckedFormat` and `ValidateAST` to accept an already parsed AST. Since the flag is now set unconditionally, we can reuse the initial AST for format validation. This avoids re-parsing the original query, reducing redundant AST builds and overall RAM consumption.
commit_hash:bba3e6733d3a9c120cf9724a161e603de0cfc038
|
| |
|
|
| |
commit_hash:77f0128cac891f08ce6c8f9a721f66f69032c44e
|
| |
|
|
|
|
|
|
|
| |
It is a preparation for a hover LSP method implementation. Query parser
and a narrowing visitor are required for the feature, so I extract the
logic to a module `pure_ast` from a `complete`. Also modules `complete`
and `pure_ast` are moved to `sql/v1/ide/completion` and
`sql/v1/ide/pure_ast`.
commit_hash:58bed5f2e39bf4779e28468fe7de1e0c4fb2c4c3
|
| |
|
|
|
|
| |
I forgot to add them, because they are not enumerated in PRAGMAs table,
but handled separately.
commit_hash:9ffa2ddbec1d718f9e31c3b2393fea66cefab3dc
|
| |
|
|
| |
commit_hash:6d140dd812ad22bada6b8680e160b74b599f7032
|
| |
|
|
| |
commit_hash:518ba7be7e53735458da16c55cd105d8e200e50e
|
| |
|
|
| |
commit_hash:426fc64ddb2e4aa97f2a867677c63208562d5e76
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
commit_hash:517966378b05a440a618b6c8a6b4072d46034bd9
|
| |
|
|
| |
commit_hash:2ae25879e9456a1d5852378b7fe0b16d7e6791a5
|
| |
|
|
| |
commit_hash:7d19863b9dbf9c332d5f8793e47891793fc9091e
|
| |
|
|
| |
commit_hash:feaa364ef3d3f71bfa70a7d64e2cc6e3854d79a5
|
| |
|
|
| |
commit_hash:694e0787ced0acde6726ff70192b2a73adc20d81
|
| |
|
|
| |
commit_hash:3d559c0475767547557bc9401ecd54bb6c531ee0
|
| |
|
|
| |
commit_hash:eabe9b632535a58658e2ffa4220cd5782df5b2da
|
| |
|
|
| |
commit_hash:e420d2d62e3a77af79abbec946f1008c1fa359c6
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
https://github.com/ydb-platform/ydb/issues/41267
commit_hash:4b58b88908e09beb14aa1091377b5e099e0420eb
|
| |
|
|
| |
commit_hash:61e5b35c11bc86c4063b8ab5e1abec62e00637f0
|