Re: Sequence Access Method WIP

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Sequence Access Method WIP
Дата
Msg-id 54C11C30.6000801@vmware.com
обсуждение исходный текст
Ответ на Re: Sequence Access Method WIP  (Petr Jelinek <petr@2ndquadrant.com>)
Ответы Re: Sequence Access Method WIP  (Robert Haas <robertmhaas@gmail.com>)
Re: Sequence Access Method WIP  (Petr Jelinek <petr@2ndquadrant.com>)
Список pgsql-hackers
On 01/12/2015 11:33 PM, Petr Jelinek wrote:
> Second patch adds DDL support. I originally wanted to make it
> CREATE/DROP SEQUENCE ACCESS METHOD... but that would mean making ACCESS
> a reserver keyword so I went for CREATE ACCESS METHOD FOR SEQUENCES
> which does not need to change anything (besides adding METHOD to
> unreserved keywords).
> The DDL support uses the DefineStmt infra with some very small change as
> the sequence ams are not schema qualified, but I think it's acceptable
> and saves considerable amount of boilerplate.

Do we need DDL commands for this at all? I could go either way on that 
question. We recently had a discussion on that wrt. index access methods 
[1], and Tom opined that providing DDL for creating index access methods 
is not worth it. The extension can just insert the rows into pg_seqam 
with INSERT. Do we expect sequence access methods as extensions to be 
more popular than index access methods? Maybe, because the WAL-logging 
problem doesn't exist. But OTOH, if you're writing something like a 
replication system that needs global sequences as part of it, there 
aren't that many of those, and the installation scripts will need to 
deal with more complicated stuff than inserting a row in pg_seqam.

[1] http://www.postgresql.org/message-id/26822.1414516012@sss.pgh.pa.us

> And third patch is gapless sequence implementation updated to work with
> the new DDL support with some tests added for checking if dependencies
> work correctly. It also acts as example on how to make custom AMs.

I'll take a look at that to see how the API works, but we're not going 
to include it in the source tree, because it doesn't actually guarantee 
gaplessness. That makes it a pretty dangerous example. I'm sure we can 
come up with a better example that might even be useful. How about a 
Lamport's clock sequence, which advances once per second, in addition to 
when anyone calls nextval() ? Or a remote sequence that uses an FDW to 
call nextval() in a foreign server?

- Heikki




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: fix typo in reinit.h
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Windows buildfarm animals are still not happy with abbreviated keys patch