Hi there,

Is it possible to get the columns operated on by a WHERE clause from the 
sqlite3_stmt once it's been prepared ? 

I'm trying to intelligently invalidate cached results after a database UPDATE, 
where the results are cached by query. One of the ways the query can be 
instantiated is with a variadic WHERE clause, although any writes have to 
specify the column(s) being written (there's no variadic UPDATE clause) so as I 
see it, I can either:


        - invalidate all cached results whenever any write to the tables 
involved happens

        - force the API clients to specify the dependent columns in any 
where... clause separately from the actual SQL

        - inspect the sqlite3_stmt to see which columns it depends on, and only 
invalidate any results that depend on the column just UPDATEd

        - write a SQL WHERE clause parser. Yuk - it's already there!

I'm currently doing the first of these, would love to do the thithd, and I 
guess could settle for the second (it's not very elegant though). Sqlite must 
*know* which columns are the criteria parts of the query - I guess I just can't 
see how to gain access to that information.

I looked at the sqlite3_set_authorizer, but it doesn't seem to have an action 
code for examining WHERE - the only codes that use column/table info are UPDATE 
(which I already know) and READ (I don't know what this is used for but it 
sounds more general than I'd need).

Any help much appreciated :)

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

Reply via email to