What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS? - Mailing list pgsql-general

From Moshe Jacobson
Subject What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS?
Date
Msg-id CAJ4CxLkPASgDgL6GoBvUwdbYmQ6=gifrwY7_0SjAOu6Wh+idBg@mail.gmail.com
Whole thread Raw
Responses Re: What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS?  (Merlin Moncure <mmoncure@gmail.com>)
Re: What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS?  (Ivan Voras <ivoras@freebsd.org>)
List pgsql-general
I am working on an audit logging trigger that gets called for every row inserted, updated or deleted on any table.
For this, I need to store a couple of temporary session variables such as the ID of the user performing the change, which can be set at the start of the session.
Until now I have been using a permanent table to store the session variables, but it has been difficult to wipe the data properly at the end of the session.
So I have decided to try to implement them using temporary tables. 

The problem now is that for every row now, I need to check for the existence of the temporary table before I access it, in order to avoid exceptions.
Either I can do all such accesses within a BEGIN...EXCEPTION block, or I can precede any such accesses with CREATE TEMP TABLE IF NOT EXISTS.
Is one of these much faster than the other? Will I be slowing things down inordinately by doing this for every row?

Thanks.

--
Moshe Jacobson
Nead Werx, Inc. | Senior Systems Engineer
2323 Cumberland Parkway, Suite 201 | Atlanta, GA 30339
moshe@neadwerx.com | 
www.neadwerx.com

pgsql-general by date:

Previous
From: Andrew Hastie
Date:
Subject: Re: pg_upgrade: out of memory
Next
From: Tom Lane
Date:
Subject: Re: pg_upgrade: out of memory