Skip site navigation (1) Skip section navigation (2)

BUG #1267: Suggest TEXTOID parameters be treated like UNKNOWNOID

From: "PostgreSQL Bugs List" <pgsql-bugs(at)postgresql(dot)org>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #1267: Suggest TEXTOID parameters be treated like UNKNOWNOID
Date: 2004-09-23 12:09:02
Message-ID: 20040923120902.DAFD25A103F@www.postgresql.com (view raw or flat)
Thread:
Lists: pgsql-bugs
The following bug has been logged online:

Bug reference:      1267
Logged by:          Colin Chapman

Email address:      c0linchapman(at)btinternet(dot)com

PostgreSQL version: 8.0 Beta

Operating system:   fedora linux

Description:        Suggest TEXTOID parameters be treated like UNKNOWNOID

Details: 

postgresql-8.0.0beta2

JSP likes to transfer data in parameters as text.  When putting values into 
a int column you get exception 

this can be demonstrated by.

create table d ( numb int );
insert into d  values ( '1' );
insert into d  values ( '2'::text );
drop table d;

--- ./parse_coerce.c    2004-08-29 06:06:44.000000000 +0100
+++ /usr/local/postgresql-8.0.0beta2/src/backend/parser/parse_coerce.c  
2004-09-23 13:05:34.383199696 +0100 
@@ -137,7 +137,7 @@
                /* NB: we do NOT want a RelabelType here */
                return node;
        }
-       if (inputTypeId == UNKNOWNOID && IsA(node, Const))
+       if ( ( ( ( inputTypeId == UNKNOWNOID) || (inputTypeId == TEXTOID ) ) 
&& IsA(node, Const))&& IsA(node, Const) ) 
        {
                /*
                 * Input is a string constant with previously undetermined 
type. 
@@ -197,7 +197,7 @@
 
                return result;
        }
-       if (inputTypeId == UNKNOWNOID && IsA(node, Param) &&
+       if ( ( ( inputTypeId == UNKNOWNOID ) || ( inputTypeId == TEXTOID ) ) 
&& IsA(node, Param) && 
                ((Param *) node)->paramkind == PARAM_NUM &&
                pstate != NULL && pstate->p_variableparams)
        {
@@ -220,7 +220,7 @@
                                        
(errcode(ERRCODE_UNDEFINED_PARAMETER), 
                                         errmsg("there is no parameter $%d", 
paramno))); 
 
-               if (toppstate->p_paramtypes[paramno - 1] == UNKNOWNOID)
+               if ( (toppstate->p_paramtypes[paramno - 1] == UNKNOWNOID) || 
(toppstate->p_paramtypes[paramno - 1] == TEXTOID ) ) 
                {
                        /* We've successfully resolved the type */
                        toppstate->p_paramtypes[paramno - 1] = targetTypeId;
@@ -373,7 +373,7 @@
                 * If input is an untyped string constant, assume we can 
convert 
                 * it to anything.
                 */
-               if (inputTypeId == UNKNOWNOID)
+                if ( ( inputTypeId == UNKNOWNOID) || (inputTypeId == 
TEXTOID ) )  
                        continue;
 
                /*



Responses

pgsql-bugs by date

Next:From: Stephan SzaboDate: 2004-09-23 14:15:45
Subject: Re: BUG #1266: Improper unique constraint / MVCC activities
Previous:From: PostgreSQL Bugs ListDate: 2004-09-23 08:58:04
Subject: BUG #1266: Improper unique constraint / MVCC activities within single transaction

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group