Size: a a a

pgsql – PostgreSQL

2020 August 12

DG

Denis Girko ☕️ in pgsql – PostgreSQL
И как он попадает в логи?
источник

NB

Nick Belous in pgsql – PostgreSQL
Это вот уже дальше подумать надо)
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Nick Belous
Код функции: https://pastebin.com/KieCP7i6
Код запроса: https://pastebin.com/vikLkiGN
При попытке insert выдает ошибку: [42601] ERROR: query has no destination for result data Где: PL/pgSQL function fn_test() line 8 at SQL statement.
Не подскажете, в чем может быть проблема?
В общем, эта ошибка означает, что SQL-запрос дает какой-то результат, но вы его никуда не записываете.
источник

NB

Nick Belous in pgsql – PostgreSQL
Да, принял. Спасибо большое. Сейчас перепишу
источник

S

Sergey Grachev in pgsql – PostgreSQL
Добрый день. Подскажите, пожалуйста, момент по patroni. Есть кластер patroni из мастера и реплики + etcd. Я с патрони никогда не работал, но сейчас мне нужно создать нового пользователя баз данных. Пользователя можно просто создать через CLI psql его необходимо создавать через конфиг патрони в секции бутстрап?
источник

S

Sergey Grachev in pgsql – PostgreSQL
По идее между мастером и слейвом реплика, и если я создам на мастере пользователя - он подтянется и на реплику. Так же как я создал бы, например, новую БД
источник

S

Sergey Grachev in pgsql – PostgreSQL
но всё равно страшно)
источник

DE

Dmitry Erykin in pgsql – PostgreSQL
создавайте через psql
источник

S

Sergey Grachev in pgsql – PostgreSQL
спасибо
источник

I

Igor in pgsql – PostgreSQL
господа, я пытаюсь дописать один клиент для работы с постгресом и хочу сделать функцию для выполнения одного запроса с разными аргументами. Для этого я хочу в одном соединение послать команду parse и собственно запрос, а затем множество bind с разными аргументами и в конце один execute. Сработает ли такой подход? Или execute должен быть после каждого bind? Сработает ли это с анонимными prepared statement? Может быть есть способ лучше?
источник

AM

Aleksandr Melnikov in pgsql – PostgreSQL
Добрый день! Я не спец в postgresql. Используем для сервера 1с. Стала необходимость создать второй кластер для дифф бэкапов отдельной базы с помощью pgbackrest. Установлена версия pg 11.7. Никак не могу разобраться как от а до я создать кластер и работать с ним. Кластер создал командой - pg_createcluster 11 test -- --data-checksums. После создания не могу к нему подключиться никак из pgadmin4. Как настроить авторизацию? На основном делал так - менял  local all all peer на local all all trust потом перезапуск службы и менял пароль sudo -u postgres psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'passd'" и ставил md5 в pg_hba.conf и опять перезапускал службу.
источник

A

A in pgsql – PostgreSQL
Igor
господа, я пытаюсь дописать один клиент для работы с постгресом и хочу сделать функцию для выполнения одного запроса с разными аргументами. Для этого я хочу в одном соединение послать команду parse и собственно запрос, а затем множество bind с разными аргументами и в конце один execute. Сработает ли такой подход? Или execute должен быть после каждого bind? Сработает ли это с анонимными prepared statement? Может быть есть способ лучше?
Как правило, bind привязывает к параметру значение. Если Вы выполните bind несколько раз, оно у Вас просто перезапишется.
источник

A

A in pgsql – PostgreSQL
Igor
господа, я пытаюсь дописать один клиент для работы с постгресом и хочу сделать функцию для выполнения одного запроса с разными аргументами. Для этого я хочу в одном соединение послать команду parse и собственно запрос, а затем множество bind с разными аргументами и в конце один execute. Сработает ли такой подход? Или execute должен быть после каждого bind? Сработает ли это с анонимными prepared statement? Может быть есть способ лучше?
Вы хотите снизить нагрузку на сеть? Или сделать транзакцию?
источник

I

Igor in pgsql – PostgreSQL
я в основном хочу сэкономить цпу на сервере. И очень надеюсь сэкономить на разборе запроса
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Igor
господа, я пытаюсь дописать один клиент для работы с постгресом и хочу сделать функцию для выполнения одного запроса с разными аргументами. Для этого я хочу в одном соединение послать команду parse и собственно запрос, а затем множество bind с разными аргументами и в конце один execute. Сработает ли такой подход? Или execute должен быть после каждого bind? Сработает ли это с анонимными prepared statement? Может быть есть способ лучше?
> Сработает ли такой подход?

Нет, насколько я помню (если я правильно понял).

> Или execute должен быть после каждого bind?

Да.

> Может быть есть способ лучше?

А почему не выполнить один раз Parse (получить named prepared statement), а потом выполнять bind->execute для него столько раз, сколько нужно?
источник

I

Igor in pgsql – PostgreSQL
я попробую bind-execute, спасибо)
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Igor
я попробую bind-execute, спасибо)
А почему бы вам не посмотреть как работаю обычные prepared стайтменты в libpq протоколе? Как  написал Ярослав - создаёте named prepared statement, потом много раз можно повторять bind-execute. С помощью pgbench-а этого можно добиться используя -M prepared
источник

I

Igor in pgsql – PostgreSQL
"посмотреть как работают" и "протокол позволяет" - совершенно же разные вещи...
источник

I

Igor in pgsql – PostgreSQL
но я понял, что надо делать bind-execute. Я попробую и вернусь, если что)
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
не очень понял... Вряд ли можно используя существующий протокол выжать из него больше, чем libpq
источник