Markus Wagner wrote:
> Hi,
>
> if I do a SELECT on a non-existing table, SPI_exec won't return.
> I get, e. g. in pgaccess, an error message "<table> does not exist",
> and my code below the function call is never reached.

    Right,  the  SPI_exec()  call  in  turn  calls the PostgreSQL
    parser and that raises an elog(ERROR) which longjmp()'s  back
    into  the  backends  main  loop  waiting  for the next client
    query.

>
> So why return error codes for SPI_exec when you cannot evaluate them?

    What do you want here? No error,  just  an  empty  result  of
    unspecified  format?   If the parser cannot determine (due to
    nonexistance of a table) which datatype the  columns  of  the
    result  set  at least should have, what else could he do than
    trowing an ERROR?

>
> The background:
>
> I need to distinguish different client connections within a trigger
> function.
> To do this, I create a temporary table within a "login" function.
> My trigger must check for the existence of this function.
> I cannot think of any other method, since there is no "connection id" or
> something like that!

    Unfortunately PL/pgSQL doesn't have global variables.  PL/Tcl
    can  have.   If you cannot code a part of the login mechanism
    in PL/Tcl, setting a global variable and  returning  that  in
    another  PL/Tcl  function, you could create a temp table with
    the same name in every connection and fill the  connection-ID
    into that.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://www.postgresql.org/search.mpl

Reply via email to