Sequel Pro 0.9.9 Release Candidate
June 13th, 2011
It’s been quite a long time since our last release, but we haven’t been idle; we’re happy to present you with a release candidate of the next version of Sequel Pro: 0.9.9.
Please download a copy of the application, test, and report any bugs you find.
Highlights of the new features in this version are: translation support, plugin support, tabbed window support, QuickLook, new index creation interface, overhauled and unified export interface, improved import interface with much better CSV field mapping, a server navigator, improved data type support including spatial data support, improved table views and much improved stability. There are however many, many more features to discover; some of the changes in this version are included in the release notes – click through to the full post to see them.
Check the issue tracker and report any new bugs you find in this release.
Any questions can be posted to Google Groups.
Download 0.9.9 Release Candidate
Release notes:
Interface
- Support the up and down arrow keys to navigate between cells in Content and Query views.
- The enter key now ends editing for the current cell and saves the row.
- Allow tab and shift-tab to select all cells – including BLOB content – opening the editor sheet on first edit
- Made deletion actions more consistent by renaming many occurrences of “Remove” to “Delete”
- Filesystem sizes are now reported in base 2 (KiB/MiB) rather than base 10 (KB/MB) to clarify what 1GB represents
- Implement database renaming
- Implement database duplication, including content if requested
- Improve the layout of several menus and rename a number of menu items for clarity
- Update Add Table and Add Database dialogs to use lists of supported encodings provided by the server
- Add a server Navigator view for viewing databases and tables:
- Display a filterable list of all databases, their tables, and their columns
- Support selectingcolumns to view overview information about each
- Support double-clicking databases and tables to switch the active window to the selection
- Support synching the navigator selection to the current view
- Support dragging and dropping tables and columns into custom query editors
- Support dragging tables onto the table list to copy that table and its content
- Add a Sequel Pro Quicklook plugin, for SQL and connection/session files
- Support ^= as a keyboard shortcut to restore fontsizes to their default setting in edit fields
- Allow Show/Copy Create Syntax use when multiple items are selected, showing all create syntaxes
- When using Show/Copy Create Syntax on Procedures wrap the output with DELIMITER ;; for convenience
- Reduce the minimum window size by making the connection view layout scrollable
- Display the field type and NULL details in the editor sheet
- Don’t allow input in the editor textfield or sheet if the field length would be exceeded
- Improve support of the Escape key to cancel or abort row editing
- Improve the interface to more closely reflect the capbilities of different server versions
- Support three-finger swiping gestures for navigating backwards and forwards in history
- Add the ability to move the selected line up or down in many text views (^⌘↑ and ^⌘↓)
- Add the ability to “Jump to Selection” (⌘J)
- Move the “performance_schema” database to the system databases group
- Improve the field editor sheet to be document-modal, and improve standard OS interaction within it – for example Find and undo behaviour
- Right-align numeric columns in table content and custom query views
- Add the ability to double-click in empty areas of main tableviews to add new rows
Translation
- Add translation support to the application including easy interface translation and a translation ecosystem
- Add German translation
- Add Russian translation
- Add a “Provide Translation Feedback” menu item in the Help menu
- Made many more strings and interface components localisable
Tabs
- Implement tabs for multiple connections within the same window
- Improve custom PSMTabBar implementation for improved appearance and dragging behaviour
- Allow keyboard navigation between tabs with multiple keyboard shortcuts: ^⇥ / ^⇧⇥ , ⇧⌘[ / ⇧⌘] , and ⌥⌘← / ⌥⌘→ .
- Support duplication of the current tab (⌥T) and moving it to a new window
- If text is dragged onto a tab, switch to that tab and the query view within it
- Support double-clicking on a tab to duplicate it
- Support double-clicking on an empty part of the tab bar to create a new tab
Bundles
- Add initial support for user plugins, saved as .spBundle files, and a bundle editor to allow editing and creation
- Allow .spBundle bundles to contain any support files, and allow upgrading .spBundle versions by UUID
- Support scripts in any OS-supported scripting language (BASH, Ruby, Python, Perl, Applescript, etc)
- Support general scope plugins
- Support table data scope plugins, with support for selected row data or table data with BLOB control
- Support text editing scope plugins, with support for the selected text or the full content of the editor
- Support execution of custom commands via a sequelpro:// URL scheme
- Allow organisation of bundles within a Bundles menu by menu category
- Support bundle triggers which execute the bundle: database changed, table changed, or row selection changed
- Support a long list of shell variables for Sequel Pro state use within plugins
- Allow all plugins to display results in an HTML window – foreground or background – or tooltips
- Allow text plugins to amend or replace the selection or wider text editor contents
- Add appropriate bundles to contextual menus
- Allow custom keyboard shortcuts to be assigned to Bundles
- More complete Bundle documentation can be found at http://www.sequelpro.com/docs/Bundle_Editor
- Add default bundles included with Sequel Pro:
- Add a bundle to enable copying selected table data as JSON
- Add a bundle to copy a line from a text field, quoted for use in other scripts
- Add a bundle to display a report with all databases, tables, and their formats and sizes
- Add a bundle to format SQL using an online service
- Add a bundle to open the selected table in Numbers or Excel
- Add a bundle to display JSON format cleanly and to convert it back to valid JSON
- Add a bundle to demonstrate wrapping selected text within a DELIMITER statement
Connection
- Fix favourite sorting persistence
- Add support for SSL connections
- Perform the initial MySQL connection on a background thread, increasing UI responsiveness and allowing the connection to be cancelled
- Support saving entire connection sessions (all open windows including tabs) as a Sequel Pro Session file (.spfs)
- Replace built-in MySQL reconnection with custom connection handling code:
- Attempt a single reconnect automatically without displaying the disconnection UI
- If no network is available, delay reconnects to allow the network to come back up
- Improve SSH reconnections and stability
- Consolidate “Reconnect” and “Retry” buttons in the connection lost dialog
- Improve stability when disconnecting for both single and multiple concurrent connections
- Improve connection keepalive
- Improve stability when dealing with poor network conditions, especially with multiple connections
- Add support for SSH identity files (public keys) in custom locations
- Improve compatibility with systems which support MySQL interfaces, including Sphinx
- Allow SSH connections to use custom ports specified in SSH configuration files
- Alter SSH connections to use ControlMaster auto settings instead of master mode
- Improve SSH tunnel behaviour for connections with non-Latin characters in their name
- Add a fallback to ask the user for their SSH password if automatic lookups fail
- Fix the use of extended character sets in passwords or connection details
- Allow keyboard navigation through favourites even if they have blank passwords
- If a favourite is selected and the tab key is used, move the selection to an empty password field if one exists
Tables List
- Fix a crash after truncating tables in certain table states
- Support exporting currently selected tables from the table list context menu
- Add a menu item for refreshing the table list to the database menu (^⌘R)
- Keep the tables list a fixed width when resizing the window
- Correctly preserve the width of the tables list across sessions
- Fix display of the table name if deleting a table from a filtered list
- Preserve active content table filter settings when the tables list is refreshed
Structure Tab
- Add support for additional field information: comments, encoding, and collation
- Allow key, encoding, collation and comment columns to be hidden using an options menu below the table
- Display field types as uppercase to match convention
- Add an “optional” placeholder to the new index name field to clarify that it isn’t required
- Improve row saving, particularly when editing combo boxes or popup buttons with the mouse
- Improve DEFAULT syntax generation to avoid unnecessary error messages for unsupported types
- Add support for SERIAL and BOOL[EAN] types
- Update the interface based on selected field type to disable invalid options
- Improve field type autocompletion and processing user-entered strings
- Improve error messages when saving rows by displaying the generated SQL statement
- Save column widths across sessions
- Add a contextual menu item to show optimized field type
- Add a new Index creation sheet:
- Allow multiple columns to be indexed easily
- Allow the index storage type to be specified as an advanced setting
- Allow the length prefix to be specified on columns as an advanced setting
- Allow definition of the index’s key block size as an advanced setting
- Improve display of binary types
- Set columns to unsigned if they are set as a primary key
- Improve handling of date and time field types
- Only allow selection of auto_increment for fields if there isn’t an auto_increment already present
- Ensure the structure view is activated after creating a new table
Content Tab
- Fix an error when the row is deleted or duplicated while editing a cell.
- Automatically resize table column widths to match their contents
- Update the table view with new results as they are retrieved
- Support editing view contents on a per-cell basis if fields can be uniquely identified
- Allow numeric formatters (such as commas) to be entered in the pagination limit field
- Fix an possible exception if loading a content page with no result rows
- Fix restoration of table pagination when navigating from a table with no rows
- Update the table row count when deleting rows via the interface
- Fix exceptions when using filters or pagination while editing a row
- Add support for a keyboard-driven quick query builder for power users, activated by Find (⌘F):
- Allow filter values to be specified for all fields in a table
- Allow multiple values to be specified for each field
- Support negation
- Support a live SQL preview
- Support a query shorthand for different operator types and default operators
- Allow DISTINCT searches via the options menu
- Allow quick-search of all fields
- Support live filtering while typing
- Only include edited fields in the UPDATE query when saving rows
- Save numeric fields as NULL if a cell is blanked and the field support NULLs
- Preserve the filter comparison type if possible when the filter column is changed
Query Tab
- Allow stored procedures to be run. Currently, only the first actual result set will be displayed.
- Support in-cell editing of non-TEXT/BLOB custom query result fields instead of editing all fields in sheets
- Further improve autocompletion:
- Support autocompletion for database or table aliases
- Display the text cursor at the correct position when autocompleting to clarify text entry
- Show autocompleted text at partial opacity to indicate it’s temporary until selected
- Update the autocomplete placeholder when the autocomplete dropdown selection changes
- Improve autocompletion adjacent to a number of special characters including mathematical operators
- Detect whether the caret is within quotes to improve autocompletion suggestions
- Move the rows affected and timing stats to a new button bar
- Don’t display the error message area unless there is a message to display
- Add a contextual menu and menu item to export the custom query results
- Normalise linebreaks in whitespace to prevent syntax errors
- Automatically resize custom query result column widths to match their contents
- Update the results view with new results as they are retrieved
- Reset the custom sort order display when running a new query
- Add a contextual menu item for the table allowing copying of the result set
- Improve Shift Left/Shift Right, including adding support for configurable space-based indentation
- Improve “Select Line” to include the entirety of wrapped lines
- Disable AutoHelp when the help window is closed
- Improve highlighting of custom query errors by scrolling to any errors that occur
- Fix syntax highlighting for –\r and –\n comment styles
- Improve speed of processing very long text in the query editor
Triggers Tab
- Support double-clicking on triggers to edit them (drop and re-create)
- Load triggers only when the triggers tab is loaded
- Improve trigger column widths
- Fix trigger deletion and improve deletion error handling
Information Tab
- Improve display of auto_increment value
Preferences
- Add the ability to set the selection colour in the Preferences Query Editor tab
- Support definition and display of alpha transparency in custom colours in editor themes
- Support switching between, import, and export of query editor colour themes (.spTheme)
- Support previews of Tables and Query Editor fonts
Import / Export
- Redesign the export interface into a unified interface exposing new functionality:
- Integrate CSV, SQL, XML and dot export types, mapping as appropriate to available data
- Rework interface for selecting tables and information to export
- Support saving custom filenames including placeholder tokens for host, database, table and date formats
- Improve filename extension construction
- Display and remember the export location to reduce number of steps for most exports
- Support specifying custom CSV and XML NULL values
- Support configuration of whether the UTF-8 BOM should be used in SQL dumps
- Support export of BLOB values in SQL as plain text rather than hex
- Support configuration of maximum INSERT size when generating SQL to export content
- Improve handling of files which already exist when exporting multiple files
- Display a warning if new tables have been created between an export being set up and initiated
- Display a small warning if the selected export format cannot be imported by Sequel Pro
- Support the MySQL schema format for XML export
- Support gzip compression for import and export
- Support bzip2 compression for import and export
- Allow import file encoding to be autodetected or specified via a menu instead of using the connection encoding
- Normalise linebreaks in whitespace when importing files to avoid syntax errors
- Addition of an “Import from Clipboard…” File menu item (⌥⇧⌘I), as an alternate to the new “Import…” menu. This shows a small preview of the clipboard and the standard import options
- Improve the speed of writing exports to file, resulting in faster exports
- Improve handling of connection loss during import
- Update the field mapping table after refreshing the table list in the CSV import field mapper
- Add the ability to import a CSV into a new table, allowing naming and smart field setup
- Support custom SQL functions when importing data from CSVs via the field mapping sheet via “Add value or expression”, including placeholder support for CSV values
- Add the ability to add columns to the target table (⌘⌥A or via the contextual menu), and remove them
- Improve support for DELIMITER syntax in import files
- Automatically switch between commas and tabs as the field delineator based on .csv or .tsv selection for imports
- Improve handling of CSV files containing partial or empty rows
- When importing SQL views, ask how to deal with import errors – ask how to proceed, or ignore all errors
- Change the default SQL import behaviour to ask how to proceed on error
- Improve case-sensitivity support in .dot exports; add a new checkbox controlling case sensitivity when generating .dot graphs, prepopulated according to the server’s case-sensitivity setting
- When importing CSVs set numeric fields to NULL instead of 0 if empty strings are encountered
- Improve CSV automatic field mapping under “Align field names by” to use Levenshtein and improved logic
Server Processes Panel
- Add the ability to auto-refresh the process list (can be toggled with a button or ⇧⌘R)
- Add the ability to configure the auto-refresh interval
- Update the process list on a background thread for increased interface responsiveness
- Improve handling of connection loss
- Assign the Refresh button a keyboard shortcut (⌘R) and fix the tooltip
- Enable alternating rows for improved display
- Allow sorting of the server processes
- Preserve server process list column widths across sessions
User Manager
- Fix permissions saving for users with underscores in their names
- Improve User Manager compabitibility with MySQL 3.x and 4.x servers
- Fix issues when adding new hosts to existing users
- Improve support for blank passwords
- Fix issues with applying all privileges not including GRANT OPTION
- Support double-clicking on schema privileges to move them between available and granted
- Improve editing of user hosts
- Improve error reporting when saving users
Printing Support
- Allow the AppleScript “print” command to print the current view
- Update structure headings to reflect the table type
- Only print the indexes table if indexes are present
Query Console Log
- Improve thread safety when logging from multiple threads
Other
- Add support for spatial data
- Display spatial data as editable …AsText() function strings, including multipolygon and geometrycollections
- Add spatial field types to structure autocompletion lists
- Display spatial representations of data in the tooltip in Content and Query views
- Support addition of spatial indexes on MyISAM tables
- Support SRID edits of spatial fields via WKT strings and conversion to GeomFromText
- Improve handling of BIT fields, including editing (with new interface), display, and import and export
- Improve handling of [VAR]BINARY fields
- Fix handling of strings contailing null characters (\0)
- Improve encoding handling to support extended characters in database, table and column names
- Improve UTF8-over-Latin1 handling in custom queries and edits
- Retrieve supported database encodings from MySQL 4.1 servers
- Increase speed by cacheing server version for use by various actions
- Improve handling of table names containing backslashes
- Improve multithreading and query locking to prevent hangs
- Fix connection loss crashes when attempting to save data caused by unsafe content escape routines
- Fix a crash if AppleScript is used to “open” without any parameters
- Update RegexKitLite to 4.0
- Enable more optimisations within the MySQL libraries
- Fix history navigation when using Trigger views
- Upgrade to MySQL 5.1.57 client libraries (was 5.1.44)
- Significant code cleanup, stability, and architecture changes

How do I go about doing and submitting a translation into Spanish? I am a high school teacher living in Spain and would like to translate SQL Pro as one of my projects before school is out for the summer.
TIA,
Ted Stresen-Reuter