On Tue, May 14, 2019 at 10:18 AM Manuel Rigger <[email protected]>
wrote:
> ...
>
> The query does not fetch a row. However, without the PRAGMA statement one
> row is fetched.
>
It probably helps the devs to specify the version you were testing.
For me, your example returns a single row of "1" in each case.
I'm using 3.28.0, windows CLI:
C:\Users\c058905\webauto>sqlite3
*SQLite version 3.28.0* 2019-04-16 19:49:53
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> PRAGMA reverse_unordered_selects;
0
sqlite> CREATE TABLE t1 (c0, c1);
sqlite> CREATE TABLE t2 (c0 INT UNIQUE);
sqlite> INSERT INTO t1(c0, c1) VALUES (0, 0), (0, NULL);
sqlite> INSERT INTO t2(c0) VALUES (1);
sqlite> SELECT 1, NULL INTERSECT SELECT * FROM (SELECT t2.c0, t1.c1 FROM
t1, t2
...> WHERE ((t2.rowid <= 'a')) OR (t1.c0 <= t2.c0) ORDER BY 'a' DESC
LIMIT 100);
1|
====================================
C:\Users\c058905\webauto>sqlite3
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> PRAGMA reverse_unordered_selects=1;
sqlite> PRAGMA reverse_unordered_selects;
1
sqlite> CREATE TABLE t1 (c0, c1);
sqlite> CREATE TABLE t2 (c0 INT UNIQUE);
sqlite> INSERT INTO t1(c0, c1) VALUES (0, 0), (0, NULL);
sqlite> INSERT INTO t2(c0) VALUES (1);
sqlite> SELECT 1, NULL INTERSECT SELECT * FROM (SELECT t2.c0, t1.c1 FROM
t1, t2
...> WHERE ((t2.rowid <= 'a')) OR (t1.c0 <= t2.c0) ORDER BY 'a' DESC
LIMIT 100);
1|
sqlite>
Regards,
Donald
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users