Обсуждение: Re: [HACKERS] Last ID Problem

Поиск
Список
Период
Сортировка

Re: [HACKERS] Last ID Problem

От
Tom Lane
Дата:
Neil Conway <neilc@samurai.com> writes:
> On Tue, 2005-02-01 at 11:24 -0300, Alvaro Herrera wrote:
>> How about the TID?

> That wouldn't be sufficiently stable for use by client applications, I
> believe: a concurrent VACUUM FULL could mean your TID no longer points
> at what you think it does.

It'd be safe enough within the same transaction, since VACUUM can't kill
a tuple inserted by an open transaction; nor could VACUUM FULL touch the
table at all, since you'll be holding at least a writer's lock on the
table.

But this is all moot since INSERT/UPDATE RETURNING is really the way to
go, on grounds of functionality, speed, and not breaking backward
compatibility for existing client code.

            regards, tom lane

Re: [HACKERS] Last ID Problem

От
Neil Conway
Дата:
On Tue, 2005-02-01 at 17:50 -0500, Tom Lane wrote:
> It'd be safe enough within the same transaction, since VACUUM can't kill
> a tuple inserted by an open transaction; nor could VACUUM FULL touch the
> table at all, since you'll be holding at least a writer's lock on the
> table.

True, but it still seems rather fragile -- it would be quite easy for
people to get this wrong and not realize it (and then wonder why their
application is silently corrupting data at odd times). Also, it might
constrain out ability to improve how we garbage collect expired tuples
in the future, although that's less of a concern.

> But this is all moot since INSERT/UPDATE RETURNING is really the way to
> go, on grounds of functionality, speed, and not breaking backward
> compatibility for existing client code.

Agreed. Also, I believe we could do this without needing a protocol
version bump.

-Neil