Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/levinsv/pgadmin3

PgAdmin3 с поддержкой PostgreSQL 16
https://github.com/levinsv/pgadmin3

client linux linux-app pgadmin3 postgresql sql wxwidgets

Last synced: 3 days ago
JSON representation

PgAdmin3 с поддержкой PostgreSQL 16

Awesome Lists containing this project

README

        

This text Russian language.
English version issue #18

Данные проект поддерживает pgAdmin3 v1.22
Поддержка добавляется по мере возникновения ошибок в оригинальной версии v1.22 или если эти возможности нужны мне.
На 10.10.2018 измененены около 70 исходных файлов.

Для удобства последний скомпилированный исполняемый файл будет находиться в каталоге Release.
Для работы достаточно заменить оригинальный pgAdmin3.exe.

Будет поддерживаться только оригинальная версия PostgreSQL 12 и PostrgesPro Enterprise.

Полная версия pgAdmin3 находиться тут https://github.com/postgres/pgadmin3.git

Что добавлено:
- Экспорт результата запроса в Excel
- Добавлен выбор запроса на исполнение под курсором (Auto-Select)
- Добавлена настраиваемая автозамена (в меню Правка -> Manage autoreplace)
- Добавлено автосохранение содержимого закладки после выполнения запроса
- Добавлена возможность задать имя для закладки и возможность сделать закладку автозагружаемой для конкретной БД

- Добавлена поддержка процедур
- Добавлена поддержка секционирования (только отображение в дереве объектов)

- Удалено отображение узлов имеющих статус (Never execute) на закладке графического плана, но в табличном виде они присутствуют.

01.11.2018
- Добавлено отображение publications.
- Добавлено изменение фона при при не закоммиченой транзакции.
- У Commit/Rollback измененены горячие клавиши

11.12.2018
- Добавлен поиск в дереве по F4 выделеного текста и если объект найден то его открытие.
Если запрос длится более 2 минут то после завершения запроса окно будет мигать.
- При открытия функции фокус устанавливается сразу на закладку Код.

05.12.2018
- Добавлена поддержка расширения pgpro_scheduler
В разделе Статистика отображается информация о последнем отработавшем задании.
Инфомация берётся из лог таблицы pg_log при условии что таблица существует и видна, установлен флаг "Enabled ASUTP style"
выводиться результат запроса: select log_time,detail critical,message,application_name from pg_log l where l.log_time>'$Started'::timestamp - interval '1min' and l.log_time<'$Finised' and hint='$name'
- В выводе результатов запроса ячейки со значениям содержащие символ перевода строки \n подсвечиваются
* В экспорте результатов запроса в Excel исправлена ошибка при сохранении интервалов
* При обновлении схемы не блокируется интерфейс если на таблице идет долгая операция cluster
Но при F5 на самой таблице блокировка сохраняется (это связано с блокированием функций pg_def* при получинии информации от таблицах)
09.12.2018
- autocomplite: добавлены имена функций, и возможность подставлять имена колонок таблиц из поля FROM
- при наборе имени функции появляется перечень параметров этой функции

28.12.2018
- выполнен переход на wxWidgets 3.0 версия exe файла будет находиться Release_(3.0)
- в текстовом представлении плана можно сворачивать узлы
- построении плана с замерами в заголовках строк указывается процент времени выполнения узла (только операции узла, но не вложенных узлов)

11.01.2019
- исправлены падения приложения при открытии таблицы по нажатию F4

26.01.2019
- исправлены падения приложения при вводе ( в окне редактирования кода)
- ускорено открытие диалога "новая функция", "новая таблицы".

09.02.2019
- исправлены некторые ошибки
- добавлено копирование sql в html формате(с сохранением цвета)
- в вывод SQL инструкций для таблиц добавлен закомментированый перечень колонок с типами

11.03.2019
- исправлено отображение foreign table

10.09.2019
Окно Server Status

* исправлено падение окна Server Status при аварийном завершении СУБД
- добавлена расцветка процессов которые блокируют другие процессы

Окно Query

- добавлен фильтр в окно результатов запроса. Активируется двойным щелчком мыши по ячейке, текст которой и будет являтся условием фильтра. Снимается из контекстного меню.
При нажатом Alt условие отбора инвертируется (Скрыть строки содержащие значение).
- Для избегания ожиданий при получении информации об объектах. Выставляется клиентский параметр SET lock_timeout=15000 для служебного соединения.

04.09.2019
- добавлена поддержка PostgreSQL 12
- добавлена поддержка отображения дополнительных опция для индексов
- в окне запросов добавлена альтернативная кнопка отражающая текущий режим, Transaction (T) или AutoCommit (A)
* исправлена ошибка в окне поиска объектов при поиске в коментариях

