On Tue, May 14, 2019 at 10:18 AM Manuel Rigger <rigger.man...@gmail.com>
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
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to