diff options
Diffstat (limited to 'core/java/android/content/AbstractTableMerger.java')
-rw-r--r-- | core/java/android/content/AbstractTableMerger.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/content/AbstractTableMerger.java b/core/java/android/content/AbstractTableMerger.java index e1a484e..5511ff6 100644 --- a/core/java/android/content/AbstractTableMerger.java +++ b/core/java/android/content/AbstractTableMerger.java @@ -477,7 +477,7 @@ public abstract class AbstractTableMerger private void fullyDeleteRowsWithSyncId(String syncId, String account, SyncResult syncResult) { final String[] selectionArgs = new String[]{syncId, account}; // delete the rows explicitly so that the delete operation can be overridden - Cursor c = mDb.query(mTable, new String[]{"_id"}, SELECT_BY_ID_AND_ACCOUNT, + Cursor c = mDb.query(mTable, getDeleteRowProjection(), SELECT_BY_ID_AND_ACCOUNT, selectionArgs, null, null, null); try { c.moveToFirst(); @@ -494,6 +494,16 @@ public abstract class AbstractTableMerger } /** + * Provides the projection used by + * {@link AbstractTableMerger#deleteRow(android.database.Cursor)}. + * This should be overridden if the deleteRow implementation requires + * additional columns. + */ + protected String[] getDeleteRowProjection() { + return new String[]{"_id"}; + } + + /** * Converts cursor into a Map, using the correct types for the values. */ protected void cursorRowToContentValues(Cursor cursor, ContentValues map) { |