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
Re: Sequence Access Method WIP |
Список | 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 по дате отправления: