Size: a a a

pgsql – PostgreSQL

2021 January 12

YS

Yaroslav Schekin in pgsql – PostgreSQL
Viktor Grigorev
Воспроизвести руками пока не получалось, единственная зацепка - если клиент напрямую в базу ходит без посредников, то проблемы нет. Трассировать - что имеется ввиду?
В PostgreSQL — включить полное логирование для таких сессий; в pgbouncer тоже что-то такое было, если не путаю. Ну и так далее.
источник

IZ

Illia Zubovich in pgsql – PostgreSQL
Я так понимаю с foreign tables тут никто не работал?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Illia Zubovich
Может кто то знаком с foreign tables и pg_dump, подскажите. Можно ли сделать exclude foreign data wrappers?
Если в документации pg_dump этого нет, то нет (я не совсем понял, чего Вы хотите).
источник

IZ

Illia Zubovich in pgsql – PostgreSQL
Yaroslav Schekin
Если в документации pg_dump этого нет, то нет (я не совсем понял, чего Вы хотите).
Ну смотрите, при создании foreign таблиц, так же создаются сетинги для подключения к серверу и креды. Так вот вопрос, как сделать так, что бы при pg_dump эти сетинги не попадали в dump?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Illia Zubovich
Ну смотрите, при создании foreign таблиц, так же создаются сетинги для подключения к серверу и креды. Так вот вопрос, как сделать так, что бы при pg_dump эти сетинги не попадали в dump?
Никак. И да, это я выяснил поиском "foreign" в документации pg_dump, что Вам мешало? ;)
источник

П

Павел П. in pgsql – PostgreSQL
Illia Zubovich
Ну смотрите, при создании foreign таблиц, так же создаются сетинги для подключения к серверу и креды. Так вот вопрос, как сделать так, что бы при pg_dump эти сетинги не попадали в dump?
Просто рассуждая:
Внешние сервера создаются от суперюзера, потом уже идут юзер маппинги и раздача прав.

Если делать дамп от владельца базы не-суперюзера, или от роли с правами, например, только на чтение, то наверно и в дампе не будет той инфы которую вы не хотите.
источник
2021 January 13

А

Артём Курилко... in pgsql – PostgreSQL
Yaroslav Schekin
Которую мы должны угадать? ;)

Вместо "all column" либо перечислите все поля, либо используйте "RETURNS SETOF person".
И да, вот это всё:
  LANGUAGE plpgsql VOLATILE
 COST 100
 ROWS 1000;

не стоит писать бездумно, т.к. это уже неправильно — прочитайте, какие опции что означают, и указывайте соответственно.
у меня есть таблица Person c полями id primary key, name character, friends text[]. И я бы хотел получить все значения таблицы, времени в обрез и не успеваю нормально это изучить
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Артём Курилко
у меня есть таблица Person c полями id primary key, name character, friends text[]. И я бы хотел получить все значения таблицы, времени в обрез и не успеваю нормально это изучить
Ну так я уже ответил.
А если Вы не будете показывать ошибки, Вам и отвечать мало кто будет, понимаете?
источник

А

Артём Курилко... in pgsql – PostgreSQL
Yaroslav Schekin
Ну так я уже ответил.
А если Вы не будете показывать ошибки, Вам и отвечать мало кто будет, понимаете?
изменил в соответствии с вашим ответом
CREATE OR REPLACE FUNCTION getValues()
 RETURNS TABLE(RETURNS SETOF Person) AS
$BODY$
BEGIN

   RETURN QUERY    
       SELECT  *
       FROM Person;
 END;
$BODY$
 LANGUAGE plpgsql VOLATILE
 ROWS 1000;
ALTER FUNCTION getValues()
 OWNER TO postgres;
источник

А

Артём Курилко... in pgsql – PostgreSQL
выдает ошибку "ERROR: ОШИБКА:  функции не принимают аргументы-множества
"
источник

KZ

Konstantin Zaitsev in pgsql – PostgreSQL
Артём Курилко
изменил в соответствии с вашим ответом
CREATE OR REPLACE FUNCTION getValues()
 RETURNS TABLE(RETURNS SETOF Person) AS
$BODY$
BEGIN

   RETURN QUERY    
       SELECT  *
       FROM Person;
 END;
$BODY$
 LANGUAGE plpgsql VOLATILE
 ROWS 1000;
ALTER FUNCTION getValues()
 OWNER TO postgres;
зачеем тут plpgsql пишите чистую SQL
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Артём Курилко
изменил в соответствии с вашим ответом
CREATE OR REPLACE FUNCTION getValues()
 RETURNS TABLE(RETURNS SETOF Person) AS
$BODY$
BEGIN

   RETURN QUERY    
       SELECT  *
       FROM Person;
 END;
$BODY$
 LANGUAGE plpgsql VOLATILE
 ROWS 1000;
ALTER FUNCTION getValues()
 OWNER TO postgres;
Я такого не писал. И когда Вы написали вот это "RETURNS TABLE(RETURNS SETOF Person)", Вас ничего не насторожило? ;)
В общем, https://www.postgresql.org/docs/current/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING
И ведь там даже точно такой пример (get_all_foo) есть, что характерно.
источник

.

. in pgsql – PostgreSQL
Всем привет!

Подскажите, можно ли в настройку cron.database_name прописать несколько баз данных для работы cron.job?
источник

p

porsh59 in pgsql – PostgreSQL
SELECT
 a."id"
   a."Name",
   max(b."Module_Num") as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY "Num";

Выше всё работает

Если меняю на:
ORDER BY CAST("Num" as INTEGER);

ОШИБКА:  столбец "Num" не существует

Подскажите пожалуйста как исправить?
источник

RL

Roman Lukianov in pgsql – PostgreSQL
porsh59
SELECT
 a."id"
   a."Name",
   max(b."Module_Num") as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY "Num";

Выше всё работает

Если меняю на:
ORDER BY CAST("Num" as INTEGER);

ОШИБКА:  столбец "Num" не существует

Подскажите пожалуйста как исправить?
а так не подойдет?

SELECT
 a."id"
   a."Name",
   max(b."Module_Num")::integer as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY "Num"
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
porsh59
SELECT
 a."id"
   a."Name",
   max(b."Module_Num") as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY "Num";

Выше всё работает

Если меняю на:
ORDER BY CAST("Num" as INTEGER);

ОШИБКА:  столбец "Num" не существует

Подскажите пожалуйста как исправить?
Или "ORDER BY CAST(MAX(b."Module_Num") AS integer)".
источник

L

Livegeny in pgsql – PostgreSQL
а Module_Num имеет какой тип?
источник

L

Livegeny in pgsql – PostgreSQL
я к чему: max для какого типа ищется?
источник

L

Livegeny in pgsql – PostgreSQL
а то может быть правильно так:
SELECT
 a."id"
 a."Name",
 max(b."Module_Num"::integer) as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY 3;
источник

p

porsh59 in pgsql – PostgreSQL
Roman Lukianov
а так не подойдет?

SELECT
 a."id"
   a."Name",
   max(b."Module_Num")::integer as "Num"
FROM project."Power" a
LEFT JOIN project."View_All_BD" b
on (a."Device_dest" = b."XM_Name")
GROUP by a."id"
ORDER BY "Num"
Спасибо! Ваш вариант работает, буду знать такой оборот. Я дилетант.
источник