diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2015-12-31 17:37:31 -0500 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2015-12-31 17:37:31 -0500 |
| commit | 0dab5ef39b3d9d86e45bbbb2f6ea60b4f5517d9a (patch) | |
| tree | d9b7a923d9d00270142b0209f621e433b61e4133 /src/include | |
| parent | e5d06f2b12a7c75f2b0c7fd2055a14efaa2b59ec (diff) | |
| download | postgresql-0dab5ef39b3d9d86e45bbbb2f6ea60b4f5517d9a.tar.gz | |
Fix ALTER OPERATOR to update dependencies properly.
Fix an oversight in commit 321eed5f0f7563a0: replacing an operator's
selectivity functions needs to result in a corresponding update in
pg_depend. We have a function that can handle that, but it was not
called by AlterOperator().
To fix this without enlarging pg_operator.h's #include list beyond
what clients can safely include, split off the function definitions
into a new file pg_operator_fn.h, similarly to what we've done for
some other catalog header files. It's not entirely clear whether
any client-side code needs to include pg_operator.h, but it seems
prudent to assume that there is some such code somewhere.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/catalog/pg_operator.h | 17 | ||||
| -rw-r--r-- | src/include/catalog/pg_operator_fn.h | 34 |
2 files changed, 34 insertions, 17 deletions
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index e79ce57f6e..facef0f335 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -23,8 +23,6 @@ #define PG_OPERATOR_H #include "catalog/genbki.h" -#include "catalog/objectaddress.h" -#include "nodes/pg_list.h" /* ---------------- * pg_operator definition. cpp turns this into @@ -1826,19 +1824,4 @@ DESCR("delete array element"); DATA(insert OID = 3287 ( "#-" PGNSP PGUID b f f 3802 1009 3802 0 0 jsonb_delete_path - - )); DESCR("delete path"); -/* - * function prototypes - */ -extern ObjectAddress OperatorCreate(const char *operatorName, - Oid operatorNamespace, - Oid leftTypeId, - Oid rightTypeId, - Oid procedureId, - List *commutatorName, - List *negatorName, - Oid restrictionId, - Oid joinId, - bool canMerge, - bool canHash); - #endif /* PG_OPERATOR_H */ diff --git a/src/include/catalog/pg_operator_fn.h b/src/include/catalog/pg_operator_fn.h new file mode 100644 index 0000000000..bf236d6d74 --- /dev/null +++ b/src/include/catalog/pg_operator_fn.h @@ -0,0 +1,34 @@ +/*------------------------------------------------------------------------- + * + * pg_operator_fn.h +* prototypes for functions in catalog/pg_operator.c + * + * + * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/catalog/pg_operator_fn.h + * + *------------------------------------------------------------------------- + */ +#ifndef PG_OPERATOR_FN_H +#define PG_OPERATOR_FN_H + +#include "catalog/objectaddress.h" +#include "nodes/pg_list.h" + +extern ObjectAddress OperatorCreate(const char *operatorName, + Oid operatorNamespace, + Oid leftTypeId, + Oid rightTypeId, + Oid procedureId, + List *commutatorName, + List *negatorName, + Oid restrictionId, + Oid joinId, + bool canMerge, + bool canHash); + +extern ObjectAddress makeOperatorDependencies(HeapTuple tuple, bool isUpdate); + +#endif /* PG_OPERATOR_FN_H */ |
