diff options
| author | Fyodor Kupolov <fkupolov@google.com> | 2017-08-28 11:37:27 -0700 |
|---|---|---|
| committer | Fyodor Kupolov <fkupolov@google.com> | 2017-08-28 17:02:37 -0700 |
| commit | 24929cd4e42cfde52d0820eb6312b51612496c61 (patch) | |
| tree | d9bc828ef812419d356e4a07b21059661f05023d /core/java/android/database/DatabaseUtils.java | |
| parent | 4c8d5a72f227bd7f757de8541ab1816472c837e0 (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.java | 6 |
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; |
