Use the Query object rather than the SQLiteDatabase#query() method.
This ensures that all of the relevant joins are in place, so that when the updater asks to `queryPackageName()` then it can assume that we have already joined onto the `Schema.PackageTable`.
This commit is contained in:
parent
354f0a9b53
commit
9785536910
@ -216,7 +216,7 @@ public class AppProvider extends FDroidProvider {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Query extends QueryBuilder {
|
protected class Query extends QueryBuilder {
|
||||||
|
|
||||||
private boolean isSuggestedApkTableAdded;
|
private boolean isSuggestedApkTableAdded;
|
||||||
private boolean requiresInstalledTable;
|
private boolean requiresInstalledTable;
|
||||||
@ -230,7 +230,7 @@ public class AppProvider extends FDroidProvider {
|
|||||||
final String apk = getApkTableName();
|
final String apk = getApkTableName();
|
||||||
final String repo = RepoTable.NAME;
|
final String repo = RepoTable.NAME;
|
||||||
final String cat = CategoryTable.NAME;
|
final String cat = CategoryTable.NAME;
|
||||||
final String catJoin = CatJoinTable.NAME;
|
final String catJoin = getCatJoinTableName();
|
||||||
|
|
||||||
return pkg +
|
return pkg +
|
||||||
" JOIN " + app + " ON (" + app + "." + Cols.PACKAGE_ID + " = " + pkg + "." + PackageTable.Cols.ROW_ID + ") " +
|
" JOIN " + app + " ON (" + app + "." + Cols.PACKAGE_ID + " = " + pkg + "." + PackageTable.Cols.ROW_ID + ") " +
|
||||||
|
@ -175,8 +175,10 @@ public class TempAppProvider extends AppProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ensureCategories(String[] categories, String packageName, long repoId) {
|
private void ensureCategories(String[] categories, String packageName, long repoId) {
|
||||||
QuerySelection forId = querySingle(packageName, repoId);
|
Query query = new AppProvider.Query();
|
||||||
Cursor cursor = db().query(getTableName(), new String[] {Cols.ROW_ID}, forId.getSelection(), forId.getArgs(), null, null, null);
|
query.addField(Cols.ROW_ID);
|
||||||
|
query.addSelection(querySingle(packageName, repoId));
|
||||||
|
Cursor cursor = db().rawQuery(query.toString(), query.getArgs());
|
||||||
cursor.moveToFirst();
|
cursor.moveToFirst();
|
||||||
long appMetadataId = cursor.getLong(0);
|
long appMetadataId = cursor.getLong(0);
|
||||||
cursor.close();
|
cursor.close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user