aboutsummaryrefslogtreecommitdiffstats
path: root/Source/CMMCPConnection.m
Commit message (Collapse)AuthorAgeFilesLines
* - 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.