# List of changes in PG Commander

Late 2014

## PG Commander – Version 2.0

- All new design — optimized for Yosemite
  I have simplified and completely redesigned PG Commander to take full advantage of Yosemite's new design language. The new design degrades gracefully and also looks great on older versions of OS X.
- Table Structure Editor
  The most requested feature in PG Commander is finally here!
  - Rename tables, change schema, change tablespace
  - Rename columns, add columns, remove columns
  - Change column type and default value
  - Add & remove column constraints (Primary Key, Unique, Check, Not Null, Foreign Key)
  - Add comments to tables, columns, and individual constraints
- Table Contents View
  - Inline Editor: double click cell to edit
  - Batch editing: insert, update, delete multiple rows in a single transaction
  - Update views
  - Sanity check: PG Commander checks the number of affected rows before committing
  - Row detail view now in the sidebar
  - Update many rows at once with the sidebar
  - Vastly improved scrolling performance
- SQL Query View
  I have completely replaced the SQL Terminal with the all new SQL Query View inspired by Sequel Pro. I thought that the SQL terminal was a good idea, but it had a lot of usability issues. For example, a common complaint from customers was that controls moved around. Also, the terminal had unfixable performance issues.
  - All new design & improved performance
  - Support for large results (more than a million rows)
  - Support for long SQL queries (100.000 lines or more)
  - Query history popup: browse recent queries, clear individual queries from history
- Status Display
  There is now a status display in the title bar. It shows what query is currently executing. When idle, it shows which database you are connected to, and the server version.
- Cancel command
  The keyboard shortcut ⌘. now aborts the current query.
- Improved Reload behavior
  Cached data is now purged more reliably when reloading. The terminal is no longer cleared when you reload.
- Improved change tracking
  PG Commander is now more reliable when you navigate away from a view with unsaved changes, eg. when using the back button.
- New Sidebar Icons
  Updated to a flatter look. Schemas now have a folder icon.
- Table column titles now span multiple lines when there isn't enough space to show them in a single line
- Added a preference to require confirmation before connecting to SSL servers with valid, but unknown certificates
- Added a command to truncate tables.

November 7, 2014

## PG Commander – Version 1.5.3

- Windows now have more descriptive titles
- Fixed an issue when connecting to pre-9.0 servers via SSH (including Redshift)
- Fixed a bug where the text field was not activated when switching focus to the Terminal

October 3, 2014

## PG Commander – Version 1.5.2

- Fixed an issue where PG Commander only showed some of the results in the SQL Terminal if downloading them took longer than approximately 50ms.
- Fixed an issue where only the first line of error messages was shown.

September 29, 2014

## PG Commander – Version 1.5.1

- Fixed an issue where the table icon grid didn't scroll on OS X 10.8.
- Fixed a display bug when disabling SSH tunneling for a favorite on OS X 10.8
- Fixed broken Copy command in Terminal

September 26, 2014

## PG Commander – Version 1.5

- SQL Terminal
  - Sort query results by clicking table header
  - Execute selection only
  - Execute queries again
  - Automatic Indentation in query editor
  - Tab key increases indentation of selected lines
  - Shift-Tab key decreases indentation
  - Queries now show execution time
  - Added a notification when a query completes while PG Commander is in the background
  - Clear individual executed queries
  - Queries now remember which file they were loaded from and automatically suggest original name when saving
  - Fixed a few annoying display bugs in terminal
  - Fixed an issue that would cause PG Commander to crash occasionally when executing a query
  - Improved autoscrolling behavior
- Keyboard-interactive SSH authentication
  You can now connect via SSH servers that use keyboard-interactive instead of password authentication (eg. OS X). Additionally, PG Commander now supports connecting to servers that require multiple auth methods.
- Full Screen Mode
- Database icons are now smaller to waste less space.
- Long favorite names no longer break the UI
- Fixed an issue where connecting to ‘localhost’ sometimes failed.
- Improved support for connection URLs (introduces `postgresql+ssh` URL scheme for tunneling via SSH)

July 14, 2014

## PG Commander – Version 1.4.2

- Addressed an issue where PG Commander would cause the discrete GPU to activate on some MacBooks.
- Deleting Materialized Views now works as expected.
- Added a warning when trying to connect via unix domain sockets.
- Removed support for authentication via client side SSL in the Mac App Store version. This feature was based on an exception to the app sandbox that Apple did not approve. If you need this feature, please email me. If there is sufficient demand, I might be able to implement client side SSL in a way that is compatible with app sandbox.

June 18, 2014

