summaryrefslogtreecommitdiff
path: root/core/java/android/database/DatabaseUtils.java
diff options
context:
space:
mode:
authorFyodor Kupolov <fkupolov@google.com>2017-08-28 11:37:27 -0700
committerFyodor Kupolov <fkupolov@google.com>2017-08-28 17:02:37 -0700
commit24929cd4e42cfde52d0820eb6312b51612496c61 (patch)
treed9bc828ef812419d356e4a07b21059661f05023d /core/java/android/database/DatabaseUtils.java
parent4c8d5a72f227bd7f757de8541ab1816472c837e0 (diff)
Distinguish ROLLBACK from ROLLBACK TO
The former aborts the current transaction, the latter restores the state to a specified savepoint. Test: CtsDatabaseTestCases Test: DatabaseGeneralTest Bug: 36957161 Change-Id: Ia0b189e8aac4687f10d8fbc07143a452f5f719c9
Diffstat (limited to 'core/java/android/database/DatabaseUtils.java')
-rw-r--r--core/java/android/database/DatabaseUtils.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/database/DatabaseUtils.java b/core/java/android/database/DatabaseUtils.java
index 8cd3d7b5bc68..3d019f07cb84 100644
--- a/core/java/android/database/DatabaseUtils.java
+++ b/core/java/android/database/DatabaseUtils.java
@@ -1408,6 +1408,12 @@ public class DatabaseUtils {
} else if (prefixSql.equals("END")) {
return STATEMENT_COMMIT;
} else if (prefixSql.equals("ROL")) {
+ boolean isRollbackToSavepoint = sql.toUpperCase(Locale.ROOT).contains(" TO ");
+ if (isRollbackToSavepoint) {
+ Log.w(TAG, "Statement '" + sql
+ + "' may not work on API levels 16-27, use ';" + sql + "' instead");
+ return STATEMENT_OTHER;
+ }
return STATEMENT_ABORT;
} else if (prefixSql.equals("BEG")) {
return STATEMENT_BEGIN;