Skip to content
This repository has been archived by the owner on Mar 9, 2022. It is now read-only.

Commit

Permalink
Comment out FMDB code that’s unused by Couchbase Lite
Browse files Browse the repository at this point in the history
There’s a lot of FMDB that Couchbase Lite doesn’t use, but Objective-C
methods can’t be dead-stripped by the linker. So I’ve gone and commented
out the stuff we don’t use, to lower our code size.
  • Loading branch information
snej committed Nov 7, 2013
1 parent 0f01d4e commit 3642515
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 73 deletions.
15 changes: 13 additions & 2 deletions src/FMDatabase.h
Expand Up @@ -32,19 +32,22 @@
+ (id)databaseWithPath:(NSString*)inPath;
- (id)initWithPath:(NSString*)inPath;

#if 0
- (BOOL)open;
#endif
#if SQLITE_VERSION_NUMBER >= 3005000
- (BOOL)openWithFlags:(int)flags;
#endif
- (BOOL)close;
- (BOOL)goodConnection;
//- (BOOL)goodConnection;
- (void)clearCachedStatements;
- (void)closeOpenResultSets;

#ifdef SQLITE_HAS_CODEC
// encryption methods. You need to have purchased the sqlite encryption extensions for these to work.
- (BOOL)setKey:(NSString*)key;
- (BOOL)rekey:(NSString*)key;

#endif

- (NSString *)databasePath;

Expand All @@ -56,21 +59,29 @@

- (sqlite3*)sqliteHandle;

#if 0
- (BOOL)update:(NSString*)sql error:(NSError**)outErr bind:(id)bindArgs, ...;
#endif
- (BOOL)executeUpdate:(NSString*)sql, ...;
#ifdef ENABLE_FORMATTED_QUERY
- (BOOL)executeUpdateWithFormat:(NSString *)format, ...;
#endif
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
- (BOOL)executeUpdate:(NSString*)sql error:(NSError**)outErr withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead.

- (FMResultSet *)executeQuery:(NSString*)sql, ...;
#ifdef ENABLE_FORMATTED_QUERY
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...;
#endif
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead.

#if 0
- (BOOL)rollback;
- (BOOL)commit;
- (BOOL)beginTransaction;
- (BOOL)beginDeferredTransaction;
#endif

- (BOOL)inUse;
- (void)setInUse:(BOOL)value;
Expand Down
22 changes: 14 additions & 8 deletions src/FMDatabase.m
Expand Up @@ -63,6 +63,7 @@ - (sqlite3*)sqliteHandle {
return db;
}

