Well, the upgrade to 8.3 seemed to rid me of the command limit, but now I'm
running out of memory. I have 2Gb physical and 8Gb swap (after adding 4Gb).
Is there a way for me to run this outside of one huge transaction? This
really shouldn't be using more than a few hundred megs of RAM (assuming
cursor records are all stored in memory)...
Thanks for the help,
Carl
On Saturday, March 07, 2009, Tom Lane wrote:
> Carl Sopchak <carl.sopchak@cegis123.com> writes:
> > I have written a PL/pgSQL function that performs these calculations by
> > reading the needed data, calculating, and saving the results. When run
> > over a smaller set of data, it works fine. But when I tried to run it
> > over this larger set of data, I got the error message "ERROR: cannot
> > have more than 2^32-1 commands in a transaction".
> >
> > I have looked into trying to control the transaction within my function,
> > but apparently this results in nested transactions, which is not
> > supported by pgsql 8.2 (my current version).
>
> Try updating to 8.3 --- it only counts plpgsql statements as separate
> "commands" if they actually modified something on-disk. The 2^32 limit
> is still there but it's a lot harder to hit.
>
> regards, tom lane