Hi guys,
 
Are you going to completely remove xmin from partitioned tables? So it will not work in select ..., xmin from partitioned_table ?
 
For us as users of Postgres (not knowing internal details) it is strange that there are some problems with getting current transaction and saving it as usual to xmin...
 
What about first adding a "rowversion" type like in SQL Server for optimistic concurrency?
 
I would remind that many code use xmin and would no be able to work with partitioned table...
https://www.npgsql.org/efcore/modeling/concurrency.html
 
 
-- 
С уважением, Павел
 
 
 
22.04.2021, 00:48, "Andres Freund" <andres@anarazel.de>:

Hi,

On 2021-04-21 17:38:53 -0400, Tom Lane wrote:

 Andres Freund <andres@anarazel.de> writes:
 > I don't really see us getting rid of something like ctid as a generic
 > concept across AMs - there's just too many places that need a way to
 > reference a specific tuple. However, I think we ought to change how much
 > code outside of AMs know about what tids mean. And, although that's a
 > significant lift on its own, we ought to make at least the generic
 > representation variable width.

 It seems like it might not be that hard to convert ctid generically
 into a uint64, where heaps and heap-related indexes only use 6 bytes
 of it.


Yep.

 

 Variable-width I agree would be a very big complication added on top,
 and I'm not quite convinced that we need it.


I can see three (related) major cases where variable width tids would be
quite useful:
1) Creating an index-oriented-table AM would harder/more
   limited with just an 8 byte tid
2) Supporting "indirect" indexes (i.e. indexes pointing to a primary
   key, thereby being much cheaper to maintain when there are updates),
   would require the primary key to map to an 8 byte integer.
3) Global indexes would be a lot easier if we had variable width tids
   (but other ways of addressing the issue are possible).

Greetings,

Andres Freund