#if 0
- (BOOL)open {
if (db) {
return YES;
Expand All @@ -79,6 +80,7 @@ - (BOOL)open {

return YES;
}
#endif

#if SQLITE_VERSION_NUMBER >= 3005000
- (BOOL)openWithFlags:(int)flags {
Expand Down Expand Up @@ -210,8 +212,8 @@ - (void)setCachedStatement:(FMStatement*)statement forQuery:(NSString*)query {
}


- (BOOL)rekey:(NSString*)key {
#ifdef SQLITE_HAS_CODEC
- (BOOL)rekey:(NSString*)key {
if (!key) {
return NO;
}
Expand All @@ -224,25 +226,20 @@ - (BOOL)rekey:(NSString*)key {
}

return (rc == SQLITE_OK);
#else
return NO;
#endif
}

- (BOOL)setKey:(NSString*)key {
#ifdef SQLITE_HAS_CODEC
if (!key) {
return NO;
}

int rc = sqlite3_key(db, [key UTF8String], (int)strlen([key UTF8String]));

return (rc == SQLITE_OK);
#else
return NO;
#endif
}
#endif // SQLITE_HAS_CODEC

#if 0
- (BOOL)goodConnection {

if (!db) {
Expand All @@ -258,6 +255,7 @@ - (BOOL)goodConnection {

return NO;
}
#endif

- (void)warnInUse {
NSLog(@"The FMDatabase %@ is currently in use.", self);
Expand Down Expand Up @@ -400,6 +398,7 @@ - (void)bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt {
}
}

#ifdef ENABLE_FORMATTED_QUERY
- (void)_extractSQL:(NSString *)sql argumentsList:(va_list)args intoString:(NSMutableString *)cleanedSQL arguments:(NSMutableArray *)arguments {

NSUInteger length = [sql length];
Expand Down Expand Up @@ -506,6 +505,7 @@ - (void)_extractSQL:(NSString *)sql argumentsList:(va_list)args intoString:(NSMu
}

}
#endif // ENABLE_FORMATTED_QUERY

- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {

Expand Down Expand Up @@ -634,6 +634,7 @@ - (FMResultSet *)executeQuery:(NSString*)sql, ... {
return result;
}

#ifdef ENABLE_FORMATTED_QUERY
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ... {
va_list args;
va_start(args, format);
Expand All @@ -646,6 +647,7 @@ - (FMResultSet *)executeQueryWithFormat:(NSString*)format, ... {

return [self executeQuery:sql withArgumentsInArray:arguments];
}
#endif // ENABLE_FORMATTED_QUERY

- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments {
return [self executeQuery:sql withArgumentsInArray:arguments orVAList:NULL];
Expand Down Expand Up @@ -825,6 +827,7 @@ - (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments {
return [self executeUpdate:sql error:NULL withArgumentsInArray:arguments orVAList:NULL];
}

#ifdef ENABLE_FORMATTED_QUERY
- (BOOL)executeUpdateWithFormat:(NSString*)format, ... {
va_list args;
va_start(args, format);
Expand All @@ -837,7 +840,9 @@ - (BOOL)executeUpdateWithFormat:(NSString*)format, ... {

return [self executeUpdate:sql withArgumentsInArray:arguments];
}
#endif // ENABLE_FORMATTED_QUERY

#if 0 // unused in CBL --jens
- (BOOL)update:(NSString*)sql error:(NSError**)outErr bind:(id)bindArgs, ... {
va_list args;
va_start(args, bindArgs);
Expand Down Expand Up @@ -879,6 +884,7 @@ - (BOOL)beginTransaction {
}
return b;
}
#endif



Expand Down
10 changes: 5 additions & 5 deletions src/FMDatabaseAdditions.h
Expand Up @@ -11,24 +11,24 @@


- (int)intForQuery:(NSString*)objs, ...;
- (long)longForQuery:(NSString*)objs, ...;
- (long long)longLongForQuery:(NSString*)objs, ...;
- (long long)longLongForQuery:(NSString*)objs, ...;
- (BOOL)boolForQuery:(NSString*)objs, ...;
- (double)doubleForQuery:(NSString*)objs, ...;
- (NSString*)stringForQuery:(NSString*)objs, ...;
- (NSData*)dataForQuery:(NSString*)objs, ...;
- (NSDate*)dateForQuery:(NSString*)objs, ...;

// Notice that there's no dataNoCopyForQuery:.
// That would be a bad idea, because we close out the result set, and then what
// happens to the data that we just didn't copy? Who knows, not I.


#if 0 // Unused in Couchbase Lite --jens
- (long)longForQuery:(NSString*)objs, ...;
- (NSDate*)dateForQuery:(NSString*)objs, ...;
- (BOOL)tableExists:(NSString*)tableName;
- (FMResultSet*)getSchema;
- (FMResultSet*)getTableSchema:(NSString*)tableName;
- (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName;

- (BOOL)validateSQL:(NSString*)sql error:(NSError**)error;

#endif
@end
11 changes: 7 additions & 4 deletions src/FMDatabaseAdditions.m
Expand Up @@ -33,10 +33,6 @@ - (int)intForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(int, intForColumnIndex);
}

- (long)longForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(long, longForColumnIndex);
}

- (long long)longLongForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(long long, longLongIntForColumnIndex);
}
Expand All @@ -53,6 +49,11 @@ - (NSData*)dataForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(NSData *, dataForColumnIndex);
}

#if 0 // Unused in Couchbase Lite --jens
- (long)longForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(long, longForColumnIndex);
}

- (NSDate*)dateForQuery:(NSString*)query, ... {
RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(NSDate *, dateForColumnIndex);
}
Expand Down Expand Up @@ -140,4 +141,6 @@ - (BOOL)validateSQL:(NSString*)sql error:(NSError**)error {
return validationSucceeded;
}

#endif // 0

@end
38 changes: 19 additions & 19 deletions src/FMResultSet.h
Expand Up @@ -38,18 +38,18 @@
- (BOOL)next;
- (BOOL)hasAnotherRow;

- (int)columnCount;
//- (int)columnCount;

- (int)columnIndexForName:(NSString*)columnName;
- (NSString*)columnNameForIndex:(int)columnIdx;
//- (int)columnIndexForName:(NSString*)columnName;
//- (NSString*)columnNameForIndex:(int)columnIdx;

- (int)intForColumn:(NSString*)columnName;
//- (int)intForColumn:(NSString*)columnName;
- (int)intForColumnIndex:(int)columnIdx;

- (long)longForColumn:(NSString*)columnName;
- (long)longForColumnIndex:(int)columnIdx;
//- (long)longForColumn:(NSString*)columnName;
//- (long)longForColumnIndex:(int)columnIdx;

- (long long int)longLongIntForColumn:(NSString*)columnName;
//- (long long int)longLongIntForColumn:(NSString*)columnName;
- (long long int)longLongIntForColumnIndex:(int)columnIdx;

- (BOOL)boolForColumn:(NSString*)columnName;
Expand All @@ -58,34 +58,34 @@
- (double)doubleForColumn:(NSString*)columnName;
- (double)doubleForColumnIndex:(int)columnIdx;

- (NSString*)stringForColumn:(NSString*)columnName;
//- (NSString*)stringForColumn:(NSString*)columnName;
- (NSString*)stringForColumnIndex:(int)columnIdx;

- (NSDate*)dateForColumn:(NSString*)columnName;
- (NSDate*)dateForColumnIndex:(int)columnIdx;
//- (NSDate*)dateForColumn:(NSString*)columnName;
//- (NSDate*)dateForColumnIndex:(int)columnIdx;

- (NSData*)dataForColumn:(NSString*)columnName;
- (NSData*)dataForColumnIndex:(int)columnIdx;

- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx;
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName;
//- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx;
//- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName;

// returns one of NSNumber, NSString, NSData, or NSNull
- (id)objectForColumnName:(NSString*)columnName;
//- (id)objectForColumnName:(NSString*)columnName;
- (id)objectForColumnIndex:(int)columnIdx;

/*
If you are going to use this data after you iterate over the next row, or after you close the
result set, make sure to make a copy of the data first (or just use dataForColumn:/dataForColumnIndex:)
If you don't, you're going to be in a world of hurt when you try and use the data.
*/
- (NSData*)dataNoCopyForColumn:(NSString*)columnName NS_RETURNS_NOT_RETAINED;
//- (NSData*)dataNoCopyForColumn:(NSString*)columnName NS_RETURNS_NOT_RETAINED;
- (NSData*)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;

- (BOOL)columnIndexIsNull:(int)columnIdx;
- (BOOL)columnIsNull:(NSString*)columnName;

- (void)kvcMagic:(id)object;
- (NSDictionary *)resultDict;
//- (BOOL)columnIndexIsNull:(int)columnIdx;
//- (BOOL)columnIsNull:(NSString*)columnName;
//
//- (void)kvcMagic:(id)object;
//- (NSDictionary *)resultDict;

@end

0 comments on commit 3642515

Please sign in to comment.