diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py index 2d2b6fb..970f51c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py @@ -479,6 +479,22 @@ class FunctionView(PGChildNodeView, DataTypeReader): 'i': 'IN', 'o': 'OUT', 'b': 'INOUT', 'v': 'VARIADIC', 't': 'TABLE' } + # We need to put default parameter at proper location in list + # Total number of default parameters + default_values_size = len(proargdefaultvals) + + # Total number of parameters + total_parameters_size = len(proargtypes) + + # Parameters which do not have default parameters + par_without_default = total_parameters_size - default_values_size + + # only if we have at least one parameter with default value + if default_values_size > 0 and par_without_default > 0: + for idx in range(par_without_default): + # Set null value for parameter non-default parameter + proargdefaultvals.insert(idx, '') + # The proargtypes doesn't give OUT params, so we need to fetch # those from database explicitly, below code is written for this # purpose.