From e5a8da02c2764e31423cb5303d05ceac6e186c32 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 2 Oct 1998 21:53:39 +0000
Subject: [PATCH]     Please apply the patch at the end. Disables use of system
     columns of views at all (not only oid, cmin etc. too).     pgsql=> select
 cmin from pg_rules;     ERROR:  system column cmin not available - pg_rules
 is a view     pgsql=> select * from pg_rules where pg_rules.oid =
 pg_class.oid;     ERROR:  system column oid not available - pg_rules is a
 view     pgsql=>

Jan
---
 src/backend/rewrite/rewriteHandler.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 0bbeeb0c51b..a59105047cd 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.22 1998/10/02 16:27:47 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.23 1998/10/02 21:53:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1777,6 +1777,8 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in
 						var->varno == rt_index) {
 					Node		*exp;
 
+					if (var->varattno < 0)
+						elog(ERROR, "system column %s not available - %s is a view", get_attname(rte->relid, var->varattno), rte->relname);
 					exp = FindMatchingTLEntry(
 							tlist,
 							get_attname(rte->relid,
-- 
GitLab