| From: | Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com> |
|---|---|
| To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
| Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Jeff Davis <pgsql(at)j-davis(dot)com>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: range_agg |
| Date: | 2020-01-18 16:07:08 |
| Message-ID: | CA+renyW=n2bbJSBtaeK1-a1KrfXBPxKbkc5VZbTSzA0B9gthkg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Sat, Jan 18, 2020 at 7:20 AM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> wrote:
> Can be nice to have a polymorphic function
>
> multirange(anymultirange, anyrange) returns anymultirange. This functions should to do multirange from $2 to type $1
>
> It can enhance to using polymorphic types and simplify casting.
Thanks for taking another look! I actually have that already but it is
named anymultirange:
regression=# select anymultirange(int4range(1,2));
anymultirange
---------------
{[1,2)}
(1 row)
Will that work for you?
I think I only wrote that to satisfy some requirement of having an
anymultirange type, but I agree it could be useful. (I even used it in
the regress tests.) Maybe it's worth documenting too?
> when I tried to write this function in plpgsql I got
>
> create or replace function multirange(anymultirange, anyrange) returns anymultirange as $$
> begin
> execute format('select $2::%I', pg_typeof($1)) into $1;
> return $1;
> end;
> $$ language plpgsql immutable strict;
>
> ERROR: unrecognized typtype: 109
> CONTEXT: compilation of PL/pgSQL function "multirange" near line 1
Hmm, I'll add a test for that and see if I can find the problem.
Thanks!
Paul
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2020-01-18 16:35:54 | Re: range_agg |
| Previous Message | Tom Lane | 2020-01-18 16:05:53 | Re: postgresql-13devel initDB Running in debug mode. |