On 12/13/2016 01:47 AM, Bob Friesenhahn wrote:
I am reworking code for a virtual table module and need to provide
proper error codes from the xColumn() and xRowid() callbacks for the
case where the row id does not exist, or the current row goes away.
This problem occurs because the current virtual table module
implementation does not lock for its entire access (a matter for
subsequent investigation).
The documentation just says to "return an appropriate error code".
Perhaps SQLITE_NOTFOUND is a correct return code, but the
documentation does not address return codes from virtual table modules.
What is the correct code to return? If a cursor is being navigated,
then I would prefer that the cursor continue to the next result row.
If you want the query to continue, the virtual table methods must return
SQLITE_OK. Anything else will cause SQLite to abandon the query and
return the error to the user. Have the xColumn() method return NULL in
this case I guess.
Or you could load all the column values into memory when your virtual
table cursor visits each row of the underlying data. Then you wouldn't
have to handle the current row disappearing on you.
Dan.
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users