Yes, absolutely correct
On Nov 1, 2017 10:55 AM, "Clemens Ladisch" <clem...@ladisch.de> wrote:

> Egor Shalashnikov wrote:
> > create table t(n number, v varchar2(10));
> > insert into t values (1, 'one')
> > explain select * from t where 0 < n;
>
> If you omit the EXPLAIN, is the code executed correctly?
>
> > addr  opcode         p1    p2    p3    p4             p5  comment
> > ----  -------------  ----  ----  ----  -------------  --  -------------
> > 13    Integer        0     2     0                    00  r[2]=0
> > ...
> > 2     Rewind         0     9     0                    00
> > 3       Column         0     0     1                    00  r[1]=t.n
> > 4       Le             2     8     1     (BINARY)       53  if
> r[2]<=r[1] goto 8
> > 5       Copy           1     3     0                    00  r[3]=r[1]
> > 6       Column         0     1     4                    00  r[4]=t.v
> > 7       ResultRow      3     2     0                    00
> output=r[3..4]
> > 8     Next           0     3     0                    01
> > ...
> > The line 4 seems wrong for me, because t.n(r[1]) should be <= than
> > 0(r[2]) to be ignored (goto 8).
>
> The synopsis of OP_Le would be "if r[P3]<=r[P1] goto P2".
>
> There is indeed something wrong in your EXPLAIN output.  But my 3.21.0
> correctly shows "r[1]<=r[2]".
>
>
> Regards,
> Clemens
> _______________________________________________
> 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

Reply via email to