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