The long awaited 1.16 version of pgAdmin III is finally available. We will try to highlight some of the new features which have been added since the last stable release.
Major new features
PostgreSQL 9.3 support
As usual, the new release of pgAdmin aims to have full compatibility with the new release of PostgreSQL. This release is no different: pgAdmin 1.16 supports all PostgreSQL 9.3 new features, while remaining compatible with all PostgreSQL releases starting from 8.2.
New import tool
A new import tool has been added to the browser. A right-click on a table shows a new menu item, named “Import…”.
Once clicked, it opens a new dialog. This dialog allows the user to select a file, specify its format (text, csv, or binary), and its encoding.
The second tab contains the list of the columns for this table. The user can choose the columns available in the file.
The remaining tabs allow a deeper customization of the import.
Once the user clicks the “Import” button, the import process will take place. A widget will show the progress of the import:
And once the import is done, the “Import” button is changed in a “Done” button. A click on it will dismiss the window.
It is sometimes useful to be able to find an object by its name. So there is now a way to search for objects by name within pgAdmin. The database context menu has a new item: “Search objects…”.
If a user selects this item, pgAdmin will open a new window where the user can type a pattern, and select the type of the object he’s looking for. Then a simple click on the “Find” button will start the search.
All the results will appear in the table below. A double-click on an object will select the object in the browser, so that the user can continue his work on this object.
Modifying the schema of an object
In older releases, a user couldn’t change the schema of an object with the properties dialog. pgAdmin 1.16 allows that. All objects belonging to a schema have a new widget allowing the user to modify the schema :
Refresh objects automatically when clicked
One big issue with pgAdmin is that it doesn’t know when objects are changed in the background. The user has to refresh the browser each time he thinks there might have been some schema updates on the database – and some changes may get lost because of this.
pgAdmin 1.16 refreshes the node when the user clicks on it. This means it will try to find new objects if the user clicks on a parent node, and new properties if the user clicks on an object node.
This should resolve this long-lasting issue.
Redesigned Options window
The Options window has been completely redesigned so that it will allow us to put more options into it. There is now a treeview on the left part of the window. This treeview lets the user choose what kind of options he wants to set:
Security labels support
Security labels are available since PostgreSQL 9.1. Unfortunately, pgAdmin didn’t support them, but the 1.16 release will fix that. Security labels are handled via a new tab in each local object:
It works also on shared objects, such as databases and roles since PostgreSQL 9.3:
PostgreSQL 9.3 offers a new connection option for SSL connections. It is called the “sslcompression” option. It’s enabled by default, but users can disable it if they want. This option is available in the “SSL” tab:
PostgreSQL 9.3 offers two new statistics (blocks read, and write time) in the catalog “pg_stat_database”, and so does pgAdmin 1.16 on its “Statistics” tab for databases:
A new tab is available to copy the structure of another table:
It’s just an interface around the “CREATE TABLE … LIKE …” statement.
pgAdmin 1.16 allows the user to add OIDs to an existing table with the “Has OIDs” checkbox. It only works if the user is connected to a Postgres 8.4 or later server. It also allows the change of the fillfactor property on an existing table.
A truncate menu item has been added to the table contextual menu:
pgAdmin 1.16 allows the modification of the fillfactor property on an existing index.
PostgreSQL 9.3 allows the creation of “non valid” check constraints. pgAdmin offers that option in the “Definition” tab:
The user can validate the constraint, either with the properties dialog, or with a contextual menu item called “Validate check constraint”.
It’s also possible to add invalid check constraints to a domain.
On the foreign key properties dialog, the “References” table textbox has been moved to the third tab:
We think it’s easier that way.
The new “security_barrier” option on views is available in the “Definition” tab:
The new “leakproof” option on functions is available in the “Options” tab:
The “Definition” tab has changed for external type. It now contains another set of tabs so that it allows to add three previously missing functions comboboxes (ANALYZE, CATEGORY, and PREFERED functions):
- The “Required” tab:
- The “Optional 1” tab:
- The “Optional 2” tab:
PostgreSQL 9.3 adds privileges to types objects, and pgAdmin 1.16 allows to set these privileges.
One of the main feature of PostgreSQL 9.3, the range type, is also supported by pgAdmin 1.16. To add a new range type, select it on the “Type” tab:
And then set its properties in the “Definition” tab:
Previous releases of pgAdmin didn’t allow users to rename a domain, even if it was possible with an “ALTER TYPE” statement. pgAdmin 1.16 allows the renaming through the “ALTER DOMAIN” statement in PostgreSQL 9.3, and through the “ALTER TYPE” statement in previous releases of PostgreSQL.
Aggregates finally have privilege support.
pgAdmin 1.16 allows the renaming of Foreign Data Wrappers and Foreign Servers if the user is connected to a 9.3 PostgreSQL server.
pgAdmin didn’t have a way to input the inline function for a language. It’s now available in the “Definition” tab:
pgAdmin already allowed users to configure parameters for a role/database pair in the database properties dialog. Now, it’s also possible to do it in the role properties dialog:
PostgreSQL 9.3 offers a new option for its pg_dump/pg_restore tools, called section. pgAdmin allows its use through:
- the backup window:
- and the restore window:
The new “TIMING” option of “EXPLAIN” is available in the query tool.
Server status tool
The “pg_stat_activity” view has two new columns: state, and state_change columns. pgAdmin 1.16 displays them in the Activity report of the server status tool if the user is connected on a PostgreSQL 9.3 server:
And note that the timestamp columns skip the microsecond part.
The “Maintenance” tool has a new action: cluster.
- Prevent dropping connection, dropping and refreshing object when a properties dialog is open,
- Add compatibility with wxWidgets 2.9,
- New documentation system.