Oversize proc sources (was Re: [BUGS] Backend dies creating plpgsql procedures (with reproducible example!))
От | Tom Lane |
---|---|
Тема | Oversize proc sources (was Re: [BUGS] Backend dies creating plpgsql procedures (with reproducible example!)) |
Дата | |
Msg-id | 9585.932136559@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Backend dies creating plpgsql procedures (with reproducible example!) (Wayne Piekarski <wayne@senet.com.au>) |
Ответы |
Re: Oversize proc sources (was Re: [BUGS] Backend dies creating plpgsql
procedures (with reproducible example!))
Re: Oversize proc sources (was Re: [BUGS] Backend dies creating plpgsql procedures (with reproducible example!)) |
Список | pgsql-bugs |
Wayne Piekarski <wayne@senet.com.au> writes: > the other day I did a pg_dump of our 6.4.2 database and tried to load it > back into 6.5 - it failed with the error message: > FATAL 1: btree: failed to add item to the page IIRC this just means the tuple is too long ... btrees want to be able to fit at least two tuples per disk page, so indexed fields can't exceed 4k bytes in a stock installation. Sometimes you'll get away with more, but not if two such keys end up on the same btree page. It's not real clear to me *why* we are keeping an index on the prosrc field of pg_proc, but we evidently are, so plpgsql source code can't safely exceed 4k per proc as things stand. In short, it was only by chance that you were able to put this set of procs into 6.4 in the first place :-( Can any hackers comment on whether pg_proc_prosrc_index is really necessary?? Just dropping it would allow plpgsql sources to approach 8k, and I can't think of any scenario where it's needed... BTW, Jan has been muttering about compressing plpgsql source, which would provide some more breathing room for big procs, but not before 6.6. regards, tom lane
В списке pgsql-bugs по дате отправления: