powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PG12 Generated Columns
8 сообщений из 8, страница 1 из 1
PG12 Generated Columns
    #39846088
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE test(
    ...,
    a int,
    b int 
    c GENERATED ALWAYS AS (a+b) STORED
);


2 вопроса:
1. Можно ли сделать индекс по вычисляемому полю?
2. Можно ли использовать для вычисляемого поля в выражении функции?
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846091
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Troglodit,

1. да. API индексов вообще не очень знает, generated колонка или обычная. А вот с virtual - интреснее, потому реализацию virtual решили отложить и сделать в 12 только stored
2. ограничения на выражение вроде как вполне доходчиво задокументированы, я когда делал review этих патчей - документация была. Вот она: https://www.postgresql.org/docs/12/ddl-generated-columns.html Про возможность использовать функции явным текстом указано, но только immutable. В общем как для функциональных индексов.
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846092
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij1. да. API индексов вообще не очень знает, generated колонка или обычная. А вот с virtual - интреснее, потому реализацию virtual решили отложить и сделать в 12 только stored
коряво под вечер выражаюсь. Для virtual колонок поддержка индексов тоже вся возможна и была в предложенных патчах реализована, интересные вопросы были про логическую репликацию.
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846159
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,
Спасибо за ответ.
У меня задача слить с нескольких баз одну таблицу через лог. репликацию, но при этом теряется уникальный ключ.
Вот и хотел сделать суррогатный вычисляемый на основе данных таблицы и внешний вычисляемый.
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846201
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Troglodit,

учитывайте только что 12 ещё бета и никто не обещает что с беты на релиз можно будет обновиться без необходимости делать initdb заново. Могу сказать конкретнее - завтрашний релиз beta3 несовместим с datadir от beta2.
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846634
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

Спасибо, но мне пока только разметить базу и прикинуть подводные камни, в прод пойдет не раньше релиза PG12.
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39846874
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Troglodit
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE test(
    ...,
    a int,
    b int 
    c GENERATED ALWAYS AS (a+b) STORED
);


2 вопроса:
1. Можно ли сделать индекс по вычисляемому полю?
2. Можно ли использовать для вычисляемого поля в выражении функции?

(2) перечитал, не понял, что там сказано?
...
Рейтинг: 0 / 0
PG12 Generated Columns
    #39847237
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,
Я даже не знаю как перефразировать.
У вас есть вычисляемое поле, оно вычисляется по формуле.
Внутри формулы могут быть функции только со свойством immutable.
Выше Melkij уже дал полный развернутый ответ.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PG12 Generated Columns
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]