Smallint - Integer Casting Problems in Plpgsql functions

Started by Denis Gasparinabout 22 years ago7 messagesgeneral
Jump to latest
#1Denis Gasparin
denis@edistar.com

Hi, i'm upgrading our database from postgresql 7.2.3 to 7.4.2.
The import went fine but i have some casting problems with plpgsql
functions.

I've create a test function with this code:

create function test(varchar,smallint,integer) returns integer as '
declare
a alias for $1;
b alias for $2;
c alias for $3;
begin
raise notice ''test'';
return 1;
end;
' language 'plpgsql';

The command:
select test('aaa',1,1);
gives me the following error:
ERROR: function test("unknown", integer, integer) does not exist
HINT: No function matches the given name and argument types. You may
need to add explicit type casts.

Obviously, with the command:
select test('aaa',1::smallint,1);

the result is 1.

Thank you in advance for your help,

--
Doct. Eng. Denis Gasparin: denis@edistar.com
---------------------------
Programmer & System Administrator - Edistar srl

#2Richard Huxton
dev@archonet.com
In reply to: Denis Gasparin (#1)
Re: Smallint - Integer Casting Problems in Plpgsql functions

On Wednesday 17 March 2004 15:54, Denis Gasparin wrote:

Hi, i'm upgrading our database from postgresql 7.2.3 to 7.4.2.
The import went fine but i have some casting problems with plpgsql
functions.

I've create a test function with this code:

create function test(varchar,smallint,integer) returns integer as '

select test('aaa',1,1);
gives me the following error:
ERROR: function test("unknown", integer, integer) does not exist

Easiest solution is to just define the function as accepting integer rather
than smallint.
I believe the typeing will be smarter in 7.5 but don't know if it will affect
this situation.

--
Richard Huxton
Archonet Ltd

#3Denis Gasparin
denis@edistar.com
In reply to: Richard Huxton (#2)
Re: Smallint - Integer Casting Problems in Plpgsql functions

Hi Richard.
Thank you for your reply. I rewrote the store procedure to accept
integer instead of smallint.

What i don't understand is why the casting is working in 7.2.3. What
has been changed from that?

Thank you,

--
Doct. Eng. Denis Gasparin: denis@edistar.com
---------------------------
Programmer & System Administrator - Edistar srl

Richard Huxton wrote:

Show quoted text

On Wednesday 17 March 2004 15:54, Denis Gasparin wrote:

Hi, i'm upgrading our database from postgresql 7.2.3 to 7.4.2.
The import went fine but i have some casting problems with plpgsql
functions.

I've create a test function with this code:

create function test(varchar,smallint,integer) returns integer as '

select test('aaa',1,1);
gives me the following error:
ERROR: function test("unknown", integer, integer) does not exist

Easiest solution is to just define the function as accepting integer rather
than smallint.
I believe the typeing will be smarter in 7.5 but don't know if it will affect
this situation.

#4Richard Huxton
dev@archonet.com
In reply to: Denis Gasparin (#3)
Re: Smallint - Integer Casting Problems in Plpgsql functions

On Thursday 18 March 2004 07:52, Denis Gasparin wrote:

Hi Richard.
Thank you for your reply. I rewrote the store procedure to accept
integer instead of smallint.

What i don't understand is why the casting is working in 7.2.3. What
has been changed from that?

The type system was tightened up. It's been made smarter for 7.5, but I'm not
sure it deals with this.

--
Richard Huxton
Archonet Ltd

#5Denis Gasparin
denis@edistar.com
In reply to: Richard Huxton (#4)
Re: Smallint - Integer Casting Problems in Plpgsql functions

The type system was tightened up. It's been made smarter for 7.5, but I'm not
sure it deals with this.

I suspected it was so. I hope that in 7.5 the problem will be solved
because i think it is more a bug than a feature and many people will be
asking for it...

I hope Tom Lane and the others Postgresql developers will be reading this.

Thank you,

--
Doct. Eng. Denis Gasparin: denis@edistar.com
---------------------------
Programmer & System Administrator - Edistar srl

#6Jeff Eckermann
jeff_eckermann@yahoo.com
In reply to: Denis Gasparin (#5)
Re: Smallint - Integer Casting Problems in Plpgsql functions
--- Denis Gasparin <denis@edistar.com> wrote:

The type system was tightened up. It's been made

smarter for 7.5, but I'm not

sure it deals with this.

I suspected it was so. I hope that in 7.5 the
problem will be solved
because i think it is more a bug than a feature and
many people will be
asking for it...

I hope Tom Lane and the others Postgresql developers
will be reading this.

If you search the mailing list archives you will find
plenty of discussions on this issue, some quite
recent. If you still have issues or questions to
raise after reading those discussions, then you will
certainly not be wasting the developers' time by
posting them.

Thank you,

--
Doct. Eng. Denis Gasparin: denis@edistar.com
---------------------------
Programmer & System Administrator - Edistar srl

---------------------------(end of
broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please
send an appropriate
subscribe-nomail command to
majordomo@postgresql.org so that your
message can get through to the mailing list

cleanly

__________________________________
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com

#7Robert Treat
xzilla@users.sourceforge.net
In reply to: Jeff Eckermann (#6)
Re: Smallint - Integer Casting Problems in Plpgsql

On Thu, 2004-03-18 at 10:54, Jeff Eckermann wrote:

--- Denis Gasparin <denis@edistar.com> wrote:

The type system was tightened up. It's been made

smarter for 7.5, but I'm not

sure it deals with this.

I suspected it was so. I hope that in 7.5 the
problem will be solved
because i think it is more a bug than a feature and
many people will be
asking for it...

I hope Tom Lane and the others Postgresql developers
will be reading this.

If you search the mailing list archives you will find
plenty of discussions on this issue, some quite
recent. If you still have issues or questions to
raise after reading those discussions, then you will
certainly not be wasting the developers' time by
posting them.

I'll add that on the 7.5 install I tested this on (which admittedly is a
bit old), it was still "busted", so if you want to see this changed
you'll need to be a squeaky wheel.

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL