Re: Subselects open issue Nr. NEW - Mailing list pgsql-hackers

From Vadim B. Mikheev
Subject Re: Subselects open issue Nr. NEW
Date
Msg-id 34E90484.A150B16@sable.krasnoyarsk.su
Whole thread Raw
In response to Subselects open issue Nr. NEW  ("Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>)
Responses Re: [HACKERS] Re: Subselects open issue Nr. NEW  (Michael Hirohama <kamesan@ricochet.net>)
Re: [HACKERS] Re: Subselects open issue Nr. NEW  (Michael Meskes <meskes@topsystem.de>)
List pgsql-hackers
Michael Hirohama wrote:
>
> [...]
> >SQL> select * from a where (x,z) >= ANY (select y, l from b);
> >select * from a where (x,z) >= ANY (select y, l from b)
> >                            *
> >ERROR at line 1:
> >ORA-00920: invalid relational operator
> >
> >: only '=' and '<>' are allowed if there are more than one
> >expression on the left side of clause with subselect...
> >
> >Is this in standard or Oracle' preference ?
>
> This is a mathematical law.
>
> Vectors cannot be strictly ordered.  "Partial orderings" are possible.
>
> Let A be (1, 2)
> Let B be (4, 7)
> Let C be (3, 5)
> Let D be (5, 10)
>
> A is smallest; D is largest; how do B and C relate?

I understand this. And this is how it works currently:

select * from tab where (A,B) >= ANY (select X, Y from tab2);

means: select tuples where A >= X _and_ B >= Y for some tuple from tab2.
                                  ^^^^^
         'AND' is used for all Op-s except for '<>' when 'OR' is used.

Question is "should we drop this feature (?) or leave it as is ?"

Comments ?

Vadim

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: DB logging (was: Problem with the numbers I reported yesterday)
Next
From: The Hermit Hacker
Date:
Subject: Re: [QUESTIONS] Trouble creating view\