Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Mike Mascari wrote:
>> How long has a partial index implementation been in PostgreSQL?
> We have had partial indexes since the Berkeley days, per-1996, but we
> have improved them quite a bit.
We inherited code for the feature from Berkeley, but it was broken for
some considerable period of time. I find this in the CVS logs:
2001-07-16 01:06 tgl
* doc/src/sgml/indices.sgml, doc/src/sgml/ref/create_index.sgml,
src/backend/bootstrap/bootstrap.c, src/backend/catalog/index.c,
src/backend/commands/command.c, src/backend/commands/indexcmds.c,
src/backend/executor/execUtils.c,
src/backend/optimizer/path/indxpath.c,
src/backend/optimizer/util/pathnode.c,
src/backend/parser/analyze.c, src/backend/parser/gram.y,
src/backend/parser/keywords.c, src/backend/tcop/utility.c,
src/backend/utils/adt/ruleutils.c,
src/backend/utils/adt/selfuncs.c, src/bin/pg_dump/pg_dump.c,
src/bin/pg_dump/pg_dump.h, src/include/catalog/index.h,
src/include/catalog/pg_proc.h, src/include/config.h.in,
src/include/commands/defrem.h, src/include/nodes/execnodes.h,
src/include/utils/builtins.h,
src/interfaces/ecpg/preproc/keywords.c,
src/interfaces/ecpg/preproc/preproc.y,
src/test/regress/expected/create_index.out,
src/test/regress/expected/portals_p2.out,
src/test/regress/expected/sanity_check.out,
src/test/regress/expected/select.out,
src/test/regress/sql/create_index.sql,
src/test/regress/sql/portals_p2.sql,
src/test/regress/sql/select.sql: Partial indexes work again,
courtesy of Martijn van Oosterhout. Note: I didn't force an
initdb, figuring that one today was enough. However, there is a
new function in pg_proc.h, and pg_dump won't be able to dump
partial indexes until you add that function.
This is reflected in the 7.2 release notes.
In the context of the interview, I agree it's pretty amusing --- I
would've thought the academic DBMS community would see partial indexes
as ancient news.
regards, tom lane