Re: Connecting to an existing transaction state.

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: Connecting to an existing transaction state.
Дата
Msg-id 48911219.8040006@postnewspapers.com.au
обсуждение исходный текст
Ответ на Re: Connecting to an existing transaction state.  (Alvaro Herrera <alvherre@commandprompt.com>)
Список pgsql-general
Alvaro Herrera wrote:
> Alex Gen wrote:
>> Hello,
>>
>> I’m in the process of creating a set of scripts for testing certain locking features in an application.
>> What I would like to do:
>> 1. Start a connection from machine-01 through the m01-s1.sql script.
>> 2.While (1) is running, start another transaction on the same database from machine-02 using m02-s1.sql.
>>
>> At this point in time, there are two open transactions on certain tables in the same database.
>>
>> 3. Using m01-s2.sql I would like to execute a certain SQL statement – BUT within the scope of the transaction begun
bym01-s1.sql. 
>> 4. Current situation: Since there are several .sql scripts, each getting its own connection and executing sql stmts
–they are not aware of activities of the other scripts (i.e. the open transactions). 
>> 5. What I’d like to do: After a transaction has been started from a machine, I should be able to save the
transactionreference (id?) temporarily somewhere. 
>> 6. The next statement (new .sql file) that wishes to execute within the scope of the above transaction – should be
ableto get the transaction reference (id) and latch onto it in its current state. This way it continues to perform as
partof a whole – rather than only executing the statements that it had. 
>
> You cannot do this directly by simply using SQL files being fed to psql.
> What you can do is open one psql process reading from a named pipe, and
> write SQL commands to this pipe.

Yep. You can also write a file that sources the others, and use psql to
load that. Eg:

BEGIN;
\i m01-s1.sql
\i m01-s2.sql
COMMIT;

Another option is to write a wrapper program using one of the scripting
languages with PostgreSQL interfaces (Python, Perl, etc) that
establishes a connection then loads a sequence of snippets and sends
them. That's a little more flexible, but not much more complicated.

--
Craig Ringer

В списке pgsql-general по дате отправления:

Предыдущее
От: Rob Adams
Дата:
Сообщение: archive_timeout, checkpoint_timeout
Следующее
От: Tom Lane
Дата:
Сообщение: Re: archive_timeout, checkpoint_timeout