Re: dblink: add polymorphic functions.
От
Michael Paquier
Тема
Re: dblink: add polymorphic functions.
Дата
Msg-id
CAB7nPqTBU2b3EoR6giGFTFTn6w16-cOQfxq5mbEn2--=Z1k8bw@mail.gmail.com
Ответ на
Re: dblink: add polymorphic functions. (Michael Paquier)
Список
Дерево обсуждения
dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Pavel Stehule <pavel.stehule@gmail.com>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Heikki Linnakangas <hlinnaka@iki.fi>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Alvaro Herrera <alvherre@2ndquadrant.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Alvaro Herrera <alvherre@2ndquadrant.com>
Re: dblink: add polymorphic functions. Tom Lane <tgl@sss.pgh.pa.us>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Alvaro Herrera <alvherre@2ndquadrant.com>
Re: dblink: add polymorphic functions. Robert Haas <robertmhaas@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Robert Haas <robertmhaas@gmail.com>
Re: dblink: add polymorphic functions. Joe Conway <mail@joeconway.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Corey Huinker <corey.huinker@gmail.com>
Re: dblink: add polymorphic functions. Michael Paquier <michael.paquier@gmail.com>
Re: dblink: add polymorphic functions. Merlin Moncure <mmoncure@gmail.com>
On Mon, Jul 6, 2015 at 4:23 PM, Michael Paquier
wrote:
> On Mon, Jul 6, 2015 at 10:00 AM, Joe Conway wrote:
>> I wonder if it isn't better to just loop through all the args with
>> get_fn_expr_argtype() every time and then test for the exact signature
>> match? Another alternative might be to create a wrapper C function for
>> each variant SQL function, but that seems like it could also get
>> messy, especially with dblink_record_internal() since we would have to
>> deal with every variant of all the external facing callers.
>> Thoughts?
>
> Yeah, particularly the use of first_optarg makes things harder to
> follow in the code with this patch. A C wrapper has the disadvantage
> to decentralize the argument checks to many places making the flow
> harder to follow hence using get_fn_expr_argtype() with PG_NARGS would
> be the way to go, at least to me. This way, you can easily find how
> many arguments there are, and which value is assigned to which
> variable before moving on to the real processing.
Just to be clear I mean that:
if (PG_NARGS() == 5)
{ if (get_fn_expr_argtype(fcinfo->flinfo, 1) == TYPEOID) var = PG_GETARG_BOOL(1) [...]
}
else if (PG_NARGS() == 4)
{ [...]
}
else [...]
--
Michael
В списке pgsql-hackers по дате отправления