Re: Different results in a loop with RECORD vs ROWTYPE...

Поиск
Список
Период
Сортировка
От Sean Chittenden
Тема Re: Different results in a loop with RECORD vs ROWTYPE...
Дата
Msg-id 20030522105654.GI71079@perrin.int.nxad.com
обсуждение исходный текст
Ответ на Different results in a loop with RECORD vs ROWTYPE...  (Sean Chittenden <sean@chittenden.org>)
Ответы Re: Different results in a loop with RECORD vs ROWTYPE...  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
> I'm looping through a single column from a set of results.  If I
> store the result in a ROWTYPE of the table, I get NULL values back.
> If I store them in a RECORD type, I get the proper values and life
> is happy.  I'm not sure why there'd be any difference, but it
> screams bug to me and I haven't been able to reproduce it outside of
> my production schema.

Hrm, sorry for replying to myself, but moving the rest of uses of
ROWTYPE to RECORD has solved what I originally thought was a logic
problem with recursive pl/pgsql calls, but was a problem stemming from
using ROWTYPE instead of RECORD.  Using ROWTYPE, I wasn't getting
results back that I was expecting, using RECORD, I was getting the
expected rows back so that I could operate on them in a loop.  ROWTYPE
seems to be broken somehow, somewhere, though I'm not sure in what way
or where.  Apologies in advance for the lack of more details... I'm
not sure where to look to get more details in this instance.

My best guess is there's a bug in exec_assign_value in that it doesn't
handle assigning to PLPGSQL_DTYPE_ROW... but I'm not seeing anything
in the error logs and there aren't any errors being thrown.  So,
failing that, maybe something in exec_move_row or exec_stmt_fors in
pl_exec.c, but I can't see anything that really jumps out other than
that.

Other ideas?  -sc

--=20
Sean Chittenden

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Sean Chittenden
Дата:
Сообщение: Different results in a loop with RECORD vs ROWTYPE...
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Different results in a loop with RECORD vs ROWTYPE...