feat: RPC POST for function w/single unnamed param
For POST on RPC, allows: * passing a json object without using `Prefer: params=single-object` The function must be defined with a single unnamed json param and `Content-Type: application/json` must be specified. * uploading binary to a function The function must be defined with a single unnamed bytea param and `Content-Type: application/octet-stream` must be specified. * uploading raw text to a function The function must be defined with a single unnamed text param and `Content-Type: text/plain` must be specified. BREAKING CHANGE If there's a function "my_func" having a single unnamed json param and other overloaded pairs(with any number of params), PostgREST won't be able to resolve a POST request to "my_func". For solving this, you can name the unnamed json param. my_func(json) -> my_func(prm json)
This commit is contained in:
committed by
Steve Chavez
parent
caaa34b5de
commit
d4c6abbaec
Vendored
+26
-2
@@ -1050,7 +1050,7 @@ create function test.ret_point_overloaded(x int, y int) returns test.point_2d as
|
||||
select row(x, y)::test.point_2d;
|
||||
$$ language sql;
|
||||
|
||||
create function test.ret_point_overloaded(json) returns json as $$
|
||||
create function test.ret_point_overloaded(x json) returns json as $$
|
||||
select $1;
|
||||
$$ language sql;
|
||||
|
||||
@@ -2251,4 +2251,28 @@ A test for partitioned tables$$;
|
||||
foreign key (id_a, name_a) references test.partitioned_a (id, name)
|
||||
);
|
||||
end if;
|
||||
end$do$;
|
||||
end$do$;
|
||||
|
||||
create or replace function test.unnamed_json_param(json) returns json as $$
|
||||
select $1;
|
||||
$$ language sql;
|
||||
|
||||
create or replace function test.unnamed_text_param(text) returns text as $$
|
||||
select $1;
|
||||
$$ language sql ;
|
||||
|
||||
create or replace function test.unnamed_bytea_param(bytea) returns bytea as $$
|
||||
select $1::bytea;
|
||||
$$ language sql ;
|
||||
|
||||
create or replace function test.unnamed_int_param(int) returns int as $$
|
||||
select $1;
|
||||
$$ language sql;
|
||||
|
||||
create or replace function test.overloaded_unnamed_param(json) returns int as $$
|
||||
select $1;
|
||||
$$ language sql;
|
||||
|
||||
create or replace function test.overloaded_unnamed_param(x int, y int) returns int as $$
|
||||
select x + y;
|
||||
$$ language sql;
|
||||
|
||||
Reference in New Issue
Block a user