| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
the end of the table):
- Set column sizing to "Uniform" , instead of "Sequential" - "Sequential" autosized columns so that all columns remained visible within the table, with as many columns as possible at full width, resulting in many columns being set to their minimum width.
- Automatically delete saved column widths which are at minimum width on first run of this new version. This will delete columns intentionally set to minimum idth (once), but otherwise all tables which had their columns autoresized had the minimum/broken widths saved so even the fix above would not show.
- Remove old CocoaMySQL prefs upgrade code, and store the last run bundle version in the code to allow prefs upgrades to occur according to the build number in future.
|
|
|
|
|
|
|
| |
sheet shows its state correctly (fixes Issue #169)
- Fixes editing with "Don't load blob and text fields" preference enabled by fixing an incorrect method call
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
appropriately - offering to retry, reconnect, or disconnect. This fixes Issue #93, Issue #69, and Issue #77.
The gory details:
Previously, MCPKit was correctly running mysql_ping to ensure a connection still existed before running a query, and aborted the query if the connection was no longer active.However the code very rarely checked the response of this, so if a query failed subsequent queries would continue to be run and the program would end up checking non-existent results, throwing Cocoa exceptions and generally breaking. However, mysql_ping would also use the default timeout (30 seconds) for each check - when running the (previous to r333) 14 queries to switch tables, this resulted in a long hang before the program even broke.
To exacerbate the issue, certain situations triggered a bug present in mysql_ping in the old client binaries we're using (http://bugs.mysql.com/bug.php?id=9678), causing mysql_ping to never return despite the presence of a timeout, and so causing an indefinite hang.
This issue has been fixed by:
- Setting a new 10 second connection timeout for both new connections (Issue #69) and for mysql_pings. Once preferences have been redesigned we'll probably make this value editable.
- Enforce the 10 second timeout even if mysql_ping hangs by using interrupts.
- Wrap mysql_ping in a new method to do the above and also catch re-established connections without reporting false failures.
- When a connection has failed, prompt the user to Retry, Reconnect, or Disconnect. Reconnect uses the original details for the old connection to establish a new connection, also attempting to preserve the current encoding.
- Do not return control to the main loop until a connection has been reestablished (or disconnected) - this ensures the program is never in a broken state without having to rewrite all query usage.
Much of the above patches the MCPKit connection methods as necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Significantly reduce the queries that have to be performed, improving lag - especially over slow connections (Issue #118; see new controller info under headline code changes).
- Fix Issue #117 properly (export numeric quoting - we now have access to column types and so can quote appropriately).
- Fix Issue #145 (loss of unsigned/null/default attributes when reordering columns).
- Fixes Issue #90 (support for filtering DECIMAL column types)
- Improve table scrolling speed when the table contains long items. (Added a NSFormatter to automatically truncate strings > 150 chars for display purposes only)
- Improved SQL compatibility - for example /* C style comments */ are now correctly ignored in imports and custom queries.
- Add text and symbols emphasising that the table info pane / status view row count is an approximation (partially addresses Issue #141)
- Fixes a major memory leak whenever opening or scrolling tables containing text/blob data.
- SQL import is now faster (SQL parsing part is 3x faster).
- Speed up SQL export (1.5x faster for numeric data; 1.1x faster for string data) and slightly speed up CSV export (~1.1x faster).
- Display sizes on the status view using the byte size formatter, as per table info pane.
Headline code changes:
- Add a new NSMutableString subclass, SPSQLParser. See the header file for documentation and overview, but in short it's a centralised place for SQL parsing. Centralises and improves parsing, improves comment support, improves quoting support. Despite the improved featureset this is also faster than the previous distributed implementations - for example, when used to replace the old splitQueries:, > 3x speedup.
- Implement a new controller which handles a structure and status cache for the current table, and provides structure parsing for specified tables. This cache is now used throughout the code, reducing the queries that have to be performed and providing additional information about the table structure for use; I think it also improves column type format slightly.
- The table info pane and the status view now draw all their data from the cache.
Tweaks:
- Table encoding is now detected directly instead of being derived from the collation - increased accuracy and cope with the DEFAULT encoding.
- Comments and formatting cleaned up in bits I was working on, obviously.
- A couple of methods - particularly [tablesListInstance table] and [tableDocument encoding] - have been renamed to avoid conflicts and fix code warnings.
Future improvements now possible:
- As we now have access to column types and other information, we can provide per-type behaviour where desired.
- The table parsing doesn't currently pull out comments or table indices, together with one or two other attributes. Some of this would be useful for display; some, such as indices, could be used to draw the table structure view as long as we're happy discarding a couple of columns (ie cardinality!)
|
|
|
|
| |
Choose Database popup button now reverts to current database when cancelling the "Add Database…" dialog.
|
| |
|
|
|
|
| |
Fixes issue #143
|
| |
|
| |
|
|
|
|
| |
be returned. Fixes #151.
|
|
|
|
| |
SQL is failing.
|
| |
|
|
|
|
| |
whole meg on current build.
|
|
|
|
| |
bytes into a category class method of NSString so we can potentially use it in other places.
|
| |
|
|
|
|
| |
display.
|
| |
|
| |
|
| |
|
|
|
|
| |
looged in Subversion if we ever need it again. Resolves issue #147.
|
|
|
|
| |
NSView that is currently selected.
|
| |
|
|
|
|
| |
import panel
|
| |
|
| |
|
| |
|
|
|
|
| |
importing on a separate thread.
|
|
|
|
| |
being recopied whenever one was changed and not compiled.
|
|
|
|
| |
#121.
|
|
|
|
| |
• TableSource.m : fixed spelling error
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
caused by r274
|
| |
|
|
|
|
| |
NSScanner numeric checks, and clarifying comments to make it clearer that NSScanner should be replaced when possible.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
structure.
|
|
|
|
|
|
|
|
| |
- Allow Return or Enter pressed in the Limit From textbox to trigger a table filter
- Reset the content table view position on filtering or limit
- Refresh no longer clears the LIMIT FROM value if it's still valid
- Resolves Issue #65 and partially addresses Issue #49.
|
|
|
|
| |
chat with Stuart - now calls [TableDocument setEncoding:] so that all encoding setting is handled in one place. This fixes a bug where table encoding was detected correctly but only partly used, and adds error detection by falling back to connection autodetection if encoding change fails.
|
|
|
|
| |
create_date but not an update_date. Fixes the Table Information pane on InnoDB tables and associated draw errors.
|
|
|
|
|
|
|
|
|
| |
preferences - resolves Issue #67;
- Improve field mapping clarity and allow display of duplicate cell values by appending the column number to the current cell value
- Trims blank lines from CSV imports to avoid importing rows filled with defaults
- Correctly encodes linebreaks in CSVs for reimport
|
|
|
|
|
|
|
| |
encoding specific to each table
- Added the selected table's character encoding to the table information pane and removed the table's name
|
| |
|
|
|
|
| |
and evidently decided my version was newer without declaring it a conflict. Fixed.
|