On Fri, 2020-05-15 at 08:09 +0800, Andy Fan wrote:
> On Thu, May 14, 2020 at 9:33 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:
> > On Thu, 2020-05-14 at 16:26 +0800, Andy Fan wrote:
> > > Thanks, actually I don't know how to use prepared transaction and how it works.
> > > I care about this because there is a long prepared transaction exists in our customer,
> > > and we want to know what this transaction has done(like any data it changed).
> > > All the things I know is the data comes from pg_prepared_xact, but it doesn't help a lot.
> >
> > Idf you have the transaction ID from "pg_prepared_xact", you could check
> > what locks are held:
> >
> > SELECT * FROM pg_locks WHERE transactionid = ...;
> >
> > Than might give you a clue.
> >
>
> Thanks a lot. this transaction only lock a transactionid lock, so I assume there is nothing
> is done in this transaction.
>
>
> locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid |
virtualtransaction| pid | mode | granted | fastpath
>
---------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+---------------+---------+----------
> transactionid | | | | | | 1181845808 | | | |
-1/1181845808 | | ExclusiveLock | t | f
> (1 row)
Looks like it, yes.
Roll it back then.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com