Обсуждение: Stored function | Grayed out option when I try modify the return type

Поиск
Список
Период
Сортировка

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

От
Abelardo León González
Дата:

Hello world,

 

Here a newbie in PgAdmin.

 

When I create a stored function and I try to modify it to change the return type (or anything else), I can’t modify it.

 

I am not sure if it is a bug….and I am not sure if this message should be in bugs mail list. Sorry if I am wrong.

 

Best regards,

 

Abelardo.

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

От
Andreas Kretschmer
Дата:

Am 12.07.2018 um 10:25 schrieb Abelardo León González:
>
> Hello world,
>
> Here a newbie in PgAdmin.
>
> When I create a stored function and I try to modify it to change the 
> return type (or anything else), I can’t modify it.
>
> I am not sure if it is a bug….and I am not sure if this message should 
> be in bugs mail list. Sorry if I am wrong.
>

it's not a bug. If you want to change the return-type or 
input-parameters you have to recreate (drop the current one and create a 
new) the function - or to create a new (additional) one.


Regards, Andreas

-- 
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com



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

От
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!

:/



Best regards.

-----Mensaje original-----
De: Andreas Kretschmer <andreas@a-kretschmer.de>
Enviado el: jueves, 12 de julio de 2018 10:53
Para: pgsql-general@lists.postgresql.org
Asunto: Re: Stored function | Grayed out option when I try modify the return
type



Am 12.07.2018 um 10:25 schrieb Abelardo León González:
>
> Hello world,
>
> Here a newbie in PgAdmin.
>
> When I create a stored function and I try to modify it to change the
> return type (or anything else), I can’t modify it.
>
> I am not sure if it is a bug….and I am not sure if this message should
> be in bugs mail list. Sorry if I am wrong.
>

it's not a bug. If you want to change the return-type or input-parameters
you have to recreate (drop the current one and create a
new) the function - or to create a new (additional) one.


Regards, Andreas

--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com





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

От
Andreas Kretschmer
Дата:

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



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

От
Abelardo León González
Дата:

-----Mensaje original-----
De: Andreas Kretschmer <andreas@a-kretschmer.de>
Enviado el: jueves, 12 de julio de 2018 11:07
Para: Abelardo León González <everis@abelardolg.com>; pgsql-general@lists.postgresql.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
willhave 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. 

If I have created funcA with return type smallint but I would like to modify to integer, pgAdmin shouldn't create
anotherone 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.



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

От
Andreas Kretschmer
Дата:

Am 12.07.2018 um 11:28 schrieb Abelardo León González:
> 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.

yeah, i understand.


> 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.

it's not a limitation of PGAdmin.

> If I have created funcA with return type smallint but I would like to modify to integer, pgAdmin shouldn't create
anotherone but let us directly modify the original funcA's return type.
 

You can pull out the whole function definition, for instance within psql 
with \ef <function_name>, safe this into a file, drop the function, edit 
the file and create the new function.
Seems a bit of strange, but that's the usual way.
>
> Sorry for my English (I am non English native).

the same for me ;-)


Regards, Andreas

-- 
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com



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

От
Adrian Klaver
Дата:
On 07/12/2018 02:28 AM, Abelardo León González wrote:
> 
> 
> -----Mensaje original-----
> De: Andreas Kretschmer <andreas@a-kretschmer.de>
> Enviado el: jueves, 12 de julio de 2018 11:07
> Para: Abelardo León González <everis@abelardolg.com>; pgsql-general@lists.postgresql.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
willhave 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
anotherone 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.klaver@aklaver.com