Merge "Make new SQLite APIs public" into main
diff --git a/core/api/current.txt b/core/api/current.txt
index f40cbb6..7d324f8ca 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -14351,11 +14351,13 @@
method public void execSQL(String, Object[]) throws android.database.SQLException;
method public static String findEditTable(String);
method public java.util.List<android.util.Pair<java.lang.String,java.lang.String>> getAttachedDbs();
+ method public long getLastChangedRowCount();
method public long getLastInsertRowId();
method public long getMaximumSize();
method public long getPageSize();
method public String getPath();
method @Deprecated public java.util.Map<java.lang.String,java.lang.String> getSyncedTables();
+ method public long getTotalChangedRowCount();
method public int getVersion();
method public boolean inTransaction();
method public long insert(String, String, android.content.ContentValues);
diff --git a/core/java/android/database/sqlite/SQLiteConnection.java b/core/java/android/database/sqlite/SQLiteConnection.java
index 706e75e..f2980f4 100644
--- a/core/java/android/database/sqlite/SQLiteConnection.java
+++ b/core/java/android/database/sqlite/SQLiteConnection.java
@@ -1875,7 +1875,7 @@
* statement
* @hide
*/
- long getLastChangedRowsCount() {
+ long getLastChangedRowCount() {
try {
return nativeChanges(mConnectionPtr);
} finally {
@@ -1887,7 +1887,7 @@
* Return the total number of database changes made on the current connection.
* @hide
*/
- long getTotalChangedRowsCount() {
+ long getTotalChangedRowCount() {
try {
return nativeTotalChanges(mConnectionPtr);
} finally {
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index a3f8383..aec01f8 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -2208,10 +2208,9 @@
*
* @return The number of rows changed by the most recent sql statement
* @throws IllegalStateException if there is no current transaction.
- * @hide
*/
- public long getLastChangedRowsCount() {
- return getThreadSession().getLastChangedRowsCount();
+ public long getLastChangedRowCount() {
+ return getThreadSession().getLastChangedRowCount();
}
/**
@@ -2223,9 +2222,9 @@
* <code><pre>
* database.beginTransaction();
* try {
- * long initialValue = database.getTotalChangedRowsCount();
+ * long initialValue = database.getTotalChangedRowCount();
* // Execute SQL statements
- * long changedRows = database.getTotalChangedRowsCount() - initialValue;
+ * long changedRows = database.getTotalChangedRowCount() - initialValue;
* // changedRows counts the total number of rows updated in the transaction.
* } finally {
* database.endTransaction();
@@ -2236,10 +2235,9 @@
*
* @return The number of rows changed on the current connection.
* @throws IllegalStateException if there is no current transaction.
- * @hide
*/
- public long getTotalChangedRowsCount() {
- return getThreadSession().getTotalChangedRowsCount();
+ public long getTotalChangedRowCount() {
+ return getThreadSession().getTotalChangedRowCount();
}
/**
diff --git a/core/java/android/database/sqlite/SQLiteSession.java b/core/java/android/database/sqlite/SQLiteSession.java
index ef1a9cb..7d9f02d 100644
--- a/core/java/android/database/sqlite/SQLiteSession.java
+++ b/core/java/android/database/sqlite/SQLiteSession.java
@@ -998,9 +998,9 @@
* this connection.
* @hide
*/
- long getLastChangedRowsCount() {
+ long getLastChangedRowCount() {
throwIfNoTransaction();
- return mConnection.getLastChangedRowsCount();
+ return mConnection.getLastChangedRowCount();
}
/**
@@ -1008,9 +1008,9 @@
* it was created.
* @hide
*/
- long getTotalChangedRowsCount() {
+ long getTotalChangedRowCount() {
throwIfNoTransaction();
- return mConnection.getTotalChangedRowsCount();
+ return mConnection.getTotalChangedRowCount();
}
/**
diff --git a/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java b/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java
index fc72f61..4ee987b 100644
--- a/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java
+++ b/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java
@@ -180,8 +180,8 @@
assertFalse(r);
s.reset();
assertEquals(i + 1, mDatabase.getLastInsertRowId());
- assertEquals(1, mDatabase.getLastChangedRowsCount());
- assertEquals(i + 2, mDatabase.getTotalChangedRowsCount());
+ assertEquals(1, mDatabase.getLastChangedRowCount());
+ assertEquals(i + 2, mDatabase.getTotalChangedRowCount());
}
}
mDatabase.setTransactionSuccessful();
@@ -205,8 +205,8 @@
assertFalse(r);
s.reset();
assertEquals(size + i + 1, mDatabase.getLastInsertRowId());
- assertEquals(1, mDatabase.getLastChangedRowsCount());
- assertEquals(size + i + 2, mDatabase.getTotalChangedRowsCount());
+ assertEquals(1, mDatabase.getLastChangedRowCount());
+ assertEquals(size + i + 2, mDatabase.getTotalChangedRowCount());
}
}
mDatabase.setTransactionSuccessful();
@@ -214,4 +214,21 @@
mDatabase.endTransaction();
}
}
+
+ @Test
+ public void testAutomaticCountersOutsideTransactions() {
+ try {
+ mDatabase.getLastChangedRowCount();
+ fail("getLastChangedRowCount() succeeded outside a transaction");
+ } catch (IllegalStateException e) {
+ // This exception is expected.
+ }
+
+ try {
+ mDatabase.getTotalChangedRowCount();
+ fail("getTotalChangedRowCount() succeeded outside a transaction");
+ } catch (IllegalStateException e) {
+ // This exception is expected.
+ }
+ }
}