From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de> |
Cc: | hlinnaka(at)iki(dot)fi, Andrew Dunstan <andrew(at)dunslane(dot)net>, Robert Haas <robertmhaas(at)gmail(dot)com>, Ryan Pedela <rpedela(at)datalanche(dot)com>, Merlin Moncure <mmoncure(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] Generalized JSON output functions |
Date: | 2015-07-10 15:16:57 |
Message-ID: | CAFj8pRBoQUWZkRL12gFehseywzFrBEgn1GGq6mAkW5s=XYrb6Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2015-07-10 16:16 GMT+02:00 Shulgin, Oleksandr <oleksandr(dot)shulgin(at)zalando(dot)de>
:
> On Fri, Jul 10, 2015 at 4:04 PM, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
> wrote:
>
>>
>>>
>>>> 2. why you did indirect call via JsonOutContext?
>>>>>
>>>>> What is benefit
>>>>>
>>>>> dst.value(&dst, (Datum) 0, JSONTYPE_NULL, InvalidOid, InvalidOid,
>>>>> false);
>>>>>
>>>>> instead
>>>>>
>>>>> json_out_value(&dst, ....)
>>>>>
>>>>
>>> For consistency. Even though we initialize the output context
>>> ourselves, there might be some code introduced between
>>> json_out_init_context() and dst.value() calls that replaces some of the
>>> callbacks, and then there would be a difference.
>>>
>>
>> with this consistency? I didn't see this style everywhere in Postgres?
>> Isn't it premature optimization?
>>
>
> Well, one could call it premature pessimization due to dynamic call
> overhead.
>
> IMO, the fact that json_out_init_context() sets the value callback to
> json_out_value is an implementation detail, the other parts of code should
> not rely on. And for the Explain output, there definitely going to be
> *some* code between context initialization and output callbacks: these are
> done in a number of different functions.
>
Again - it is necessary? Postgres still use modular code, not OOP code. I
can understand the using of this technique, when I need a possibility to
change behave. But these function are used for printing JSON, not printing
any others.
Pavel
>
> --
> Alex
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2015-07-10 16:33:23 | Re: RFC: replace pg_stat_activity.waiting with something more descriptive |
Previous Message | Tom Lane | 2015-07-10 14:28:44 | Re: creating extension including dependencies |