/*-------------------------------------------------------------------------
*
- * pg_rewrite.h--
- * definition of the system "rewrite-rule" relation (pg_rewrite)
- * along with the relation's initial contents.
+ * pg_rewrite.h
+ * definition of the "rewrite rule" system catalog (pg_rewrite)
*
+ * As of Postgres 7.3, the primary key for this table is <ev_class, rulename>
+ * --- ie, rule names are only unique among the rules of a given table.
*
- * Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_rewrite.h,v 1.3 1997/09/07 04:57:08 momjian Exp $
+ * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/catalog/pg_rewrite.h
*
* NOTES
- * the genbki.sh script reads this file and generates .bki
- * information from the DATA() statements.
+ * The Catalog.pm module reads this file and derives schema
+ * information.
*
*-------------------------------------------------------------------------
*/
#ifndef PG_REWRITE_H
#define PG_REWRITE_H
-/* ----------------
- * postgres.h contains the system type definintions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
- * can be read by both genbki.sh and the C compiler.
- * ----------------
- */
+#include "catalog/genbki.h"
+#include "catalog/pg_rewrite_d.h"
/* ----------------
- * pg_rewrite definition. cpp turns this into
+ * pg_rewrite definition. cpp turns this into
* typedef struct FormData_pg_rewrite
* ----------------
*/
-CATALOG(pg_rewrite)
+CATALOG(pg_rewrite,2618,RewriteRelationId)
{
- NameData rulename;
- char ev_type;
- Oid ev_class;
- int2 ev_attr;
- bool is_instead;
- text ev_qual; /* VARLENA */
- text action; /* VARLENA */
+ NameData rulename;
+ Oid ev_class;
+ char ev_type;
+ char ev_enabled;
+ bool is_instead;
+
+#ifdef CATALOG_VARLEN /* variable-length fields start here */
+ pg_node_tree ev_qual BKI_FORCE_NOT_NULL;
+ pg_node_tree ev_action BKI_FORCE_NOT_NULL;
+#endif
} FormData_pg_rewrite;
/* ----------------
*/
typedef FormData_pg_rewrite *Form_pg_rewrite;
-/* ----------------
- * compiler constants for pg_rewrite
- * ----------------
- */
-#define Natts_pg_rewrite 7
-#define Anum_pg_rewrite_rulename 1
-#define Anum_pg_rewrite_ev_type 2
-#define Anum_pg_rewrite_ev_class 3
-#define Anum_pg_rewrite_ev_attr 4
-#define Anum_pg_rewrite_is_instead 5
-#define Anum_pg_rewrite_ev_qual 6
-#define Anum_pg_rewrite_action 7
-
#endif /* PG_REWRITE_H */