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
|