22.12.2019
- добавлена возможность выполнять сравнение описания объектов разных серверов через меню Отчеты "Compare other objects"
Сравнение проводится с другим открытым соединением и подключенной базой. Объекты для сравнения выбираются по дереву вниз.
По результатам формируется html отчет различий.
В качестве шаблона для отчета используется файл textcompare_report.template, находящийся рядом с исполняемым pgadmin3.exe.
Особенности: SQL текст создания последовательностей игнорируется, секции таблиц не учитываются. Полность одинаковые объекты скрываются. Служебные объекты игнорируются.
- выполнен переход на новые библиотеки dll wxWidgets 3.0.4 скомпилированные под VS2012. Необходимо обновить файлы *.dll

04.03.2020
- добавлен вывод CREATE STATISTICS для таблиц
* исправлен вывод SQL команды для создания задания для комманд заданных в виде массива

28.03.2020
- добавлена информация о фрагментации таблицы (cfs_fragmentation)
* убрано предупреждение о версии сервера

11.04.2020
- добавлена многоколоночная сортировка результатов выполнения запроса. Порядок сортировки колонок и направление отмечается цветными индикаторами (RED,YELLOW,GREEN,BLUE,GREY).
Максимальное число колонок сортировки 5. Для выполнения сортировки нужно щелкнуть по заголовку колонки удерживая клавишу Alt.
- добавлены новые опции для Vaccum ( DISABLE_PAGE_SKIPPING ) и Reindex ( CONCURRENTLY )
* ускорена работа фильтра в окне результав запроса.

13.04.2020
* исправлено падение в режиме редактирования
* исправлено редактирование процедур без аргументов

15.04.2020
* в окне SQL инструкции создания таблицы теперь отображаются новые параметры хранения
* в описании колонок учтены generated и identity колонки

22.04.2020
- добавлена возможность создавать дополнительные окна для вывода результатов запроса (не более 9).
Для этого запрос нужно выполнить по нажатию Shift+F8. Вывод результатов при выполнении F8 производиться в текущую активную закладку.
Окна вывода отмечаются белым квадратом если они были использованы текущей закладкой запросов.
- при щелчке правой кнопкой мыши на активной закладке результатов в окне запросов выделяется запрос связанный с этим результатом.
- в окне запросов последний выполненый запрос отмечается зелеными стрелками.
- при автосохранении закладок, сохраняется позиция курсора

06.05.2020
* исправлена проблема #4 (Crash after close sql editor)

08.05.2020
* исправлена проблема #6 (Child tables are not dispayed). Отображение секций из других схем нарушает строгую иерархичность обектов
и нужно убедиться что всё нормально в вашем случае. Секции всегда группируются в узел Partitions который находиться в родительской таблице.
В родной схеме, секции как таблицы увидеть нельзя.
* мелкие улучшения

02.09.2020
- добавлена возможность копировать в буфер обмена выделенные ячейки результата запроса в формате IN списка и Where конструкций. Вызывается из контекстного меню.
- в Server status окне добавлена возможность фильтровать строки по щелчку правой кнопкой мыши.
* иправлено issues #8 (dropping overloaded procedures)

05.09.2020
- при сравнении объектов добавлена возможность исключать сравнение привелегий и комментариев.
* исправлено копирование текста запроса из под фильтра в Server status окне. При сравнении текста из колонки Client порт не учитывается.

05.12.2020
* много мелких исправлений
* добавлены некоторые новые возможности PG13. Описание в коммитах.
- добавлена проверка btree индекса. Проверка выполняется функцией bt_index_parent_check(regclass,true) из расширения amcheck.
Расширение должно быть установлено в БД к которой происходит подключение pgadmin3.

02.01.2021
- добавлена сортировка на вкладках "свойства" , "Статистика" и других.
- по секционированным таблицам в статистеке выводятся все потомки.

03.01.2021
- скомпилирована 64 битная версия pgAdmin3.exe
- 32 битная больше не поддерживается

19.02.2021
- Сохраняется расположении окон при скрытии outputPane и применяется при его показе.
- Появилась возможность менять иконку query окна.
Есть два способа изменения icon для окна query.
1. Поместить новую icon в %APPDATA%\postgresql\icons
Имя файла задать следующим образом: hostname_dbname.png или hostname.png или dbname.png
Размер icon 32х32
2. Задать для сервера цвет. Фон icon будет окрашен в цвет сервера.

19.08.2021
- добавлено окно просмотра CSV лога базы.
Окно вызывается из контекстного меню сервера "Log view ...".

