Commit graph

54 commits

Author SHA1 Message Date
lsv
5defc3b12a add quote_ident 2025-11-28 14:14:08 +05:00
lsv
b1f67cbee8 Added several functions to the contextual help. 2025-11-21 16:25:57 +05:00
lsv
1f7decd73f Added the possibility of contextual help on user functions.
Добавлена возможность просмотра скриптов создания пользовательских объектов
в контестной помощи. В скриптах имена других объектов заменяются на ссылки.
Описание Readme.md
2025-11-21 16:23:26 +05:00
lsv
0a8bea18cd fix align 2025-11-11 10:40:45 +05:00
lsv
ffeda8c9b6 Add align option Compat view for All Line mode. Some optimuzation.
Добавлена опция Compat view для All Line режима. В некоторых случаях она делает более красивое выравнивание.
Для примера:
f(iObjId,  1073,'text',null  )  ;
f(iObjId+1,130 ,'te'  ,iObjId)  ;
f(iObjId+2,1   ,'te2' ,iObjId+1);

Исправлено добавление пробелов в конце строки в режиме All Line.
2025-11-11 10:26:39 +05:00
lsv
400cbc2cc7 Add autocomplite dlgFunction. Fix multibyte char support.
Добавлено использование автоподстановки в окно редактирования процедур и функции.
Добавлена поддержка UTF-8.
Добавлена поддержка unicode для идентификаторов.
Добавлено сохранение выбранных опций в диалоге Выравнивания.
2025-11-11 10:06:55 +05:00
lsv
d8964da685 Add description context help functions 2025-09-26 16:23:26 +05:00
lsv
e65781aa65 Support compile mingw32 2025-09-23 16:20:12 +05:00
levinsv
a77fcfcd5a Autocomplite, server status, publications
Добавлен контроль прав доступа на select для таблиц и представления
при ипользовании автодополнения.
Добавлен контроль доступа при пролучении информации о подписках.
Добалена совместимость с более ранними версиями при получении информации
о публикациях.
При получении логов в окне "Статус сервера" добавлена проверка наличия прав на используемые функции при получении файлы логов.
Мелкие правки при работе с автодополнениями в окне запросов.
2025-08-18 15:53:25 +05:00
lsv
825e80fb4f fix crush autocomplite
Исправлено падение после автозавершения после слова "create".
2025-08-14 19:35:14 +05:00
lsv
295b7f97d1 Fixes and improvements (fmrReport)
1. Сортировка колонок на вкладках Статистика сохряняется по возможности.
2. Узлы плана которые помечены как (never executed) не подсвечиваются.
3. При построении плана всегда добавляется опция "SUMMARY on"
4. Исправлено не корректное отображение зависимостей для таблиц из публикаций.
5. В отчетах о статистике добавлена итоговая информация по таблицам отчета.
2025-08-14 19:34:30 +05:00
lsv
077de1ad7c Extended hints
В результатах запроса, нажатием правой кнопки мыши можно вызвать окно
подсказки, с возможностью выделения содержимого и его копирования (Rbutton).
2025-07-31 20:57:13 +05:00
lsv
c2c44c18f1 Using Pk to self-intersrc tables.
Для автоподстановки PK используется для соединения таблиц самих с собой.
2025-07-31 20:50:47 +05:00
lsv
60f519e38e fixed bugs in the Linux version and performance
Исправлены пути к файлам для AWR отчетов и сохранения фильтров Log View.
Исправлена падение при вызове "Script Recreate Cascade".
Убрано повтороное назначение Ctrl-G для "View Filtered Rows" теперь вызов происходит по Ctrl-F.
Исправлена работа ctlComboBox.
Для повышение производительности отключен поиск не парной скобки для текстов запросов
более 100000 байт.
2025-04-16 19:29:11 +05:00
lsv
5aeb93b625 Optimization for linux.
Исправлено форматирование и учтены особенности GTK для корректного
отображения Log View.
2025-03-27 22:08:54 +05:00
lsv
0e0aae430a linux optimization. 2025-03-22 17:02:22 +05:00
lsv
f7c7729eff Added the ability to collect N recent logs in LogView
В Log view добавлено поле с числом последних файлов логов которые нужно загрузить.
Логи будут загружаться после нажатия Enter.
2025-03-18 19:33:45 +05:00
lsv
21ee30844a Added new features autocomplite.
1. Добавлена подстановка соединений таблиц(и представлений) по их FK.
   Подстановка работает в двух вариантах:
   1.1 После ключевого слова ON:самая правая таблица соединяется с любой левой.
   1.2 После ключевого слова WHERE AND OR все таблицы соединяются со всеми.
