diff options
author | rowanbeentje <rowan@beent.je> | 2012-04-09 16:37:31 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2012-04-09 16:37:31 +0000 |
commit | 761ee77727eb18e0ed6980ea98ea723cb8b3e817 (patch) | |
tree | b3090244ce5c62b31464e7d3dc1c4f370e9f62e9 /Frameworks/SPMySQLFramework/Source | |
parent | 535ae6f2b8313ea6d5ae2e878dcd17d369807079 (diff) | |
download | sequelpro-761ee77727eb18e0ed6980ea98ea723cb8b3e817.tar.gz sequelpro-761ee77727eb18e0ed6980ea98ea723cb8b3e817.tar.bz2 sequelpro-761ee77727eb18e0ed6980ea98ea723cb8b3e817.zip |
- Upgrade to the MySQL 5.5.22 client libraries, updating to a much more up-to-date codebase.
- Update the build-mysql-client.sh MySQL build script within SPMySQL.framework to allow it to easily build 5.5 client libraries
- Fix reconnection within SPMySQL.framework after a connection is lost for MySQL servers < 5 when a query is cancelled by killing the connection
Diffstat (limited to 'Frameworks/SPMySQLFramework/Source')
3 files changed, 18 insertions, 0 deletions
diff --git a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Querying & Preparation.m b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Querying & Preparation.m index 686be183..5df71e96 100644 --- a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Querying & Preparation.m +++ b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Querying & Preparation.m @@ -339,6 +339,13 @@ if (lastQueryWasCancelled) { theErrorMessage = NSLocalizedString(@"Query cancelled.", @"Query cancelled error"); theErrorID = 1317; + + // If the query was cancelled on a MySQL <5 server, check the connection to allow reconnects + // after query kills. This is also handled within the class for internal cancellations, but + // as other external classes may also cancel the query. + if (![self serverVersionIsGreaterThanOrEqualTo:5 minorVersion:0 releaseVersion:0]) { + [self checkConnection]; + } } // Unlock the connection if appropriate - if not a streaming result type. diff --git a/Frameworks/SPMySQLFramework/Source/SPMySQLFastStreamingResult.m b/Frameworks/SPMySQLFramework/Source/SPMySQLFastStreamingResult.m index 8ba55134..1fa4b829 100644 --- a/Frameworks/SPMySQLFramework/Source/SPMySQLFastStreamingResult.m +++ b/Frameworks/SPMySQLFramework/Source/SPMySQLFastStreamingResult.m @@ -398,6 +398,11 @@ typedef struct st_spmysqlstreamingrowdata { [parentConnection _unlockConnection]; connectionUnlocked = YES; + // If the connection query may have been cancelled with a query kill, double-check connection + if ([parentConnection lastQueryWasCancelled] && [parentConnection serverMajorVersion] < 5) { + [parentConnection checkConnection]; + } + dataDownloaded = YES; [downloadPool drain]; } diff --git a/Frameworks/SPMySQLFramework/Source/SPMySQLStreamingResult.m b/Frameworks/SPMySQLFramework/Source/SPMySQLStreamingResult.m index b19e5356..51a17611 100644 --- a/Frameworks/SPMySQLFramework/Source/SPMySQLStreamingResult.m +++ b/Frameworks/SPMySQLFramework/Source/SPMySQLStreamingResult.m @@ -170,6 +170,12 @@ dataDownloaded = YES; [parentConnection _unlockConnection]; connectionUnlocked = YES; + + // If the connection query may have been cancelled with a query kill, double-check connection + if ([parentConnection lastQueryWasCancelled] && [parentConnection serverMajorVersion] < 5) { + [parentConnection checkConnection]; + } + return nil; } |