Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PG12 Generated Columns / 8 сообщений из 8, страница 1 из 1
06.08.2019, 20:07
    #39846088
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PG12 Generated Columns
Код: 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
06.08.2019, 20:22
    #39846091
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PG12 Generated Columns
Troglodit,

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

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

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


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