Virtual table function calls

David Jones <jonesd-rN3PHIWzTs1Jm/[email protected]>
Newsgroups gmane.comp.db.sqlite.general
Message-ID <[email protected]>
I’ve written a virtual table to view spreadsheet data inside Excel workbook (.xlsx) files as SQlite tables. I want to implement an SQL function, attr(), which the virtual table overrides to give access to the raw attributes of the cell being returned. I’m looking for a robust way to find the actual column refered to by an overriden function, not just the value returned by the xColumn call.

Example:
   sqlite> .load xlsxvtab.so                                         # creates xlsxvtab module and attr() function
   sqlite> create virtual table summary using xlsxvtab(‘expenses.xlsx’,’sheet1’,’F20’, ‘H32’);
   sqlite> select F,G,H,attr(H,3) from summary;           # show formula used to calculate column H.

The issue is that attr gets called with 2 values and I need to divine that the first value came from column H of the current row of the cursor opened by this select statement. The hack I’m using now is to give the values returned by the xColumn method a subtype equal to the column number. In the attr() function I retrieve the subtype and re-fetch that column from the current row of the last cursor open on that table.

Various pitfalls with this technique:
    - Subtype numbers are limited to the range 0-255.
    - Assumes all functions called before xNext() method called again.
    - Complex queries with multiple cursors?

Any suggestions?
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.