aboutsummaryrefslogtreecommitdiffstats
path: root/Source/CMMCPConnection.m
Commit message (Collapse)AuthorAgeFilesLines
* - Tweak code to use the new UseKeepAlive preference valuerowanbeentje2009-04-111-3/+4
| | | | | | | - Update a few pref checks which were using the old pref values still - Resort preference defaults to match layout in prefs, restore old default values for some keys - Restore missing defaults for new editor properties
* - If a connection is reestablished automatically by the mysql libraries, ↵rowanbeentje2009-04-091-4/+19
| | | | ensure the connection encoding is similarly reset. This addresses Issue #79.
* - Second part of r498: ensure that SQL imports are read in as UTF8, and ↵rowanbeentje2009-04-081-3/+35
| | | | queries are sent as UTF8, if possible; this correctly preserves encoding data when working with files export from Sequel Pro or via mysqldump, and attempts to fall back to the current connection encodings for other files. This should resolve Issue #116.
* - Select 'drop tables' option for MySQL export by default, to improve ↵rowanbeentje2009-04-061-0/+7
| | | | | | | backup-type process and more closely match mysqldump, and correctly drop views - Consistently set and restore the encoding appropriately for SQL import/export, and export to UTF8 files to correctly store all characters. Goes a good way towards addressing Issue #116.
* - Add a preference (currently with no UI) for connection timeoutrowanbeentje2009-03-281-24/+8
| | | | | | | - Improve connection error messages slightly. - Avoid reading prefs for every keepalive check - now sets connection timeout and keepalive interval on connection setup - Fix and extend connection checks to avoid showing extra errors when the connection has been closed
* SPSQLParser changes:rowanbeentje2009-03-191-2/+20
| | | | | | | | | | | | | | | | | | - Use method caches for oft-called functions, and support caching of chunks of the underlying string for string walking, resulting in an overall 1.3x-1.4x parsing speedup. - Improve handling of multi-character comment starts (eg / or -) at the very end of strings - When running splitString... methods return even empty strings for consistency. - Update TableDump and TableData to match new usage SPStringAddition changes: - Add a formatter for time intervals. CMMCPConnection changes: - Add support for timing queries CustomQuery and nib changes: - Change the "Run Queries" button to "Run All". - Add a "Run Current" button, which runs the query the text caret is currently positioned inside; if text is actually selected, this changes to "Run Selection". This addresses Issue #43. - Amend the "rows affected" string to better reflect the actual number of rows altered by several queries, show the query count if > 1, and display the overall execution time of the queries. This addresses Issue #142. - No longer execute blank strings as part of the custom query, preventing errors.
* Additional error checking, centralised connection keep-alive interval ↵rowanbeentje2009-03-091-10/+32
| | | | retrieval, and support for disabling keep-alive by setting the interval to 0.
* - Renames "Database Encoding" menu item in Database menu to "View Using ↵rowanbeentje2009-03-041-32/+61
| | | | | | | | Encoding" for clarity - Add support for EUC-KR (I think, unable to test), hopefully fixing Issue #149 - Add workaround for UTF8 via Latin 1, supporting viewing and editing of data added using broken clients/upgraded old Wordpress/etc.
* Rollback on newbie mistake...bamse162009-03-021-10/+1
|
* Better error handling of dump reading (checking for NSError object instead ↵bamse162009-03-021-0/+9
| | | | | | | | of content of read string) Raising error when trying to import empty CSV file.
* Applies connection checks and keepalive logic to select database/refresh ↵rowanbeentje2009-02-281-0/+31
| | | | databases queries. This fixes Issue #176.
* Implement a connection keepalive, addressing Issue #171. This runs a ping ↵rowanbeentje2009-02-251-5/+78
| | | | every sixty seconds (a value stored in prefs, though not exposed via the prefs interface yet) in a background thread, to further improve connectivity handling following r334. Pings are only run when necessary - ie active use of the program extends the next ping interval as appropriate, so general impact should be minimal.
* Sets and enforces a connection timeout, and handles connection timeouts ↵rowanbeentje2009-02-181-18/+312
| | | | | | | | | | | | | | | | | | | 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.
* MERGED r262:266 from branches/stuart02 to trunk to include new project ↵stuconnolly2008-12-101-0/+207
structure.