aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/MCPKit/MCPFoundationKit
Commit message (Collapse)AuthorAgeFilesLines
* Rework MCPConnection for greater thread safety:rowanbeentje2010-03-082-61/+87
| | | | | | | | - The delegate is now triggered for connectionLost: on the main thread, as this action will probably trigger a GUI update; this addresses http://log.sequelpro.com/view/10 . - Connection proxy disconnects are now triggered on the main thread - Connection checks are now made via a pthread'd ping in a loop, removing the reliance on SIGALRM which may hop thread execution back to the main thread when called on another thread. The new approach is cleaner but does rely on a loop with a sleep. This will hopefully improve the disconnect/retry/reconnect crashes.
* Fix a number of memory leaks, and over-releases, as both a result of manual ↵rowanbeentje2010-02-103-23/+25
| | | | inspection of leaks and Clang static analysis.
* - Rework SPSQLParser, extending DELIMITER support into all the original ↵rowanbeentje2010-02-051-1/+1
| | | | | | | | | | | functions (off by default). Remove the forked "...Sql..." functions, as they're now duplicates, and switch CustomQuery to using the original methods. - TableDump imports can now process DELIMITERs correctly as a result. - Alter the TableDump display of tables etc to use TablesList as the source of information, and used cached lists where appropriate for a small speedup. Also means we gain consistent sorting. - Display procedures and functions in the toggleable list when exporting as SQL - Tweak the procedure and function export to only export selected items, and also to respect the "export drop syntax" and "export create syntax" checkboxes - Fix a crash when removing items from the TablesList resulted in an errorneous selection by deselecting all rows before deleting (and preemptively applying the same fix to TableContent)
* - Fix SSH threads (and connections) which were never cleaned up or closed, ↵rowanbeentje2010-01-271-11/+18
| | | | | | | probably as a result of r1709 - Improve SSH and object cleanup, especially for cases where the connection drops, to ensure the connection proxy is cleaned up and all memory released
* Improve Disconnection on connection loss:rowanbeentje2010-01-241-1/+6
| | | | | | | | | - Set error strings on MCPConnection on user disconnect to allow existing error chcking to catch the state - Improve close behaviour from threads - Improve window close behaviour and appearance - Add new checks for disconnection in one or two crash-prone locations This addresses Issue #531, one of Issue #532, one of Issue #539, and probable reported crashes on Issue #541.
* • added method to get an info about unique database/tables names for ↵Bibiko2010-01-142-1/+42
| | | | completion
* - Move the query for the database structure to a background processing ↵rowanbeentje2010-01-121-2/+4
| | | | thread, as well as the existing background database connection, for a smoother experience
* • further developments for the F5 completionBibiko2010-01-111-2/+1
| | | | Note: not yet finished!
* • further preparations to F5 completionBibiko2010-01-111-5/+17
| | | | Note: not yet active - only querying the data in background will be performed for testing
* • first preparations to improve the Custom Query database names/table ↵Bibiko2010-01-102-0/+150
| | | | | | | | | names/field names + type and encoding completion - after connecting and updating the table list a background task executed on a different connection will be performed to query the information_schema db (MySQL >= 5 only so far) - the MCPConnection object holds a NSDictionary with all structural data Note: not yet active
* - Ensure all results for server variable requests are returned as strings, ↵rowanbeentje2010-01-035-20/+56
| | | | | | | to avoid binary-mode result issues with certain versions of MySQL (including 4.1.14). This should address Issue #509. - TableDocument now requests the server version string from MCPConnection, aiding caching
* - Fix saving of files or images added to the SPFieldEditorrowanbeentje2009-12-041-1/+1
| | | | | | - Fix a couple of memory leaks in the SPFieldEditor - Fix a crash caused by attempted reselection of databases after disconnection if no database was selected
* - Make a change to the area covered by threading locks in ↵rowanbeentje2009-11-281-4/+2
| | | | MCPStreamingConnection for a ~10-15% speedup in CPU-bound loops (eg data sets with lots of rows but little data) by reducing lock contention. (To be tested against #463)
* - Fix a couple of thread safety issues in TableContent, and attempt to fix ↵rowanbeentje2009-11-242-4/+45
| | | | | | | an occasional crasher when getting table cells by adding a retain - Alter MCPStreamingResult to use pthread mutexes in a further attempt to address Issue #463
* - Replace the LIMIT interface on the content view with a pagination control ↵rowanbeentje2009-11-231-2/+2
| | | | | | | | at the bottom. This addresses the last of Issue #49 and implements Issue #133; jump-to and two prefs affecting loading are available in a popup when clicking the pagination interface. - Format row counts at the bottom of the content pane - Increase the MCPStreamingResult buffer for a stronger workaround for #463
* - Keep a buffer of at least one full row between the downloading and ↵rowanbeentje2009-11-201-3/+6
| | | | processing rows - eg don't process the newly downloaded rows at once - as a workaround for Issue #463
* - Correctly report errors triggered *during* result download for streaming ↵rowanbeentje2009-11-163-1/+16
| | | | results. This improves partial content displays (using the new code as of r1530) and also improves custom query error reporting.
* - Make some thread safety improvements to try to address Issue #460rowanbeentje2009-11-161-1/+1
|
* Implement query cancellation support within MCPKit, and add it to the task ↵rowanbeentje2009-11-152-11/+132
| | | | | | | | | | functionality: - MCPKit now supports cancelling the active query; for MySQL servers >= 5.0.0 a query kill is attempted from a new connection, and if that fails or for MySQL < 5 a reconnect is triggered. - TableDocument now supports enabling a cancel task button on the task interface, including an optional callback - Implement query cancellation for custom queries. This addresses Issue #86. - Implement query cancellation for table content loads, filters, and sorts.
* The framework shouldn't be displaying dialogs, get the delegate to do it.stuconnolly2009-11-112-3/+8
|
* - Add safeguards to ensure sequential runs when holding down run all/run ↵rowanbeentje2009-11-101-5/+9
| | | | | | | selected keys in Custom Query, preventing NSLock deadlocks - Revery MCPConnection to locking on the *current* thread when running non-streaming queries, fixing deadlocks in some situations on background threads where the main thread is locked up via a modal loop - eg CSV import windows
* MCPConnection.[hm] refactoring.stuconnolly2009-11-102-41/+19
|
* - Alter query start/stop notifications to apply to only the originating ↵rowanbeentje2009-11-051-3/+3
| | | | window, regardless of key state, by passing in and looking for the table document instance
* - Tweak connection locking to avoid occasional NSLock warnings when running ↵rowanbeentje2009-11-011-13/+9
| | | | | | | custom queries - Add error connection to query reselection to avoid exceptions when editing queries while running them
* - Add support for createing fields of type BINARY and VARBINARY in the ↵stuconnolly2009-10-212-19/+36
| | | | | | | structure view. Fixes issue #223. - Fix for correctly displaying data within fields of type BINARY/VARBINARY. Fixes issue #348.
* - Tweak query locking with MCPStreamingResults to fix certain operations ↵rowanbeentje2009-10-132-3/+21
| | | | releasing locks on different threads from which they were locked (which generates a console message)
* Improve handling of NULL and "(not loaded)" placeholders:rowanbeentje2009-10-101-1/+1
| | | | | | | - Rewrite TableContent and CustomQuery to store NSNull and SPNotLoaded objects in the data arrays where appropriate, rather than providing string conversion on data load. Faster, simpler comparisons and processing code, slightly lower memory usage, and reduces the chance of bugs caused by inadvertantly processing the string values; we can now also distinguish easily between NULL and "NULL" etc, and further paves the ground for image representations of special values. - Fix a bug caused by consistent value reloading when editing BLOB/TEXT columns with deferred loading - if editing a row and revisiting an edited cell, the original value was restored; the original value is now only loaded once. This addresses the rest of Issue #423.
* Tiny tweak: make isNSNull checks ~3x fasterrowanbeentje2009-10-051-1/+3
|
* - Rewrite keepalive pings to be performed within pthreads, enforcing ping ↵rowanbeentje2009-10-052-43/+46
| | | | timeouts and thus avoiding problems with network connections dropping and mysql_ping sticking and crashing as more keepalive pings kick in. This should address Issue #298.
* • marked 'sequel-pro-print-template.html' as localizableBibiko2009-09-271-1/+1
| | | | | | | | | | | | • outsourced default QuickLook types into a localizable plist - prepared SP preferences and SP code to allow the user to add own QL types • prepared a localizable 'ContentFilter.plist' [not yet implemented fully] - this plist will held the default filter operators - this approach will give the user the chance to add own filters • removed three tiny memory leaks Note: In MCPResult.m variable 'MCPYear0000' was stored retained. Why? I removed it and couldn't encounter any problems.
* - Change the definition of forcePingTimeout to use int instead of ↵rowanbeentje2009-09-121-2/+2
| | | | NSInteger, matching signal handling function setup and fixing a warning
* If the SSH tunnel is unable to bind to the local port because there is ↵stuconnolly2009-08-281-11/+10
| | | | already an existing tunnel, give the user the option of using a standard connection to localhost on the port that is in use in order to use the existing tunnel. Fixes issue #371.
* Make the MCPkit framework truly 64 bit compatible by using the appropriate ↵stuconnolly2009-08-2612-135/+139
| | | | data types.
* Alter CustomQuery to use StreamingResult to download and process result sets:rowanbeentje2009-08-263-5/+50
| | | | | | | - Significantly improve memory usage - Minor speedup (1.1x faster?) to overall query/display times - Improvements to MCPStreamingResult and MCPConnection to accurately report affected row count
* - Fix NSLock console linesrowanbeentje2009-08-253-19/+23
| | | | | | | - Speed up table content processing a bit - Make the table content download/processing determinate where an approximate row count is available - Clean up table content source, assuming MCPStreamingResult will remain in use
* • bug fixed for _downloadAllDataBibiko2009-08-201-183/+177
| | | | | - do not check "if (rowDataLength)" due to the fact that a row could have the length 0 ( if all columns are set to NULL ), otherwise the entire row will be set to NULL and this causes a mismatch in the number of columns for that row later on • minor code cleaning (indentions)
* - Change MCPStreamingResult to use a safer streaming mode by default - ↵rowanbeentje2009-08-206-152/+373
| | | | | | | download all results as fast as possible from the server, to avoid blocking, but do so in a background thread to allow results processing to start as soon as data is available. Many thanks to Hans-Jörg Bibiko for assistance with this. - Add an option to the SQL export dialog to allow selection of the full-streaming method, with a warning that it may block table UPDATES/INSERTS.
* - Add a note to warn about use of MCPStreamingResultrowanbeentje2009-08-171-0/+8
|
* Rework SQL export:rowanbeentje2009-08-175-17/+304
| | | | | | | - Added an MCPStreamingResult class to MCPKit, to allow streaming results from the server including fast array access of each row - Tweak SQL export to use the streaming result class and to keep memory usage lower End result is generally faster exports, more accurate progress bars, and much much lower (and consistent) memory usage.
* - Make result sets 1.5x faster to process by using 10.4+ native ↵rowanbeentje2009-08-161-15/+4
| | | | stringWithCString:encoding: instead of old NSData-based functions. Speeds up large table loading significantly.
* Missing SVN properties.stuconnolly2009-08-0815-15/+15
|
* - Fix a memory leak when filtering the server variablesstuconnolly2009-08-071-4/+3
| | | | | | - Fix a memory leak in MCPResult.m's stringFromCString: - Display the number of server variables being display when a filter is being applied
* - Remove compression option in mysql_options (already set as part of ↵rowanbeentje2009-07-281-4/+1
| | | | | | | connection flags) - Add CLIENT_REMEMBER_OPTIONS to connection flags
* - Fix editing of results including decimalsrowanbeentje2009-07-231-0/+3
| | | | | - Enable custom query result editing
* To fix query logging not working, initialize delegateQueryLogging to YES ↵stuconnolly2009-07-232-5/+35
| | | | upon connection initialization as well as setting the value based on the user's preferences during initiateMySQLConnection in SPConnectionController. Also, initialize delegateResponseToWillQueryString when the connection's delegate is set and revert back to simply calling the delegate method willQueryString:connection: as opposed to using the selector cache as its currently not working. Might need to look into restoring this if we incur a big performance hit after this revision.
* - Fix a large memory leak in [MCPConnection prepareString]rowanbeentje2009-07-231-1/+1
|
* Remove delegate calls asking for SP specific TableDocument ivars, replacing ↵stuconnolly2009-07-222-7/+9
| | | | them with more generic delegate methods.
* - Allow the reconnection dialogs to function correctly if anything other ↵rowanbeentje2009-07-221-4/+4
| | | | | | | than "Disconnect" is selected - Fix tunnel restarts
* - Restore MySQL 3.x compatibilityrowanbeentje2009-07-221-3/+3
|
* To prevent a deadlock situation in fetchMaxAllowedPacket, query lock must be ↵stuconnolly2009-07-211-1/+1
| | | | unlocked as serverMajorVersion performs a query and thus attempts to obtain the lock.