RE: [HACKERS] Re: Subselects open issue Nr. 5

Michael Meskes <meskes@topsystem.de>

From: "Meskes, Michael" <meskes@topsystem.de>
To: "'Vadim B. Mikheev'" <vadim@sable.krasnoyarsk.su>, Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at>
Cc: "'pgsql-hackers@hub.org'" <pgsql-hackers@hub.org>, Michael Meskes <meskes@topsystem.de>, ocie@paracel.com
Date: 1998-02-16T10:22:48Z
Lists: pgsql-hackers
Yes, and Oracle7 also.

I think with NULL values Andreas is right. The whole statement should be
NULLed. That to me is the intuitive behaviour.

Michael

--
Dr. Michael Meskes, Project-Manager    | topsystem Systemhaus GmbH
meskes@topsystem.de                    | Europark A2, Adenauerstr. 20
meskes@debian.org                      | 52146 Wuerselen
Go SF49ers! Go Rhein Fire!             | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux!                  | Fax: (+49) 2405/4670-10

> -----Original Message-----
> From:	Vadim B. Mikheev [SMTP:vadim@sable.krasnoyarsk.su]
> Sent:	Sunday, February 15, 1998 12:33 PM
> To:	Zeugswetter Andreas SARZ
> Cc:	'pgsql-hackers@hub.org'; Michael Meskes; ocie@paracel.com
> Subject:	Re: [HACKERS] Re: Subselects open issue Nr. 5
> 
> Ok. I'll fix this. As I see, this is exactly what Oracle 6 does, but
> 
> Zeugswetter Andreas SARZ wrote:
> > 
> > Informix treats the subselect as NULL if no rows are returned.
> > Therefore all parent rows that are not null are returned.
> > 
> > select * from taba where a not in (<a select returning no row>);
> --
> > is same as
> > select * from taba where a is not null;
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Oracle returns tuples with A being NULL!!! and more of that (table B
> is empty):
> 
> SQL> select count(*) from a where x > ALL (select * from b);
> 
>   COUNT(*)
> ----------
>          2
> 
> and result is the same for all OP-s with ALL modifier... And
> 
> SQL> select count(*) from a where x in (select * from b);
> 
>   COUNT(*)
> ----------
>          0
> having tuple with NULL in X...
> 
> Who's right ?
> What standard says ?
> 
> Vadim