On Wed, Sep 23, 2015 at 5:39 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> But if we're sure we don't want to support that, changing the behavior >> of the read routines would be fine with me, too. It would even save a >> few cycles. Would you also want to rip out the stuff that fixes up >> opfuncid as dead code? I assume yes, but sometimes I assume things >> that are false. > > Yeah, though I think of that as a longer-term issue, ie we could clean it > up sometime later.
So, you're thinking of something as simple as the attached? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index ef88209..08519ed 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -665,17 +665,6 @@ _readOpExpr(void) READ_OID_FIELD(opno); READ_OID_FIELD(opfuncid); - - /* - * The opfuncid is stored in the textual format primarily for debugging - * and documentation reasons. We want to always read it as zero to force - * it to be re-looked-up in the pg_operator entry. This ensures that - * stored rules don't have hidden dependencies on operators' functions. - * (We don't currently support an ALTER OPERATOR command, but might - * someday.) - */ - local_node->opfuncid = InvalidOid; - READ_OID_FIELD(opresulttype); READ_BOOL_FIELD(opretset); READ_OID_FIELD(opcollid); @@ -696,17 +685,6 @@ _readDistinctExpr(void) READ_OID_FIELD(opno); READ_OID_FIELD(opfuncid); - - /* - * The opfuncid is stored in the textual format primarily for debugging - * and documentation reasons. We want to always read it as zero to force - * it to be re-looked-up in the pg_operator entry. This ensures that - * stored rules don't have hidden dependencies on operators' functions. - * (We don't currently support an ALTER OPERATOR command, but might - * someday.) - */ - local_node->opfuncid = InvalidOid; - READ_OID_FIELD(opresulttype); READ_BOOL_FIELD(opretset); READ_OID_FIELD(opcollid); @@ -727,17 +705,6 @@ _readNullIfExpr(void) READ_OID_FIELD(opno); READ_OID_FIELD(opfuncid); - - /* - * The opfuncid is stored in the textual format primarily for debugging - * and documentation reasons. We want to always read it as zero to force - * it to be re-looked-up in the pg_operator entry. This ensures that - * stored rules don't have hidden dependencies on operators' functions. - * (We don't currently support an ALTER OPERATOR command, but might - * someday.) - */ - local_node->opfuncid = InvalidOid; - READ_OID_FIELD(opresulttype); READ_BOOL_FIELD(opretset); READ_OID_FIELD(opcollid); @@ -758,17 +725,6 @@ _readScalarArrayOpExpr(void) READ_OID_FIELD(opno); READ_OID_FIELD(opfuncid); - - /* - * The opfuncid is stored in the textual format primarily for debugging - * and documentation reasons. We want to always read it as zero to force - * it to be re-looked-up in the pg_operator entry. This ensures that - * stored rules don't have hidden dependencies on operators' functions. - * (We don't currently support an ALTER OPERATOR command, but might - * someday.) - */ - local_node->opfuncid = InvalidOid; - READ_BOOL_FIELD(useOr); READ_OID_FIELD(inputcollid); READ_NODE_FIELD(args);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers