mirror of https://github.com/citusdata/citus.git
Introduces macros for functions that now have include_out_arguments argument
New macros: FuncnameGetCandidates_compat and expand_function_arguments_compat The functions (the ones without _compat) now have a new bool include_out_arguments parameter These new macros give us the ability to use this new parameter for PG14 and it doesn't give the parameter for previous versions Existing include_out_arguments parameters are set to 'false' to keep current behavior Relevant PG commit: e56bce5d43789cce95d099554ae9593ada92b3b7pull/5209/head
parent
347ae2928f
commit
ebf1b7e23f
|
@ -1808,8 +1808,8 @@ GenerateBackupNameForProcCollision(const ObjectAddress *address)
|
||||||
List *newProcName = list_make2(namespace, makeString(newName));
|
List *newProcName = list_make2(namespace, makeString(newName));
|
||||||
|
|
||||||
/* don't need to rename if the input arguments don't match */
|
/* don't need to rename if the input arguments don't match */
|
||||||
FuncCandidateList clist = FuncnameGetCandidates(newProcName, numargs, NIL, false,
|
FuncCandidateList clist = FuncnameGetCandidates_compat(newProcName, numargs, NIL,
|
||||||
false, true);
|
false, false, false, true);
|
||||||
for (; clist; clist = clist->next)
|
for (; clist; clist = clist->next)
|
||||||
{
|
{
|
||||||
if (memcmp(clist->args, argtypes, sizeof(Oid) * numargs) == 0)
|
if (memcmp(clist->args, argtypes, sizeof(Oid) * numargs) == 0)
|
||||||
|
|
|
@ -3585,8 +3585,8 @@ static Oid
|
||||||
CitusFunctionOidWithSignature(char *functionName, int numargs, Oid *argtypes)
|
CitusFunctionOidWithSignature(char *functionName, int numargs, Oid *argtypes)
|
||||||
{
|
{
|
||||||
List *aggregateName = list_make2(makeString("pg_catalog"), makeString(functionName));
|
List *aggregateName = list_make2(makeString("pg_catalog"), makeString(functionName));
|
||||||
FuncCandidateList clist = FuncnameGetCandidates(aggregateName, numargs, NIL, false,
|
FuncCandidateList clist = FuncnameGetCandidates_compat(aggregateName, numargs, NIL,
|
||||||
false, true);
|
false, false, false, true);
|
||||||
|
|
||||||
for (; clist; clist = clist->next)
|
for (; clist; clist = clist->next)
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "distributed/insert_select_planner.h"
|
#include "distributed/insert_select_planner.h"
|
||||||
#include "distributed/metadata_cache.h"
|
#include "distributed/metadata_cache.h"
|
||||||
#include "distributed/multi_router_planner.h"
|
#include "distributed/multi_router_planner.h"
|
||||||
|
#include "distributed/version_compat.h"
|
||||||
|
|
||||||
#include "catalog/pg_proc.h"
|
#include "catalog/pg_proc.h"
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
|
@ -526,8 +527,9 @@ FixFunctionArgumentsWalker(Node *expr, void *context)
|
||||||
elog(ERROR, "cache lookup failed for function %u", funcExpr->funcid);
|
elog(ERROR, "cache lookup failed for function %u", funcExpr->funcid);
|
||||||
}
|
}
|
||||||
|
|
||||||
funcExpr->args = expand_function_arguments(funcExpr->args,
|
funcExpr->args = expand_function_arguments_compat(funcExpr->args, false,
|
||||||
funcExpr->funcresulttype, func_tuple);
|
funcExpr->funcresulttype,
|
||||||
|
func_tuple);
|
||||||
|
|
||||||
ReleaseSysCache(func_tuple);
|
ReleaseSysCache(func_tuple);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,10 +45,14 @@ FunctionOidExtended(const char *schemaName, const char *functionName, int argume
|
||||||
const bool findVariadics = false;
|
const bool findVariadics = false;
|
||||||
const bool findDefaults = false;
|
const bool findDefaults = false;
|
||||||
|
|
||||||
FuncCandidateList functionList = FuncnameGetCandidates(qualifiedFunctionNameList,
|
FuncCandidateList functionList = FuncnameGetCandidates_compat(
|
||||||
argumentCount,
|
qualifiedFunctionNameList,
|
||||||
argumentList, findVariadics,
|
argumentCount,
|
||||||
findDefaults, true);
|
argumentList,
|
||||||
|
findVariadics,
|
||||||
|
findDefaults,
|
||||||
|
false,
|
||||||
|
true);
|
||||||
|
|
||||||
if (functionList == NULL)
|
if (functionList == NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,9 @@
|
||||||
|
|
||||||
/* for MemoryContextMethods->stats */
|
/* for MemoryContextMethods->stats */
|
||||||
#define stats_compat(a, b, c, d, e) stats(a, b, c, d, e)
|
#define stats_compat(a, b, c, d, e) stats(a, b, c, d, e)
|
||||||
|
#define FuncnameGetCandidates_compat(a, b, c, d, e, f, g) \
|
||||||
|
FuncnameGetCandidates(a, b, c, d, e, f, g)
|
||||||
|
#define expand_function_arguments_compat(a, b, c, d) expand_function_arguments(a, b, c, d)
|
||||||
#else
|
#else
|
||||||
#define AlterTableStmtObjType(a) ((a)->relkind)
|
#define AlterTableStmtObjType(a) ((a)->relkind)
|
||||||
#define F_NEXTVAL_COMPAT F_NEXTVAL_OID
|
#define F_NEXTVAL_COMPAT F_NEXTVAL_OID
|
||||||
|
@ -50,6 +53,9 @@
|
||||||
|
|
||||||
/* for MemoryContextMethods->stats */
|
/* for MemoryContextMethods->stats */
|
||||||
#define stats_compat(a, b, c, d, e) stats(a, b, c, d)
|
#define stats_compat(a, b, c, d, e) stats(a, b, c, d)
|
||||||
|
#define FuncnameGetCandidates_compat(a, b, c, d, e, f, g) \
|
||||||
|
FuncnameGetCandidates(a, b, c, d, e, g)
|
||||||
|
#define expand_function_arguments_compat(a, b, c, d) expand_function_arguments(a, c, d)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PG_VERSION_NUM >= PG_VERSION_13
|
#if PG_VERSION_NUM >= PG_VERSION_13
|
||||||
|
|
Loading…
Reference in New Issue