summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-01-16 00:45:33 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-01-16 00:45:33 +0000
commit21f0db98ea83025bb77928741af05f15ab4b0cba (patch)
tree6542ec672aa09e031644a4a8a9a310d635eb14c5
parent8d018f9db8c6c1ba93108db15b75cf2f9e5a5b49 (diff)
downloadpostgresql-REL6_5_PATCHES.tar.gz
Back-patch critical fixes for NUMERIC values in plpgsql functions.REL6_5_PATCHES
-rw-r--r--src/pl/plpgsql/src/pl_exec.c16
-rw-r--r--src/pl/plpgsql/src/plpgsql.h4
2 files changed, 10 insertions, 10 deletions
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index 02bdf6caa1..79e741c0af 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -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;
- int4 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);
}
}
diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h
index 2d0a57cd2d..4f3c8af2c2 100644
--- a/src/pl/plpgsql/src/plpgsql.h
+++ b/src/pl/plpgsql/src/plpgsql.h
@@ -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;