aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java
diff options
context:
space:
mode:
authorOguz Kocer <oguz.kocer@automattic.com>2016-08-03 17:12:52 +0300
committerOguz Kocer <oguz.kocer@automattic.com>2016-08-03 17:12:52 +0300
commit937512b47f1d4b5730d9a41eabfaea8b92fd86d6 (patch)
tree2d24125a54d7ec44bf4a45ff40f8c87c1c5e9fd7 /WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java
parent2bf718584f119754f50ac177cd239f5bbbf99cf1 (diff)
downloadgradle-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.java13
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();