Re: PL/Perl Does not Like vstrings

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Re: PL/Perl Does not Like vstrings
Дата
Msg-id 6E866333-1A67-4639-B744-9C423DD8EAB0@justatheory.com
обсуждение исходный текст
Ответ на Re: PL/Perl Does not Like vstrings  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: PL/Perl Does not Like vstrings  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: PL/Perl Does not Like vstrings  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
On Jan 5, 2012, at 7:34 AM, Tom Lane wrote:

>> That still crashes, but doesn't if we use sv_mortalcopy unconditionally.
>
> Unconditional sv_mortalcopy sounds like the thing to do then, but a
> comment would help.  And if this isn't a Perl bug, I would like to
> know what is.

Question: Is this an issue anywhere else in PL/Perl, or just elog()? What about SPI parameters or return values?

david=# DO LANGUAGE PLPERL $$
david$#     my $plan = spi_prepare('SELECT $1', 'TEXT');
david$#     spi_query_prepared($plan, $^V);
david$#     spi_freeplan($plan);
david$#     return;
david$# $$;
ERROR:  cannot convert Perl hash to non-composite type text at line 3.
CONTEXT:  PL/Perl anonymous code block

No segfault, at least, though that’s a rather bizarre error message. AFAIK, $^V isn’t a hash. This works, though:

DO LANGUAGE PLPERL $$   my $plan = spi_prepare('SELECT $1', 'TEXT');   spi_query_prepared($plan, v1);
spi_freeplan($plan);  return; 
$$;
DO

Best,

David

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

Предыдущее
От: "David E. Wheeler"
Дата:
Сообщение: Re: PL/Perl Does not Like vstrings
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PL/Perl Does not Like vstrings