Back-patch critical fixes for NUMERIC values in plpgsql functions. REL6_5_PATCHES github/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;