Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Поддержать default значения колонок для колоночных таблиц #15973

Open
dorooleg opened this issue Mar 19, 2025 · 2 comments · May be fixed by #16088
Open

Comments

@dorooleg
Copy link
Collaborator

Пример запроса:

CREATE TABLE test (
    key String NOT NULL,
    value String DEFAULT "test_default_value",
    PRIMARY KEY(key)
) WITH (
    STORE=COLUMN,
    AUTO_PARTITIONING_MIN_PARTITIONS_COUNT=1,
    AUTO_PARTITIONING_MAX_PARTITIONS_COUNT=1
)

После этой вставки в колнке value должно быть записано "test_default_value"

UPSERT INTO test (key) VALUES("a");
SELECT * FROM test
  1. Сейчас можно запретить такой синтаксис для колоночных таблиц (иначе поведение не ожидаемое)
  2. Можно поддержать такую фичу
@dorooleg
Copy link
Collaborator Author

dorooleg commented Mar 19, 2025

Уже есть некоторый задел в этом месте.
Но не хватает кода при перекладывании в ModifyScheme:

  1. rpc_create_table
  2. перекладывание в gateway
  3. rpc_log_store

И вероятно еще на стороне CS нужны доработки

@dorooleg dorooleg linked a pull request Mar 24, 2025 that will close this issue
@dorooleg
Copy link
Collaborator Author

  1. Похоже rpc_alter_table сломан для колоночных таблиц Здесь ожидается посылка сообщения для column table
  2. В TTableDescription не поддержаны default value, но на server side есть поддержка. Это не критично
  3. Самое не приятное что TTableDescription можно построить из Ydb::Table::DescribeTableResult. И тут получается что можно получить DescribeTableResult из таблицы с default value и на основе него попробовать создать другую таблицу, но в этом месте default value тоже потеряются
  4. На уровне kqp информация о default value даже не парсится из ast в случе ColumnStore и AlterColumnTable чтобы проставиться в TTableMetadata

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant