On Monday, 23 September, 2019 14:09, Richard Hipp <[email protected]>:
>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
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users