pgsql | Unsorted

Telegram-канал pgsql - pgsql – PostgreSQL

9404

Чат русскоязычного сообщества PostgreSQL, здесь мы обсуждаем технические вопросы, для поиска работы и предложения вакансий есть группа https://t.me/pgsqljobs For English discussion visit https://t.me/pg_sql

Subscribe to a channel

pgsql – PostgreSQL

Всем привет)
Вопрос такого плана, с двух инстансов постгреса в контейнерах, можно настроить репликацию логическую в один контейнер на другом сервере? Судя по доке вроде можно, решил уточнить

Читать полностью…

pgsql – PostgreSQL

Коллеги, при обновление базы

 sudo -iu postgres /usr/pgsql-17/bin/pg_upgrade --old-datadir "/data/postgres" --new-datadir "/data/postgres-17/" --old-bindir "/usr/pgsql-14/bin/" --new-bindir "/usr/pgsql-17/bin/"

выходит ошибка
pg_restore: creating ACL "pg_catalog.FUNCTION "close_lb"("line", "box")"
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 15431; 0 0 ACL FUNCTION "close_lb"("line", "box") postgres
pg_restore: error: could not execute query: ERROR: function pg_catalog.close_lb(line, box) does not exist
Command was: GRANT ALL ON FUNCTION "pg_catalog"."close_lb"("line", "box") TO "cits_user";

dnf install -y postgis35_17 postgis35_17-utils
postgis расширение установил для 17 версий, на что еще ругается?

Читать полностью…

pgsql – PostgreSQL

всем привет!
подскажите плиз, пытаюсь подружить Postgres Pro Standart (15 ver) с pgBackRest 2.54.2
получаю сообщение по ошибке архивации валов на s3:

ERROR: [046]: unexpected control version = 1347421460 and catalog version = 202209071
HINT: is this version of PostgreSQL supported?


как можно пофиксить?

Читать полностью…

pgsql – PostgreSQL

Всем привет, подскажите как установить pg_amqp для postgres-17 Oracle linux-9, пробовал

git clone https://github.com/omniti-labs/pg_amqp.git
cd pg_amqp
PATH=/usr/pgsql-17/bin:$PATH make install

