33 * procedural language
44 *
55 * IDENTIFICATION
6- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.34 2001/01/04 02:38:02 tgl Exp $
6+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.35 2001/01/06 01:43:01 tgl Exp $
77 *
88 * This software is copyrighted by Jan Wieck - Hamburg.
99 *
@@ -2210,6 +2210,7 @@ exec_assign_value(PLpgSQL_execstate * estate,
22102210int natts ;
22112211Datum * values ;
22122212char * nulls ;
2213+ Datum newvalue ;
22132214bool attisnull ;
22142215Oid atttype ;
22152216int32 atttypmod ;
@@ -2225,15 +2226,16 @@ exec_assign_value(PLpgSQL_execstate * estate,
22252226 * ----------
22262227 */
22272228var = (PLpgSQL_var * )target ;
2228- var -> value = exec_cast_value (value ,valtype ,var -> datatype -> typoid ,
2229- & (var -> datatype -> typinput ),
2230- var -> datatype -> typelem ,
2231- var -> datatype -> atttypmod ,
2232- isNull );
2229+ newvalue = exec_cast_value (value ,valtype ,var -> datatype -> typoid ,
2230+ & (var -> datatype -> typinput ),
2231+ var -> datatype -> typelem ,
2232+ var -> datatype -> atttypmod ,
2233+ isNull );
22332234
2234- if (isNull && var -> notnull )
2235+ if (* isNull && var -> notnull )
22352236elog (ERROR ,"NULL assignment to variable '%s' declared NOT NULL" ,var -> refname );
22362237
2238+ var -> value = newvalue ;
22372239var -> isnull = * isNull ;
22382240break ;
22392241