3
3
* procedural language
4
4
*
5
5
* IDENTIFICATION
6
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.140 2005/05/26 03:18:53 neilc Exp $
6
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.141 2005/05/26 04:08:31 momjian Exp $
7
7
*
8
8
* This software is copyrighted by Jan Wieck - Hamburg.
9
9
*
@@ -180,7 +180,6 @@ static Datum exec_simple_cast_value(Datum value, Oid valtype,
180
180
static void exec_init_tuple_store (PLpgSQL_execstate * estate );
181
181
static bool compatible_tupdesc (TupleDesc td1 , TupleDesc td2 );
182
182
static void exec_set_found (PLpgSQL_execstate * estate , bool state );
183
- static char * unpack_sql_state (int ssval );
184
183
185
184
186
185
/* ----------
@@ -748,20 +747,6 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
748
747
int i ;
749
748
int n ;
750
749
751
-
752
- /* setup SQLSTATE and SQLERRM */
753
- PLpgSQL_var * var ;
754
-
755
- var = (PLpgSQL_var * ) (estate -> datums [block -> sqlstate_varno ]);
756
- var -> isnull = false;
757
- var -> freeval = true;
758
- var -> value = DirectFunctionCall1 (textin , CStringGetDatum ("00000" ));
759
-
760
- var = (PLpgSQL_var * ) (estate -> datums [block -> sqlerrm_varno ]);
761
- var -> isnull = false;
762
- var -> freeval = true;
763
- var -> value = DirectFunctionCall1 (textin , CStringGetDatum ("Successful completion" ));
764
-
765
750
/*
766
751
* First initialize all variables declared in this block
767
752
*/
@@ -777,7 +762,7 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
777
762
778
763
if (var -> freeval )
779
764
{
780
- pfree (DatumGetPointer (var -> value ));
765
+ pfree (( void * ) (var -> value ));
781
766
var -> freeval = false;
782
767
}
783
768
@@ -870,15 +855,6 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
870
855
RollbackAndReleaseCurrentSubTransaction ();
871
856
MemoryContextSwitchTo (oldcontext );
872
857
CurrentResourceOwner = oldowner ;
873
-
874
- /* set SQLSTATE and SQLERRM variables */
875
- var = (PLpgSQL_var * ) (estate -> datums [block -> sqlstate_varno ]);
876
- pfree (DatumGetPointer (var -> value ));
877
- var -> value = DirectFunctionCall1 (textin , CStringGetDatum (unpack_sql_state (edata -> sqlerrcode )));
878
-
879
- var = (PLpgSQL_var * ) (estate -> datums [block -> sqlerrm_varno ]);
880
- pfree (DatumGetPointer (var -> value ));
881
- var -> value = DirectFunctionCall1 (textin , CStringGetDatum (edata -> message ));
882
858
883
859
/*
884
860
* If AtEOSubXact_SPI() popped any SPI context of the subxact,
@@ -943,26 +919,6 @@ exec_stmt_block(PLpgSQL_execstate *estate, PLpgSQL_stmt_block *block)
943
919
return PLPGSQL_RC_OK ;
944
920
}
945
921
946
- /*
947
- * unpack MAKE_SQLSTATE code
948
- * This code is copied from backend/utils/error/elog.c.
949
- */
950
- static char *
951
- unpack_sql_state (int ssval )
952
- {
953
- static char tbuf [12 ];
954
- int i ;
955
-
956
- for (i = 0 ; i < 5 ; i ++ )
957
- {
958
- tbuf [i ] = PGUNSIXBIT (ssval );
959
- ssval >>= 6 ;
960
- }
961
- tbuf [i ] = '\0' ;
962
- return tbuf ;
963
- }
964
-
965
-
966
922
967
923
/* ----------
968
924
* exec_stmts Iterate over a list of statements
0 commit comments