Re: Stored function | Grayed out option when I try modify the return type

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Abelardo León González <everis(at)abelardolg(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Stored function | Grayed out option when I try modify the return type
Date: 2018-07-12 12:29:23
Message-ID: 073c767a-a672-40e2-61da-81980f4fdc44@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 07/12/2018 02:28 AM, Abelardo León González wrote:
>
>
> -----Mensaje original-----
> De: Andreas Kretschmer <andreas(at)a-kretschmer(dot)de>
> Enviado el: jueves, 12 de julio de 2018 11:07
> Para: Abelardo León González <everis(at)abelardolg(dot)com>; pgsql-general(at)lists(dot)postgresql(dot)org
> Asunto: Re: Stored function | Grayed out option when I try modify the return type
>
>
>
> Am 12.07.2018 um 10:56 schrieb Abelardo León González:
>> Thanks Andreas for your response.
>>
>> This is an annoying procedure to modify it.
>> Why did pgAdmin staff decide to do it this way? It's a waste time!
> No. Two functions with the same name, but different returns types (for
> instance) are valid and 2 different functions.
> You can define a function and change the body of the function, that's not a problem, but with different returns you will have 2 different functions.
>
> Please don't top-posting here, thx.
>
>
> Regards, Andreas
>
> --
> 2ndQuadrant - The PostgreSQL Support Company.
> www.2ndQuadrant.com
>
> Sorry for top-posting here. :S I won't do it anymore.
>
> The idea is to modify the original function in order to meet the requirements.
> It's not to create two functions, it's to modify the original one.
> Internally, pgAdmin should invoke to the "alter function" command so that this modification doesn't create another function.

No such option:

https://www.postgresql.org/docs/10/static/sql-alterfunction.html

There is CREATE OR REPLACE FUNCTION:

https://www.postgresql.org/docs/10/static/sql-createfunction.html

But as pointed out you cannot change the return type that way:

"... Also, CREATE OR REPLACE FUNCTION will not let you change the
return type of an existing function. To do that, you must drop and
recreate the function. (When using OUT parameters, that means you cannot
change the types of any OUT parameters except by dropping the function.) "

Remember pgAdmin is just a GUI over Postgres commands. It often helps to
run a command in psql to verify whether it is valid or not.

>
> If I have created funcA with return type smallint but I would like to modify to integer, pgAdmin shouldn't create another one but let us directly modify the original funcA's return type.
>
> Sorry for my English (I am non English native). I don't know if I have explained my issue and my complaint correctly.
>
> Best regards.
>
>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2018-07-12 13:07:55 Re: ODBC - Getting CONN ERROR: errmsg='The buffer was too small for the InfoValue'
Previous Message Igor Korot 2018-07-12 12:19:27 Re: ODBC - Getting CONN ERROR: errmsg='The buffer was too small for the InfoValue'