Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Trigger на pg_stat_statements / 4 сообщений из 4, страница 1 из 1
12.12.2018, 12:59
    #39746615
rinace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger на pg_stat_statements
Почему то не работает банальная конструкция
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
CREATE OR REPLACE FUNCTION pstat.pg_stat_statements_insert_trigger() RETURNS trigger AS
$$
BEGIN
  INSERT INTO pstat.sql_base_set ( id ) VALUES ( 1 );
  RAISE EXCEPTION '***TEST***' ;
  RETURN NULL;
END;
$$ LANGUAGE plpgsql;

DROP TRIGGER pg_stat_statements_insert_trigger ON pg_stat_statements ; 

CREATE TRIGGER pg_stat_statements_insert_trigger
INSTEAD OF INSERT OR UPDATE ON pg_stat_statements
FOR EACH ROW EXECUTE PROCEDURE pstat.pg_stat_statements_insert_trigger();

postgres=# select pg_stat_statements_reset() ; 
 pg_stat_statements_reset 
--------------------------
 
(1 row)

postgres=# select count(*) from wafer_data ;
  count  
---------
 2000002
(1 row)

postgres=# \g  
  count  
---------
 2000002
(1 row)

postgres=# select count(*) from pg_stat_statements ;
 count 
-------
     2
(1 row)

postgres=# select count(*) from shipment ;
 count 
-------
  2000
(1 row)

postgres=# select count(*) from pg_stat_statements ;
 count 
-------
     4
(1 row)

postgres=# select * from pstat.sql_base_set ; 
 id | mean_time | max_time | plan 
----+-----------+----------+------
(0 rows)


Или я где-то позорно ошибаюсь, или просто в принципе нельзя использовать триггер с представлением pg_stat_statements;
...
Рейтинг: 0 / 0
12.12.2018, 13:39
    #39746645
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger на pg_stat_statements
rinace,

ну так конечно триггер на вью не будет работать. он и создался то только потому что его как instead of объявили. т.е. если сделать запрос insert into pg_stat_statements - то он сработает. но такого база делать сама не будет. это вью - просто обертка над функцией pg_stat_statements().
...
Рейтинг: 0 / 0
12.12.2018, 13:41
    #39746647
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger на pg_stat_statements
rinace,

Нельзя конечно.
Посмотрите на определение \d+ pg_stat_statements
это просто выборка из сишной функции pg_stat_statements()
которая до кучи еще и внутри просто текстовый файл читает где эта вся стата копится.
Там нет никаких insert/update/delete...

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
12.12.2018, 13:41
    #39746648
rinace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger на pg_stat_statements
Alexiusrinace,

ну так конечно триггер на вью не будет работать. он и создался то только потому что его как instead of объявили. т.е. если сделать запрос insert into pg_stat_statements - то он сработает. но такого база делать сама не будет. это вью - просто обертка над функцией pg_stat_statements().
Примерно этого и опасался.
Спасибо .
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Trigger на pg_stat_statements / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]