2. Дополнение условия соединения после символа = .
   Представления можно соединить только если поле представления является полем таблицы.
3. Стандартное автодополнение теперь выдаёт список таблиц и представление после JOIN.
2025-02-10 11:01:46 +05:00
lsv
4f1d21ef4a Add Align option "Remove multi spaces".
Добавлена опция заменяющая несколько пробелов на один.
2024-12-24 20:00:37 +05:00
lsv
e351b08f10 fix Align command for unlosed literal
Не закрытые литералы теперь будут закрываться переводом строк.
Например:
 ('2023-09-05 10:51:50','getUserFullByRepId',null,'pg','','n'
 ('2023-12-19 10:41:00','mrgEntity',null,'%','info','n
 ('2023-12-19 10:42:00','delEntity',null,'%','info','n
Будет выровнен так:
('2023-09-05 10:51:50','getUserFullByRepId',null,'pg',''    ,'n'
('2023-12-19 10:41:00','mrgEntity'         ,null,'%' ,'info','n
('2023-12-19 10:42:00','delEntity'         ,null,'%' ,'info','n
2024-12-24 20:00:20 +05:00
lsv
5ee53e086f New features of the Query Editor
1. Добавлена возможность быстрой подстановки слов на латинице по нажатию
   Alt+RIGHT. Возможность включается настройкой "Use word hints".
   Список слов составляется при загрузке запроса и по мере ввода новых слов.
2. Добавлена возможность заменять при выполнении запроса переменные вида
   $1, $2, ... или :variableName1 на пользовательские значения введённые
   в диалоге. Пока можно заменять переменные в запросах select,update,delete,insert.
   Перед отправкой запроса на сервер переменные заменяются простой текстовой заменой.
   Запрос который выполнен на сервере можно посмотреть на вкладке История.
   Возможность включается настройкой "Replace variables in a query".
   Выделить правой кнопкой выполненый запрос не получиться т.к. текст выполненого запроса
   и текст в редакторе будет отличаться.
2024-12-17 18:34:48 +05:00
lsv
925c8e119f fix autocomplite bug
При некорректном запросе иногда происходило зависание приложения.
2024-12-10 09:52:42 +05:00
lsv
1f3c598d61 Save filter frmGridEditor
При открытии таблицы на редактирование с фильтром, значение заданного
фильтра сохраняется в pgadmin3opt.json.
Мелкие правки dlgTransformText
2024-12-10 09:51:51 +05:00
lsv
feaaf49bc6 New features TransformText.
В строке замены дабавлены следующие возможности:
1. Добавлена подсветка групп.
   Только цвета заданные в настройке "colorGroup" . 13 цветов по умолчанию.
   Если использовано больше групп, добавьте цвета в pgadmin3opt.json
2. Добавлены пользовательские группы вида [ ].
   Группы (вида \g{n} и []) указанные в квадратных скобках проверяются на пустые значения и
   Если они ВСЕ пустые то всё выражение в [] считается пустой строкой.
   Скобки могут быть вложенными.
   Применяются для того что бы не выводить разделитель для пустой группы.
   Например: [\t \g{2}[\t \g{3}]]
3. Добавлена возможность не выводить содержимое группы.
   Для этого группу указывают так: \G{n}
   Применяется для замены текста на пользовательский.
   Например: [and not null\G{2}]
   Этот фрагмент выведет "and not null" если группа 2 не пустая иначе ""
4. Разносить текст замены можно на несколько строк.
   Переводы строк при замене игнорируются.
   Если нужно добавить перевод строк в текст замены нужно явно указать \n\r.
2024-11-13 11:25:28 +05:00
lsv
67092541df Optimization
Оптимизация TopActivity.
2024-10-25 19:09:20 +05:00
lsv
3a01ed237b fix issue #48
При обработке заголовка файла бекапа, не все данные обрабатывались правильно.
Мелкие исправления в dlgTransformText.
2024-10-11 20:10:34 +05:00
lsv
eae0846942 Optimizr topactivity widget
Оптимизация CPU нагрузки, мелкие ошибки.
2024-10-08 07:38:16 +05:00
lsv
20d953e5df fix linux compile error 2024-10-01 14:23:20 +05:00
lsv
fd61d111d5 Add CPU wait 2024-09-29 15:58:35 +05:00
lsv
450c00ea90 Added collection of waiting events.
В окне "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 можно выбрать цвета для отдельных событий или отключить сбор.
2024-09-24 13:18:02 +05:00
lsv
1e121c1fa0 Add navigate panel log file.
В окне "Server Status" при просмотре лога сервера добавлена навигационная панель c маркерами.
Список доступных команд отображается по F1.
Работает только с CSV логами.
Загрузка лога с сервера вынесена в отдельное соединение с application_name='pgAdmin III LogReader'.
При закрытии основной программы может иногда потребоваться два нажания на кнопку "Закрыть" (при медленных соединениях и больших логах).
Это особенность реализации завершения потока LogReader.
2024-09-24 11:17:39 +05:00
lsv
763f587834 Add new dialog Transformation text.
В окне редактирования запросов можно вызвать диалог транформации текста (Ctrl+M).
Где при помощи PCRE регулярных выражений можно изменить выделенный текст или текст из буфера обмена.
Регулярные выражения имеют подсветку синтаксиса и подсветку найденных групп.
В выражении замены можно ссылаться на найденные группы при помощи \g{номер_группы}
Настройки цветов можно редактировать в pgadmin3opt.json файле.
2024-09-24 11:17:15 +05:00
lsv
b7f29f10d1 fix bug formatting with bindarg parameters
Запросы с параметрами ($1) некорректно обрабатывались что могло приводить к аварийному завершению программы.
2024-09-24 11:16:04 +05:00
lsv
9902878806 fix crash app autocomplite
Приложение падало при вызове autocomplite если в тексте sql встречался
оператор is dictinct from.
В определении имён не учитавались вложенные скобки, что приводило
к неполному перечню полей в списке autocomplite.
2024-08-06 15:58:14 +05:00
lsv
b0e9e1bf84 Add json support for linux.
Добавлена поддержка json формата для Linux.
sysSetting поддерживает чтение/запись в файл расширенных настроек pgadmin3opt.json.
2024-08-06 15:57:32 +05:00
lsv
282cf08716 Add sql formatter
Добавлено встроенное форматирование Sql запросов.
Доработано автодополнение колонок.
Добавлено раскрытие <alias>.* в список колонок.
2024-06-17 20:31:29 +05:00
lsv
2d3f87edaa Add context help for PG functions.
Добавлен вызов контекстной помощи по именам функций Postgresql.
Для этого требуется:
1. в параметрах указать путь к html файлам документации.
2. выполнить скрипт _extract_func_help.pl для генерации файла _func.txt
3. разместить файл _func.txt в каталоге с документацией.

Для вызова помощи нужно выделить слово или выражение и нажать Ctrl+F1.
Можно просто нажать Ctrl+F1 и тогда для слова слева от курсора будет выведена справка.
Если слову соответсвует несколько функций они будут выведены в виде списка имен.

Для навигации в окне контекстной помощи:
 - закрыть окно или переместиться назад - правая кнопка мыши
 - выделить текст + правая кнопка - копировать выделение в буфер и закрыть окно.
 - нажатие ESC - закрытие окна.

Для отображения помощи используется  wxHtmlWindow https://docs.wxwidgets.org/latest/overview_html.html.
2024-05-06 19:31:52 +05:00
lsv
2d7ac600c0 fix deprecated warning 2024-02-06 08:34:42 +05:00
Andrei Astafev
c75280a8de Change encoding from CP1251 to UTF-8 2024-02-05 18:50:16 +05:00
lsv
4ffd790d48 Beautiful big numbers
Можно включить более понятное отображение больших чисел на странице Статистика.
Для этого устновите флажок "Beautiful big numbers on the statistics page"

Небольшие исправления в диалоге выбора соединения (dlgSelectConnection.cpp)
2023-08-06 17:42:50 +05:00
lsv
c197ea45c1 List alignment algorithm
Добавлен в проект выравниватель списков IN и других упорядоченных данных.
Вызывается комбинацией Ctrl+Shift+A (если внешний выравниватель не задан).
Интегрировать код выравнивателя пришлось из-за бага wxWidgets.
Ошибочное поведение появляется при вызове внешних утилит,
если им передаётся большой объём текста (более 6 кб).
Выравниватель может зациклиться на произвольных наборах данных.
Используйте с осторожностью.
Выравниватель имеет диалог настройки работы:
При выборе первого пункта диалога все переводы строк остаются как есть.
При выборе второго пункта первая строка будет образцом длинны
и под неё будут подгонятся все прочие строки.
Первый вариант используется для выравнивания insert команд.
Второй для списков IN.
Третий параметр используется, если иногда встречаются короткие строки алгоритм пытается найти выше строку которая больше или равна
текущей.
Например эти строки будут смотреться лучше:
int rs = 0;
int ls = 0;
int type = 0;
int up_item = -1;
bool br = false;
private:
int align = LEFT;
int maxlen = 0;
wxString it;
2023-05-22 21:38:14 +05:00
Rob
2354cdaa01 Support compile under Linux by disabling wxJSON and GIT stuff 2023-02-14 02:22:20 +01:00
lsv
83e372aae5 Add action CopyTableToHtml
Копирование результатов запроса в буфер обмена в виде таблицы html.
2023-02-02 10:46:33 +05:00
lsv
8771f32058 fix 2023-01-30 23:55:48 +05:00
Sergey
b5236a0b1a for linux compile
Исправления для компиляции под linux (ubunta)
2023-01-30 18:49:49 +05:00
lsv
4f10ebc477 Support GitLab experimental
Добавлена возможность сохранять SQL представления объектов в GitLab
Описание в Readme.MD
2022-11-24 19:19:37 +05:00
lsv
799b2a70c8 Replace bind parameters in Log view
При установленном параметре log_parameter_max_length_on_error
есть возможность подставлять в запросы вместо $N значения параметров.
В Log View так и происходит. Значения параметров выбираются из поля context.
2022-08-14 11:23:48 +05:00
lsv
9e9bfef8b8 fix without patch
Приведение в соответствие с github
Патч делать не нужно.
2022-04-27 16:01:13 +05:00
lsv
90fc629fa0 Add write file autoSaveConfig.reg, small optimization frmLog
При выходе из приложения конфигурация сохраняется в файле autoSaveConfig.reg.
Уплотнение вывода информации в frmLog. Если поле Detail пустое то туда помещается содержимое Context.
Шаблон для письма переименован в mail.template.
2022-01-14 16:51:11 +05:00
lsv
4684ada1ac change pgConn, frmLog, frmStatus
При возникновении ошибки "server closed the connection unexpectedly"
сообщение об этом не выводиться на экран. Т.к. происходило падение pgAdmin3
В frmLog добалены сохраняемые пользовательские фильтры.
 По кнопке Add текущий фильтр сохраняется. Имя задается в ComboBox.
В окне "Status Server" устанавливается парамер "SET statement_timeout=10000;"
чтобы избежать зависания функции pg_query_state.
2021-12-09 15:00:10 +05:00