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

Ну, казалось бы, сделайте тогда столбец user_id внутри таблицы folders.
- Если он NULL, то владелец — приложение;
- Если он заполнен, то владелец — юзер (причем не абы какой, а тот, который указан).

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

pgsql – PostgreSQL

Но, тем не менее, "владельцем" может быть ваш "app", а не юзер иногда, верно?

А возможно ли состояние, когда владельца нет, или всегда кто-то есть?

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

pgsql – PostgreSQL

ни то ни другое , pet- проект делаю

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

pgsql – PostgreSQL

У вас зачет или собеседование?

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

pgsql – PostgreSQL

UPDATE sub_locality
SET polygon = public.ST_GeomFromGeoJSON(
jsonb_build_object(
'type', 'Polygon',
'coordinates', coordinates
)::text
)
WHERE coordinates IS NOT NULL;


Error:

Caused by: liquibase.exception.DatabaseException: ERROR: The 'coordinates' in GeoJSON are not sufficiently nested [Failed SQL: (0) UPDATE sub_locality
SET polygon = public.ST_GeomFromGeoJSON(
jsonb_build_object(
'type', 'Polygon',
'coordinates', coordinates
)::text
)
WHERE coordinates IS NOT NULL]



Кто подскажеш в чем проблема?

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

pgsql – PostgreSQL

И да, 35-38 активных — это скорее мало.

Но! Не отменяет того, что результаты по скорости не бьются.

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

pgsql – PostgreSQL

Например, psql -c 'SELECT * FROM pg_stat_activity\gx' >>activity.log каждые 10 секунд.

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

pgsql – PostgreSQL

Локи тоже были строк 20. Каунтерами не смотрел

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

pgsql – PostgreSQL

Как там, большая ли проблема опять тэст запустить?

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

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

смотри , папки могут добавлять users , так и само приложение(владелец) чтобы понимать какие папки отнотсятся к самому приложению а какие к users

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

pgsql – PostgreSQL

не друг , я же сказал забудь про выше указанное сообщение где app_id было , app таблица это само приложение тобишь папки созданные владельцем приложения , есть только один app

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

pgsql – PostgreSQL

Как-то не совсем понятно, но вы можете в таблицу folders добавить два столбца: user_id и app_id, накинуть CHECK чтобы было заполнено только что-то из этого одно (или оба не заполнены). Есть ещё вариант с polymorphic associations — но он дрянной, т.к. там перестают работать FK, лучше не будем его даже обсуждать.

Это если "не охота" делать две доп. таблицы связей, и в случае если максимум один владелец.

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

pgsql – PostgreSQL

Вы это попробовали?

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

pgsql – PostgreSQL

меня заблокировали ?

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

pgsql – PostgreSQL

Ребят , забудьте про выше указанный вопрос , я там кое каике вещи напутал!
Есть users и app тобишь само приложение , и каждому user и app(он у нас один) может принадлежать много folders , но конечно же folder для app не может принадлежать user и наоборот! Какой вариант выбрать ? Певый вариант нравится тем , что не создается доп таблицы. Пожалуйста , если выберите какой либо вариант объясните мне почему вы выбрали именно этот вариант , чтобы я понимал

Первый вариант!

CREATE TABLE folders (
id SERIAL PRIMARY KEY,
folder_name VARCHAR(322) NOT NULL,
description VARCHAR (500),
parent_folder_id INT REFERENCES folders(id),
user_id INT REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)


Второй вариант!

CREATE TABLE folders (
id SERIAL PRIMARY KEY,
folder_name VARCHAR(322) NOT NULL,
description VARCHAR (500),
parent_folder_id INT REFERENCES folders(id),
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)

CREATE TABLE app_folders (
id SERIAL PRIMARY KEY,
folder_id INT UNIQUE REFERENCES folders(id) NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)

CREATE TABLE user_folders (
id SERIAL PRIMARY KEY,
folder_id INT UNIQUE REFERENCES folders(id) NOT NULL,
user_id INT REFERENCES users(id) NOT NULL,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)

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

pgsql – PostgreSQL

И ещё в latencytop, если процессы постгреса открыть, то там +-70% времени выполенения запроса на ожидание освобождения блокировок тратится.

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

pgsql – PostgreSQL

А куда именно смотреть и как правильно "снимать"?
Смотрел активные через count. Цифра была в среднем 35-38 где-то так.

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

pgsql – PostgreSQL

А, то есть это чисто со стороны приложэния.

Тогда всё равно при следующем тэсте нало бы снять несколько раз (пару десятков раз) pg_stat_activity

PS Да и pg_locks заодно. Они мелкие обе, не должно быть большой проблемой.

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

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.

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