fix the way last insert rowid is returned
if insert statement doesn't succeed, last inserted rowid shoudl return -1 - instead of returning rowid of the last successful insert that may have occurred years before this most recent insert statement failure. Change-Id: Ia517292afd58fdb600da900e0ee01fe051d6e618
This commit is contained in:
@@ -58,11 +58,10 @@ public class SQLiteStatement extends SQLiteProgram
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute this SQL statement and return the ID of the most
|
||||
* recently inserted row. The SQL statement should probably be an
|
||||
* INSERT for this to be a useful call.
|
||||
* Execute this SQL statement and return the ID of the row inserted due to this call.
|
||||
* The SQL statement should be an INSERT for this to be a useful call.
|
||||
*
|
||||
* @return the row ID of the last row inserted.
|
||||
* @return the row ID of the last row inserted, if this insert is successful. -1 otherwise.
|
||||
*
|
||||
* @throws android.database.SQLException If the SQL string is invalid for
|
||||
* some reason
|
||||
@@ -75,7 +74,7 @@ public class SQLiteStatement extends SQLiteProgram
|
||||
try {
|
||||
native_execute();
|
||||
mDatabase.logTimeStat(mSql, timeStart);
|
||||
return mDatabase.lastInsertRow();
|
||||
return (mDatabase.lastChangeCount() > 0) ? mDatabase.lastInsertRow() : -1;
|
||||
} finally {
|
||||
releaseReference();
|
||||
mDatabase.unlock();
|
||||
|
||||
Reference in New Issue
Block a user