Re: [BUGS] BUG #14854: daterange[] is an anyarray or anyrange? - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [BUGS] BUG #14854: daterange[] is an anyarray or anyrange?
Date
Msg-id 21231.1507933695@sss.pgh.pa.us
Whole thread Raw
In response to Re: [BUGS] BUG #14854: daterange[] is an anyarray or anyrange?  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-bugs
"David G. Johnston" <david.g.johnston@gmail.com> writes:
> On Fri, Oct 13, 2017 at 12:45 PM, <balazs@obiserver.hu> wrote:
>> CREATE FUNCTION range_overlap_array_any(anyrange, anyarray) RETURNS
>> boolean
>> AS $$SELECT false;$$ LANGUAGE sql IMMUTABLE STRICT;
>> 
>> SELECT range_overlap_array_any(daterange('2017-01-01', '2017-04-01'),
>> array['x'::text]);
>> 
>> ERROR:  function range_overlap_array_any(daterange, text[]) does not exist

> The invocation (daterange, text[]) is not a valid combination for any pure
> pseudo-argument function.

Yeah.  The expectation with these pseudotypes is that you're trying to
declare a function that takes some set of arguments of related types.

Back when we first invented the idea of polymorphic pseudotypes,
which was a good long time ago now, there was discussion of having
a second set of pseudotypes that are tied to a second underlying
"base type" type variable, so that while
myfunc(anyrange, anyarray)

means "a range over some type, and an array over that same type"
then you could write, say
myfunc(anyrange, anyelement2, anyarray2)

to mean "a range over some type A, and a value of some possibly-different
type B, and an array over type B".  We didn't do it because nobody had a
particularly compelling use-case at the time, and also because if we
needed 2 sets of pseudotypes then maybe we needed 3, etc; it wasn't clear
where to stop.

Nearly fifteen years later, we still haven't seen a compelling example
for inventing a second set of pseudotypes.  If you've got one it would
definitely be interesting.
        regards, tom lane


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

pgsql-bugs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: [BUGS] BUG #14854: daterange[] is an anyarray or anyrange?
Next
From: GDR!
Date:
Subject: Re: [BUGS] BUG #14851: Systemd kills long-running recovery