| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### 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
|
| |
|
|
| |
commit_hash:3682aa4bbce05c002af982ecdc21ea73784a939e
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
commit_hash:6d140dd812ad22bada6b8680e160b74b599f7032
|
| |
|
|
| |
commit_hash:feaa364ef3d3f71bfa70a7d64e2cc6e3854d79a5
|
| |
|
|
| |
commit_hash:e420d2d62e3a77af79abbec946f1008c1fa359c6
|
| |
|
|
| |
commit_hash:5a7847c000c3e5ec4cadf6880184d3eebb26d3b1
|
| |
|
|
| |
commit_hash:a0f516a47f201ca41f812f97fa2ea198cb33edd4
|
| |
|
|
| |
commit_hash:c01e7f189b7eec0291cbda0e09b815d7bca8ecc9
|
| |
|
|
| |
commit_hash:153e546ce3d52153d488b9b36d63c3b44f5a959f
|
| |
|
|
| |
commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
|
| |
|
|
| |
commit_hash:8e8b69c49159fb6ea51c1f9cd0f49e8d8d52f5ee
|
| |
|
|
| |
commit_hash:1465f98162ca2b71d5b4c0d8088af25f68cd1d3b
|
| |
|
|
| |
commit_hash:7c1445375e838a9327006528cb455c9899e9b32d
|
| |
|
|
| |
commit_hash:74d8018418c82541d856eda2696500c0718d082b
|
| |
|
|
|
|
|
| |
Task in github: <https://github.com/ydb-platform/ydb/issues/27470>
RFC: <https://github.com/ydb-platform/ydb-rfc/blob/main/cs_column_encodings.md>
commit_hash:da6b89209ce4ecc2a140507212dfedfc35bc5ccb
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Can not enable an option `--test-double-format` because a lot of Query
Replay failures which are hard to fix, so introducing this option to
temporarly relax the formatter requirements to enable at least such
check on a Query Replay.
It is not enabled in tests, because a `--test-double-format` is already
enabled there and it is more strict.
Also fixed a bug with multiline comments NL preservation.
commit_hash:3c42dcf4b0b00026a97643a0031d2a3a8a319a1a
|
| |
|
|
|
| |
https://clang.llvm.org/extra/clang-tidy/checks/modernize/raw-string-literal.html
commit_hash:80a511a46b35539fa1f834d4fb5de452ccfbe0ac
|
| |
|
|
| |
commit_hash:a66d1ef65085fb8e8bfe860b8b7a95cbc5793851
|
| |
|
|
| |
commit_hash:4939dfad654f18bb31e40711ee0c39063889f17b
|
| |
|
|
|
| |
That PR produced much more bad double formattings.
commit_hash:b8340c9b685ea4ab790a72d98f616e1aa2d93830
|
| |
|
|
| |
commit_hash:d7143d999c6383c49b3e32ea07930fde8292ce15
|
| |
|
|
|
| |
Behavior is strange, but it is at least converges now.
commit_hash:4e81b1ec46824fb7a1d65fa5132aab99634378bd
|
| |
|
|
|
|
|
|
|
| |
The problem is that a space (`' '`) followed by a openning brace (`(`)
were always unconditinally inserted, which is true when it comes just
after an assignment (`'='`), but does not work correctly, when an `=`
is followed by a comment, so the brace-wrapped select statement should
start on a next line.
commit_hash:23521a65125e41f199a6244c5501fc17c5b01b85
|
| |
|
|
|
|
|
|
|
| |
Задача связана с работами по <https://nda.ya.ru/t/ojQZrhvH7VKBSc>
Суть: Необходимо в CDC-топиках сохранять информацию о сквозной трассировке, но эта фича должна быть опциональной.
Также задание связано c <https://nda.ya.ru/t/N-MMqlP17VKBfi>
commit_hash:4f9d0763a4b927e83def862b7bcb6f6739f952cc
|
| |
|
|
|
| |
<https://github.com/ydb-platform/ydb-rfc/pull/239>
commit_hash:b74e2a178f47f429e36d8bc30049862885190bd3
|
| |
|
|
|
|
|
|
|
| |
Задача связана с работами по <https://github.com/ydb-platform/ydb/issues/11405>
(Необходимо в CDC-топиках сохранять информацию о пользователях и TTL-операциях)
Косвенно, задание связано с
commit_hash:15dfe1da2f5690ae90c8ffe2043b7f4cc27006f7
|
| |
|
|
|
| |
Also add a newline after a trailing comma.
commit_hash:215a5e5e506e50e197ebf776cdcb89c9d2d0db92
|
| |
|
|
|
|
|
|
| |
`ALTER TABLE table_name COMPACT [WITH (CASCADE = false|true, MAX_SHARDS_IN_FLIGHT = N)];`
RFC: https://nda.ya.ru/t/3sKflLJJ7U6Jyv
Github Issue: https://github.com/ydb-platform/ydb/issues/33852
commit_hash:b78d125282c378a06d0f743684b13782c8849422
|
| |
|
|
|
|
|
|
| |
- https://clang.llvm.org/extra/clang-tidy/checks/misc/definitions-in-headers.html
Just applied auto-fix. Maybe it is worth to manually move functions to `.cpp` files,
but I was too lazy. I will do it, if you wish.
commit_hash:6ba1b2f014eb1f25dede1299f073e33d823b4ddf
|
| |
|
|
| |
commit_hash:3fc8faa25000417fd21875d20df0ff007764c7ea
|
| |
|
|
| |
commit_hash:862362f17e02a0d50b3a568aedc0c490c05ea9a7
|
| |
|
|
| |
commit_hash:4d77ad10fd4db303459ec4e45e139967c7fc8196
|
| |
|
|
| |
commit_hash:4a122e23fcc9c4b652ec7eae7cb546501a33748c
|
| |
|
|
| |
commit_hash:ac7d78346879d05bd141d6b9b207cba179a87165
|
| |
|
|
|
| |
Then I will remove an `Antlr4Parser` usages from the YDB.
commit_hash:0183482e46de023f71698e03db9a0c51ef10fe98
|
| |
|
|
| |
commit_hash:f6dfab4a7add0379cacefb943c702ae065750654
|
| |
|
|
|
| |
Task: <https://github.com/ydb-platform/ydb/issues/27621>
commit_hash:84cb8e3fcab66d48c1861e63fc9d33afb06478dc
|
| |
|
|
|
|
|
|
| |
It is not convinient to grep "You should change implementation according
to grammar changes" every time you need it during new translation
feature. AI does not always suggests it. More convinient is to use
just `Y_UNREACHABLE` as `ALT_NOT_SET` is actually unreachable.
commit_hash:132f264e9f781b8c2433fb1f12374f7684466370
|
| |
|
|
| |
commit_hash:6c5c638d87eb41018d637f1535af104fac16e51c
|
| |
|
|
| |
commit_hash:cbb6bbe39c72e2322d57a38ded86cda07c68a419
|
| |
|
|
| |
commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
|
| |
|
|
| |
commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
|
| |
|
|
|
| |
KIKIMR-24054
commit_hash:b7c840d6f25ec732f818f8760e8ce8819393901e
|
| |
|
|
|
|
|
|
|
|
|
| |
- Alter grammar to support inline subqueries.
- Support inline subqueries in `sql/v1` (translator).
- Introduce `sql/v1/proto_ast/parse_tree.h` for reusable parse tree predicates.
- Support inline subqueries in `sql/v1/format`.
- Support inline subqueries in `sql/v1/complete`.
- Add some SQL-tests.
- Pass all tests.
commit_hash:075b2240778d071e1c7542f912d3cc83019ef849
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Проблема в следующем.
Есть запрос:
```sql
CREATE TABLE series_with_families (
series_id Uint64,
title Utf8,
series_info Utf8 NOT NULL FAMILY family_large,
release_date Uint64,
PRIMARY KEY (series_id),
FAMILY default (
DATA = "ssd",
COMPRESSION = "off"
),
FAMILY family_large (
DATA = "rot",
COMPRESSION = "lz4"
)
);
```
Такой запрос является на данный момент неверным на уровне грамматики. Ругается на строку \``series_info Utf8 NOT NULL FAMILY family_large`\` Однако запрос, в котором NOT NULL и FAMILY поменяны местами, отрабатывает корректно:
```sql
CREATE TABLE series_with_families (
series_id Uint64,
title Utf8,
series_info Utf8 FAMILY family_large NOT NULL,
release_date Uint64,
PRIMARY KEY (series_id),
FAMILY default (
DATA = "ssd",
COMPRESSION = "off"
),
FAMILY family_large (
DATA = "rot",
COMPRESSION = "lz4"
)
);
```
В этом Pull Request'е я меняю грамматику таким образом, чтобы была возможность задавать "опции" колонки (DEFAULT, NOT NULL, FAMILY).
Особое внимание стоит обратить внимание на тест `CreateTableDefaultAndNotNullInOrderSpace`: в нем показывается, что можно использовать синтаксис
```sql
CREATE TABLE tbl (
k Uint64,
v Bool DEFAULT false NOT NULL,
PRIMARY KEY (k)
);
```
И такое поведение означает именно DEFAULT (false NOT NULL), то есть DEFAULT true. Дело в том, что выражение "false NOT NULL" эквивалентно "false IS NOT NULL", что является, безусловно, истиной. Ровно для того, чтобы была вообще возможность одновременно указать и default, и not null, было добавлено расширение синтаксиса: теперь можно указывать скобки для указания опций столбца, а сами опции внутри них можно перечислять через запятую:
```sql
CREATE TABLE tbl (
k Uint64,
v Bool (DEFAULT false, NOT NULL),
PRIMARY KEY (k)
);
```
Запрос выше означает, что столбец должен по умолчанию заполняться false'ами, но при этом он должен быть NOT NULL.
commit_hash:67cc27a5fe6ae73f8725b051b232c2ca0d1ec54f
|
| |
|
|
| |
commit_hash:3b74a89e67fd29fdced780847365861db726b687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Добавлен синтаксис (переиспользован код для inline action):
```
CREATE [OR REPLACE] STREAMING QUERY [IF NOT EXISTS] query_name [WITH (
key = value
...
)] AS DO BEGIN
...
END DO;
ALTER STREAMING QUERY [IF EXISTS] query_name [SET(
key = value
...
)] [AS DO BEGIN
...
END DO];
DROP STREAMING QUERY [IF EXISTS] query_name;
```
commit_hash:29fa6aa7e61ecf45112480fe3c1df8fab542354e
|
| |
|
|
|
|
|
|
|
| |
Когда-то давно (когда еще YQL жил в github) была поставлена задача - поддержать SET/DROP NOT NULL на колонку. DROP NOT NULL был сделан и давно уже существует в main: <https://github.com/ydb-platform/ydb/pull/6342>.
Однако с SET NOT NULL возникли определенные сложности, поэтому был сделан отдельный пулл реквест: <https://github.com/ydb-platform/ydb/pull/6341>. Как видно, ПР так и не вмержили по причине увольнения автора кода. Недавно задача всплыла вновь, поэтому надо доделать.
В этом пулл реквесте добавляется код в грамматику YQL новое выражение - `ALTER TABLE t ALTER COLUMN c SET NOT NULL`, которая добавляет ограничение `NOT NULL` на колонку.
commit_hash:f310061b13666418c46309ea32032fbce68fb865
|