ydb
ydb copied to clipboard
Автоматически конвертировать типы в UPSERT SELECT также как в INSERT
Хорошо бы автоматически конвертировать совместимые типы в типы соответствующих колонок таблицы в запросах UPSERT INTO table SELECT
также как это делается в запросах INSERT
.
Таблица:
CREATE TABLE table4
(
id Uint64,
value Utf8,
PRIMARY KEY (id)
);
Запрос, выполняющийся без ошибок:
INSERT INTO table4 (id, value)
VALUES (123, "test_1");
Запрос фейлится с ошибкой несовпадения типов:
UPSERT INTO table4
SELECT 456 AS id, "test_2" AS value FROM table4 LIMIT 1;
Ошибка:
Type annotation
2:13
At function: KiWriteTable!
3:49
Failed to convert type: List<Struct<'id':Int32,'value':String>> to List<Struct<'id':Uint64?,'value':Utf8?>>
3:49
Consider using explicit CAST or BITCAST to convert from Int32 to Uint64
3:49
Failed to convert 'value': String to Utf8?
3:49
Row type mismatch for table: db.[/ru-central1/b1g7ltu3egp1212u1nca/etnml28to4g9rid6gh2a/table4]