Re: Postgres / plpgsql equivalent to python's getattr() ?

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Postgres / plpgsql equivalent to python's getattr() ?
Дата
Msg-id CAFj8pRDR51J=CH253LPwUEOdELHEB1fma3G6A9FYge1CXVWkQA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Postgres / plpgsql equivalent to python's getattr() ?  (Florian Pflug <fgp@phlo.org>)
Список pgsql-hackers
2011/8/4 Florian Pflug <fgp@phlo.org>:
> On Aug4, 2011, at 00:48 , Tom Lane wrote:
>> James Robinson <jlrobins@socialserve.com> writes:
>>> Python's getattr() allows for dynamic lookup of attributes on an
>>> object, as in:
>>
>>>      inst = MyClass(x=12, y=24)
>>>      v = getattr(inst, 'x')
>>>      assert v == 12
>>
>>> Oftentimes in writing data validating trigger functions, it'd be real
>>> handy to be able to do a similar thing in plpgsql
>>
>>> Is there something in the internals which inherently prevent this?
>>
>> plpgsql is strongly typed (much more so than python, anyway).
>
> You've brought forth that argument against dynamic attribute lookup
> in the past, but I remain unconvinced. The fact that plpgsql is strongly
> (or, more precisely, statically) types doesn't really get in the way as
> long as you require the dynamic attribute accessor's return type to be
> determined at compile time (make that "prepare time" in the case of
> plpgsql).
>
> The fact that I was able to implement dynamic accessor functions without
> any change to postgres or plpgsql proves that IMHO. The only bit that slightly
> kludgy about this in my opinion is the return-type determining "defvalue"
> argument of fieldvalue(). But again, this has little to do with static vs.
> dynamic typing but rather with the limitations of our support for polymorphic
> functions.
>
> @OP: Here's my implementation of the feature you desire as a set of C-language
> functions: https://github.com/fgp/pg_record_inspect. Other people did code up
> similar things in the past, but I currently cannot find any links to their work.
> But it little bit digging in the mailing list archives should turn them up.
>

it is pltoolbox http://www.pgsql.cz/index.php/PL_toolbox_%28en%29

regards

Pavel

> best regards,
> Florian Pflug
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>


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

Предыдущее
От: Yeb Havinga
Дата:
Сообщение: Re: Transient plans versus the SPI API
Следующее
От: Boszormenyi Zoltan
Дата:
Сообщение: TRUE/FALSE vs true/false