Error при запросе к pg_stat_statements
sgrinko opened this issue · 4 comments
sgrinko commented
Версия 3.5.1
Собрано из исходников.
bootstrap режим включен.
выполняется запрос ошибочного вида:
2022-07-29 12:25:02.656 MSK [13944()-1] app=[mamonsu],client=[::1(39500)] [mamonsu@mamonsu], [vxid:7/136037 txid:0] [SELECT] ERROR: target lists can have at most 1664 entries
2022-07-29 12:25:02.656 MSK [13944()-2] app=[mamonsu],client=[::1(39500)] [mamonsu@mamonsu], [vxid:7/136037 txid:0] [SELECT] STATEMENT:
SELECT sum(shared_blks_read+local_blks_read+temp_blks_read)*8*1024, sum(shared_blks_written+local_blks_written+temp_blks_written)*8*1024, sum(shared_blks_dirtied+local_blks_dirtied)*8
*1024, sum(blk_read_time)/float4(100), sum(blk_write_time)/float4(100), sum(total_exec_time+total_plan_time-blk_read_time-blk_write_time)/float4(100), sum(wal_bytes), sum(wal_records), sum(wal_fpi),
sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal
_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes)
, sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(w
al_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_reco
rds), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), s
um(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_
fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), s
um(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_
bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes),
sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wa
l_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_recor
ds), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), su
m(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records),
...
sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal
_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes)
, sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(w
al_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_reco
rds), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), s
um(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_
fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), s
um(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_
bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes),
sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wa
l_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi)
FROM public.pg_stat_statements;
2022-07-29 12:25:12.673 MSK [13961()-1] app=[mamonsu],client=[::1(39506)] [mamonsu@mamonsu], [vxid:7/136042 txid:0] [SELECT] ERROR: target lists can have at most 1664 entries
sgrinko commented
Включил режим DEBUG и вот что там происходит:
[DEBUG] 2022-07-29 19:10:41,969 - PGSQL-(host=localhost db=mamonsu user=mamonsu port=5432) - Run:
"SELECT sum(shared_blks_read+local_blks_read+temp_blks_read)*8*1024, sum(shared_blks_written+local_blks_written+temp_blks_written)*8*1024,sum(shared_blks_dirtied+local_blks_dirtied)*8*1024, sum(blk_read_time)/float4(100), sum(blk_write_time)/float4(100), sum(total_exec_time+total_plan_time-blk_read_time-blk_write_time)/float4(100),
sum(wal_bytes), sum(wal_records), sum(wal_fpi) FROM public.pg_stat_statements;"
[DEBUG] 2022-07-29 19:11:42,045 - PGSQL-(host=localhost db=mamonsu user=mamonsu port=5432) - Run:
"SELECT sum(shared_blks_read+local_blks_read+temp_blks_read)*8*1024, sum(shared_blks_written+local_blks_written+temp_blks_written)*8*1024, sum(shared_blks_dirtied+local_blks_dirtied)*8*1024, sum(blk_read_time)/float4(100), sum(blk_write_time)/float4(100), sum(total_exec_time+total_plan_time-blk_read_time-blk_write_time)/float4(100),
sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi) FROM public.pg_stat_statements;"
[DEBUG] 2022-07-29 19:12:42,129 - PGSQL-(host=localhost db=mamonsu user=mamonsu port=5432) - Run:
"SELECT sum(shared_blks_read+local_blks_read+temp_blks_read)*8*1024, sum(shared_blks_written+local_blks_written+temp_blks_written)*8*1024, sum(shared_blks_dirtied+local_blks_dirtied)*8*1024, sum(blk_read_time)/float4(100), sum(blk_write_time)/float4(100), sum(total_exec_time+total_plan_time-blk_read_time-blk_write_time)/float4(100),
sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi) FROM public.pg_stat_statements;"
[DEBUG] 2022-07-29 19:13:42,180 - PGSQL-(host=localhost db=mamonsu user=mamonsu port=5432) - Run:
"SELECT sum(shared_blks_read+local_blks_read+temp_blks_read)*8*1024, sum(shared_blks_written+local_blks_written+temp_blks_written)*8*1024, sum(shared_blks_dirtied+local_blks_dirtied)*8*1024, sum(blk_read_time)/float4(100), sum(blk_write_time)/float4(100), sum(total_exec_time+total_plan_time-blk_read_time-blk_write_time)/float4(100),
sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi), sum(wal_bytes), sum(wal_records), sum(wal_fpi) FROM public.pg_stat_statements;"
таким образом каждую минуту во фразе SELECT добавляется 3 последних поля:
sum(wal_bytes), sum(wal_records), sum(wal_fpi)
и когда число всех полей достигает предела в 1664 entries мы получаем ошибку:
[SELECT] ERROR: target lists can have at most 1664 entries
Скорее всего нет очистки какой-то переменной.
sgrinko commented
Благодарю. Буду смотреть.
sgrinko commented
Всё хорошо, Спасибо