From 366670eb692cea0eb40bf7ba6c060ea9be03ebc2 Mon Sep 17 00:00:00 2001 From: Sebastian Reitenbach Date: Fri, 29 Mar 2013 15:39:49 +0000 Subject: [PATCH] * EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m add some more potential table column types * EOAdaptors/SQLiteAdaptor/SQLite3Channel.m use the table types from the SQLite3Adaptor to decide about the valueType, and set the NOT NULL correctly git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@36452 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++ EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m | 38 +++++++++++++++----- EOAdaptors/SQLiteAdaptor/SQLite3Channel.m | 44 +++++++++++------------ 3 files changed, 58 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index c394a0e..b064b94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,12 @@ 2013-03-30: Sebastian Reitenbach * Apps/EOModelEditor/SQLGenerator.m Add NSEmitTODO to showTables: + * EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m + add some more potential table column types + * EOAdaptors/SQLiteAdaptor/SQLite3Channel.m + use the table types from the SQLite3Adaptor to + decide about the valueType, and set the NOT NULL + correctly 2013-03-25: Sebastian Reitenbach * EOAdaptors/SQLiteAdaptor/SQLite3Channel.m diff --git a/EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m b/EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m index d9240f6..e3d4a4b 100644 --- a/EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m +++ b/EOAdaptors/SQLiteAdaptor/SQLite3Adaptor.m @@ -43,14 +43,36 @@ NSString *SQLite3AdaptorExceptionName = @"SQLite3AdaptorException"; static NSString *types[][2] = { - {@"INTEGER", @"NSDecimalNumber"}, - {@"TEXT", @"NSString"}, - {@"BLOB", @"NSData"}, - {@"DATE", @"NSCalendarDate"}, - {@"REAL", @"NSNumber"}, - {@"VARCHAR", @"NSString"}, - {@"DOUBLE", @"NSNumber"}, - {@"NULL", @"EONull"}, + {@"INTEGER", @"NSDecimalNumber"}, + {@"INT", @"NSDecimalNumber"}, + {@"TINYINT", @"NSDecimalNumber"}, + {@"SMALLINT", @"NSDecimalNumber"}, + {@"MEDIUMINT", @"NSDecimalNumber"}, + {@"BIGINT", @"NSDecimalNumber"}, + {@"UNSIGNED BIGINT", @"NSDecimalNumber"}, + {@"INT2", @"NSDecimalNumber"}, + {@"INT8", @"NSDecimalNumber"}, + {@"TEXT", @"NSString"}, + {@"CLOB", @"NSString"}, + {@"CHARACTER", @"NSString"}, + {@"VARCHAR", @"NSString"}, + {@"VARYING CHARACTER",@"NSString"}, + {@"NCHAR", @"NSString"}, + {@"CHAR", @"NSString"}, + {@"NATIVE CHARACTER", @"NSString"}, + {@"NVARCHAR", @"NSString"}, + {@"BLOB", @"NSData"}, + {@"REAL", @"NSNumber"}, + {@"DOUBLE", @"NSNumber"}, + {@"DOUBLE PRECISION", @"NSNumber"}, + {@"FLOAT", @"NSNumber"}, + {@"NUMERIC", @"NSNumber"}, + {@"DECIMAL", @"NSNumber"}, + {@"BOOLEAN", @"NSNumber"}, + {@"BOOL", @"NSNumber"}, + {@"DATE", @"NSCalendarDate"}, + {@"DATETIME", @"NSCalendarDate"}, + {@"NULL", @"EONull"}, }; + (NSDictionary *)externalToInternalTypeMap diff --git a/EOAdaptors/SQLiteAdaptor/SQLite3Channel.m b/EOAdaptors/SQLiteAdaptor/SQLite3Channel.m index 32a5215..eb4bf81 100644 --- a/EOAdaptors/SQLiteAdaptor/SQLite3Channel.m +++ b/EOAdaptors/SQLiteAdaptor/SQLite3Channel.m @@ -347,6 +347,7 @@ static id newNumberValue(const char *data, EOAttribute *attrib) { NSString *columnName; NSString *externalType; + BOOL allowsNull; for (col=0;col