Well, I was checking inside my function the type of the second argument and
switching between the allowed types.
This way kind of does the same thing of many functions, doesn't it?


On Wed, Apr 3, 2013 at 3:39 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Rodrigo Barboza <rodrigombu...@gmail.com> writes:
> > Why not useful?
> > If I don't make it receive anyelement, I will have to create an add
> > function for each type.
>
> If you make it anyelement, then you're contracting to be able to add
> any datatype whatsoever to a my_uint.  This is nonsensical.
>
> You'd be better off declaring several specific addition functions,
> one for each other type.  This will be an order of magnitude easier
> to write, and probably run an order of magnitude faster too, because
> just checking to see what type you got would already be significantly
> more expensive than adding a couple of integers ought to be.
>
> Look at the built-in types and functions for precedent.  There are
> indeed separate functions for int2 + int2, int2 + int4, int4 + int2,
> int4 + int4, etc etc.  If we were starting from scratch, we might reduce
> that to just int4 + int4 and rely on the implicit coercion from int2 to
> int4 to handle the other cases; but there's no way we'd put in run-time
> type determination.
>
>                         regards, tom lane
>

Reply via email to