Skip site navigation (1) Skip section navigation (2)

Re: SEGV in contrib/array/array_iterator.c

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Matt Peterson <matt(at)caldera(dot)com>, <dz(at)cs(dot)unitn(dot)it>,<pgsql-bugs(at)postgresql(dot)org>
Subject: Re: SEGV in contrib/array/array_iterator.c
Date: 2002-04-02 20:29:15
Message-ID: 20020402122436.V79913-100000@megazone23.bigpanda.com (view raw or flat)
Thread:
Lists: pgsql-bugs
On Tue, 2 Apr 2002, Tom Lane wrote:

> Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> writes:
> > Are the array iterator functions supposed to act sort of like
> > =ANY/=ALL except across an array instead of a subselect?
>
> Seems like a reasonable definition.
>
> > If so,
> > isStrict probably isn't right, since for an empty subselect the return
> > value does not depend on the element being searched for.
>
> Hm ... isn't it NULL anyway, if the left side is NULL?
>
> But if you're right, then the correct fix involves updating the
> functions to V1 calling conventions, so that they can make a correct
> test for NULL inputs (rather than bogusly checking for zero value).

I think the empty case is special, due to the rules on <quantified
comparison predicate>s.  It looks like no comparison predicates
need to be run.

I think the applicable parts of 8.7 are
General Rule 2a
 If T is empty or if the implied <comparison predicate> is true
 for every row RT in T, then "R <comp op> <all> T" is true.
General Rule 2d
 If T is empty or if the implied <comparison predicate> is false
 for every row RT in T, then "R <comp op> <some> T" is false.


In response to

Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2002-04-02 20:29:30
Subject: Re: Solaris 8 install of postgres 7.2
Previous:From: Tom LaneDate: 2002-04-02 20:22:05
Subject: Re: SEGV in contrib/array/array_iterator.c

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group