## PG Commander – Version 1.4.1

- PG Commander now jumps to page 1 when a filter is applied.
- Fixed a problem where PG Commander executed an incorrect query when the query text field was not in focus.

June 13, 2014

## PG Commander – Version 1.4

Get back to work faster! When you open a table, PG Commander now remembers sort order, filters etc. from last time.

- Table View
  - Persistent sort order.
  - Persistent column widths.
  - Rearrange columns.
- Table Filters
  - Filters are now persistent: When you open a table, PG Commander remembers the filters you used last time.
  - New Operators for text fields: ‘does not contain’, ‘is not exactly’.
  - New Operators for numeric fields: ≠, <, >.
  - Filtering columns that contain percent signs, underscores and backslashes now works as expected.
  - Selecting ‘Custom SQL’ now autofills with the generated SQL of the filter.
- Improved Exporting
  - Conveniently export tables from context menu (in database view or in the sidebar)
  - Export directly from the table view using the ‘Export…’ command in the File menu. When exporting from the table view with active filters, only filtered rows are exported.
  - INTEGER and FLOAT types are now exported without quotes.
- Cancel Queries in SQL Terminal
- Row Editor Additions
  - Added an option to insert DEFAULT in Boolean columns.
  I made the popup menu in the row editor a lot smarter. It now shows options related to the column type:
  - FLOAT: Insert special values like Not-A-Number and Infinity.
  - DATE: Quickly insert todays date, or tomorrow, or yesterday.
  - UUID: Generate a random UUID value
  - JSON: Pretty Printing
- Fixed a problem where PG Commander may crash after closing an SSH connection.
- Added support for authenticating with Client SSL certificates located in `~/.postgresql`
- The favorites window now closes automatically after establishing a connection.
- Fixed incorrect keyboard shortcuts in the documentation
- Upgraded to OpenSSL 1.0.1h to avoid the most recently published vulnerabilities.

May 7, 2014

## PG Commander – Version 1.3

- Table Filters
  Quickly find rows that contain a string. By default, all columns are searched, but you can restrict the filter to a specific column. Combine multiple filters to quickly perform complex queries, or provide a custom WHERE clause.
- Copy Rows as CSV / SQL
  Quickly copy rows from a table or from a query result as CSV or as SQL INSERT statements.
- New Toolbar Buttons
  There are three new buttons by default: a back button, a forward button and a button to quickly open the terminal. Moreover, you can now customize the toolbar (right click) to add an optional up button and a reload button.
- Keyboard Shortcuts
  - New: ⌘⇧T opens the SQL Terminal
  - Changed: ⌘N opens the favorite window
  - Changed: ⌘⌥N opens a new window for the current connection
  Sorry for messing with your muscle memory, but I think these choices are better in the long term. I also added a few tooltips to make keyboard shortcuts more discoverable (eg. ⌘↩︎ to execute a query).
- Materialized Views are now also supported in PG Commander. They show up alongside tables & normal views in a green color.
- Added more Retina icons
- Pictures in bytea fields are now shown in a larger size
- Removed unnecessary plain text warning when connecting to 127.0.0.1.
- Fixed a problem where valid host keys were not accepted when connecting via SSH

April 17, 2014

## PG Commander – Version 1.2.3

- Fixed crash on Mac OS 10.8

April 10, 2014

## PG Commander – Version 1.2.2

- Updated libpq to version 9.3.4
- Updated OpenSSL to 1.0.1g to address heartbleed bug

February 12, 2014

## PG Commander – Version 1.2.1

- Improved Reload Behavior
  Previously, PG Commander only reloaded the currently active view when you hit ⌘R. Now PG Commander reloads the currently active view and the sidebar, and it purges cached views. This should make it behave a lot more intuitively.
- Fixed a problem with SSH Tunnels on OS X 10.8
- Fixed a problem when connecting to a SSH server for the first time.

February 1, 2014

## PG Commander – Version 1.2

- SSH Tunneling
  Finally! Connect to PostgreSQL servers behind firewalls with the included SSH tunnel support. Both password authentication and public/private key based authentication to the SSH server are supported.
- SSL on by default
  Instead of providing a checkbox, PG Commander now requires SSL by default. If the server doesn't support encrypted connections, PG Commander will show a warning.
- Show All Databases
  You can now show a list of all databases on the server when connecting.
- Delete tables & views
  Select the table and hit ⌘⌫ or right click on a table to bring up the context menu.
