Sreekumar TP <sreekumar...@gmail.com> wrote:
> I have a nested transaction as follows -
> 
> sqlite3_prepare_v2(db, stmt1..)
> sqlite3_prepare_v2(db, stmt2..)
> 
> sqlite3_step(stmt1)
>   sqlite3_step(stmt2)
>  sqlite3_reset(stmt2)
> sqlite3_step(stmt1)

There is only one transaction here - an implicit one, started by 
sqlite3_step(stmt1).

> (1) SQLITE , as I understand does not support nested transaction

Correct.

> hence the
> the above statement should have caused error

Should not. The conclusion doesn't follow from the premise.

> (2)  A transaction is complete only when sqlite3_reset is called.

To be precise, an implicit transaction is committed when there are no more 
outstanding statements on a connection, that is, when the last active statement 
is reset or finalized. See

http://sqlite.org/lang_transaction.html

in particular the part about implicit transactions.

> Hence the
> sqlite3_step(stmt2) should have returned a "database locked" error.

Should not. The conclusion doesn't follow from the premise.

> Is SQLITE doing something under the hood ?

SQLite is doing a lot under the hood. Is there anything in particular you'd 
like to know about?
-- 
Igor Tandetnik

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to