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
|
||||
mergeParams :: RpcParamValue -> RpcParamValue -> RpcParamValue
|
||||
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
|
||||
|
||||
@@ -528,6 +528,12 @@ spec actualPgVersion =
|
||||
`shouldRespondWith`
|
||||
[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
|
||||
get "/rpc/many_inout_params?num=1&str=two" `shouldRespondWith`
|
||||
[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;
|
||||
|
||||
CREATE FUNCTION test.variadic_param(VARIADIC v TEXT[] DEFAULT '{}') RETURNS text[]
|
||||
LANGUAGE SQL AS $_$
|
||||
LANGUAGE SQL AS $$
|
||||
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 $$
|
||||
begin
|
||||
|
||||
Reference in New Issue
Block a user