From ae8ca667e72029e93de88db268090a819aefb01b Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Sat, 11 Apr 2020 20:55:49 +0500 Subject: [PATCH] multicolumns sort query result, vacuum opt Add multicolumns sort Vacuum opt and reindex opt --- README.md | 19 ++- Release_(3.0)/pgAdmin3.exe | Bin 10782720 -> 10810880 bytes ctl/ctlSQLGrid.cpp | 98 +++++++++++++++- ctl/ctlSQLResult.cpp | 189 ++++++++++++++++++++++++++++-- frm/frmMaintenance.cpp | 34 ++++-- include/ctl/ctlSQLGrid.h | 1 + include/ctl/ctlSQLResult.h | 11 ++ include/version.h | 2 +- ui/frmMaintenance.xrc | 16 ++- ui/xrcDialogs.cpp | 233 +++++++++++++++++++++---------------- 10 files changed, 478 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 276cff8..fb30381 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,12 @@ This text Russian language. 10.09.2019 Окно Server Status - * иправлено падение окна Server Status при аварийном завершении СУБД + + * исправлено падение окна Server Status при аварийном завершении СУБД - добавлена расцветка процессов которые блокируют другие процессы + Окно Query + - добавлен фильтр в окно результатов запроса. Активируется двойным щелчком мыши по ячейке, текст которой и будет являтся условием фильтра. Снимается из контекстного меню. При нажатом Alt условие отбора инвертируется (Скрыть строки содержащие значение). - Для избегания ожиданий при получении информации об объектах. Выставляется клиентский параметр SET lock_timeout=15000 для служебного соединения. @@ -95,6 +98,20 @@ This text Russian language. - добавлен вывод CREATE STATISTICS для таблиц * исправлен вывод SQL команды для создания задания для комманд заданных в виде массива +28.03.2020 + - добавлена информация о фрагментации таблицы (cfs_fragmentation) + * убрано предупреждение о версии сервера + +11.04.2020 + - добавлена многоколоночная сортировка результатов выполнения запроса. Порядок сортировки колонок и направление отмечается цветными индикаторами (RED,YELLOW,GREEN,BLUE,GREY). + Максимальное число колонок сортировки 5. Для выполнения сортировки нужно щелкнуть по заголовку колонки удерживая клавишу Alt. + - добавлены новые опции для Vaccum ( DISABLE_PAGE_SKIPPING ) и Reindex ( CONCURRENTLY ) + * ускорена работа фильтра в окне результав запроса. + + + + + diff --git a/Release_(3.0)/pgAdmin3.exe b/Release_(3.0)/pgAdmin3.exe index cd3e50239431f08f81c5614938d5058ab34d2b82..00505fe65e1b2a5084d1f8f608653b7d33de68ba 100644 GIT binary patch literal 10810880 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