From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | Markus Wagner <wagner(at)imsd(dot)uni-mainz(dot)de> |
Cc: | "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: SPI_exec does not return! |
Date: | 2001-07-18 10:54:34 |
Message-ID: | 200107181054.f6IAsYd20969@jupiter.us.greatbridge.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
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. #
#================================================== JanWieck(at)Yahoo(dot)com #
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Raymond Chui | 2001-07-18 12:18:31 | What is the syntax turn off auto commit? |
Previous Message | Bhuvan A | 2001-07-18 09:23:04 | Re: CAST(ipaddress as text) -- HOW? |