184 похожих чатов

Всем привет! Появилась нужда поменять тип колонки с UInt32 на

UInt64, документация по ALTER по этому поводу какая-то неоднозначная, вроде написано

When changing the type, values are converted as if the toType functions were applied to them. If only the default expression is changed, the query does not do anything complex, and is completed almost instantly.

при этом написано

Changing the column type is the only complex action – it changes the contents of files with data. For large tables, this may take a long time.

Подскажите как оно на самом деле происходит?

10 ответов

7 просмотров

а где тут противоречие? если меняете только значение DEFAULT — будет быстро, есть меняете значения в колонках — к ним применяется toType и файл колонки переписывается

Anton-Mikhalev Автор вопроса
ivan
а где тут противоречие? если меняете только значен...

По диагонали прочитал. Понял, спасибо. А если поменять тип то вставляемые новые данные во время конвертирования старых уже будут ложиться в UInt64 ?

Anton Mikhalev
По диагонали прочитал. Понял, спасибо. А если поме...

я бы не рисковал вставлять новые данные, пока мутация во всех партах не отработает

Anton-Mikhalev Автор вопроса
ivan
я бы не рисковал вставлять новые данные, пока мута...

Да вроде бы делаем так, но в случае с MATERIALIZE COLUMN

Anton Mikhalev
Да вроде бы делаем так, но в случае с MATERIALIZE ...

не понял при чем тут Materialize проблемы при modify column будут скорее с select, чем с insert

Anton-Mikhalev Автор вопроса
Denny [Altinity]
не понял при чем тут Materialize проблемы при mod...

там сказали про мутации, materialize тоже мутация

Anton Mikhalev
там сказали про мутации, materialize тоже мутация

ну modify column будет ждать на каждом парте пока он обработается предыдущей мутацией.

Anton-Mikhalev Автор вопроса
Denny [Altinity]
ну modify column будет ждать на каждом парте пока ...

я правильно понимаю что если не останавливать инсерты то изменение типа может себя непредсказуемо вести на селектах из этой таблицы?

Anton Mikhalev
я правильно понимаю что если не останавливать инсе...

Нет, инсерты тут ни при чем. Некоторые селекты упадут потому что типы этой колонки в партах отличаются

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Всем привет. Подскажите пожалуйста, как решить вопрос с подсветкой синтаксиса в vscode. Уже и разные плагины установил, и пробовал пошаманить в json settings, ничего не получ...
EEv9ENN 🤖
6
Карта сайта