diff options
author | Marc G. Fournier <scrappy@hub.org> | 1996-07-23 03:38:44 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1996-07-23 03:38:44 +0000 |
commit | 83c9ec765e12362e7a459214404765f5084f4291 (patch) | |
tree | c9cb9d43212d2aae4c51222f3d4994d5b93e42d1 | |
parent | 2206b5819d280107658d7f4cb6cea30f18d3564a (diff) | |
download | postgresql-83c9ec765e12362e7a459214404765f5084f4291.tar.gz postgresql-83c9ec765e12362e7a459214404765f5084f4291.zip |
Last changes to src from Dr. George *wipes brow*
-rw-r--r-- | src/interfaces/libpgtcl/Makefile | 5 | ||||
-rw-r--r-- | src/interfaces/libpgtcl/pgtclCmds.c | 27 |
2 files changed, 29 insertions, 3 deletions
diff --git a/src/interfaces/libpgtcl/Makefile b/src/interfaces/libpgtcl/Makefile index 73e218b3842..25a2a0ac6ea 100644 --- a/src/interfaces/libpgtcl/Makefile +++ b/src/interfaces/libpgtcl/Makefile @@ -7,7 +7,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile,v 1.1.1.1 1996/07/09 06:22:16 scrappy Exp $ +# $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile,v 1.2 1996/07/23 03:38:42 scrappy Exp $ # #------------------------------------------------------------------------- @@ -20,7 +20,8 @@ CFLAGS+= -I$(HEADERDIR) \ -I$(srcdir)/backend/include \ -I$(srcdir)/backend \ -I$(CURDIR) \ - -I$(TCL_INCDIR) + -I$(TCL_INCDIR) \ + -I$(srcdir)/libpq ifdef KRBVERS CFLAGS+= $(KRBFLAGS) diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c index e6c2c539118..dca92137cfe 100644 --- a/src/interfaces/libpgtcl/pgtclCmds.c +++ b/src/interfaces/libpgtcl/pgtclCmds.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.1.1.1 1996/07/09 06:22:16 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.2 1996/07/23 03:38:44 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -194,6 +194,8 @@ Pg_exec(AlientData cData, Tcl_Interp *interp, int argc, char* argv[]) the connection that produced the result -assign arrayName assign the results to an array + -assignbyidx arrayName + assign the results to an array using the first field as a key -numTuples the number of tuples in the query -attributes @@ -211,6 +213,7 @@ Pg_result(ClientData cData, Tcl_Interp *interp, int argc, char* argv[]) char *opt; int i; int tupno; + char prearrayInd[MAX_MESSAGE_LEN]; char arrayInd[MAX_MESSAGE_LEN]; char *arrVar; @@ -268,6 +271,27 @@ Pg_result(ClientData cData, Tcl_Interp *interp, int argc, char* argv[]) Tcl_AppendResult(interp, arrVar, 0); return TCL_OK; } + else if (strcmp(opt, "-assignbyidx") == 0) { + if (argc != 4) { + Tcl_AppendResult(interp, "-assignbyidx option must be followed by a variable name",0); + return TCL_ERROR; + } + arrVar = argv[3]; + /* this assignment assigns the table of result tuples into a giant + array with the name given in the argument, + the indices of the array or (tupno,attrName)*/ + for (tupno = 0; tupno<PQntuples(result); tupno++) { + sprintf(prearrayInd,"%s",PQgetvalue(result,tupno,0)); + for (i=1;i<PQnfields(result);i++) { + sprintf(arrayInd, "%s,%s", prearrayInd, PQfname(result,i)); + Tcl_SetVar2(interp, arrVar, arrayInd, + PQgetvalue(result,tupno,i), + TCL_LEAVE_ERR_MSG); + } + } + Tcl_AppendResult(interp, arrVar, 0); + return TCL_OK; + } else if (strcmp(opt, "-getTuple") == 0) { if (argc != 4) { Tcl_AppendResult(interp, "-getTuple option must be followed by a tuple number",0); @@ -307,6 +331,7 @@ Pg_result(ClientData cData, Tcl_Interp *interp, int argc, char* argv[]) "\t-status\n", "\t-conn\n", "\t-assign arrayVarName\n", + "\t-assignbyidx arrayVarName\n", "\t-numTuples\n", "\t-attributes\n" "\t-getTuple tupleNumber\n", |