После открытия окна читается непосредственно файл лога функцией pg_read_binary_file
Выбирается файл с самой свежей датой изменения. Проверка новых сообщений проводиться каждые 5 секунд.
Можно добавить другие сервера на панели "Settings". Настройки применяются после закрытия окна и повторного его открытия.
Если окно лога не активное и приходит сообщения уровня Error и выше, то иконка отмечается красным квадратом.
Если на заладке "Settings" выбрано несколько серверов, то происходить автоматическое подключение к ним.
После подключения все открытые сервера в дереве объектов можно закрыть одной командой контекстного меню
"Disconnect all servers".
ВНИМАНИЕ: память требуемая для хранения логов ни чем не ограничивается (кроме фильтрации на этапе загрузки лога) и
возможно выделения большого количества памяти.
Отображаются строки лога в двух режимах:
* Простой. Отобразаются все полученные строки лога
* Групповой. Строки с похожими сообщениями объединяются в группу и видимой строкой является самая последняя строка
в группе. Для просмотра всех строк группы нужно установить флаг "View detail group".
Сообщения будут похожими если они отличаются только числами и если они не в двойных кавычках.
В групповом режиме в поле host показываются счетчик свежих сообщений попавших в группу. Счетчик сбрасывается при
установке курсора на строку группы.
Для исключения из просмотра ненужных строк используются поколоночные фильтры. Для включения фильтра нужно:
* Щелкнуть правой кнопкой мыши по полю. Для инверсии фильтра нужно удерживать Ctrl.
* Выбрать значение в контекстном меню заголовка колонки. Там отображаются 20 самых частых значения в колонке с указанием
количества этих значений.
* Ввести в поле значения для фильтра, выделить это значение и нажать Enter. Для фильтра используется только выделенный
текст. Такой фильтр будет работать на поиск выделенного вхождения в поле. Если в выделенной строке
первым символом будет "!" то фильтер инверсируется.
* каждое отдельное значение фильтра можно удалить через контекстное меню заголовка колонки.
Для более высокой производительности рекомендуется проводить загрузку логов с включенным "Mode group".
Или сбрасывать "Mode group", но при установленных фильтрах.
Отображение большого число строк (более 10000 ) происходит несколько секунд и более.
* Есть возможность отсеять строки на этапе загрузки. Для этого установите фильтры на строки и нажмите
"Add Filter Ignore" этот фильтр будет записан в файл filter_load.txt.

13.09.2021
- Добавлено меню закрытия всех открытых серверов "Disconnect all servers"
13.01.2022
- Для Log view добавлена: подержка быстрой навигации: Shift+KeyUP,KeyDOWN
переход на запись с тем же sql_state,
Alt+KeyUP,KeyDOWN - переход на запись с другим sql_state
Добавлена колонка Server - сервер с которого получен лог.
* Ctrl+S отправка сообщения по почте Outlook. Шаблон письма в файле mail.template
В первых двух строках шаблона можно указать адреса которые будут подставляться в письмо.
- В frmLog добалены сохраняемые пользовательские фильтры.
По кнопке Add текущий фильтр сохраняется. Имя задается в ComboBox.
* В окне "Status Server" устанавливается парамер "SET statement_timeout=10000;" и "SET log_min_messages = FATAL"
чтобы избежать зависания функции pg_query_state.
* При возникновении ошибки "server closed the connection unexpectedly"
сообщение об этом теперь не выводиться на экран. Т.к. происходило падение pgAdmin3

06.07.2022
Добавлена частичная поддержка возможностей PG15:
- поддержка списка колонок при задании FK
- поддержка NULLS NOT DISTINCT для уникальных индексов

