<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yql/essentials/sql, branch CLI_2.26.0</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.26.0</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.26.0'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-09-23T16:22:34Z</updated>
<entry>
<title>YQL support fulltext index type</title>
<updated>2025-09-23T16:22:34Z</updated>
<author>
<name>kungasc</name>
<email>kungasc@yandex-team.com</email>
</author>
<published>2025-09-23T16:02:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ca6a4519ce8972481aa637055e8af16874b0c736'/>
<id>urn:sha1:ca6a4519ce8972481aa637055e8af16874b0c736</id>
<content type='text'>
part of https://github.com/ydb-platform/ydb/issues/23384
commit_hash:dc3c331d4054a7739ca632ddce312c985d4b8a13
</content>
</entry>
<entry>
<title>The ability to specify not null, default, family in any order</title>
<updated>2025-09-23T10:05:39Z</updated>
<author>
<name>flown4qqqq</name>
<email>flown4qqqq@yandex-team.com</email>
</author>
<published>2025-09-23T09:50:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=02f803b5fcdd27b7865b981fd880e37c4e021b10'/>
<id>urn:sha1:02f803b5fcdd27b7865b981fd880e37c4e021b10</id>
<content type='text'>
Проблема в следующем.

Есть запрос:

```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
</content>
</entry>
<entry>
<title>YQL-20339 expr high level funcs</title>
<updated>2025-09-22T11:09:17Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-09-22T10:47:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=fcacd313e6f9c84b89fe898b489cd8de620b4cf1'/>
<id>urn:sha1:fcacd313e6f9c84b89fe898b489cd8de620b4cf1</id>
<content type='text'>
init
commit_hash:479f16e9cd255b616573d811910403290f9ef656
</content>
</entry>
<entry>
<title>Do not use DependsOn in TablePath/TableRecord</title>
<updated>2025-09-22T10:29:40Z</updated>
<author>
<name>ziganshinmr</name>
<email>ziganshinmr@yandex-team.com</email>
</author>
<published>2025-09-22T09:41:08Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=36776eedf3d8715a88152f3d1947c5432c5905da'/>
<id>urn:sha1:36776eedf3d8715a88152f3d1947c5432c5905da</id>
<content type='text'>
commit_hash:0241dcec17f0a9b9cf2abfc955a4af169084c387
</content>
</entry>
<entry>
<title>YQL-20339 expr low level funcs</title>
<updated>2025-09-22T08:19:58Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-09-22T07:42:28Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c3b1ec6787697f6bfd4e9af60e6535d6bd7448db'/>
<id>urn:sha1:c3b1ec6787697f6bfd4e9af60e6535d6bd7448db</id>
<content type='text'>
init
commit_hash:ededd246fa929931de6e89fd5f809157d9fe4d16
</content>
</entry>
<entry>
<title>YQL-20339 block function for scoped args</title>
<updated>2025-09-19T08:20:14Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-09-19T07:58:40Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=94dd0145510d010962eb13d586b28ae0f8d4afa0'/>
<id>urn:sha1:94dd0145510d010962eb13d586b28ae0f8d4afa0</id>
<content type='text'>
без langver, т.к. может быть использована для починки оптимизаторов, где при раскрытии List-ов из воздуха рождается Iterator а потом все заканчивается Collect
commit_hash:21cb9b9454cb255b476d50bdb8c5db150cd773fd
</content>
</entry>
<entry>
<title>SeqMode support</title>
<updated>2025-09-18T15:18:54Z</updated>
<author>
<name>udovichenko-r</name>
<email>udovichenko-r@yandex-team.com</email>
</author>
<published>2025-09-18T14:57:07Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9496a91a41299a6736cb805a5f8b9d1d84be5ed5'/>
<id>urn:sha1:9496a91a41299a6736cb805a5f8b9d1d84be5ed5</id>
<content type='text'>
commit_hash:3d0e8bfb46470e6ac36b0d198cfa1723c665f643
</content>
</entry>
<entry>
<title>YQL-20339 expr types &amp; reflection</title>
<updated>2025-09-18T09:48:14Z</updated>
<author>
<name>vvvv</name>
<email>vvvv@yandex-team.com</email>
</author>
<published>2025-09-18T09:35:25Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f5a6d6cdfb9d7c44659f134a53c2fa273ec85599'/>
<id>urn:sha1:f5a6d6cdfb9d7c44659f134a53c2fa273ec85599</id>
<content type='text'>
init
commit_hash:1c72053b3785a26cfde418f28a9d054b5a624627
</content>
</entry>
<entry>
<title>Add new ASYNC REPLICATION's &amp; TRANSFER's options</title>
<updated>2025-09-17T05:33:29Z</updated>
<author>
<name>ilnaz</name>
<email>ilnaz@yandex-team.com</email>
</author>
<published>2025-09-17T05:19:16Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=46014bfd5ee2e771682bfd103a49ba77b9eaaf25'/>
<id>urn:sha1:46014bfd5ee2e771682bfd103a49ba77b9eaaf25</id>
<content type='text'>
Related to
- https://github.com/ydb-platform/ydb/pull/25090
- https://github.com/ydb-platform/ydb/issues/21470
commit_hash:f97a6414f95b706c34a086d4431367909dfd35a4
</content>
</entry>
<entry>
<title>Pass index settings as is</title>
<updated>2025-09-15T07:45:35Z</updated>
<author>
<name>kungasc</name>
<email>kungasc@yandex-team.com</email>
</author>
<published>2025-09-15T07:27:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=814f11de7acf376c60d6943c27b6d2565cf9cec5'/>
<id>urn:sha1:814f11de7acf376c60d6943c27b6d2565cf9cec5</id>
<content type='text'>
It seems that there is no much sence in parsing (vector) index settings, and it is much easier to pass them as is

It will much help in adding fulltext index with dozens of parameters
commit_hash:ba3d7b32d60f54dd6c8f0aba116a10450455d68b
</content>
</entry>
</feed>
