Distinguish null blobs in SQLiteRawStatement

The sqlite value API sqlite3_column_blob() returns a null if the
column type is SQLITE_NULL or a zero-length SQLITE_BLOB.
SQLiteRawStatement.getColumnBlob() now distinguishes between these two
cases: if the column type is SQLITE_NULL, return null, otherwise
return a byte array of length zero.

New unit tests have been added.  Unit tests have also been added for
SQLiteRawStatement.getColumnText()'s handling of empty strings and
null values.

Test: atest
 * FrameworksCoreTests:android.database
 * CtsDatabaseTestCases

Flag: EXEMPT bugfix
Bug: 342687891
Change-Id: Ia041eeb761267de0a4b59af3ddcba6433b231bbb
2 files changed