fix non-variadic repeated param in variadic function
This commit is contained in:
committed by
Steve Chavez
parent
8618ffa5fc
commit
4b4a622a17
@@ -94,7 +94,7 @@ jsonRpcParams proc prms =
|
|||||||
where
|
where
|
||||||
mergeParams :: RpcParamValue -> RpcParamValue -> RpcParamValue
|
mergeParams :: RpcParamValue -> RpcParamValue -> RpcParamValue
|
||||||
mergeParams (Variadic a) (Variadic b) = Variadic $ b ++ a
|
mergeParams (Variadic a) (Variadic b) = Variadic $ b ++ a
|
||||||
mergeParams _ v = v -- repeated params for non-variadic arguments are not merged
|
mergeParams v _ = v -- repeated params for non-variadic arguments are not merged
|
||||||
|
|
||||||
{-|
|
{-|
|
||||||
Describes what the user wants to do. This data type is a
|
Describes what the user wants to do. This data type is a
|
||||||
|
|||||||
@@ -528,6 +528,12 @@ spec actualPgVersion =
|
|||||||
`shouldRespondWith`
|
`shouldRespondWith`
|
||||||
[json|"Hello, world"|]
|
[json|"Hello, world"|]
|
||||||
|
|
||||||
|
when (actualPgVersion >= pgVersion100) $
|
||||||
|
it "returns last value for repeated non-variadic params in function with other VARIADIC arguments" $
|
||||||
|
get "/rpc/sayhello_variadic?name=ignored&name=world&v=unused"
|
||||||
|
`shouldRespondWith`
|
||||||
|
[json|"Hello, world"|]
|
||||||
|
|
||||||
it "can handle procs with args that have a DEFAULT value" $ do
|
it "can handle procs with args that have a DEFAULT value" $ do
|
||||||
get "/rpc/many_inout_params?num=1&str=two" `shouldRespondWith`
|
get "/rpc/many_inout_params?num=1&str=two" `shouldRespondWith`
|
||||||
[json| [{"num":1,"str":"two","b":true}]|] { matchHeaders = [matchContentTypeJson] }
|
[json| [{"num":1,"str":"two","b":true}]|] { matchHeaders = [matchContentTypeJson] }
|
||||||
|
|||||||
Vendored
+7
-2
@@ -1084,9 +1084,14 @@ create function test.many_inout_params(INOUT num int, INOUT str text, INOUT b bo
|
|||||||
$$ language sql;
|
$$ language sql;
|
||||||
|
|
||||||
CREATE FUNCTION test.variadic_param(VARIADIC v TEXT[] DEFAULT '{}') RETURNS text[]
|
CREATE FUNCTION test.variadic_param(VARIADIC v TEXT[] DEFAULT '{}') RETURNS text[]
|
||||||
LANGUAGE SQL AS $_$
|
LANGUAGE SQL AS $$
|
||||||
SELECT v
|
SELECT v
|
||||||
$_$;
|
$$;
|
||||||
|
|
||||||
|
CREATE FUNCTION test.sayhello_variadic(name TEXT, VARIADIC v TEXT[]) RETURNS text
|
||||||
|
LANGUAGE SQL AS $$
|
||||||
|
SELECT 'Hello, ' || name
|
||||||
|
$$;
|
||||||
|
|
||||||
create or replace function test.raise_pt402() returns void as $$
|
create or replace function test.raise_pt402() returns void as $$
|
||||||
begin
|
begin
|
||||||
|
|||||||
Reference in New Issue
Block a user