aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-11-15 02:18:39 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-11-15 02:18:39 +0100
commit0456caedf43b2903731a669690333b07f217b8c6 (patch)
tree0f57339d661b454f423310d9e9b39b732210fd9e /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider
parent529b9518c12208f281af15945d06389050abd887 (diff)
downloadopen-keychain-0456caedf43b2903731a669690333b07f217b8c6.tar.gz
open-keychain-0456caedf43b2903731a669690333b07f217b8c6.tar.bz2
open-keychain-0456caedf43b2903731a669690333b07f217b8c6.zip
provider: add debug variable to explain query plans
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java32
1 files changed, 28 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
index 6359e71dd..70e44d37a 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
@@ -719,14 +719,38 @@ public class KeychainProvider extends ContentProvider {
cursor.setNotificationUri(getContext().getContentResolver(), uri);
}
+ Log.d(Constants.TAG,
+ "Query: " + qb.buildQuery(projection, selection, null, null, orderBy, null));
+
if (Constants.DEBUG && Constants.DEBUG_LOG_DB_QUERIES) {
- Log.d(Constants.TAG,
- "Query: "
- + qb.buildQuery(projection, selection, selectionArgs, null, null,
- orderBy, null));
Log.d(Constants.TAG, "Cursor: " + DatabaseUtils.dumpCursorToString(cursor));
}
+ if (Constants.DEBUG && Constants.DEBUG_EXPLAIN_QUERIES) {
+ String rawQuery = qb.buildQuery(projection, selection, groupBy, having, orderBy, null);
+ Cursor explainCursor = db.rawQuery("EXPLAIN QUERY PLAN " + rawQuery, selectionArgs);
+
+ // this is a debugging feature, we can be a little careless
+ explainCursor.moveToFirst();
+
+ StringBuilder line = new StringBuilder();
+ for (int i = 0; i < explainCursor.getColumnCount(); i++) {
+ line.append(explainCursor.getColumnName(i)).append(", ");
+ }
+ Log.d(Constants.TAG, line.toString());
+
+ while (!explainCursor.isAfterLast()) {
+ line = new StringBuilder();
+ for (int i = 0; i < explainCursor.getColumnCount(); i++) {
+ line.append(explainCursor.getString(i)).append(", ");
+ }
+ Log.d(Constants.TAG, line.toString());
+ explainCursor.moveToNext();
+ }
+
+ explainCursor.close();
+ }
+
return cursor;
}