Return-Path: mao
Received: by postgres.Berkeley.EDU (5.61/1.29)
	id AA21242; Tue, 14 Jul 92 13:35:11 -0700
Message-Id: <9207142035.AA21242@postgres.Berkeley.EDU>
From: <mao@postgres.berkeley.edu>
Subject: Re: Tuple is too big
To: postgres@postgres.berkeley.edu
Sender: pg_adm@postgres.berkeley.edu
In-Reply-To: Your message of Mon, 13 Jul 92 11:34:38 PST.
             <01GMC0RHF78Y9FMABQ@umiami.IR.Miami.EDU> 
Date: Tue, 14 Jul 92 13:46:15 PDT

In message <01GMC0RHF78Y9FMABQ@umiami.IR.Miami.EDU> you write:

> Any help in determining why the following series of commands results
> in an error message would be greatly appreciated.
> 
> Query sent to backend is "define rule pledge6 is on append to root where new.
  +reqliq > ("8.0"::float4 * new.housemonth) do [     append trace (node = "ple
  +dge6"::char16, client = new.client)    append final       (new.all, grantloa
  +n = "t"::bool,        amta
> WARN:Jul 13 14:31:11:Tuple is too big: size 9748

in postgres release 3 (and in release 4), the rule system stores query
plans in ordinary tuples.  this means that when you define a rule, the
rule system generates a query plan from it and then stores the plan,
as a varlena, as an attribute of a tuple in a distinguished relation.

postgres doesn't permit tuples to span multiple pages, so this puts
an effective limit of 8kBytes minus epsilon on the length of a rule
plan string.  your rule generated a plan string longer than that.

we intend to store rule plans as large objects in a future postgres
release.  for the time being, you should break up your rule into a
set of smaller rules, if you can.

					mike olson
					project sequoia 2000
					uc berkeley
					mao@cs.berkeley.edu
