OSDN Git Service

Cleanup of code for creating index entries. Functional indexes with
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 14 Jul 2000 22:18:02 +0000 (22:18 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 14 Jul 2000 22:18:02 +0000 (22:18 +0000)
commit6bfe64032efd043f80a495a495331dcfc2d9f05c
treed0cc092d38bdea690a79e4aebfa4629e1db54e96
parenta30bc7c75a54910a78d1939bd32f5d91164ba8a4
Cleanup of code for creating index entries.  Functional indexes with
pass-by-ref data types --- eg, an index on lower(textfield) --- no longer
leak memory during index creation or update.  Clean up a lot of redundant
code ... did you know that copy, vacuum, truncate, reindex, extend index,
and bootstrap each basically duplicated the main executor's logic for
extracting information about an index and preparing index entries?
Functional indexes should be a little faster now too, due to removal
of repeated function lookups.
CREATE INDEX 'opt_type' clause is deimplemented by these changes,
but I haven't removed it from the parser yet (need to merge with
Thomas' latest change set first).
32 files changed:
src/backend/access/gist/gist.c
src/backend/access/hash/hash.c
src/backend/access/index/indexam.c
src/backend/access/index/istrat.c
src/backend/access/nbtree/nbtree.c
src/backend/access/rtree/rtree.c
src/backend/bootstrap/bootparse.y
src/backend/bootstrap/bootscanner.l
src/backend/bootstrap/bootstrap.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/indexing.c
src/backend/commands/cluster.c
src/backend/commands/command.c
src/backend/commands/copy.c
src/backend/commands/indexcmds.c
src/backend/commands/vacuum.c
src/backend/executor/execUtils.c
src/backend/storage/large_object/inv_api.c
src/backend/utils/cache/relcache.c
src/include/access/funcindex.h [deleted file]
src/include/access/genam.h
src/include/access/gist.h
src/include/access/hash.h
src/include/access/istrat.h
src/include/access/itup.h
src/include/bootstrap/bootstrap.h
src/include/catalog/index.h
src/include/catalog/pg_proc.h
src/include/commands/vacuum.h
src/include/nodes/execnodes.h
src/include/utils/rel.h