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 ответов

27 просмотров

а где тут противоречие? если меняете только значение 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
я правильно понимаю что если не останавливать инсе...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта