NEW IN VERSION 0.9.9.

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:

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 selecting columns 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 font sizes 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 capabilities 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 drop-down 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 line-breaks 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 compatibility 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 containing 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