On Monday, 23 September, 2019 14:09, Richard Hipp <d...@sqlite.org>:

>In any event, you are correct that the behavior can now be disabled
>and should be for new applications.  But we need to leave it turned on
>by default for legacy.

Nevertheless, the point is that even if you purportedly turn the behaviour off, 
it is not turned off:

That is, if you compile with DQS set to 0, the statement

pragma encoding = "UTF-8"

is still accepted without error.

SQLite version 3.30.0 2019-09-23 19:37:40
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> pragma encoding="UTF-8";
sqlite> .dbconfig
       enable_fkey on
    enable_trigger on
       enable_view on
    fts3_tokenizer off
    load_extension on
  no_ckpt_on_close off
       enable_qpsg off
       trigger_eqp off
    reset_database off
         defensive off
   writable_schema off
legacy_alter_table off
           dqs_dml off
           dqs_ddl off

If fact the dqs_ddl setting seems not to do anything at all.  dqs_dml seems to 
work however.

sqlite> create table x (x default "DFLT");
sqlite> insert into x default values;
sqlite> select * from x;
DFLT
sqlite> insert into x values ("DFLT");
Error: no such column: DFLT
sqlite>

Now, if you created a legacy database with dqs_ddl turned on and opened it in a 
version of SQLite3 that has dqs_ddl turned off, should parsing a currently 
malformed schema produce an error?  However, the create with incorrect quotes 
should be an error if at the time it is made dqs_ddl is turned off.

sqlite> create view v as select "TEST";
sqlite> select * from v;
Error: no such column: TEST
sqlite>

Should this not toss an error when the ddl creating the view is parsed?  Hard 
to say because a view is merely a stored statement and I don't think it is 
parsed (as in prepared) at create view time, however it does definitely throw 
an error when executed (prepared), in accordance with the dqs_dml setting.

Does the dqs_ddl setting need to be passed to something else, like the parser 
generator?





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

Reply via email to