aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m
diff options
context:
space:
mode:
Diffstat (limited to 'Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m')
-rw-r--r--Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m56
1 files changed, 11 insertions, 45 deletions
diff --git a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m
index dd684c78..01410eb5 100644
--- a/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m
+++ b/Frameworks/SPMySQLFramework/Source/SPMySQLConnection Categories/Server Info.m
@@ -46,54 +46,34 @@
return [NSString stringWithString:serverVariableVersion];
}
-#warning FIXME: There is probably a race condition here with -[self _disconnect]
- if(mySQLConnection) {
- return [self _stringForCString:mysql_get_server_info(mySQLConnection)];
- }
-
return nil;
}
/**
- * Return the server major version or NSNotFound on failure
+ * Return the server major version or 0 on failure
*/
- (NSUInteger)serverMajorVersion
{
- NSString *ver;
- if ((ver = [self serverVersionString]) != nil) {
- NSString *s = [[ver componentsSeparatedByString:@"."] objectAtIndex:0];
- return (NSUInteger)[s integerValue];
- }
-
- return NSNotFound;
+ // 5.5.33 => 50533 / 10'000 => 5.0533 => 5
+ return (serverVersionNumber / 10000);
}
/**
- * Return the server minor version or NSNotFound on failure
+ * Return the server minor version or 0 on failure
*/
- (NSUInteger)serverMinorVersion
{
- NSString *ver;
- if ((ver = [self serverVersionString]) != nil) {
- NSString *s = [[ver componentsSeparatedByString:@"."] objectAtIndex:1];
- return (NSUInteger)[s integerValue];
- }
-
- return NSNotFound;
+ // 5.5.33 => 50533 - (5*10'000) => 533 / 100 => 5.33 => 5
+ return ((serverVersionNumber - [self serverMajorVersion]*10000) / 100);
}
/**
- * Return the server release version or NSNotFound on failure
+ * Return the server release version or 0 on failure
*/
- (NSUInteger)serverReleaseVersion
{
- NSString *ver;
- if ((ver = [self serverVersionString]) != nil) {
- NSString *s = [[ver componentsSeparatedByString:@"."] objectAtIndex:2];
- return (NSUInteger)[[[s componentsSeparatedByString:@"-"] objectAtIndex:0] integerValue];
- }
-
- return NSNotFound;
+ // 5.5.33 => 50533 - (5*10'000 + 5*100) => 33
+ return (serverVersionNumber - ([self serverMajorVersion]*10000 + [self serverMinorVersion]*100));
}
#pragma mark -
@@ -105,23 +85,9 @@
*/
- (BOOL)serverVersionIsGreaterThanOrEqualTo:(NSUInteger)aMajorVersion minorVersion:(NSUInteger)aMinorVersion releaseVersion:(NSUInteger)aReleaseVersion
{
- NSString *ver;
- if (!(ver = [self serverVersionString])) return NO;
-
- NSArray *serverVersionParts = [ver componentsSeparatedByString:@"."];
-
- NSUInteger serverMajorVersion = (NSUInteger)[[serverVersionParts objectAtIndex:0] integerValue];
- if (serverMajorVersion < aMajorVersion) return NO;
- if (serverMajorVersion > aMajorVersion) return YES;
-
- NSUInteger serverMinorVersion = (NSUInteger)[[serverVersionParts objectAtIndex:1] integerValue];
- if (serverMinorVersion < aMinorVersion) return NO;
- if (serverMinorVersion > aMinorVersion) return YES;
+ unsigned long myver = aMajorVersion * 10000 + aMinorVersion * 100 + aReleaseVersion;
- NSString *serverReleasePart = [serverVersionParts objectAtIndex:2];
- NSUInteger serverReleaseVersion = (NSUInteger)[[[serverReleasePart componentsSeparatedByString:@"-"] objectAtIndex:0] integerValue];
- if (serverReleaseVersion < aReleaseVersion) return NO;
- return YES;
+ return (myver >= serverVersionNumber);
}
#pragma mark -