diff options
-rw-r--r-- | Source/SPSQLExporter.m | 2 | ||||
-rw-r--r-- | Source/SPTableData.m | 2 | ||||
-rw-r--r-- | Source/SPTableStructure.m | 4 | ||||
-rw-r--r-- | Source/SPTableStructureLoading.m | 5 |
4 files changed, 7 insertions, 6 deletions
diff --git a/Source/SPSQLExporter.m b/Source/SPSQLExporter.m index 03958f32..649e4ac3 100644 --- a/Source/SPSQLExporter.m +++ b/Source/SPSQLExporter.m @@ -884,7 +884,7 @@ [fieldString appendString:@" DEFAULT NULL"]; } } - else if ([[column objectForKey:@"type"] isEqualToString:@"TIMESTAMP"] && [column objectForKey:@"default"] != [NSNull null] && [[[column objectForKey:@"default"] uppercaseString] isEqualToString:@"CURRENT_TIMESTAMP"]) { + else if (([[column objectForKey:@"type"] isEqualToString:@"TIMESTAMP"] || [[column objectForKey:@"type"] isEqualToString:@"DATETIME"]) && [column objectForKey:@"default"] != [NSNull null] && [[[column objectForKey:@"default"] uppercaseString] isEqualToString:@"CURRENT_TIMESTAMP"]) { [fieldString appendString:@" DEFAULT CURRENT_TIMESTAMP"]; } else { diff --git a/Source/SPTableData.m b/Source/SPTableData.m index e4945305..5158d4be 100644 --- a/Source/SPTableData.m +++ b/Source/SPTableData.m @@ -1343,7 +1343,7 @@ [detailParser release]; definitionPartsIndex++; - // Special timestamp case - Whether fields are set to update the current timestamp + // Special timestamp/datetime case - Whether fields are set to update the current timestamp } else if ([detailString isEqualToString:@"ON"] && (definitionPartsIndex + 2 < partsArrayLength) && [[NSArrayObjectAtIndex(definitionParts, definitionPartsIndex+1) uppercaseString] isEqualToString:@"UPDATE"] && [[NSArrayObjectAtIndex(definitionParts, definitionPartsIndex+2) uppercaseString] isEqualToString:@"CURRENT_TIMESTAMP"]) { diff --git a/Source/SPTableStructure.m b/Source/SPTableStructure.m index b2675271..807ff1ae 100644 --- a/Source/SPTableStructure.m +++ b/Source/SPTableStructure.m @@ -856,8 +856,8 @@ static NSString *SPRemoveFieldAndForeignKey = @"SPRemoveFieldAndForeignKey"; [queryString appendString:@"\n DEFAULT NULL"]; } } - // Otherwise, if CURRENT_TIMESTAMP was specified for timestamps, use that - else if ([theRowType isEqualToString:@"TIMESTAMP"] && + // Otherwise, if CURRENT_TIMESTAMP was specified for timestamps/datetimes, use that + else if (([theRowType isEqualToString:@"TIMESTAMP"] || [theRowType isEqualToString:@"DATETIME"]) && [[[theRow objectForKey:@"default"] uppercaseString] isEqualToString:@"CURRENT_TIMESTAMP"]) { [queryString appendString:@"\n DEFAULT CURRENT_TIMESTAMP"]; diff --git a/Source/SPTableStructureLoading.m b/Source/SPTableStructureLoading.m index 399176c2..07656155 100644 --- a/Source/SPTableStructureLoading.m +++ b/Source/SPTableStructureLoading.m @@ -247,8 +247,9 @@ [theField setObject:@"auto_increment" forKey:@"Extra"]; } - // For timestamps check to see whether "on update CURRENT_TIMESTAMP" and set Extra accordingly - else if ([type isEqualToString:@"TIMESTAMP"] && [[theField objectForKey:@"onupdatetimestamp"] integerValue]) { + // For timestamps/datetime check to see whether "on update CURRENT_TIMESTAMP" and set Extra accordingly + else if (([type isEqualToString:@"TIMESTAMP"] || [type isEqualToString:@"DATETIME"]) && + [[theField objectForKey:@"onupdatetimestamp"] integerValue]) { [theField setObject:@"on update CURRENT_TIMESTAMP" forKey:@"Extra"]; } } |