pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Richard Huxton <dev@archonet.com>
To: Emil Rachovsky <zsevgymko@yahoo.com>
Cc: pgsql-general@postgresql.org <pgsql-general@postgresql.org>
Cc: pgsql-sql@postgresql.org <pgsql-sql@postgresql.org>
Subject: Re: problem with overloading the "coalesce" function
Date: Mon, 06 Mar 2006 11:29:56 +0000
Message-ID: <440C1D34.6060308@archonet.com> (raw)
In-Reply-To: <20060306111333.83983.qmail@web54306.mail.yahoo.com>
References: <20060306111333.83983.qmail@web54306.mail.yahoo.com>

Emil Rachovsky wrote:
> 
> --- Richard Huxton <dev@archonet.com> wrote:
> 
>> Emil Rachovsky wrote:
>>>  Hi,
>>> I am trying to overload the "coalesce" function to
>>> accept an integer and a string. Here it is :
>>>
>>> CREATE OR REPLACE FUNCTION "coalesce"(a int4, b
>>> "varchar")
>>>   RETURNS "varchar" AS
>> ...
>>> I have added it to pg_catalog, but still I cant't
>> use
>>> it, I get an error on the second parameter
>> What is the error?
> 
> The error is :  invalid input syntax for integer
> That is,it expects an integer as a second parameter,
> since the first is an integer.

Hmm - looking at the source (and \df in psql) it seems the basic problem 
is that COALESCE() isn't a function. It has its own code in the parser 
and its own expression-node. So - your function never gets called 
because the parser sees coalesce() and doesn't build a function - it 
builds a coalesce-expression.

It should work fine if you rename your function of course.

HTH
-- 
   Richard Huxton
   Archonet Ltd



view thread (5+ messages)  latest in thread

Message-ID: <440C1D34.6060308@archonet.com>
Permalink:  ../440C1D34.6060308@archonet.com/
Also on:    postgresql.org/message-id/440C1D34.6060308@archonet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: dev@archonet.com, zsevgymko@yahoo.com, pgsql-general@postgresql.org
  Subject: Re: problem with overloading the "coalesce" function
  In-Reply-To: <440C1D34.6060308@archonet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox