Re: BUG #1723: array_cat() bug when passed empty array
От | Tom Lane |
---|---|
Тема | Re: BUG #1723: array_cat() bug when passed empty array |
Дата | |
Msg-id | 20233.1119296664@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #1723: array_cat() bug when passed empty array (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: BUG #1723: array_cat() bug when passed empty array
|
Список | pgsql-bugs |
I wrote: > Actually, I would say the bug is exec_assign_value's. There is nothing > at all wrong with a function returning one of its input values; for > example the smaller/larger functions all do that. For that matter, you don't need a function at all: regression=# create or replace function copyit(text) returns text as $$ regression$# declare tmp text; regression$# begin regression$# tmp := $1; regression$# tmp := tmp; regression$# return tmp; regression$# end$$ language plpgsql stable; CREATE FUNCTION regression=# select copyit('foo'); ERROR: out of memory DETAIL: Failed on request of size 1065320319. CONTEXT: PL/pgSQL function "copyit" line 4 at assignment regression=# This makes it perfectly clear that the problem is that exec_assign_value must copy the given value before it frees the old, just in case they're the same. (Hmm, I wonder if we can shortcircuit the whole thing ...) regards, tom lane
В списке pgsql-bugs по дате отправления: