Back-patch critical fixes for NUMERIC values in plpgsql functions. REL6_5_PATCHES
authorTom Lane <[email protected]>
Sun, 16 Jan 2000 00:45:33 +0000 (00:45 +0000)
committerTom Lane <[email protected]>
Sun, 16 Jan 2000 00:45:33 +0000 (00:45 +0000)
src/pl/plpgsql/src/pl_exec.c
src/pl/plpgsql/src/plpgsql.h

index 02bdf6caa12be7479ab09a27f68754889993621c..79e741c0af618267bcce90c2513dc7db0555e543 100644 (file)
@@ -3,7 +3,7 @@
  *                       procedural language
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.12 1999/07/04 01:03:01 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.12.2.1 2000/01/16 00:45:33 tgl Exp $
  *
  *       This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -130,7 +130,7 @@ static void exec_move_row(PLpgSQL_execstate * estate,
 static Datum exec_cast_value(Datum value, Oid valtype,
                                Oid reqtype,
                                FmgrInfo *reqinput,
-                               int16 reqtypmod,
+                               int32 reqtypmod,
                                bool *isnull);
 static void exec_set_found(PLpgSQL_execstate * estate, bool state);
 
@@ -1561,7 +1561,7 @@ exec_stmt_raise(PLpgSQL_execstate * estate, PLpgSQL_stmt_raise * stmt)
                                                typeStruct = (Form_pg_type) GETSTRUCT(typetup);
 
                                                fmgr_info(typeStruct->typoutput, &finfo_output);
-                                               extval = (char *) (*fmgr_faddr(&finfo_output)) (var->value, &(var->isnull), var->datatype->atttypmod);
+                                               extval = (char *) (*fmgr_faddr(&finfo_output)) (var->value, InvalidOid, var->datatype->atttypmod);
                                        }
                                        plpgsql_dstring_append(&ds, extval);
                                        break;
@@ -1874,7 +1874,7 @@ exec_assign_value(PLpgSQL_execstate * estate,
        char       *nulls;
        bool            attisnull;
        Oid                     atttype;
-       int           atttypmod;
+       int32           atttypmod;
        HeapTuple       typetup;
        Form_pg_type typeStruct;
        FmgrInfo        finfo_input;
@@ -2373,7 +2373,7 @@ static Datum
 exec_cast_value(Datum value, Oid valtype,
                                Oid reqtype,
                                FmgrInfo *reqinput,
-                               int16 reqtypmod,
+                               int32 reqtypmod,
                                bool *isnull)
 {
        if (!*isnull)
@@ -2383,7 +2383,7 @@ exec_cast_value(Datum value, Oid valtype,
                 * that of the variable, convert it.
                 * ----------
                 */
-               if (valtype != reqtype || reqtypmod > 0)
+               if (valtype != reqtype || reqtypmod != -1)
                {
                        HeapTuple       typetup;
                        Form_pg_type typeStruct;
@@ -2397,8 +2397,8 @@ exec_cast_value(Datum value, Oid valtype,
                        typeStruct = (Form_pg_type) GETSTRUCT(typetup);
 
                        fmgr_info(typeStruct->typoutput, &finfo_output);
-                       extval = (char *) (*fmgr_faddr(&finfo_output)) (value, &isnull, -1);
-                       value = (Datum) (*fmgr_faddr(reqinput)) (extval, &isnull, reqtypmod);
+                       extval = (char *) (*fmgr_faddr(&finfo_output)) (value, InvalidOid, -1);
+                       value = (Datum) (*fmgr_faddr(reqinput)) (extval, InvalidOid, reqtypmod);
                }
        }
 
index 2d0a57cd2d04324d6f7c7e35339a651b21775d8c..4f3c8af2c26581404d5e379cb72ea82f99a83786 100644 (file)
@@ -3,7 +3,7 @@
  *                       procedural language
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.3 1999/01/27 16:15:22 wieck Exp $
+ *       $Header: /cvsroot/pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.3.2.1 2000/01/16 00:45:33 tgl Exp $
  *
  *       This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -126,7 +126,7 @@ typedef struct
        Oid                     typoid;
        FmgrInfo        typinput;
        bool            typbyval;
-       int16           atttypmod;
+       int32           atttypmod;
 }                      PLpgSQL_type;