summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/AbstractTableMerger.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/content/AbstractTableMerger.java')
-rw-r--r--core/java/android/content/AbstractTableMerger.java12
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) {