diff options
author | Oguz Kocer <oguz.kocer@automattic.com> | 2016-08-03 17:12:52 +0300 |
---|---|---|
committer | Oguz Kocer <oguz.kocer@automattic.com> | 2016-08-03 17:12:52 +0300 |
commit | 937512b47f1d4b5730d9a41eabfaea8b92fd86d6 (patch) | |
tree | 2d24125a54d7ec44bf4a45ff40f8c87c1c5e9fd7 /WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java | |
parent | 2bf718584f119754f50ac177cd239f5bbbf99cf1 (diff) | |
download | gradle-perf-android-medium-937512b47f1d4b5730d9a41eabfaea8b92fd86d6.tar.gz |
Use SQLiteQueryBuilder to improve deletePeopleExceptForFirstPage
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java index a7ea50c59..f91cef182 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java @@ -3,6 +3,7 @@ package org.wordpress.android.datasets; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteQueryBuilder; import android.support.annotation.Nullable; import org.wordpress.android.WordPress; @@ -176,10 +177,14 @@ public class PeopleTable { for (String table : tables) { int size = getPeopleCountForLocalBlogId(table, localTableBlogId); if (size > fetchLimit) { - int deleteCount = size - fetchLimit; - String[] args = new String[] {Integer.toString(localTableBlogId), Integer.toString(deleteCount)}; - getWritableDb().delete(table, "local_blog_id=?1 AND person_id IN (SELECT person_id FROM " - + table + " WHERE local_blog_id=?1" + orderByString(table, true) + " LIMIT ?2)", args); + String where = "local_blog_id=" + localTableBlogId; + String[] columns = {"person_id"}; + String limit = Integer.toString(size - fetchLimit); + String query = SQLiteQueryBuilder.buildQueryString(false, table, columns, where, null, null, null, + limit); + + String[] args = new String[] {Integer.toString(localTableBlogId)}; + getWritableDb().delete(table, "local_blog_id=?1 AND person_id IN (" + query + ")", args); } } getWritableDb().setTransactionSuccessful(); |