regression: select_views.sql

Started by Vadim B. Mikheevalmost 28 years ago5 messages
#1Vadim B. Mikheev
vadim@sable.krasnoyarsk.su

I got different results for the second query
(SELECT * FROM iexit ORDER BY 1, 2;) when using -S 64 (on-disk sorting)
and -S 8192 (in-memory).
Could it be caused by this _wrong_ line in pg_operator.h:

DATA(insert OID = 793 ( "<" PGUID 0 b t f 602 602 701 ... path_n_lt ...
^^^
this is float8 but path_n_lt() returns bool...

The same for all path_n_* funcs (may be others too)...

Vadim

#2Thomas G. Lockhart
lockhart@alumni.caltech.edu
In reply to: Vadim B. Mikheev (#1)
Re: [HACKERS] regression: select_views.sql

I got different results for the second query
(SELECT * FROM iexit ORDER BY 1, 2;) when using -S 64 (on-disk sorting)
and -S 8192 (in-memory).
Could it be caused by this _wrong_ line in pg_operator.h:

DATA(insert OID = 793 ( "<" PGUID 0 b t f 602 602 701 ... path_n_lt ...
^^^
this is float8 but path_n_lt() returns bool...

The same for all path_n_* funcs (may be others too)...

I'll fix this...

#3Vadim B. Mikheev
vadim@sable.krasnoyarsk.su
In reply to: Vadim B. Mikheev (#1)
Re: [HACKERS] regression: select_views.sql

Thomas G. Lockhart wrote:

DATA(insert OID = 793 ( "<" PGUID 0 b t f 602 602 701 ... path_n_lt ...
^^^
this is float8 but path_n_lt() returns bool...

The same for all path_n_* funcs (may be others too)...

I'll fix this...

Nice. There are other invalids:

vac=> select oprname, oprcode from pg_operator where oprcanhash and oprname <> '=';
oprname|oprcode
-------+------------
~= |intervalsame
^^^^^^^^^^^^^^^^^^^^ ok, but others are not!
<> |intervalne
< |intervallt

|intervalgt

<= |intervalle

= |intervalge

(6 rows)

(BTW, oprcanhash can be used to let know does operator mean EQUALity...
I'd like to use this for subselects)

Vadim

#4Thomas G. Lockhart
lockhart@alumni.caltech.edu
In reply to: Vadim B. Mikheev (#1)
Re: [HACKERS] regression: select_views.sql

Vadim B. Mikheev wrote:

Thomas G. Lockhart wrote:

DATA(insert OID = 793 ( "<" PGUID 0 b t f 602 602 701 ... path_n_lt ...
^^^
this is float8 but path_n_lt() returns bool...

The same for all path_n_* funcs (may be others too)...

I'll fix this...

Nice. There are other invalids:

vac=> select oprname, oprcode from pg_operator where oprcanhash and oprname <> '=';
oprname|oprcode
-------+------------
~= |intervalsame
^^^^^^^^^^^^^^^^^^^^ ok, but others are not!
<> |intervalne
< |intervallt

|intervalgt

<= |intervalle

= |intervalge

(6 rows)

Hmm. Those look like they support the "time interval" type, which I haven't been updating
because it is based on abstime; I'm more interested in the wider-range/more-precise
datetime-based stuff. I would think about rewriting the time interval routines, but
assume it was used somewhere in the backend to support time travel. Don't know if it is
still in there somewhere...

- Tom

#5Vadim B. Mikheev
vadim@sable.krasnoyarsk.su
In reply to: Vadim B. Mikheev (#1)
Re: [HACKERS] regression: select_views.sql

Thomas G. Lockhart wrote:

vac=> select oprname, oprcode from pg_operator where oprcanhash and oprname <> '=';
oprname|oprcode
-------+------------
~= |intervalsame
^^^^^^^^^^^^^^^^^^^^ ok, but others are not!
<> |intervalne
< |intervallt

|intervalgt

<= |intervalle

= |intervalge

(6 rows)

Hmm. Those look like they support the "time interval" type, which I haven't been updating
because it is based on abstime; I'm more interested in the wider-range/more-precise
datetime-based stuff. I would think about rewriting the time interval routines, but
assume it was used somewhere in the backend to support time travel. Don't know if it is
still in there somewhere...

I just say that all these <>, <, >, >=, <= must have FALSE in oprcanhash.
Having TRUE for them is bug.

Vadim