mirror of
https://github.com/postgres/postgres.git
synced 2025-06-26 12:21:12 +03:00
Fix ALTER OPERATOR to update dependencies properly.
Fix an oversight in commit 321eed5f0f
: 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.
This commit is contained in:
@ -40,6 +40,7 @@
|
||||
#include "catalog/indexing.h"
|
||||
#include "catalog/objectaccess.h"
|
||||
#include "catalog/pg_operator.h"
|
||||
#include "catalog/pg_operator_fn.h"
|
||||
#include "catalog/pg_type.h"
|
||||
#include "commands/alter.h"
|
||||
#include "commands/defrem.h"
|
||||
@ -500,9 +501,9 @@ AlterOperator(AlterOperatorStmt *stmt)
|
||||
simple_heap_update(catalog, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(catalog, tup);
|
||||
|
||||
InvokeObjectPostAlterHook(OperatorRelationId, oprId, 0);
|
||||
address = makeOperatorDependencies(tup, true);
|
||||
|
||||
ObjectAddressSet(address, OperatorRelationId, oprId);
|
||||
InvokeObjectPostAlterHook(OperatorRelationId, oprId, 0);
|
||||
|
||||
heap_close(catalog, NoLock);
|
||||
|
||||
|
Reference in New Issue
Block a user