From: | Durumdara <durumdara(at)gmail(dot)com> |
---|---|
To: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Variant (Untyped) parameter for function/procedure |
Date: | 2024-06-05 08:34:54 |
Message-ID: | CAEcMXhkoR7mo3gpF8Jhoq=ui6vgCC5rvKW3e2wF=PfzL=FWJAQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Dear Members!
As I experienced, the functions/procedures extremely depend on parameters
(very typed).
So if I have to restructure the input parameters, I can't modify the
function, because I have to recreate the dependents too.
For example:
I have a type. If I pass this type to a function, I can't change the
structure of the type without dropping and recreating the function.
create type blahtype as (a int, b bool);
create function blahcheck (input blahtype) ...
If I have many dependent functions this causes that I have to drop
(recreate) everything - just for an extra parameter. And sometimes this
extra parameter doesn't change 10 functions, only one. But I have to
recreate them all (without changing the body).
Is there any way to use a Variant parameter?
Like this:
create procedure test(IN Input Record, OUT Output Record)
...
Time = Input.Time::timestamp;
...
Output = SomeHowMakeItTyped;
Output.Result = 1;
...
Caller:
...
for r_in as select id, name from blah into
...
test(r_in, r_out);
if r_out.result <> 0 then ...
Or:
create procedure test(IN Inputs Records, OUT Output Record)
...
for Input in Inputs:
Time = Input.Time::timestamp;
...
Output.Result = 1;
...
Or is it impossible, because of the PGSQL's philosophy (very typed)?
If it is not possible then I have one way I think.
It is a JSON data type for inputs and outputs.
Is that right?
Thanks for your any help, info!
Best regards
dd
From | Date | Subject | |
---|---|---|---|
Next Message | Russell Mercer | 2024-06-05 08:55:29 | Re: Unable to connect to any data source for foreign server |
Previous Message | Shammat | 2024-06-05 08:31:04 | Re: Poor performance after restoring database from snapshot on AWS RDS |