24.11.2022
Добавлена эксперементальная функция работы с gitLab.
Для работы с gitlab необходимо положить файл gitlab.json в каталог %APPDATA%\postgresql.
Вот пример содержимого файла:
{
"url": "https://gl.mympany.ru:4443/api/v4/",
"private_token": "V3JYpw2x5rr61yGe_M2e",
"project_id": "532"
}
После запуска pgAdmin3 появится вкладка Git на которой будут дополнительные закладки.
Пока для работы с GitLab можно выполнять только коммиты на дополнительной вкладке Commit.
В GitLab сохраняются только содержимое объектов схем. Сохраняется только SQL представления.
Алгоритм работы такой:
- из файл gitlab.json берётся информация для соединения с gitLab
- из ветки по умолчанию (обычно это main) считывается файл pgadmin3.json с общими настройки.
- если такого файла не то настройки беруться из gitlab.json
- вот пример настроек из pgadmin3.json
{
"ignore_schema": ["public","repack","schedule"],
"control_objects": ["Functions","Views","Tables","Trigger Functions","Procedures","Schemas","Schema","Database"],
"maps_branch_to_dbname":[
{"branch": "asu",
"list_db": ["asu"]
}
,
{"branch": "common_db",
"list_db": ["dbname1","dbname2"]
}

]
}
Где:
"ignore_schema" - список схем которые не нужно сохранять и git
"control_objects" - перечень типов объектов схемы которые нужно сохранять.
"maps_branch_to_dbname" - сопостовление имен веток и имен БД.
- нажимается кнопка "Load Git" и загружается SQL предствления объектов из GitLab
После этой операции список "List commit files" будет заполнен расхождениями текущей БД и веткой в GitLab
- Если выбрать несколько элементов (или все нажав Ctrl+A) то указав название коммита и нажав на
кнопку "commit" можно закомитить текущее SQL представление выбранных элементов в GitLab
- нажатие правой кнопки мыши на каком либо элементе списка покажет различия между объектов в БД и GitLab.
Все прочие кнопки и закладки использовать не нужно.
Типовой способ использования, ведение историй изменений объектов БД в GitLab.

02.05.2023
Добавлена возможность выравнивания списков команд insert и других структурированных данных (списки IN).
В настройках можно задать внешнюю утилиту которая на вход принимает выделенный текст а на выходе выдаёт выровненый.
Если утилиту не задавать то выравнивание будет выполнено pgadmin3 (код проверенен не полностью, возможны зависания)
Подробное описание в commit https://github.com/levinsv/pgadmin3/commit/c197ea45c18385204497a1f53f1fda184c6cc86b

22.05.2023
Для улучшения наглядности и понимания в какой БД мы находимся в строке
браузера объектов при выделении элемента будет напротив отображаться имя
БД. Это поведение можно отключить в настройках.

06.06.2023
Если поиск в дереве объектов начинается с сервера, то он продолжается только среди серверов без поиска в глубину.

29.06.2023

pgAdmin3.exe собран с новой версий wxWidgets 3.2 для улучшения работы с DPI.
Обновите wx\*.dll файлы.
Исполняемый файл компилируется со манифестом для указания поддержки DPI.
Появилась возможность заменить PNG иконки в toolbar на svg иконки.
Для этого нужно создать каталог svg в каталоге исполняемого файла и поместить файлы файлы с раширением svg.
Имя файла должно быть таким же как и имя файла оригинального PNG из каталога include/images.
На данныый момент можно заменить иконки основного окна, окна запроса, и окна статуса сервера.
Имена файлов можно найти в исходных кодах поиском строки \*GetBundleSvg.
Во время первого запуска возможно авариное завершение pgAdmin3.exe.
Перед первым запуском сохраните копию файла autoSaveConfig.reg
Если будет такая потребность можно и другие иконки перевести на svg.

Выполнена оптимизация по производительности обновления дерева объектов и отображение результатов запросов.

02.08.2023

* исправлено зацикливание программы при выполнении pgScript.(изменились правила обработки wxRegEx)
* устранены утечки GDI объектов.
- добавлена возможность скрытия/отображения панели с историей запросов.
- добавлены некторые возможности PG16:
* отображение новых опций члена роли SET и INHERIT. В диалогах их установить нельзя.

05.08.2023

* Можно включить более понятное отображение больших чисел на странице Статистика.
Для этого устновите флажок "Beautiful big numbers on the statistics page".

27.10.2023

* Можно задать дополнительные параметры соединения https://github.com/levinsv/pgadmin3/commit/0093e3676c480cd6886a66feb10cb26d99a2e315
* Добавлена возможность отключения/включения автосохранения запросов и быстрых переходов к корневым узлам дерева объектов
подробности в commit https://github.com/levinsv/pgadmin3/commit/bce303c437944ab4ad13bcc7303dbe644a92618a
* Генерация AWR отчета если установлено расширение pgpro_pwr https://github.com/levinsv/pgadmin3/commit/c139994efa9bdafd235e3d620fe4ed05946f7330

02.02.2024

- При помощи контекстной команды "Compare 2 Cells" можно сравнить 2 не пустые ячейки в результе запроса.
- При потере фокуса окна редактора запроса,
вернуть его можно было только нажав на окно левой кнопкой мыши.
Теперь это можно сделать нажав на имя закладки.
* Исправлена проблема при автовыборе запроса содержащего многострочный комментарий с символом ;
* Исправлена проблема c отображением свойства is_cycled последовательности.
Начиная с 10 версии это свойство ошибочно всегда определялось как false.