Обсуждение: regression: select_views.sql

Поиск
Список
Период
Сортировка

regression: select_views.sql

От
"Vadim B. Mikheev"
Дата:
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

Re: [HACKERS] regression: select_views.sql

От
"Thomas G. Lockhart"
Дата:
> 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...


Re: [HACKERS] regression: select_views.sql

От
"Vadim B. Mikheev"
Дата:
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

Re: [HACKERS] regression: select_views.sql

От
"Thomas G. Lockhart"
Дата:
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


Re: [HACKERS] regression: select_views.sql

От
"Vadim B. Mikheev"
Дата:
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