Re: sessions and prepared statements - Mailing list pgsql-sql

From Aaron Bono
Subject Re: sessions and prepared statements
Date
Msg-id bf05e51c0606160729o193572d8haf0898c334010edb@mail.gmail.com
Whole thread Raw
In response to Re: sessions and prepared statements  (Michael Fuhr <mike@fuhr.org>)
List pgsql-sql
If you are using pooled connections, doesn't PostgreSQL manage the prepared statements for you?  I would expect that, once I prepare a statement, if I attempt to do it again, PostgreSQL would say, "righty then, already done it, here you go".  Then again, I don't know what PostgreSQL does under the covers.

This seems like a lot of work to squeek out a small amount of efficiency.  Would it really give you much value?

-Aaron Bono

On 6/16/06, Michael Fuhr <mike@fuhr.org> wrote:
On Fri, Jun 16, 2006 at 08:55:16AM -0400, Rod Taylor wrote:
> BEGIN;
> SAVEPOINT;
> SELECT * FROM temporary_prepared_statement;
> ROLLBACK TO SAVEPOINT < on failure>;
> CREATE TEMPORARY TABLE temporary_prepared_statement ...;
> COMMIT;
>
> Now you have a place to store and retrieve prepared connection state for
> the lifetime of the database backend provided PHP doesn't remove
> temporary tables on the connection.

This doesn't help today, but 8.2 will have a pg_prepared_statements
view.

http://archives.postgresql.org/pgsql-committers/2006-01/msg00143.php
http://developer.postgresql.org/docs/postgres/view-pg-prepared-statements.html

test=> PREPARE stmt (integer) AS SELECT * FROM foo WHERE x = $1;
test=> \x
Expanded display is on.
test=> SELECT * FROM pg_prepared_statements;
-[ RECORD 1 ]---+----------------------------------------------------------
name            | stmt
statement       | PREPARE stmt (integer) AS SELECT * FROM foo WHERE x = $1;
prepare_time    | 2006-06-16 07:07: 41.682999-06
parameter_types | {integer}
from_sql        | t

--
Michael Fuhr

pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Repetitive code
Next
From: "Aaron Bono"
Date:
Subject: Re: concurrency problem