Re: pgtcl has no coresponding function to PQcmdTuples

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: pgtcl has no coresponding function to PQcmdTuples
Дата
Msg-id 200211262139.gAQLdY021298@candle.pha.pa.us
обсуждение исходный текст
Ответ на pgtcl has no coresponding function to PQcmdTuples  (Artur Trzewik <mail@xdobry.de>)
Список pgsql-interfaces
The attached patch implements -cmdTuples in the tcl interface.  This
will be in 7.4.

---------------------------------------------------------------------------

Artur Trzewik wrote:
> Hi!
>
> I have noticed that
> pg_result $handle -numTuples
> result always 0 after DELETE and UPDATE command
>
> I have taken a look in the source code of pgtcl
> and I see
>
> # file pgtclCmds.c
>
>     else if (strcmp(opt, "-numTuples") == 0)
>     {
>         sprintf(interp->result, "%d", PQntuples(result));
>         return TCL_OK;
>     }
>
> it works only for SELECT commands.
> There are no coresponding c-function call to PQcmdTuples
> that return what I need in this moment.
> I suggest to add new subcommand to pg_result -cmdTuples with
> new code
>
>     else if (strcmp(opt, "-cmdTuples") == 0)
>     {
>         sprintf(interp->result, "%d", PQcmdTuples(result));
>         return TCL_OK;
>     }
>
> (better were to use Tcl_GetIndexFromObj an not strcmp,
>  sprintf(interp->result,...) is also unsafe and very historical
> It should be Tcl_SetObjResult(interp, Tcl_NewIntObj(PQcmdTuples(result)));
> It do not look good
>
> By the way.
> pgtcl uses very old tcl interface (up to version 7)
> using new interface would increase speed about 30-40%.
> It also do not carry about UTF in new Tcl (new means about 2 years).
> It hurts me to see that old tcl interfaces slow up tcl (and another say it is
> slow).
>
> I can upgrade it (I have done it for mysqltcl) if there are need for it.
> I need conntact to pgtcl maintainer/autor.
>
> best regards,
> Artur Trzewik
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: doc/src/sgml/libpgtcl.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/libpgtcl.sgml,v
retrieving revision 1.33
diff -c -c -r1.33 libpgtcl.sgml
*** doc/src/sgml/libpgtcl.sgml    15 Nov 2002 03:11:16 -0000    1.33
--- doc/src/sgml/libpgtcl.sgml    26 Nov 2002 21:36:55 -0000
***************
*** 728,733 ****
--- 728,743 ----
  </VARLISTENTRY>
  <VARLISTENTRY>
  <TERM>
+ <option>-cmdTuples</option>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ the number of tuples affected by the query.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+ <VARLISTENTRY>
+ <TERM>
  <option>-numAttrs</option>
  </TERM>
  <LISTITEM>
Index: src/interfaces/libpgtcl/pgtclCmds.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/libpgtcl/pgtclCmds.c,v
retrieving revision 1.69
diff -c -c -r1.69 pgtclCmds.c
*** src/interfaces/libpgtcl/pgtclCmds.c    17 Oct 2002 14:51:50 -0000    1.69
--- src/interfaces/libpgtcl/pgtclCmds.c    26 Nov 2002 21:37:00 -0000
***************
*** 506,511 ****
--- 506,513 ----

      -numTuples    the number of tuples in the query

+     -cmdTuples    the number of tuples affected by the query
+
      -numAttrs    returns the number of attributes returned by the query

      -assign arrayName
***************
*** 591,596 ****
--- 593,603 ----
          sprintf(interp->result, "%d", PQntuples(result));
          return TCL_OK;
      }
+     else if (strcmp(opt, "-cmdTuples") == 0)
+     {
+         sprintf(interp->result, "%s", PQcmdTuples(result));
+         return TCL_OK;
+     }
      else if (strcmp(opt, "-numAttrs") == 0)
      {
          sprintf(interp->result, "%d", PQnfields(result));
***************
*** 768,773 ****
--- 775,781 ----
                       "\t-conn\n",
                       "\t-oid\n",
                       "\t-numTuples\n",
+                      "\t-cmdTuples\n",
                       "\t-numAttrs\n"
                       "\t-assign arrayVarName\n",
                       "\t-assignbyidx arrayVarName ?appendstr?\n",

В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Gerhard Hintermayer
Дата:
Сообщение: Re: pgtcl has no coresponding function to PQcmdTuples
Следующее
От: Bruce Momjian
Дата:
Сообщение: Interface update for 7.3