diff --git a/Classes/PLSqliteResultSet.m b/Classes/PLSqliteResultSet.m index d7c9f6e..d453151 100644 --- a/Classes/PLSqliteResultSet.m +++ b/Classes/PLSqliteResultSet.m @@ -290,7 +290,7 @@ - (id) objectForColumnIndex: (int) columnIndex { return [self stringForColumnIndex: columnIndex]; case SQLITE_INTEGER: - return [NSNumber numberWithLong: [self bigIntForColumnIndex: columnIndex]]; + return [NSNumber numberWithLongLong: [self bigIntForColumnIndex: columnIndex]]; case SQLITE_FLOAT: return [NSNumber numberWithDouble: [self doubleForColumnIndex: columnIndex]]; diff --git a/Classes/PLSqliteResultSetTests.m b/Classes/PLSqliteResultSetTests.m index f3422a6..04475bd 100644 --- a/Classes/PLSqliteResultSetTests.m +++ b/Classes/PLSqliteResultSetTests.m @@ -307,6 +307,7 @@ - (void) testNullValueHandling { - (void) testObjectForColumn { id result; NSNumber *testInteger; + NSNumber *testBigInteger; NSString *testString; NSNumber *testDouble; NSData *testBlob; @@ -317,10 +318,11 @@ - (void) testObjectForColumn { testString = @"Test string"; testDouble = [NSNumber numberWithDouble: 42.42]; testBlob = [@"Test data" dataUsingEncoding: NSUTF8StringEncoding]; + testBigInteger = [NSNumber numberWithLongLong: LLONG_MAX]; - STAssertTrue([_db executeUpdateAndReturnError: &error statement: @"CREATE TABLE test (a integer, b varchar(20), c double, d blob, e varchar(20))"], @"Create table failed: %@", error); - STAssertTrue(([_db executeUpdate: @"INSERT INTO test (a, b, c, d, e) VALUES (?, ?, ?, ?, ?)", - testInteger, testString, testDouble, testBlob, nil]), @"Could not insert row"); + STAssertTrue([_db executeUpdateAndReturnError: &error statement: @"CREATE TABLE test (a integer, b varchar(20), c double, d blob, e varchar(20), f integer)"], @"Create table failed: %@", error); + STAssertTrue(([_db executeUpdate: @"INSERT INTO test (a, b, c, d, e, f) VALUES (?, ?, ?, ?, ?, ?)", + testInteger, testString, testDouble, testBlob, nil, testBigInteger]), @"Could not insert row"); /* Query the data */ result = [_db executeQuery: @"SELECT * FROM test"]; @@ -345,6 +347,10 @@ - (void) testObjectForColumn { STAssertTrue(nil == [result objectForColumn: @"e"], @"Did not return correct NSNull value"); STAssertTrue(nil == result[@"e"], @"Did not return correct nil value"); STAssertTrue(nil == result[4], @"Did not return correct nil value"); + + STAssertTrue([testBigInteger isEqual: [result objectForColumn: @"f"]], @"Did not return correct integer value"); + STAssertTrue([testBigInteger isEqual: result[@"f"]], @"Did not return correct integer value"); + STAssertTrue([testBigInteger isEqual: result[5]], @"Did not return correct integer value"); [result close]; }