Re: jdbc and postgresql function session question
От | David G. Johnston |
---|---|
Тема | Re: jdbc and postgresql function session question |
Дата | |
Msg-id | CAKFQuwY5E6hf=WxVMcc3afu2cW8GGLhu9TQmJPW2aA-fWCMHaw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: jdbc and postgresql function session question (Adrian Klaver <adrian.klaver@aklaver.com>) |
Ответы |
Re: jdbc and postgresql function session question
|
Список | pgsql-sql |
On 05/31/2016 02:20 PM, Michael Moore wrote:When the postgres jdbc driver calls a postgres function, does it get a
new session every time? If I create a PREPARED statement on the first
call, will it still be available on the 2nd call? If not, is there any
way I could get the prepared statement to be used on successive calls?
I think this is going to need more explanation, so:
1) When you say session are you talking about connection or a transaction? A function will run in its own transaction each time, but can be run multiple times in a connection.
2) Where is the PREPARED statement being built, in the function or outside it?
3) Can show an outline of what you are doing?
Making some assumptions...
con = DriverManager.getConnection(); -- opens a database session
Any JDBC Statement objects you create using this con are able to access named PostgreSQL PREPAREd statement previously created.
However, beware of
DEALLOCATE ALL[1]
While you are unlikely to issue such a command explicitly you need to be aware that connection poolers may do so in some configurations.
CallableStatement stmt = con.prepareCall(sql); --sees any session-scoped data since con was created.
con.close();
-- now the database session is done
В списке pgsql-sql по дате отправления: