aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2013-04-16 23:54:06 +0000
committerrowanbeentje <rowan@beent.je>2013-04-16 23:54:06 +0000
commit758789b3bba80f91182730841cb54ba0f3c86de4 (patch)
treead35144df108617d9b4d7783b525c3a3634feae5 /Source
parentae0304a33c1f960e0272b25ee40a1529993317c4 (diff)
downloadsequelpro-758789b3bba80f91182730841cb54ba0f3c86de4.tar.gz
sequelpro-758789b3bba80f91182730841cb54ba0f3c86de4.tar.bz2
sequelpro-758789b3bba80f91182730841cb54ba0f3c86de4.zip
- Fix string type detection, addressing errors when converting string types to blob or binary fields (addressing Issue #1453)
Diffstat (limited to 'Source')
-rw-r--r--Source/SPTableFieldValidation.m2
-rw-r--r--Source/SPTableStructureDelegate.m4
-rw-r--r--Source/SPTableStructureLoading.m2
3 files changed, 4 insertions, 4 deletions
diff --git a/Source/SPTableFieldValidation.m b/Source/SPTableFieldValidation.m
index bcd1dc8b..3a465338 100644
--- a/Source/SPTableFieldValidation.m
+++ b/Source/SPTableFieldValidation.m
@@ -102,7 +102,7 @@
if (![fieldTypes containsObject:type]) return YES;
- return (([fieldTypes indexOfObject:type] > 17) && ([fieldTypes indexOfObject:type] < 32));
+ return ((([fieldTypes indexOfObject:type] > 17) && ([fieldTypes indexOfObject:type] < 24) || (([fieldTypes indexOfObject:type] > 29) && ([fieldTypes indexOfObject:type] < 32))));
}
/**
diff --git a/Source/SPTableStructureDelegate.m b/Source/SPTableStructureDelegate.m
index a9f2a949..c2bdb98c 100644
--- a/Source/SPTableStructureDelegate.m
+++ b/Source/SPTableStructureDelegate.m
@@ -558,12 +558,12 @@
// Only string fields allow encoding settings
if (([[aTableColumn identifier] isEqualToString:@"encoding"])) {
- [aCell setEnabled:([fieldValidation isFieldTypeString:theRowType] && ![theRowType hasSuffix:@"BINARY"] && ![theRowType hasSuffix:@"BLOB"]) && [[tableDocumentInstance serverSupport] supportsPost41CharacterSetHandling]];
+ [aCell setEnabled:([fieldValidation isFieldTypeString:theRowType] && [[tableDocumentInstance serverSupport] supportsPost41CharacterSetHandling])];
}
// Only string fields allow collation settings and string field is not set to BINARY since BINARY sets the collation to *_bin
else if ([[aTableColumn identifier] isEqualToString:@"collation"]) {
- [aCell setEnabled:([fieldValidation isFieldTypeString:theRowType] && [[theRow objectForKey:@"binary"] integerValue] == 0 && ![theRowType hasSuffix:@"BINARY"] && ![theRowType hasSuffix:@"BLOB"] && [[tableDocumentInstance serverSupport] supportsPost41CharacterSetHandling])];
+ [aCell setEnabled:([fieldValidation isFieldTypeString:theRowType] && [[theRow objectForKey:@"binary"] integerValue] == 0 && [[tableDocumentInstance serverSupport] supportsPost41CharacterSetHandling])];
}
// Check if UNSIGNED and ZEROFILL is allowed
diff --git a/Source/SPTableStructureLoading.m b/Source/SPTableStructureLoading.m
index 89a731a8..720f2692 100644
--- a/Source/SPTableStructureLoading.m
+++ b/Source/SPTableStructureLoading.m
@@ -170,7 +170,7 @@
NSString *collation = nil;
NSString *encoding = nil;
- if ([fieldValidation isFieldTypeString:type] && ![type hasSuffix:@"BINARY"] && ![type hasSuffix:@"BLOB"]) {
+ if ([fieldValidation isFieldTypeString:type]) {
collation = [theField objectForKey:@"collation"] ? [theField objectForKey:@"collation"] : [[tableDataInstance statusValues] objectForKey:@"collation"];
encoding = [theField objectForKey:@"encoding"] ? [theField objectForKey:@"encoding"] : [tableDataInstance tableEncoding];