Yes, thanks, I did forget about that. Would the method with explain then be a good way to pick up that the pragma was unknown, so invalid? I suppose a simpler way might be to compare to all the pragma's produced by pragma_list and determine that pragma index_list is too short (missing the table).
RBS On Wed, Aug 1, 2018 at 3:30 PM, David Raymond <david.raym...@tomtom.com> wrote: > Don't forget this point about pragmas: > > https://www.sqlite.org/pragma.html > "No error messages are generated if an unknown pragma is issued. Unknown > pragmas are simply ignored. This means if there is a typo in a pragma > statement the library does not inform the user of the fact." > > That way if there's a typo, or if you try a new pragma in an old version > then it won't complain, it just won't do anything. > > -----Original Message----- > From: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] > On Behalf Of Bart Smissaert > Sent: Wednesday, August 01, 2018 10:13 AM > To: General Discussion of SQLite Database > Subject: [sqlite] Is pragma index_list without supplied table name valid > SQL? > > Using SQLite 3.22.0 > > In my app I have code to determine if a given SQL string is data-producing, > non-data producing or invalid. It uses these 3 SQLite functions: > > sqlite3_prepare_v3 > sqlite3_stmt_readonly > sqlite3_column_count > > Have been using this code for a few years and sofar never failed, but now > come across: > pragma index_list > so, without a supplied table name. > This gives me data-producing and I think it should give me invalid. > > Firstly is this SQL indeed invalid? > > Secondly, if it is I need to add some code to pick this up and was thinking > about using explain for that. Explain pragma index_list gives me: > > addr opcode p1 p2 p3 p4 p5 comment > --------------------------------------------------- > 0 Init 0 1 0 00 Start at 1 > 1 Halt 0 0 0 00 > > And that to me looks it is indeed an invalid SQL as it gives a Halt already > in the second row > and produces no further rows. > > Am I right here and would this be a good way to pick up invalid SQL? > > > RBS > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users