xRowid() is only called if the (hidden field) rowid is explicitly mentioned in 
the select list, join condition or where clause(s) of a SELECT statement; or if 
your VTAB supports write operations (see xUpdate documentation 
http://www.sqlite.org/vtab.html#the_xupdate_method ).

-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:[email protected]] Im 
Auftrag von Bob Friesenhahn
Gesendet: Montag, 12. Dezember 2016 20:50
An: SQLite mailing list <[email protected]>
Betreff: Re: [sqlite] Error code for VT xColumn()/xRowid() if row does not 
exist?

On Tue, 13 Dec 2016, Dan Kennedy wrote:
>>
>> 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.

Ok, thanks.

> 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.

We are normally doing column caching as you describe.  Even without the caching 
I can lock for column access at the row level.  The case where the row might no 
longer exist is for xRowid(), but this function does not seem to be called for 
the table I am looking at.

Bob
--
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


___________________________________________
 Gunter Hick
Software Engineer
Scientific Games International GmbH
FN 157284 a, HG Wien
Klitschgasse 2-4, A-1130 Vienna, Austria
Tel: +43 1 80100 0
E-Mail: [email protected]

This communication (including any attachments) is intended for the use of the 
intended recipient(s) only and may contain information that is confidential, 
privileged or legally protected. Any unauthorized use or dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please immediately notify the sender by return e-mail message and 
delete all copies of the original communication. Thank you for your cooperation.


_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to