On Wed, 2009-01-21 at 19:13 +0200, Heikki Linnakangas wrote:
> Simon Riggs wrote:
> > Why do we have 12+ pluggable languages, but we're not allowed to write
> > pluggable indexes? Whatever argument you put against it being "too hard"
> > or dangerous or whatever *also* applies to languages. Yet experience
> > shows pluggability has resulted in a variety of robust and useful
> > language types, some that might not have been predicted (PL/Proxy, PL/R
> > etc). They cover a variety of users and situations.
>
> Languages are quite different. People already know language X, so they
> want to use it for stored procedures too. Or they want to interface
> other libraries or functionality available in language X. There's no
> such argument with indexams. Also, PL handlers are not as tightly
> integrated into the rest of the system, no need for low-level page
> access, for example, which is why it's easier to have a generic
> interface for them. There's also less issues with concurrency and
> version-compatibility.
Yes, they allow people's external experience to be brought to Postgres.
Which includes index experience.
You're assuming that indexes must have concurrency and are therefore
difficult to design. Concurrency isn't a requirement in many cases. You
just need to store tids and feed them back. Indexes don't have to use
database pages even. Robustness is a much more certain requirement,
since rebuilding indexes from scratch may not even be practical in some
cases.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support