aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/SPMySQLFramework/Source
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2012-04-09 16:37:31 +0000
committerrowanbeentje <rowan@beent.je>2012-04-09 16:37:31 +0000
commit761ee77727eb18e0ed6980ea98ea723cb8b3e817 (patch)
treeb3090244ce5c62b31464e7d3dc1c4f370e9f62e9 /Frameworks/SPMySQLFramework/Source
parent535ae6f2b8313ea6d5ae2e878dcd17d369807079 (diff)
downloadsequelpro-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')
-rw-r--r--Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Querying & Preparation.m7
-rw-r--r--Frameworks/SPMySQLFramework/Source/SPMySQLFastStreamingResult.m5
-rw-r--r--Frameworks/SPMySQLFramework/Source/SPMySQLStreamingResult.m6
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;
}