Size: a a a

pgsql – PostgreSQL

2021 March 13

VY

Victor Yegorov in pgsql – PostgreSQL
Artem Yushkov
BEGIN;
SELECT * FROM return_cursor();
FETCH ALL FROM _result;
CLOSE _result;
COMMIT;
не понимаю, что вас в этом выводе смущает?
источник

AY

Artem Yushkov in pgsql – PostgreSQL
получаем два результата - один с вызова функции , когда делаем select, а второй уже с данными. есть ли возможность чтобы транзакция возвращала только данные?
источник

AY

Artem Yushkov in pgsql – PostgreSQL
можно как-нибудь вызвать функцию чтобы она не портила результат? может кроме select-а есть какой-нибудь способ?
источник

JD

James Digriz in pgsql – PostgreSQL
select key, value, count(*) as v
from news, jsonb_each_text (json_custom_new) t

group by key,value

как то можно это оптимизировать
не хочу разворачивать каждый раз
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Artem Yushkov
можно как-нибудь вызвать функцию чтобы она не портила результат? может кроме select-а есть какой-нибудь способ?
а у вас какой клиент?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
James Digriz
select key, value, count(*) as v
from news, jsonb_each_text (json_custom_new) t

group by key,value

как то можно это оптимизировать
не хочу разворачивать каждый раз
а что конкретно оптимизировать? можно избавиться от JSON-а, сделав полноценные колонки
источник

JD

James Digriz in pgsql – PostgreSQL
переформулирую вопрос
можно ли как то заинклудить в индекс jsonb_each_text (json_custom_new)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
James Digriz
переформулирую вопрос
можно ли как то заинклудить в индекс jsonb_each_text (json_custom_new)
не понимаю, в какой индекс? вы про индексы пока ничего не говорили
источник

AY

Artem Yushkov in pgsql – PostgreSQL
Victor Yegorov
а у вас какой клиент?
отлаживаю в dbeaver.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Artem Yushkov
отлаживаю в dbeaver.
не представляю как это сделать. можно сделать do $$begin perform return_cursor();end;$$;, но не уверен, что это вас устроит…
источник

AY

Artem Yushkov in pgsql – PostgreSQL
Victor Yegorov
не представляю как это сделать. можно сделать do $$begin perform return_cursor();end;$$;, но не уверен, что это вас устроит…
благодарю - вроде то что надо
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Alexey Lesovsky
> можно достичь доступности

Кмк, нет, нельзя. Если контейнер где был проброшен глустерфсный том, внезапно упадет (не синхронизировав все то что было в shared buffers в том), то постгрес запустившись в новом контейнере скорей всего обнаружит неконсистентное состояние, запустить аварийное восстановление и там уже как повезет.
Если glusterfs нормально отрабатывает fsync-и, (а она судя по всему их отрабатывает - https://cloud.croc.ru/en/blog/stay-tuned/glusterfs-crash-test-our-experience), то то описанная ситуация с падением контейнера равносильна "обычному" падению постгреса с локальными дисками. При этом ес-но запустится восстановление из WAL-а, но целостность базы должна быть восстановлена и ни одна из закомиченных транзакций не потеряется. Другое дело что это восстановление из WAL-а может занять весьма много времени, в течении которого сервер буден не доступен. В этом случае наличие hot standby реплики позволит запромутить её при падении мастера гораздо быстрее и down time будет меньше.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
звучит обнадеживающе
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
но все же делать реализацию high availability на средствах glusterfs, вместо тех что идут в самом постгресе, мне кажется сомнительной затеей... выхлоп может и будет, но какой ценой?
источник

СА

Самуил Германович Ар... in pgsql – PostgreSQL
стал коать и понял что уже голова дымом пойдёт...
есть: виртуальная линукс машина с убунту20.
на неё установлено последовательно

 sudo apt install postgresql
 sudo apt install postgresql-contrib
sudo apt install postgresql-common
sudo apt-get install libpq-dev
далее: есть пустой проект студии 19 для консольных линукс приложений
просто хелловорлд - компилится.
далее, для работы приложения с постгрессом надо прилинковать (по мануалу) библиотеку libpq.lib
для этого в пустом проекте я линкеру указываю в строке Additional Dependences параметр
libpq.lib;%(AdditionalDependencies);
но линкер мне говорит что такой вайл не найден.
g++ : error : libpq.lib: No such file or directory
я из интереса сделал
sudo find / -name libpq
и он вывел вот это:
/usr/lib/postgresql/12/lib/bitcode/postgres/libpq
/usr/include/postgresql/internal/libpq
/usr/include/postgresql/libpq

libpq.lib во всей системе действительно нет.
хотя установился без ошибок
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Самуил Германович Арканум
стал коать и понял что уже голова дымом пойдёт...
есть: виртуальная линукс машина с убунту20.
на неё установлено последовательно

 sudo apt install postgresql
 sudo apt install postgresql-contrib
sudo apt install postgresql-common
sudo apt-get install libpq-dev
далее: есть пустой проект студии 19 для консольных линукс приложений
просто хелловорлд - компилится.
далее, для работы приложения с постгрессом надо прилинковать (по мануалу) библиотеку libpq.lib
для этого в пустом проекте я линкеру указываю в строке Additional Dependences параметр
libpq.lib;%(AdditionalDependencies);
но линкер мне говорит что такой вайл не найден.
g++ : error : libpq.lib: No such file or directory
я из интереса сделал
sudo find / -name libpq
и он вывел вот это:
/usr/lib/postgresql/12/lib/bitcode/postgres/libpq
/usr/include/postgresql/internal/libpq
/usr/include/postgresql/libpq

libpq.lib во всей системе действительно нет.
хотя установился без ошибок
Скорее всего нужен DEV пакет.

А, не досмотрел про libpq-dev. Т.к. искал глазами что-то вроде postgresql-dev
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
а вы случаем не по виндовому мануалу пытаетесь настраивать? смущает расширение файла .lib, что не характерно для Linux
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
у вас в окружении эти либы прописаны? посмотрите "env" команда
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Alexey Lesovsky
а вы случаем не по виндовому мануалу пытаетесь настраивать? смущает расширение файла .lib, что не характерно для Linux
кстате да. но там похоже в компилятор/линкер такое передается
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
скиньте строку как вы собираете с помощью gcc/g++
источник