Добавлена команда (hotkey F9) отключение/включение автоматически всплывающих подсказок для лога сервера.
По умолчанию подсказки отключены.
Описание команды храниться в JSON в разделе LogNavigatePanel.
Добавляется после первого открытия окна лога сервера.
1. Добавлена подсветка клиентов c окрытой транзакцией превышающей время idle_in_transaction_session_timeout.
Цвет выбирается в настройках.
2. Добавлен фильтр показывающий только строки с подсветкой.
Добавлен контроль прав доступа на select для таблиц и представления
при ипользовании автодополнения.
Добавлен контроль доступа при пролучении информации о подписках.
Добалена совместимость с более ранними версиями при получении информации
о публикациях.
При получении логов в окне "Статус сервера" добавлена проверка наличия прав на используемые функции при получении файлы логов.
Мелкие правки при работе с автодополнениями в окне запросов.
Информация о блокирующих процессах теперь получается функцией pg_blocking_pids.
Что более быстрый способ.
Так же в статусной строке выводиться время получение информации о процессах БД.
Время выводиться только для окна "Активность".
В окне "Status Server" снижено мерцание при обновлении строк активных процессов.
Была добавлена фиктивная строка в конец списка процессов при использовании фильтра.
В ctlSQLGrid добавлена проверка на совпадение цветов сетки и заголовков строк.
В окне "Status server" при получении информации о процессах добавлен сбор событий ожидания.
Должно быть установлено расширение pg_wait_sampling.
И правильно настроены параметры. Для примера минимальный размер буфера:
при частоте опроса 1 сек (1000мс), количестве процессов 100 (num_p),
pg_wait_sampling.history_period=10
Значение pg_wait_sampling.history_size = 1000 /10 * 100 = 10000
для 3-х кратного запаса можно взять 30000.
Ожидание ClientRead немного изменено и означает, ожидание данных от клиента в НАЧАТОЙ ТРАНЗАКЦИИ.
События ожидания можно сохранить в текстовый файл.
В настройках pgadmin3opt.json можно выбрать цвета для отдельных событий или отключить сбор.
При возникновении ошибки "server closed the connection unexpectedly"
сообщение об этом не выводиться на экран. Т.к. происходило падение pgAdmin3
В frmLog добалены сохраняемые пользовательские фильтры.
По кнопке Add текущий фильтр сохраняется. Имя задается в ComboBox.
В окне "Status Server" устанавливается парамер "SET statement_timeout=10000;"
чтобы избежать зависания функции pg_query_state.
При возникновении ошибки "server closed the connection unexpectedly"
сообщение об этом не выводиться на экран. Т.к. происходило падение pgAdmin3
В frmLog добалены сохраняемые пользовательские фильтры.
По кнопке Add текущий фильтр сохраняется. Имя задается в ComboBox.
В окне "Status Server" устанавливается парамер "SET statement_timeout=10000;"
чтобы избежать зависания функции pg_query_state.
Для окна состояние "Server status" выполняется: set log_min_messages = FATAL
Для Log view добавлена: подержка быстрой навигации: Shift+KeyUP,KeyDOWN
переход на запись с тем же sql_state,
Alt+KeyUP,KeyDOWN - переход на запись с другим sql_state
Добавлена колонка Server - сервер с которого получен лог.
Для окна состояние выполняется: set log_min_messages = FATAL
Для Log view добавлена: подержка быстрой навигации: Shift+KeyUP,KeyDOWN
переход на запись с тем же sql_state,
Alt+KeyUP,KeyDOWN - переход на запись с другим sql_state
Добавлена колонка Server - сервер с которого получен лог.
При нажатии провой кнопкой на любой строке и колонке в окне Активность,
значение под мышью становиться точным фильтром для этой колонки.
Сбросить фильтр можно по кнопке в панели инструментов.
- Для процесссов walsender отображается дополнительная информация, которая получается запросом
select coalesce(sl.xmin,sl.catalog_xmin)::text xmin_slot,':'||slot_name||'['||sl.slot_type||']' slotinfo,'LagSent:'||pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(),coalesce(confirmed_flush_lsn,restart_lsn)))||' LagXmin: '||coalesce(extract(epoch from (pg_last_committed_xact()).timestamp - pg_xact_commit_timestamp(xmin))::int,0)||' s' xminlag,coalesce(extract(epoch from (pg_last_committed_xact()).timestamp - pg_xact_commit_timestamp(xmin))::int,0) xminslotdelta from pg_replication_slots sl;
в поле backend_xmin <- xmin_slot
в поле query <- xminlag
- Добавлена подсветка строки оранжевым цветом, если xminslotdelta >= 1800 секунд