I really would rather not depend on what is in the SQL itself, as the
concern I have has nothing to do with whether or not the user runs
SELECT, but whether or not this will cause the library to write to
disk. I'd love to decouple those two things.

To that end, from an API perspective, is it safe to cast a sqlite_stmt
struct to the Vdbe struct, and just check the readOnly flag? In other
words, how static is that struct? My Lua interface could require that
all SQL gets prepared, and then I could reject prepared statements
that aren't readOnly myself.

-JT

On Thu, Jul 15, 2010 at 12:41 PM, Jim Morris <jmor...@bearriver.com> wrote:
> You also need to watch for multiple command separated via ';'
>
> On 7/15/2010 11:36 AM, JT Olds wrote:
>> I considered that also, but I wasn't sure about whether or not that
>> guaranteed no disk writes (maybe some sort of function call might be
>> made there). That also restricts things like the usage of in-memory
>> temp tables that might be useful. It appears that sqlite knows whether
>> or not a statement will definitively, actually hit disk, whereas
>> filtering by SELECT seemed unclear to me as to whether it would quite
>> cover or catch everything.
>>
>> If that is truly the best way, then that's fine I guess.
>>
>> -JT
>>
>> On Thu, Jul 15, 2010 at 12:25 PM, Simon Slavin<slav...@bigfraud.org>  wrote:
>>
>>> On 15 Jul 2010, at 7:07pm, JT Olds wrote:
>>>
>>>
>>>> is there a way to check a prepared statement
>>>> before allowing its use as to if it will attempt to write to disk?
>>>>
>>> You could perhaps accept only statements that start with 'SELECT'.  It 
>>> depends on how you're passing them to SQLite.
>>>
>>> Simon.
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@sqlite.org
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to