Sorry, I should have anticipated that we get slightly different values. Shouldn't the query "SELECT * FROM t1 WHERE c1 IN (SELECT c1 FROM t1);" return a result though?
Best, Manuel On Sat, May 4, 2019 at 8:17 PM Keith Medcalf <kmedc...@dessus.com> wrote: > > Ooopsie ... that should have been 1e17, and it appears to be fine, except > that: > > SELECT ALL * FROM t1 WHERE c1 = (select c1 from t1); > > does not work ever though the value returned from the subselect should be > exactly the value in the index ... > > A table scan does however work correctly ... > > sqlite> SELECT ALL * FROM t1 not indexed WHERE c1 = (select c1 from t1); > |5.76460752303423e+17 > > > --- > The fact that there's a Highway to Hell but only a Stairway to Heaven says > a lot about anticipated traffic volume. > > > >-----Original Message----- > >From: sqlite-users [mailto:sqlite-users- > >boun...@mailinglists.sqlite.org] On Behalf Of Keith Medcalf > >Sent: Saturday, 4 May, 2019 12:09 > >To: SQLite mailing list > >Subject: Re: [sqlite] Problem with REAL PRIMARY KEY > > > > > >There is, however, something weird: > > > >SQLite version 3.29.0 2019-05-04 17:32:07 > >Enter ".help" for usage hints. > >Connected to a transient in-memory database. > >Use ".open FILENAME" to reopen on a persistent database. > >sqlite> .version > >SQLite 3.29.0 2019-05-04 17:32:07 > >c2e439bccc40825e211bfa9a88e6a251ff066ca7453d4e7cb5eab56ce733alt2 > >zlib version 1.2.11 > >gcc-8.1.0 > >sqlite> CREATE TABLE t1 (c0, c1 REAL, PRIMARY KEY (c1, c0)); > >sqlite> INSERT INTO t1(c1) VALUES (0X7ffffffffffffff);; > >sqlite> SELECT ALL * FROM t1 WHERE c1 = 5.76460752303423e+17; > >sqlite> SELECT ALL * FROM t1 WHERE c1 = (select c1 from t1); > >sqlite> SELECT ALL * FROM t1 WHERE c1 > (select c1 - 1 from t1); > >sqlite> select c1 from t1; > >5.76460752303423e+17 > >sqlite> select c1 - 1 from t1; > >5.76460752303423e+17 > >sqlite> > > > > > >--- > >The fact that there's a Highway to Hell but only a Stairway to Heaven > >says a lot about anticipated traffic volume. > > > > > >>-----Original Message----- > >>From: sqlite-users [mailto:sqlite-users- > >>boun...@mailinglists.sqlite.org] On Behalf Of Richard Hipp > >>Sent: Saturday, 4 May, 2019 11:49 > >>To: SQLite mailing list > >>Subject: Re: [sqlite] Problem with REAL PRIMARY KEY > >> > >>On 5/4/19, Manuel Rigger <rigger.man...@gmail.com> wrote: > >>> Hi everyone, > >>> > >>> Consider the following example: > >>> > >>> CREATE TABLE t1 (c0, c1 REAL, PRIMARY KEY (c1, c0)); > >>> INSERT INTO t1(c1) VALUES (0X7ffffffffffffff);; > >>> SELECT ALL * FROM t1 WHERE c1 = 5.76460752303423e+17; > >>> > >>> I would expect the row to be fetched, which is not the case. > >> > >>But 0x7ffffffffffffff != 5.76460752303423e+17. Try it: > >> > >> SELECT 0x7ffffffffffffff != 5.76460752303423e+17; > >> > >>You should get back 0. > >> > >>The rule of thumb is to never expect the == operator to give a > >>meaningful answer for floating-point numbers. Only use <, <=, >, > >and > >>>=. > >> > >>-- > >>D. Richard Hipp > >>d...@sqlite.org > >>_______________________________________________ > >>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 > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users