According to the documentation athttp://www.sqlite.org/c3ref/blob_open.html
“
If the row that a BLOB handle points to is
modified by an UPDATE, DELETE, or by ON CONFLICT side-effects
then the BLOB handle is marked as "expired".
This is true if any column of the row is
changed, even a column other than the one the BLOB handle is open on.
Calls to sqlite3_blob_read() and sqlite3_blob_write() for
a expired BLOB handle fail with an return code of SQLITE_ABORT.
”
However, it looks that handle can expire
when UPDATE is done on the column in the other unrelated to the blob table.
Read of the blob would return SQLITE_ABORT “not an error”(?!) and no data is
read.
Is it a bug, a feature or the expected
behaviour?
Thanks for your
attention.
P.S
Searching the web I
found the following reference:
blob incremental i/o constraints
by Roger Binns Dec 02, 2007; 02:15am
Open a blob for reading. Insert into the same table (not affecting the
blob or its row). On calling sqlite3_blob_read, I get SQLITE_ABORT
returned and the errmsg is "not an error". This also
happens if I do a
few reads, and then the insert, on the next read. (This also happens
with blobs open for writing and doing read or write after the table is
changed).
__________________________________________________________________
Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your
favourite sites. Download it now
http://ca.toolbar.yahoo.com.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users