aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/comment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/comment.c')
-rw-r--r--src/backend/commands/comment.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index 9ebf207199c..dc8247691ab 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -19,6 +19,7 @@
#include "catalog/pg_aggregate.h"
#include "catalog/pg_database.h"
#include "catalog/pg_description.h"
+#include "catalog/pg_operator.h"
#include "catalog/pg_proc.h"
#include "catalog/pg_rewrite.h"
#include "catalog/pg_shadow.h"
@@ -658,6 +659,7 @@ void CommentProc(char *function, List *arguments, char *comment)
void CommentOperator(char *opername, List *arguments, char *comment) {
+ Form_pg_operator data;
HeapTuple optuple;
Oid oid, leftoid = InvalidOid, rightoid = InvalidOid;
bool defined;
@@ -719,6 +721,14 @@ void CommentOperator(char *opername, List *arguments, char *comment) {
}
#endif
+ /*** Get the procedure associated with the operator ***/
+
+ data = (Form_pg_operator) GETSTRUCT(optuple);
+ oid = regproctooid(data->oprcode);
+ if (oid == InvalidOid) {
+ elog(ERROR, "operator '%s' does not have an underlying function", opername);
+ }
+
/*** Call CreateComments() to create/drop the comments ***/
CreateComments(oid, comment);