diff options
author | Oguz Kocer <oguz.kocer@automattic.com> | 2016-06-20 16:45:13 +0300 |
---|---|---|
committer | Oguz Kocer <oguz.kocer@automattic.com> | 2016-06-20 16:45:13 +0300 |
commit | edb46d432d1d084e5b751a60c922dc3d6bf5fcad (patch) | |
tree | 10b074ae4c873bb6b4c03fa1bf97bb7f9a4d6d54 /WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java | |
parent | 32f4777274f08dd1c52ada491d79bda82711a96b (diff) | |
download | gradle-perf-android-medium-edb46d432d1d084e5b751a60c922dc3d6bf5fcad.tar.gz |
Fixes a bunch of query issues in PeopleTable
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 | 48 |
1 files changed, 21 insertions, 27 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 542848c94..9a99b0d15 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/PeopleTable.java @@ -128,50 +128,44 @@ public class PeopleTable { public static void deleteUsersForLocalBlogId(int localTableBlogId) { String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=?", args); + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2", args); } public static void deleteFollowersForLocalBlogId(int localTableBlogId) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=?", args); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1), Integer.toString(0)}; + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=? AND is_email_follower=?", args); } public static void deleteEmailFollowersForLocalBlogId(int localTableBlogId) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(1)}; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_email_follower=?", args); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0), Integer.toString(1)}; + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=? AND is_follower=? AND is_email_follower=?", args); } - public static void deleteUsersForLocalBlogIdExceptForFirstPage(int localTableBlogId) { - PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(localTableBlogId, false); - } - - public static void deleteFollowersForLocalBlogIdExceptForFirstPage(int localTableBlogId) { - PeopleTable.deletePeopleForLocalBlogIdExceptForFirstPage(localTableBlogId, false); - } - - private static void deletePeopleForLocalBlogIdExceptForFirstPage(int localTableBlogId, boolean isFollower) { - int size = getPeopleCountForLocalBlogId(localTableBlogId, isFollower); - int fetchLimit = PeopleUtils.FETCH_USERS_LIMIT; + public static void deletePeopleForLocalBlogIdExceptForFirstPage(int localTableBlogId) { + int size = getPeopleCountForLocalBlogId(localTableBlogId); + int fetchLimit = PeopleUtils.FETCH_LIMIT; if (size > fetchLimit) { int deleteCount = size - fetchLimit; String[] args = new String[] { Integer.toString(localTableBlogId), - Integer.toString(isFollower ? 1 : 0), Integer.toString(deleteCount) }; - getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND is_follower=?2 AND person_id " + - "IN (SELECT person_id FROM " + PEOPLE_TABLE + " WHERE local_blog_id=?1 AND is_follower=?2 " + - "ORDER BY display_name DESC LIMIT ?3)", args); + getWritableDb().delete(PEOPLE_TABLE, "local_blog_id=?1 AND person_id IN (SELECT person_id FROM " + + PEOPLE_TABLE + " WHERE local_blog_id=?1 " + + "ORDER BY display_name DESC LIMIT ?2)", args); } } public static int getUsersCountForLocalBlogId(int localTableBlogId) { - return PeopleTable.getPeopleCountForLocalBlogId(localTableBlogId, false); + String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(0)}; + String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + + " WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; + return SqlUtils.intForQuery(getReadableDb(), sql, args); } - private static int getPeopleCountForLocalBlogId(int localTableBlogId, boolean isFollower) { - String[] args = new String[]{Integer.toString(localTableBlogId), Integer.toString(isFollower ? 1 : 0)}; - String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + " WHERE local_blog_id=? AND is_follower=?"; + private static int getPeopleCountForLocalBlogId(int localTableBlogId) { + String[] args = new String[]{Integer.toString(localTableBlogId)}; + String sql = "SELECT COUNT(*) FROM " + PEOPLE_TABLE + " WHERE local_blog_id=?"; return SqlUtils.intForQuery(getReadableDb(), sql, args); } @@ -182,7 +176,7 @@ public class PeopleTable { public static List<Person> getUsers(int localTableBlogId) { String[] args = { Integer.toString(localTableBlogId), Integer.toString(0) }; - String where = "WHERE local_blog_id=? AND is_follower=?"; + String where = "WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; return PeopleTable.getPeople(localTableBlogId, where, args); } @@ -193,8 +187,8 @@ public class PeopleTable { } public static List<Person> getEmailFollowers(int localTableBlogId) { - String[] args = { Integer.toString(localTableBlogId), Integer.toString(1)}; - String where = "WHERE local_blog_id=?1 AND is_follower=?2 AND is_email_follower=?2"; + String[] args = { Integer.toString(localTableBlogId), Integer.toString(0), Integer.toString(1)}; + String where = "WHERE local_blog_id=? AND is_follower=? AND is_email_follower=?"; return PeopleTable.getPeople(localTableBlogId, where, args); } |