aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-07-04 05:16:05 +0000
committerBruce Momjian <bruce@momjian.us>1999-07-04 05:16:05 +0000
commitede5a418292174e2d7bd8b1fdc910525de0024aa (patch)
tree079c671bd2e9ac28728cf74864dc2d8b8f8d757d /src
parenteba41848aafd2d109c38009466e135d672a6a41f (diff)
downloadpostgresql-ede5a418292174e2d7bd8b1fdc910525de0024aa.tar.gz
postgresql-ede5a418292174e2d7bd8b1fdc910525de0024aa.zip
Clean up maximum rewrite tuple length.
Diffstat (limited to 'src')
-rw-r--r--src/backend/rewrite/rewriteDefine.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 4c7fed8b300..cd0dd59c7fb 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.29 1999/05/25 16:10:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.30 1999/07/04 05:16:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -16,7 +16,9 @@
#include "postgres.h"
+#include "access/htup.h"
#include "access/heapam.h" /* access methods like amopenr */
+#include "catalog/pg_rewrite.h"
#include "nodes/parsenodes.h"
#include "nodes/pg_list.h" /* for Lisp support */
#include "parser/parse_relation.h"
@@ -32,14 +34,6 @@
Oid LastOidProcessed = InvalidOid;
-/*
- * This is too small for many rule plans, but it'll have to do for now.
- * Rule plans, etc will eventually have to be large objects.
- *
- * should this be smaller?
- */
-#define RULE_PLAN_SIZE BLCKSZ
-
static void
strcpyq(char *dest, char *source)
{
@@ -84,9 +78,9 @@ InsertRule(char *rulname,
bool evinstead,
char *actiontree)
{
- static char rulebuf[RULE_PLAN_SIZE];
- static char actionbuf[RULE_PLAN_SIZE];
- static char qualbuf[RULE_PLAN_SIZE];
+ static char rulebuf[MaxAttrSize];
+ static char actionbuf[MaxAttrSize];
+ static char qualbuf[MaxAttrSize];
Oid eventrel_oid = InvalidOid;
AttrNumber evslot_index = InvalidAttrNumber;
Relation eventrel = NULL;
@@ -124,8 +118,8 @@ InsertRule(char *rulname,
(rulename, ev_type, ev_class, ev_attr, ev_action, ev_qual, is_instead) VALUES \
('%s', %d::char, %u::oid, %d::int2, '%s'::text, '%s'::text, \
'%s'::bool);";
- if (strlen(template) + strlen(rulname) + strlen(actionbuf) +
- strlen(qualbuf) + 20 /* fudge fac */ > RULE_PLAN_SIZE)
+ if (sizeof(FormData_pg_rewrite) + strlen(actionbuf) +
+ strlen(qualbuf) > MaxAttrSize)
elog(ERROR, "DefineQueryRewrite: rule plan string too big.");
sprintf(rulebuf, template,
rulname, evtype, eventrel_oid, evslot_index, actionbuf,