- Animations in the favorites window are now smoother.
- Default connection parameters are shown as placeholders.
- Toolbar can now be hidden.
- Scrolling tables horizontally with the trackpad/magic mouse doesn't get stuck anymore.
- Fixed a problem where passwords sometimes weren't saved in the keychain.
- PG Commander is now more robust when the server sends invalid UTF-8.
- Changed keyboard shortcut for new row to ⌘⇧N to avoid conflict with ‘New Window’ shortcut ⌘N.
- Now compatible with Amazon Redshift.
- Showing / hiding the sidebar is now permanent.
- Connection attempts can now be cancelled.

November 3, 2013

## PG Commander – Version 1.1.1

- Compatibility with older server versions
  PG Commander can now connect to servers running PostgreSQL 8.2
- Added a menu item (and the shortcut ⌘N) for the "New Window" command. (note: shortcut changed to ⌘⌥N in 1.3)
- Fixed a crash when using the context menu in SQL Terminal.

October 11, 2013

## PG Commander – Version 1.1

- Query History
  The SQL Terminal now remembers executed queries. Use ⌘⌥← and ⌘⌥→ to move backward and forward through recently executed queries.
- Load/Save Queries
  In SQL Terminal, there are now now buttons to load queries from text files, and to save them.
- Encrypted Favorite Export
  You can now choose to encrypt the password when exporting favorites.
- Improved Undo in SQL Terminal
  Executing a query in SQL Terminal no longer clears the undo buffer. This makes it much more convenient to fiddle with complex queries.
- Fixed UI Glitches in Terminal
  I have improved the layout code to avoid frequent jitters during scrolling. Also, Mavericks responsive scrolling is now disabled because it doesn't work with nested table views.
- Authenticated Update Checks
  When checking for updates, PG Commander now uses an SSL connection to ensure updates are only published by Egger Apps.

August 21, 2013

## PG Commander – Version 1.0

- Documentation PG Commander now includes documentation for the most important features.
- Context Menu Right clicking on items in the sidebar now brings up a context menu that allows you to quickly open them in a new window.

July 16, 2013

## PG Commander Beta 6 – Version 0.9.6

- Nicknames Favorites in PG Commander can now have nicknames! This allows you to distinguish between multiple databases on the same host. It's also great when your database has a cryptic hostname (like on AWS).
- Automatic Update Checking PG Commander now automatically checks for updates, and shows a subtle notification in the favorites window when a new version is available for download. You can disable automatic update checking in the preferences.
- Connect to high ports A bug in PG Commander made it impossible to connect to port numbers higher than 32767. This is now fixed. (I had mixed up signed and unsigned integers)
- Favorites Window In the wake of adding nicknames and update notifications, I tweaked the design of the favorites window.

June 29, 2013

## PG Commander Beta 5

This release is all about the little things.

### General

- Keyboard Shortcuts:
  - ⌘0 toggle sidebar
  - ⌘⌥↓ open selected table/row
  - ⌘⌥↑ go up in the hierarchy
- Fixed layout issues when toggling the sidebar.

### Row Editor

- Improved behavior of escape/enter key when editing foreign key fields.
- Added undo support when editing rows.
- Added keyboard shortcut Command-Return (⌘↩) to save and close the row.

### SQL Terminal

- Improved visual design to better match the rest of the app.
- Added Clear Display command to clear results of previous queries (⌘L).
- Added undo support in the query text field.
- Added keyboard shortcut Command-Return (⌘↩) to execute the query.

June 13, 2013

## PG Commander Beta 4

This beta fixes an issue where tables could not be viewed when connecting to PostgreSQL 9.0 and earlier.

June 12, 2013

## PG Commander Beta 3

I decided to change the name from PG Terminal to PG Commander. I think it fits much better. Besides the name change, this release brings other exciting new things:

- Awesome icon designed by Dave Brasgalla from the Iconfactory.
- Editing Tables with Foreign Keys: When a field has a foreign key constraint, PG Commander now shows the row from the foreign table. You can also directly pick a row from the foreign table from a popover. You can even quickly add a new row to the foreign table!
- There is now a preference setting for the number of rows loaded per page in the table view (default 1000).
- I started with writing the documentation. The first section is “Connecting to a PostgreSQL Server”.

April 18, 2013

## PG Terminal Beta 2

In this version I made some improvements to the sidebar:

- Only the current database appears in the sidebar by default. There is now a button to show all databases. This improves usability when connecting to a server with many databases.
- Errors when loading items in the sidebar are now properly reported.
- You can now reload the sidebar (eg. to make newly created tables show up)

## PG Terminal Beta 1

Initial public version.