Ошибка
src/pg_amqp.c:99:10: warning: 5 enumeration values not handled in switch: 'XACT_EVENT_PARALLEL_COMMIT', 'XACT_EVENT_PARALLEL_ABORT', 'XACT_EVENT_PRE_COMMIT'... [-Wswitch]
99 | switch(event) {
| ^~~~~
src/pg_amqp.c:140:21: error: parameter 'broker_id' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
140 | local_amqp_get_a_bs(broker_id) {
| ^
src/pg_amqp.c:140:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C23 [-Wdeprecated-non-prototype]
140 | local_amqp_get_a_bs(broker_id) {
| ^
src/pg_amqp.c:152:19: error: parameter 'broker_id' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
152 | local_amqp_get_bs(broker_id) {
| ^
src/pg_amqp.c:152:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C23 [-Wdeprecated-non-prototype]
152 | local_amqp_get_bs(broker_id) {
| ^
src/pg_amqp.c:239:23: error: parameter 'broker_id' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
239 | local_amqp_disconnect(broker_id) {
| ^
src/pg_amqp.c:239:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C23 [-Wdeprecated-non-prototype]
239 | local_amqp_disconnect(broker_id) {
| ^
4 warnings and 3 errors generated.
make: *** [/usr/pgsql-17/lib/pgxs/src/makefiles/../../src/Makefile.global:1085: src/pg_amqp.bc] Error 1

Это из того, что не поддерживает 17 версия pg_amq?

Читать полностью…

pgsql – PostgreSQL

Странно вот это выражение звучит. Будто про INTERVAL забыли.

Читать полностью…

pgsql – PostgreSQL

Всем спасибо за участие и помощь!

Читать полностью…

pgsql – PostgreSQL

Я не понимаю, что такое "рабочее" время.

Читать полностью…

pgsql – PostgreSQL

в дальнейшем, нужно определить только рабочее время - это уже другая задача.

Читать полностью…

pgsql – PostgreSQL

Зачем, для решения какой задачи? ;)
Это время и так изоморфно тому времени, которое было у пользователя (точнее, это буквально одно и то же).

Читать полностью…

pgsql – PostgreSQL

Почему? Это offset, который был у пользователя, от которого приехало значение временной метки (и оно никак не связано с вами, и никак не связано с меткой в формате UTC/GMT с нулевым смещением, т.е. про него можно "забыть").

Пример:
Сейчас я в Нью-Йорке, у меня локальное время 05:17 утра (и оно в формате GMT-04:00, таков уж там часовой пояс). Я пришел к вам в сервис и он записал моё время. Получилось:
created_on = 09:17, offset = GMT-04:00

Однако, если вы created_on приведете к timestamptz корректно и выведете у себя, вы получите 12:17, т.е. московское время (GMT+03:00).

Читать полностью…

pgsql – PostgreSQL

Я ожидаю, что к столбцу created_on прибавиться время как в offset. Если посмотреть на стручку где оффсет +7, то там тоже прибавляет +3 часа

Читать полностью…

pgsql – PostgreSQL

Ну смотрите, мы с помощью AT TIME ZONE 'UTC' показываем, что в этом столбце с типом timestamp хранится временная метка в формате UTC/GMT. После оного приведения этот столбец (ну, текущее выражение, точнее) становится типа timestamptz и далее он выводится на клиент в локальном формате времени (в вашем случае по Москве, т.е. в UTC/GMT+03) — стандартное поведение для типа timestamptz.

Иначе говоря, то, что везде "прибавляется 3 часа" — так и должно быть на вашем клиенте, ведь теперь время отображается не как UTC, а как UTC+3 (в локальном для вас формате).

Читать полностью…

pgsql – PostgreSQL

не знал. =) должно подойти.
я краем мозга вспомнил линуксовый tr, когда возился, но тут же и забыл.

Читать полностью…

pgsql – PostgreSQL

И как насчет:

SELECT translate(ts, '+-', '-+')


;)

Читать полностью…

pgsql – PostgreSQL

и это поправить у меня получилось только через уродливый CASE. пример:

postgres=# WITH tz AS (SELECT unnest(ARRAY['GMT-03:00', 'GMT+08:00']) AS offset) SELECT CASE WHEN "offset" ~ '^GMT\+' THEN replace(tz."offset", '+', '-') WHEN "offset" ~ '^GMT\-' THEN replace(tz."offset", '-', '+') END FROM tz;
replace
-----------
GMT+03:00
GMT-08:00
(2 rows)

Time: 0,986 ms

Читать полностью…

pgsql – PostgreSQL

я б попробовал убрать права на эту ф-цию до апгрейда.
вон тут у народа что-то похожее
https://postgrespro.com/list/thread-id/2634400

Читать полностью…

pgsql – PostgreSQL

Написать патч и скомпилировать.

Читать полностью…

pgsql – PostgreSQL

Знаете, ставить расширение 6-летней свежести на PostgreSQL 17 наверное, и правда плохая идея (и вообще ставить то, что не поддерживается авторами хотя бы для какой-то версии).

Рекомендация: забыть про это расширение (несмотря на то, что сторонние разработчики предлагали фикс подобной проблемы).

Читать полностью…

pgsql – PostgreSQL

Не бывает смещения часового пояса больше чем часов в сутках, interval тут чрезмерен (16 байт против 8 байт, в т.ч.).

upd.: Хотя, я проворонил отрицательные смещения, в этом смысле interval подойдет лучше, да (иначе придется нормировать по минимальному часовому поясу UTC-12:00, что уже в тип time не влезает в худшем случае; ну, или отдельно хранить знак в виде bool).

Читать полностью…

pgsql – PostgreSQL

Есть INTERVAL

Читать полностью…

pgsql – PostgreSQL

Ок, тогда в целом подойдет костыль выше, да.

Правда я рекомендовал бы вам заменить тип столбца offset на, напр., time (подразумевая, что это смещение от GMT/UTC), раз уж нужно знать какой у пользователя часовой пояс. Потом бы просто можно было б делать аля:

SELECT created_on + offset;

Что "нужным образом" (для вас) сработало бы для случая, когда created_on это тип timestamp.

Читать полностью…

pgsql – PostgreSQL

в целом этот скрипт работает c.created_on::timestamp AT TIME ZONE 'GMT' AT TIME zone translate (tz.offset, '+-','-+')

Читать полностью…

pgsql – PostgreSQL

set timezone TO 'GMT';

Читать полностью…

pgsql – PostgreSQL

Мне московское время не нужно, нужно время места где был пользователь

Читать полностью…

pgsql – PostgreSQL

прибавляет ваш часовой пояс ?

Читать полностью…

pgsql – PostgreSQL

Что вас смущает? Вместо немого скриншота всегда рекомендую указывать ожидаемый результат и почему вы его ожидаете (а скриншот зачтем за "актуальный").

Читать полностью…

pgsql – PostgreSQL

У вас created_on это столбец timestamp или timestamptz?

Читать полностью…

pgsql – PostgreSQL

Он всем прибавляет 3 часа....

Читать полностью…

pgsql – PostgreSQL

Коллега уверяет, что в столбце created_on уже приведенное время к UTC/GMT, т.е. столбец offset вообще не требуется для работы с этим временем как таковым.

Читать полностью…

pgsql – PostgreSQL

Хм, так тогда достаточно сделать:

created_on AT TIME ZONE 'UTC'


Казалось бы. А про столбец offset забыть — он не нужен ;)

Читать полностью…
Subscribe to a channel