Wcdb Versions Save

WCDB is a cross-platform database framework developed by WeChat.

v1.0.8.2

5 years ago

iOS/macOS

  • Support Swift 4.2 for Xcode 10.2

v1.0.8

5 years ago

Android

  • Support for Room library from Android Jetpack. See README and Wiki for details.

v1.0.7.5

5 years ago
  • Compatible with Swift 4.2
  • Enable FTS5 macro for sqlcipher.

v1.0.7

5 years ago

iOS/macOS

  • Fix nil string bug while inserting empty string.
  • Reduce size of binary and provide a non-bitcode scheme by --configuration WithoutBitcode for Carthage.
  • Avoid conflict between builtin SQLCipher and other SQLite based library(including system library).
  • Code template is not installed automatically now. Developers can run curl https://raw.githubusercontent.com/Tencent/wcdb/master/tools/templates/install.sh -s | sh to install it manually.

v1.0.6.2

5 years ago

iOS/macOS

It's a bug fixed version. Since Swift 4.1.x contains bugs that make WCDB fails to compile, developers should use Xcode 10(with Swift 4.2).

Swift
  • Compatible with Swift 4.2. The ColumnEncodable and ColumnDecodable is now changed. Check the code snippet, file template or wiki for the new usage.
  • Use Double column type for Date

FYI, a refactor is needed to fit the new conditional conformance design of Swift 4.2. We will finish it in next version.

Android

  • Use C++14 and libc++_static runtime on JNI routines.
  • Fix "no implementation found" log on libwcdb.so initialization.
  • Fix ProGuard rules when importing from AAR package.

v1.0.6

6 years ago

iOS/macOS

It's the first release for WCDB Swift, which contains exactly the same features as the ObjC version, including:

  • Object-Relational-Mapping based on Swift 4.0 Codable protocol
  • WCDB Integrated Language Query
  • Multithreading safety and concurrency
  • Encryption based on SQLCipher
  • Protection for SQL injection
  • Full text search
  • Corruption recovery
  • ...

For further information, please check tutorial on wiki.

Android

  • Migrate to gradle plugin 3.0.0, target API 26, and minimal API 14.
  • Support NDK r16, change default toolchain to clang.
  • Various bug fixes.

v1.0.5

6 years ago

iOS

  • Builtin full-text search support for ORM.
    WCTProperty *tableProperty = WCTSampleFTSData.PropertyNamed(tableNameFTS).match("Eng*")];
    
    [databaseFTS getObjectsOfClass:WCTSampleFTSData.class fromTable:tableNameFTS where:tableProperty.match("Eng*")];
    
  • Support read-only databases.
  • Some minor bug fixes and code refactor.

Android

  • Optimize asynchronous checkpointer, greatly improve write performance with WAL and asynchronous checkpointing.
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabaseInWalMode(...);
db.setAsyncCheckpointEnabled(true);
  • Add benchmark for asynchronous checkpointer.
  • Add connection pooling friendly interface SQLiteDatabase.setSynchronousMode() to set database synchronization mode.
  • Enable dbstat virtual table while compiling.

v1.0.4

6 years ago

Repair Kit

  • Add sqliterk_cancel function to cancel ongoing output operations.
  • Add corresponding Java interface to cancel operations on Android.

iOS

  • Builtin WCTColumnCoding supports all id<NSCoding> objects now.
  • Compatible with iOS 11.
  • Fullfsync is used by default for data integrity.
  • Add -initWithExistingTag: for WCTDatabase to get existing database without path.
WCTDatabase* database = [WCTDatabase [alloc] initWithPath:path];
database.tag = 123;
WCTDatabase* withoutPath = [[WCTDatabase alloc] initWithExistingTag:123];
  • Some minor bug fixes, performance improvement and code refactor.

Android

  • Add asynchronous checkpointing support and custom checkpointing callback. This can improve performance in WAL mode.
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabaseInWalMode(...);

// Use asynchronous checkpointing.
db.setAsyncCheckpointEnabled(true);

// OR use custom checkpointer.
SQLiteCheckpointListener callback = new SQLiteCheckpointListener() {
    //...
};
db.setCheckpointCallback(callback);
  • Add SQLiteTrace.onConnectionObtained(...) interface to trace concurrency performance.
  • Add cancelable version of SQLiteDatabase.execSQL(). See CancellationSignal for details.
CancellationSignal signal = new CancellationSignal();
db.execSQL(longRunningSQL, args, signal);

// on another thread
signal.cancel();
  • Enable SQLITE_ENABLE_FTS3_PARENTHESIS compilation option on SQLCipher, which enables AND, OR operators in FTS3/4.
  • Use CancellationSignal for canceling BackupKit, RecoverKit and RepairKit operations. See repair sample for details.
  • Add callback interface for RepairKit to show progress to the users. See RepairKit.Callback and RepairKit.setCallback().
  • Do not load libwcdb.so if it's already loaded on the first use. This makes WCDB compatible to Tinker framework.
  • Various bug fixes.

v1.0.3

6 years ago

Repair Kit

  • Fix INTEGER PRIMARY KEY columns not properly recovered.

iOS

  • Add WCTColumnCoding support for all WCTValue. Developers can use id<WCTColumnCoding> objects for WINQ and all interfaces.
//WINQ
NSDate *now = [NSDate date];
[database getObjectsOfClass:Message.class fromTable:tableName where:Message.modifedTime==now];

//Interfaces
[database updateAllRowsInTable:tableName 
          onProperty:Message.modifiedTime 
            withValue:[NSDate date]];
  • Add monitor for all executed SQL to check WINQ correctness.
//SQL Execution Monitor
[WCTStatistics SetGlobalSQLTrace:^(NSString *sql) {
  NSLog(@"SQL: %@", sql);
}];
  • Update WCTTableCoding XCode file template for the best practice of isolating Objective C++ codes. See Wiki page for details.
  • Some minor bug fixes.

Android

  • Add CursorWindow.windowSize(int) static method to set or get default size for cursor windows.
  • SQLiteDatabase.dump() reports IDs for all threads that hold database connections, to aid dead-lock debugging.
  • Fix crashing on devices fail to load ICU library.
  • Fix SQLiteTrace.onSQLExecuted(...) reports negative execution time.

v1.0.2

6 years ago

iOS

  • Performance optimization and benchmark. See Wiki page for details.
  • Change builtin NSData or NSMutableData column coding to raw data format. To be compatible with earlier versions, call
[WCTCompatible sharedCompatible].builtinNSDataColumnCodingCompatibleEnabled = YES
  • Add attach, detach, vacuum, savepoiint, rollback, release, reindex, explain statement and SQLCipher related pragma to WINQ.
  • Remove auto increment for insertOrReplace.
  • Rename updateTable to updateRowsInTable, and statictics(typo) to statistics.
  • Some minor bug fixes.

Android

  • Performance optimization and benchmark. See Wiki page for details.
  • Expose ProGuard rules to AAR package. Fix crash when minify is enabled in gradle.