Как изменить формат таблицы sql в Tarantool - PullRequest
3 голосов
/ 17 июня 2020

Я хочу добавить столбец, допускающий значение NULL, в таблицу sql, но изменение формата таблицы приводит к ошибке:

box.execute([[
    CREATE TABLE test(
        "id" INTEGER PRIMARY KEY AUTOINCREMENT,
        "name" TEXT NOT NULL
    )
]])

f = box.space.TEST:format()

table.insert(f, {type='string', name='description', is_nullable=true})

box.space.TEST:format(f)

error: 'Can''t modify space ''TEST'': exact_field_count must be either 0 or >= formatted
    field count'

Так есть ли способ изменить формат таблицы sql?

1 Ответ

3 голосов
/ 17 июня 2020

На данный момент (бета-версия Tarantool 2.4) существует открытый вопрос по этому поводу. Источник проблемы заключается в том, что таблицы, созданные с помощью SQL DDL, содержат ненулевое свойство field_count в метаданных, что запрещает сохранение больших кортежей в пространстве.

Однако, если вы указали field_count при создании пространства или использовал SQL DDL для его создания и решил добавить кортеж / столбец, вот обходной путь для установки значения field_count на 0:

tarantool> box.space._space:update(box.space.YOUR_SPACE.id, {{'=',5,0}})

После этого , вы сможете изменять формат пространства и вставлять кортежи большего размера. Замените YOUR_SPACE фактическим названием вашего пространства. В случае пространства, созданного с помощью SQL DDL, это имя будет SQL именем таблицы заглавными буквами.

...