Size: a a a

pgsql – PostgreSQL

2021 March 29

YS

Yaroslav Schekin in pgsql – PostgreSQL
Max Chistyakov
Всем привет! Вопрос по эксплэйн: подскажите, как сделать так, чтобы эксплэйн по фукнции выводил работу, которую делают вложенные в неё функции?  Вот набросал пример, как это должно работать:

create table test_plan_with_multifunction(id int );

create function f_test_plan_with_multifunction_1() returns int as $$
insert into mchist.test_plan_with_multifunction(id) values (1) returning id;
$$ language sql;

CREATE OR REPLACE FUNCTION f_test_plan_with_multifunction_2(integer)
RETURNS integer
LANGUAGE plpgsql
AS $function$
begin
if $1 < 10 then
insert into test_plan_with_multifunction(id) select mchist.f_test_plan_with_multifunction_2($1 + 1);
end if;
return $1 * f_test_plan_with_multifunction_1();
end $function$

Я делаю самый информативный эксплэйн:
explain (analyze, costs, buffers, verbose) select f_test_plan_with_multifunction_2(1)

Но он мне выдаёт только работу самой первой вызванной функции:
 Result  (cost=0.00..0.26 rows=1 width=4) (actual time=0.232..0.233 rows=1 loops=1)
  Output: f_test_plan_with_multifunction_2(1)
  Buffers: shared hit=9
Planning Time: 0.032 ms
Execution Time: 0.257 ms

Что хотелось бы на этом сферическом примере: увидеть вызов всех вложенных f_test_plan_with_multifunction_2, как добавляется запись в таблицу test_plan_with_multifunction_2 в результате их работы.
Также подлючил модуль auto_explain,  проверил что появились его настройки, и выставил их:
SET auto_explain.log_nested_statements = ON;
SET auto_explain.log_min_duration = 0;
SET auto_explain.log_analyze  = true;
В EXPLAIN не будет, а вывод auto_explain ищите в логах (ну или в сессии — как уровень сообщений поставите).
источник

KZ

Konstantin Zaitsev in pgsql – PostgreSQL
Chern Oleksander
всем привет, а не подскажите что это за тип поля _varchar.
Именно с нижним подчеркиванием, чёт в доках не нахожу
массив - varchar[]
источник

AG

A G in pgsql – PostgreSQL
Коллеги, приветствую. Помогите пожалуйста. Есть тестовая база (авиаперевозки которая), делаю ее дамп, создаю новую чистую базу из template0, pg_restor'ом восстанавливаю в эту базу, коннекчусь к ней, но она оказывается пустой. No relations found. Но при попытке сделать повторную загрузку говорит, что данные есть и повторно выполнить не может. Что я делаю не так?
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
A G
Коллеги, приветствую. Помогите пожалуйста. Есть тестовая база (авиаперевозки которая), делаю ее дамп, создаю новую чистую базу из template0, pg_restor'ом восстанавливаю в эту базу, коннекчусь к ней, но она оказывается пустой. No relations found. Но при попытке сделать повторную загрузку говорит, что данные есть и повторно выполнить не может. Что я делаю не так?
Заливаете дамп в postgres вместо тестовой БД.
источник

AG

A G in pgsql – PostgreSQL
Михаил Шурутов
Заливаете дамп в postgres вместо тестовой БД.
postgres=# \dt
Did not find any relations.
Неа
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
А что говорит \dn ?
источник

AG

A G in pgsql – PostgreSQL
@Chuguniy
test=# \dn
  List of schemas
  Name   |  Owner
----------+----------
bookings | postgres
public   | postgres
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
A G
@Chuguniy
test=# \dn
  List of schemas
  Name   |  Owner
----------+----------
bookings | postgres
public   | postgres
\dt bookings.*
источник

AG

A G in pgsql – PostgreSQL
Хм. Да, так есть
источник

AG

A G in pgsql – PostgreSQL
А как сделать так, чтобы без уточнения схемы он получал запросы. В оригинальной БД все работает без уточнения
источник

VY

Victor Yegorov in pgsql – PostgreSQL
A G
А как сделать так, чтобы без уточнения схемы он получал запросы. В оригинальной БД все работает без уточнения
смотрите SHOW search_path; и SET search_path TO …; или же ALTER USER SET search_path TO …;
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Search_path
источник

AG

A G in pgsql – PostgreSQL
источник

t

tt.sss in pgsql – PostgreSQL
всем привет. есть 2 таблицы = ticket(..,event_name,..) и event(..,name,..). нужно сделать запрос, который покажет название event с наибольшим количеством проданных билетов. код ниже выдает ошибку вложенных агрегатных функций:

SELECT name, COUNT(event_name) as ticket_count
FROM event
INNER JOIN ticket
ON event.name = ticket.event_name
GROUP BY name
HAVING COUNT(event_name) = (SELECT MAX(COUNT(event_name)));
источник

DR

Darya Rogovaya in pgsql – PostgreSQL
инфа по кол-ву билетов в какой таблице? зачем обе рассматривать, если в таблице ticket есть event name или в обоих таблицах информация о кол-ве билетов?
источник

I

Ins in pgsql – PostgreSQL
Добрый вечер! Подскажите, почему не удаётся установить pgcompacttable?
источник

I

Ins in pgsql – PostgreSQL
yum install perl-Time-HiRes perl-DBI perl-DBD-Pg
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.logol.ru
* epel: mirror.logol.ru
* extras: mirror.logol.ru
* updates: mirror.reconn.ru
Package 4:perl-Time-HiRes-1.9725-3.el7.x86_64 already installed and latest version
Package perl-DBI-1.627-4.el7.x86_64 already installed and latest version
Package perl-DBD-Pg-2.19.3-4.el7.x86_64 already installed and latest version
Nothing to do
источник

I

Ins in pgsql – PostgreSQL
\! pgcompacttable
sh: pgcompacttable: command not found
источник

I

Ins in pgsql – PostgreSQL
и файла нет нигде.
источник

I

Ins in pgsql – PostgreSQL
pgstattuple        | 1.5     | public     | show tuple-level statistics
источник