]> granicus.if.org Git - postgresql/commit
Create a 'type cache' that keeps track of the data needed for any particular
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Aug 2003 19:58:06 +0000 (19:58 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Aug 2003 19:58:06 +0000 (19:58 +0000)
commitec646dbc65afc8c55118cb3fb75cb6fd18d78dd8
treebd256cf157c4636382d59938162326fccc70b62c
parentd89578ccbefb83aa9f9d1c00269cd866be2cc857
Create a 'type cache'  that keeps track of the data needed for any particular
datatype by array_eq and array_cmp; use this to solve problems with memory
leaks in array indexing support.  The parser's equality_oper and ordering_oper
routines also use the cache.  Change the operator search algorithms to look
for appropriate btree or hash index opclasses, instead of assuming operators
named '<' or '=' have the right semantics.  (ORDER BY ASC/DESC now also look
at opclasses, instead of assuming '<' and '>' are the right things.)  Add
several more index opclasses so that there is no regression in functionality
for base datatypes.  initdb forced due to catalog additions.
40 files changed:
src/backend/commands/analyze.c
src/backend/commands/indexcmds.c
src/backend/commands/opclasscmds.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planner.c
src/backend/parser/gram.y
src/backend/parser/parse_clause.c
src/backend/parser/parse_oper.c
src/backend/utils/adt/acl.c
src/backend/utils/adt/arrayfuncs.c
src/backend/utils/adt/cash.c
src/backend/utils/adt/nabstime.c
src/backend/utils/adt/ri_triggers.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/cache/Makefile
src/backend/utils/cache/lsyscache.c
src/backend/utils/cache/typcache.c [new file with mode: 0644]
src/backend/utils/sort/tuplesort.c
src/include/catalog/catversion.h
src/include/catalog/pg_amop.h
src/include/catalog/pg_amproc.h
src/include/catalog/pg_opclass.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/nodes/nodes.h
src/include/nodes/parsenodes.h
src/include/parser/parse_clause.h
src/include/parser/parse_oper.h
src/include/utils/acl.h
src/include/utils/builtins.h
src/include/utils/cash.h
src/include/utils/lsyscache.h
src/include/utils/typcache.h [new file with mode: 0644]
src/test/regress/expected/circle.out
src/test/regress/expected/geometry.out
src/test/regress/expected/geometry_1.out
src/test/regress/sql/circle.sql
src/test/regress/sql/geometry.sql