History log of /frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0dbb9cee58d35d30f205dc844a82e960149fa86b 16-Apr-2010 Vasu Nori <vnori@google.com> accept close() on database objects even if the database is closed

bug:2602878
Change-Id: I3075f801ef35d72792ff3daaa1e887e53b58f5f8
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
c8e1f23891cff31a9da2bab412631ff770a92f56 14-Apr-2010 Vasu Nori <vnori@google.com> verify database state before calling sqlite. Bug:2593970

Change-Id: Id68365abccbdca572ad13c2b51162d53993ff540
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
3695709457c66354261502b8bf23d59604a59ce4 11-Mar-2010 Vasu Nori <vnori@google.com> debug-flag covered log messages to help people debug finalizer stuff

should help developers figure out why finalizer warnings are coming out
of their app.

Change-Id: I50a4ba96c84c6b3cf4445331e1fb55320d8783e1
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
8648e37f82f15f0e13acc14e4cbf4df377cf8063 09-Mar-2010 Vasu Nori <vnori@google.com> add REPLACE to the list of cached sql stmnts
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
49d02acec84cc0382286fa233135bb5c74d5bdbf 06-Mar-2010 Vasu Nori <vnori@google.com> caching bug in SQLiteDatabase causes invalid finalizer warnings

a bug in maintaining the cache caused these warnings. when the cache
is full, caching code in SQLiteDatabase dropped an entry from the cache
to accommodate the new one. and if the just-dropped one is not in use
that object got GC'ed and caused a finalizer warning. Calendar is one app
that didn't use ? for bindargs (sometimes) and noticed this bug in that app
Fix is to not add the new enry to cache if the cache is already full.
that will cause the app's close() to release the entry.

another common case where this finalizer warning occurs is when unittests run.
if the test does not close the database in tearDown(), it will cause
database object and the compiled sql statement cache within the database
obj get GC'ed which cause finalizer warnings.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
14b60e747cdf16b79bb755b42dd766348c4f1880 01-Mar-2010 Vasu Nori <vnori@google.com> add warning in finalizer. deprecate protected members.

finalizer shoudl not be called ever. add a warning to say that.
adeprecate a few members in SQLiteProgram.java. they should not
have had protected access level. shoudl be package.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
d606b4bf2c1a2308b40785860853cfb95a77bf58 24-Feb-2010 Vasu Nori <vnori@google.com> in finalize() methods, log warnings if db lock is going to be held.

this is to track bug:2463988 and bug:2457342
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
1d7265800d91c79346f03d635d5b417b3d4a7e31 24-Feb-2010 Vasu Nori <vnori@google.com> yet another race condition fix to address bug:2456970
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
ec37e42fb260b867b19eb01606867a85ba2e5187 22-Feb-2010 Vasu Nori <vnori@google.com> fix race condition introduced by CL https://android-git.corp.google.com/g/40395
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
e8de28415b4362824a52c180adf10dd882d12eaf 18-Feb-2010 Vasu Nori <vnori@google.com> bug fix for 2419869. also included 2 unittests.

bug fix for 2419869 is the following
1. only one object can use the prepared statement object
(SQLiteCompiledSql in SQLIteProgram)
2. if two objects are requesting to use it, then create a new prepared
statement object for exclusive use by the newcomer and let it be
be finalized by the newcomer.
3. add mInUse flag to SQLiteCompiledSql - to be set when SQLiteProgram
requests it and to be released when that SQLiteProgram is done with it
a couple more changes included are
1. unitests to simulate bug # 2419869 (and the fix's repair to it)
2. better logging in SQLiteCloseable when it prints log messages
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
8d45e4e4c6244cc3a508da3b56fec8cfd4cadd1d 06-Feb-2010 Vasu Nori <vnori@google.com> changes after review by API council

please refer to http://b/issue?id=2420299
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
3ef94e25b4c896ecaa85aa2c12b8863ecdf98df0 05-Feb-2010 Vasu Nori <vnori@google.com> use sqlite 3.6.22 to print and profile the sql statetements

instead of rolling our own trace/profile code in java, lets use
sqlite 3.6.22 features. turns out sqlite does a good job of
printing the sql statements - including the ones from the triggers.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
4dd4ab4cc322e82401f380aeb877daa4a20d7069 30-Jan-2010 Vasu Nori <vnori@google.com> add instrumentation to log the sql statement + bindargs + databasename

capture the sql statement along with the bindargs passed in. this will help
one to see the sql statements being executed and hopefully will help
debug incorrect-sql bugs.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
e495d1f74af13aec8d5d825e93e4cfe1e4fe7468 07-Jan-2010 Vasu Nori <vnori@google.com> fix a bug in compiled-sql caching & hide public api setMaxSqlCacheSize

this is a clone of https://android-git.corp.google.com/g/#change,35174.
if the cache is full to its capacity and if a new statement is to be cached,
one of the entries in the cache is thrown out to make room for the new one.
but the one that is thrown out doesn't get deallocated by SQLiteProgram
because it doesn't know that it should.
fixed this by having SQLiteProgram finalize its sql statement in
releaseReference*() methods, if the statement is not in cache.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
fa1fae1355b240856bcacf51d54e459c81e0c78c 07-Dec-2009 Vasu Nori <vnori@google.com> Revert "dealloc compiled-sql statements before deref'ing them from SQLiteDatabase obj."

This reverts commit 6d1ec0d81cd8ecdd390b31e724bac554bb955a94.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
6d1ec0d81cd8ecdd390b31e724bac554bb955a94 02-Dec-2009 Vasu Nori <vnori@google.com> dealloc compiled-sql statements before deref'ing them from SQLiteDatabase obj.

dealloc compiled-sql statements before removing references of SQLiteClosable objects from SQLiteDatabase obj. otherwise, code will attempt to close database before deallocing the compiled-sql statements and that causes sqlite exceptions.
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
b1dd3235a901e4c3c51ed910e29e0afa15fddb19 01-Dec-2009 Vasu Nori <vnori@google.com> fix NPE. don't release an already released compiledSql obj
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
5a03f36ef845f73eb4473193dbb0f93dd12a51af 21-Oct-2009 Vasu Nori <vnori@google.com> maintain cache of statementids returned by sqlite upon compiling a sql stmnt
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java