77 *
88 *
99 * IDENTIFICATION
10- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.9 1997/01/03 18:48:30 scrappy Exp $
10+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.10 1997/01/11 14:24:40 scrappy Exp $
1111 *
1212 *-------------------------------------------------------------------------
1313 */
@@ -1129,9 +1129,9 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
11291129int r ;
11301130size_t tupno ,column ,ncols ;
11311131Tcl_DString headers ;
1132+ char buffer [2048 ];
11321133struct {
11331134char * cname ;
1134- char * data ;
11351135int change ;
11361136}* info ;
11371137
@@ -1166,24 +1166,23 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
11661166for (column = 0 ;column < ncols ;column ++ )
11671167{
11681168info [column ].cname = PQfname (result ,column );
1169- info [column ].data = malloc (2000 );
11701169info [column ].change = 0 ;
11711170Tcl_DStringAppendElement (& headers ,info [column ].cname );
11721171}
11731172
11741173Tcl_SetVar2 (interp ,argv [3 ],".headers" ,Tcl_DStringValue (& headers ),0 );
1175- sprintf (info [ 0 ]. data ,"%d" ,ncols );
1176- Tcl_SetVar2 (interp ,argv [3 ],".numcols" ,info [ 0 ]. data ,0 );
1174+ sprintf (buffer ,"%d" ,ncols );
1175+ Tcl_SetVar2 (interp ,argv [3 ],".numcols" ,buffer ,0 );
11771176
11781177for (tupno = 0 ;tupno < PQntuples (result );tupno ++ )
11791178{
1180- sprintf (info [ 0 ]. data ,"%d" ,tupno );
1181- Tcl_SetVar2 (interp ,argv [3 ],".tupno" ,info [ 0 ]. data ,0 );
1179+ sprintf (buffer ,"%d" ,tupno );
1180+ Tcl_SetVar2 (interp ,argv [3 ],".tupno" ,buffer ,0 );
11821181
11831182for (column = 0 ;column < ncols ;column ++ )
11841183{
1185- strcpy (info [ column ]. data ,PQgetvalue (result ,tupno ,column ));
1186- Tcl_SetVar2 (interp ,argv [3 ],info [column ].cname ,info [ column ]. data ,0 );
1184+ strcpy (buffer ,PQgetvalue (result ,tupno ,column ));
1185+ Tcl_SetVar2 (interp ,argv [3 ],info [column ].cname ,buffer ,0 );
11871186}
11881187
11891188Tcl_SetVar2 (interp ,argv [3 ],".command" ,"update" ,0 );
@@ -1206,6 +1205,8 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
12061205}
12071206}
12081207
1208+ free (info );
1209+ Tcl_UnsetVar (interp ,argv [3 ],0 );
12091210Tcl_AppendResult (interp ,"" ,0 );
12101211return TCL_OK ;
12111212}