Skip to content

Commit

Permalink
Added support for unsigned long long int values.
Browse files Browse the repository at this point in the history
  • Loading branch information
ccgus committed Mar 19, 2012
1 parent ba22f34 commit 87748d1
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/FMDatabase.m
Expand Up @@ -350,6 +350,9 @@ - (void)bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt {
else if (strcmp([obj objCType], @encode(long long)) == 0) {
sqlite3_bind_int64(pStmt, idx, [obj longLongValue]);
}
else if (strcmp([obj objCType], @encode(unsigned long long)) == 0) {
sqlite3_bind_int64(pStmt, idx, [obj unsignedLongLongValue]);
}
else if (strcmp([obj objCType], @encode(float)) == 0) {
sqlite3_bind_double(pStmt, idx, [obj floatValue]);
}
Expand Down
3 changes: 3 additions & 0 deletions src/FMResultSet.h
Expand Up @@ -52,6 +52,9 @@
- (long long int)longLongIntForColumn:(NSString*)columnName;
- (long long int)longLongIntForColumnIndex:(int)columnIdx;

- (unsigned long long int)unsignedLongLongIntForColumn:(NSString*)columnName;
- (unsigned long long int)unsignedLongLongIntForColumnIndex:(int)columnIdx;

- (BOOL)boolForColumn:(NSString*)columnName;
- (BOOL)boolForColumnIndex:(int)columnIdx;

Expand Down
8 changes: 8 additions & 0 deletions src/FMResultSet.m
Expand Up @@ -228,6 +228,14 @@ - (long long int)longLongIntForColumnIndex:(int)columnIdx {
return sqlite3_column_int64([_statement statement], columnIdx);
}

- (unsigned long long int)unsignedLongLongIntForColumn:(NSString*)columnName {
return [self unsignedLongLongIntForColumnIndex:[self columnIndexForName:columnName]];
}

- (unsigned long long int)unsignedLongLongIntForColumnIndex:(int)columnIdx {
return (unsigned long long int)[self longLongIntForColumnIndex:columnIdx];
}

- (BOOL)boolForColumn:(NSString*)columnName {
return [self boolForColumnIndex:[self columnIndexForName:columnName]];
}
Expand Down
15 changes: 15 additions & 0 deletions src/fmdb.m
Expand Up @@ -117,6 +117,21 @@ int main (int argc, const char * argv[]) {
// the autorelease pool closes, so sqlite will complain about it.
[rs close];


[db executeUpdate:@"create table ull (a integer)"];

[db executeUpdate:@"insert into ull (a) values (?)" , [NSNumber numberWithUnsignedLongLong:ULLONG_MAX]];

rs = [db executeQuery:@"select a from ull"];
while ([rs next]) {
unsigned long long a = [rs unsignedLongLongIntForColumnIndex:0];
unsigned long long b = [rs unsignedLongLongIntForColumn:@"a"];

FMDBQuickCheck(a == ULLONG_MAX);
FMDBQuickCheck(b == ULLONG_MAX);
}


// ----------------------------------------------------------------------------------------
// blob support.
[db executeUpdate:@"create table blobTable (a text, b blob)"];
Expand Down

0 comments on commit 87748d1

Please sign in to comment.