Re: Is the row version available in SQL?

From: Chris Travers <chris(dot)travers(at)gmail(dot)com>
To: Rob Nikander <rob(dot)nikander(at)gmail(dot)com>
Cc: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Is the row version available in SQL?
Date: 2017-06-28 15:39:20
Message-ID: CAKt_Zfs6Lz02XO4=C9pw1wcM2AraFCiu2_ss53XEt9AnrQG0nA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Jun 28, 2017 at 4:54 PM, Rob Nikander <rob(dot)nikander(at)gmail(dot)com>
wrote:

> Hi,
>
> I'm reading about MVCC here: https://www.postgresql.
> org/docs/current/static/mvcc.html.
>
> In some cases I can use these transaction isolation modes, but in other
> cases, I may want to manage the versions and concurrency manually. Is there
> a way to select the “version” of a row, or is that data hidden to ordinary
> SQL statements?
>
> I’m thinking about a sequence of actions, which are logically a
> transaction, but start on one thread and complete later on another thread.
> I don’t think I can tie up a JDBC database connection for that long. I can
> add a `version bigint` column to my table, and the final update will look
> like:
>
> update ... where id = ? and version = the_version_selected_earlier_
> in_a_different_thread
>
> … and if that gets 0 rows, it can handle the conflict.
>

For that, you could use xmin. That tracks the transaction where the row
first became visible.

Best Wishes,
Chris Travers

>
> Rob
>
>
>

--
Best Wishes,
Chris Travers

Efficito: Hosted Accounting and ERP. Robust and Flexible. No vendor
lock-in.
http://www.efficito.com/learn_more

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message marcelo 2017-06-28 16:28:53 Re: Unknown lvalue 'PIDFILE' in section 'Service'
Previous Message Rob Nikander 2017-06-28 14:54:14 Is the row version available in SQL?