-
Notifications
You must be signed in to change notification settings - Fork 10
Description
This project is based on pgAdmin3 v1.22. I'm supporting it to fix bugs, which occur original version or to add new features, I'm interested in. As of 2018-10-10 about 70 source files have been changed.
For convenience, the last compiled executable will be in the Release directory. You only need to replace the original pgAdmin3.exe to make it work.
Only the original version of PostgreSQL 12 and PostrgesPro Enterprise will be supported.
The full version of pgAdmin3 can be found here https://github.com/postgres/pgadmin3.git
What's added:
- Exporting query results to Excel
- Added selection of a query to be executed under the cursor (Auto-Select)
- Added a customizable autoreplace (Edit -> Manage autoreplace)
- Added auto-saving of bookmark content after request execution
- Added possibility to set a name for a bookmark and ability to make the bookmark autoloadable for a specific database
- Added support of procedures
- Added sectioning support (displaying in an object tree only)
- Removed display of nodes with status (Never execute) on the graphical plan tab, but they are present in tabular form.
2018-11-01
- Added display of publications.
- Added background change for transactions that are not committed.
- Changed hotkeys for Commit/Rollback
2018-12-11
- Added F4 search for selected text in tree and opening of the object if it was found. If the request lasts more than 2 minutes, then after the end of the request the window will blink.
- When opening the function, the focus is set immediately on the Code tab.
2018-12-05
- Added support for the pgpro_scheduler extension In the Statistics section displays information about the last worked task. Information is taken from the log table pg_log provided that the table exists and is visible, the flag "Enabled ASUTP style" is set, the result of the query is displayed: 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'
- Cells with values containing the line feed symbol\n are highlighted in the query result output
- Saving intervals error fixed in Excel export of query results
- When updating schema, the interface is not blocked if there is a long operation on the table, but when F5 is on the table the block is kept (it is connected with blocking of functions pg_def* when getting information from tables) 09.12.2018
- Autocomplete: added function names, and ability to substitute table column names from FROM field
- When you type the function name, a list of parameters for this function appears
2018-12-28
- Migrated to wxWidgets 3.0 exe file version will be Release_(3.0)
- Nodes can be collapsed in the text view of the plan
- Building a plan with measurements in the headings of the lines indicate the percentage of the execution time of the node (only the operations of the node, but not the nested nodes)
2019-01-11
- Fixed application crashes when opening a table by pressing F4
2019-01-26
- Fixed application crashes when entering (in the code editing window)
- Accelerated opening of "new function", "new table" dialog.
2019-02-09
- Some bugs fixed
- Copying SQL in HTML format (with color preservation) was added
- Commented list of columns with types added to SQL instruction output for tables
2019-03-11
- Corrected display of foreign tables
2019-09-10
Server Status window
- Fixed Server Status window crash on DBMS crash
- Added coloring of processes that block other processes
Query window
- Added filter to the query result window. Double-click in a cell, which text will be a filter condition. You can take it out of the context menu. If Alt is pressed, the selection condition is inverted (Hide rows that contain a value).
- To avoid expectation at getting information about objects. The client parameter SET lock_timeout=15000 for the service connection is set.
2019-09-04
- Added support for PostgreSQL 12
- added support for displaying additional options for indexes
- Added an alternative button in the query window to reflect the current mode, Transaction (T) or AutoCommit (A)
- Fixed a bug in the object search window when searching in the comments
2019-12-22
- Added the ability to perform a comparison of object descriptions of different servers through the Reports menu "Compare other objects" Comparison is performed with another open connection and connected database. The objects for comparison are selected down the tree. Based on the results a HTML report of differences is generated. The textcompare_report.template file, located next to the executable pgadmin3.exe, is used as a template for the report. Features: The SQL text of the sequence creation is ignored, table sections are not taken into account. Totally identical objects are hidden. Service objects are ignored.
- New wxWidgets 3.0.4 dll libraries compiled for VS2012 are implemented. It is necessary to update *.dll files.
2020-03-04
- CREATE STATISTICS output for tables was added.
- SQL output for array commands was fixed
2020-03-28
- Information on table fragmentation (cfs_fragmentation) added
- Warning message about the server version was removed.
2020-04-11
- Added multi-column sorting of query results. The sorting order of columns and direction is marked with color indicators (RED,YELLOW,GREEN,BLUE,GREY). The maximum number of sorting columns is 5. To perform sorting, click on the column header while holding down the Alt key.
- New options for Vaccum ( DISABLE_PAGE_SKIPPING ) and Reindex ( CONCURRENTLY ) were added.
- The filtering in the query results window has been accelerated.
2020-04-13
- Fixed crash in edit mode
- Fixed editing procedures without arguments
2020-04-15
- SQL instruction window for table creation now displays new storage parameters
- column descriptions now include generated and identity columns
2020-04-22
- New feature allowing to create additional windows for outputting the query results (not more than 9). For this purpose, the query should be executed by pressing Shift+F8. The results are displayed in the currently active tab when executing F8. The output boxes are marked with a white square if they have been used by the current query tab.
- Right-clicking the active results tab in the query window highlights the query related to that result.
- The last executed query is marked with green arrows in the query window.
- When auto-saving bookmarks, the cursor position is saved.
2020-05-06
- Fixed problem Crash after close sql editor #4 (Crash after closing SQL editor)
2020-05-08
- Fixed problem Child tables are not dispayed #6 (Child tables are not displayed). Displaying sections from other schemas breaks the strict hierarchy of objects, so make sure everything is normal in your case. The sections are always grouped in the Partitions node, which is located in the parent table. In the native schema, you cannot see sections as tables.
- Minor improvements
2020-09-02
- We added the ability to copy the selected cells of the query result to the clipboard in the IN list format and Where constructions. Called from the context menu.
- Added possibility to filter rows by right mouse click in Server status window.
- Fixed issues when dropping overloaded procedures via UI, it doesn't know which one to drop. #8 (dropping overloaded procedures)
2020-09-05
- When comparing objects, added possibility to exclude comparison of privileges and comments.
- Fixed copying the query text from the filter in Server status window. When comparing text from Client column the port is not taken into account.
2020-12-05
- A lot of small fixes
- Added some new features to PG13. Description in commits.
- Added a btree index check. The check is performed by the function bt_index_parent_check(regclass,true) from the amcheck extension. The extension must be installed in the database to which pgadmin3 connects.
2021-01-02
- Added sorting in the tabs "Properties", "Statistics" and others. , Statistics" and others.
- By sectioned tables, all descendants are displayed in statistics.
2021-01-03
- 64-bit version of pgAdmin3.exe was compiled.
- 32-bit is not supported anymore
2021-02-19
- Kept window layout when outputPane is hidden and applied when outputPane is shown.
- Ability to change window's icon. There are two ways to change the icon of the query window.
- Put new icon in %APPDATA%\postgresql\icons File name as follows: hostname_dbname.png or hostname.png or dbname.png Icon size 32x32
- Set color for server. The icon background will be colored in the server's color.
2021-08-19
- Added CSV log viewing window. The window is called from the context menu of the server "Log view...".
- After opening this window the log file is read using the pg_read_binary_file function. The file with the most recent modification date is selected. New messages are checked every 5 seconds. You can add other servers in Settings panel. The settings are applied after the window is closed and re-opened. If the log window is not active and there are messages of the Error level or higher, the icon is marked with a red square. If several servers are selected in the "Settings" tab, then there is an automatic connection to them. After connecting, all the open servers in the objects tree can be closed by one command from the context menu "Disconnect all servers". WARNING: the memory required to store logs is not limited by anything (except filtering at log loading stage) and it is possible to allocate a large amount of memory. Log lines are displayed in two modes:
- Simple. All log lines are displayed.
- Group. The lines with similar messages are combined into a group and the last line in the group is the visible line. To view all lines of the group it is necessary to set the flag "View detail group". Messages will be similar if they differ only in numbers and if they are not in double-quotes. In group mode, the host field will display a count of the most recent messages in the group. The counter is reset when you place the cursor on the group row. To exclude unnecessary rows from viewing, column filters are used. To turn on the filter you need:
- Right-click on the field. To invert the filter, hold down the Ctrl key.
- Select the value in the context menu of the column header. It displays the 20 most frequent values in the column with the number of these values.
- Enter a value for the filter in the field, highlight that value, and press Enter. Only the highlighted text is used for the filter. Such a filter will work to find the highlighted occurrence in the field. If the first character in the highlighted line is "!" then the filter is inverted.
- Each individual filter value can be removed through the context menu of the column header. For better performance, it is recommended to load logs with "Mode group" enabled. Or reset "Mode group", but with filters installed. Displaying a large number of lines (more than 10000 ) takes a few seconds or more.
- It is possible to drop rows at the stage of loading. To do this, set filters on the rows and click "Add Filter Ignore" this filter will be written to the file filter_load.txt.
2021-09-13
- Added "Disconnect all servers" menu for closing all open servers
2022-01-13
- For Log view added: support for fast navigation: Shift+KeyUP, KeyDOWN switch to the record with the same sql_state, Alt+KeyUP, KeyDOWN switch to the record with another sql_state Added column Server - server from which the log is received.
- Ctrl+S Send a message to Outlook mail. Mail template in the mail.template file In the first two lines of the template, you can specify the addresses to be substituted in the letter.
- In frmLog there are added custom filters that can be saved. The current filter will be saved by clicking the Add button. The name is set in the ComboBox.
- In the window "Status Server" the parameters "SET statement_timeout=10000;" and "SET log_min_messages = FATAL" are set to avoid hanging of the function pg_query_state.
- If a "server closed the connection unexpectedly" error occurs, the message about it is no longer displayed, which caused crashing.
2022-07-06
- Added partial support for PG15 features:
- Support for list of columns when setting the FK
- NULLS NOT DISTINCT support for unique indexes
2022-11-24
-
Added experimental gitLab feature. To work with gitlab you need to put file gitlab.json in %APPDATA%\postgresql directory. Here is an example of the contents of the file:
{ "url": "https://gl.mympany.ru:4443/api/v4/", "private_token": "V3JYpw2x5rr61yGe_M2e", "project_id": "532" }After launching pgAdmin3 the Git tab will appear with additional tabs. For now, you can only commit to work with GitLab on the additional Commit tab. Only the contents of schema objects are saved in GitLab. Saved only SQL representations.The algorithm is as follows:
- From the gitlab.json file, information is taken to connect to gitLab
- From the default branch (usually it's main) is read pgadmin3.json file with the general settings.
- If there is no such file, the settings are taken from gitlab.json
Here is an example of settings from 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"] } ] }Where: "ignore_schema" - list of schemas that do not need to save and git "control_objects" - list of schema object types that need to save. "maps_branch_to_dbname" - the comparison of the names of branches and database names.Press the "Load Git" button and loading SQL representations of objects from GitLab After this operation the list of "List commit files" will be filled with a discrepancy between the current database and a branch in GitLab
If you select some elements (or all by pressing Ctrl + A) then, having specified the name of a commit and having pressed the button "commit" it is possible to close current SQL representation of the chosen elements in GitLab
Right-clicking on any item in the list will show the differences between objects in the database and GitLab. All other buttons and bookmarks do not need to be used. A typical way to use, to keep histories of changes of objects in the database in GitLab.