select dblink_send_query('conn1','begin; update t2 set i=10 where nam=''a1'';'); select dblink_send_query('conn2','begin; delete from t2 where nam=''a1'';');
pgdb=# select * from lock_vw; datname | relname | transactionid | mode | granted | usename | current_query | query_start | age | procpid ---------+---------+---------------+------------------+---------+----------+--------------------------------+-------------------------------+-----------------+--------- pgdb | t2 | | RowExclusiveLock | t | postgres | <IDLE> in transaction | 2011-11-03 12:26:17.175681+06 | 00:00:04.05115 | 9414 pgdb | t2 | | ExclusiveLock | t | postgres | begin; delete from t2 where n | 2011-11-03 12:26:17.180294+06 | 00:00:04.046537 | 9415 pgdb | t2 | | RowExclusiveLock | t | postgres | begin; delete from t2 where n | 2011-11-03 12:26:17.180294+06 | 00:00:04.046537 | 9415 (3 rows)
select dblink_send_query('conn1','select i,nam from t2')
select * from dblink_get_result('conn1') as t2(i int, nam text); ERROR: function return row and query-specified return row do not match DETAIL: Returned row contains 1 attribute, but query expects 2. select dblink_send_query('conn2','rollback');
-- Supposed to send result here pgdb=# select * from dblink_get_result('conn1') as t2(i int, nam text); i | nam ---+----- (0 rows)
pgdb=# select * from t2; i | nam ---+------- 1 | asdas 2 | a1 (2 rows) ------------------------------------------------------------------