pgsql: Push index operator lossiness determination down to GIST/GIN - Mailing list pgsql-committers
From | tgl@postgresql.org (Tom Lane) |
---|---|
Subject | pgsql: Push index operator lossiness determination down to GIST/GIN |
Date | |
Msg-id | 20080414170534.3DA9A7559CC@cvs.postgresql.org Whole thread Raw |
List | pgsql-committers |
Log Message: ----------- Push index operator lossiness determination down to GIST/GIN opclass "consistent" functions, and remove pg_amop.opreqcheck, as per recent discussion. The main immediate benefit of this is that we no longer need 8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery searches on GIN indexes. In future it should be possible to optimize some other queries better than is done now, by detecting at runtime whether the index match is exact or not. Tom Lane, after an idea of Heikki's, and with some help from Teodor. Modified Files: -------------- pgsql/contrib/btree_gist: btree_bit.c (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_bit.c?r1=1.7&r2=1.8) btree_bytea.c (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_bytea.c?r1=1.6&r2=1.7) btree_cash.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_cash.c?r1=1.5&r2=1.6) btree_date.c (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_date.c?r1=1.4&r2=1.5) btree_float4.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_float4.c?r1=1.5&r2=1.6) btree_float8.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_float8.c?r1=1.5&r2=1.6) btree_gist.sql.in (r1.19 -> r1.20) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_gist.sql.in?r1=1.19&r2=1.20) btree_inet.c (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_inet.c?r1=1.7&r2=1.8) btree_int2.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_int2.c?r1=1.5&r2=1.6) btree_int4.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_int4.c?r1=1.5&r2=1.6) btree_int8.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_int8.c?r1=1.5&r2=1.6) btree_interval.c (r1.9 -> r1.10) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_interval.c?r1=1.9&r2=1.10) btree_macaddr.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_macaddr.c?r1=1.5&r2=1.6) btree_numeric.c (r1.9 -> r1.10) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_numeric.c?r1=1.9&r2=1.10) btree_oid.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_oid.c?r1=1.5&r2=1.6) btree_text.c (r1.9 -> r1.10) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_text.c?r1=1.9&r2=1.10) btree_time.c (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_time.c?r1=1.12&r2=1.13) btree_ts.c (r1.13 -> r1.14) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/btree_ts.c?r1=1.13&r2=1.14) uninstall_btree_gist.sql (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/btree_gist/uninstall_btree_gist.sql?r1=1.4&r2=1.5) pgsql/contrib/cube: cube.c (r1.34 -> r1.35) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/cube/cube.c?r1=1.34&r2=1.35) cube.sql.in (r1.23 -> r1.24) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/cube/cube.sql.in?r1=1.23&r2=1.24) uninstall_cube.sql (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/cube/uninstall_cube.sql?r1=1.7&r2=1.8) pgsql/contrib/hstore: hstore.sql.in (r1.8 -> r1.9) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/hstore/hstore.sql.in?r1=1.8&r2=1.9) hstore_gin.c (r1.2 -> r1.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/hstore/hstore_gin.c?r1=1.2&r2=1.3) hstore_gist.c (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/hstore/hstore_gist.c?r1=1.7&r2=1.8) uninstall_hstore.sql (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/hstore/uninstall_hstore.sql?r1=1.6&r2=1.7) pgsql/contrib/intarray: _int.sql.in (r1.27 -> r1.28) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/_int.sql.in?r1=1.27&r2=1.28) _int_gin.c (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/_int_gin.c?r1=1.5&r2=1.6) _int_gist.c (r1.19 -> r1.20) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/_int_gist.c?r1=1.19&r2=1.20) _intbig_gist.c (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/_intbig_gist.c?r1=1.16&r2=1.17) uninstall__int.sql (r1.8 -> r1.9) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/uninstall__int.sql?r1=1.8&r2=1.9) pgsql/contrib/ltree: _ltree_gist.c (r1.22 -> r1.23) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/ltree/_ltree_gist.c?r1=1.22&r2=1.23) ltree.sql.in (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/ltree/ltree.sql.in?r1=1.16&r2=1.17) ltree_gist.c (r1.22 -> r1.23) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/ltree/ltree_gist.c?r1=1.22&r2=1.23) uninstall_ltree.sql (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/ltree/uninstall_ltree.sql?r1=1.5&r2=1.6) pgsql/contrib/pg_trgm: pg_trgm.sql.in (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_trgm/pg_trgm.sql.in?r1=1.7&r2=1.8) trgm_gin.c (r1.2 -> r1.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_trgm/trgm_gin.c?r1=1.2&r2=1.3) trgm_gist.c (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_trgm/trgm_gist.c?r1=1.12&r2=1.13) uninstall_pg_trgm.sql (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_trgm/uninstall_pg_trgm.sql?r1=1.5&r2=1.6) pgsql/contrib/seg: seg.c (r1.19 -> r1.20) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/seg/seg.c?r1=1.19&r2=1.20) seg.sql.in (r1.16 -> r1.17) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/seg/seg.sql.in?r1=1.16&r2=1.17) uninstall_seg.sql (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/seg/uninstall_seg.sql?r1=1.5&r2=1.6) pgsql/contrib/tsearch2: tsearch2.sql.in (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/tsearch2.sql.in?r1=1.4&r2=1.5) pgsql/doc/src/sgml: catalogs.sgml (r2.164 -> r2.165) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml?r1=2.164&r2=2.165) func.sgml (r1.429 -> r1.430) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/func.sgml?r1=1.429&r2=1.430) gin.sgml (r2.13 -> r2.14) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/gin.sgml?r1=2.13&r2=2.14) gist.sgml (r1.29 -> r1.30) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/gist.sgml?r1=1.29&r2=1.30) indexam.sgml (r2.25 -> r2.26) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/indexam.sgml?r1=2.25&r2=2.26) textsearch.sgml (r1.42 -> r1.43) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/textsearch.sgml?r1=1.42&r2=1.43) xindex.sgml (r1.61 -> r1.62) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/xindex.sgml?r1=1.61&r2=1.62) pgsql/doc/src/sgml/ref: alter_opfamily.sgml (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/alter_opfamily.sgml?r1=1.3&r2=1.4) create_opclass.sgml (r1.21 -> r1.22) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/create_opclass.sgml?r1=1.21&r2=1.22) pgsql/src/backend/access/gin: ginarrayproc.c (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginarrayproc.c?r1=1.12&r2=1.13) ginget.c (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gin/ginget.c?r1=1.12&r2=1.13) pgsql/src/backend/access/gist: gistget.c (r1.71 -> r1.72) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistget.c?r1=1.71&r2=1.72) gistproc.c (r1.13 -> r1.14) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistproc.c?r1=1.13&r2=1.14) pgsql/src/backend/commands: opclasscmds.c (r1.59 -> r1.60) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/opclasscmds.c?r1=1.59&r2=1.60) pgsql/src/backend/nodes: copyfuncs.c (r1.391 -> r1.392) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c?r1=1.391&r2=1.392) equalfuncs.c (r1.320 -> r1.321) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c?r1=1.320&r2=1.321) pgsql/src/backend/parser: gram.y (r2.611 -> r2.612) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y?r1=2.611&r2=2.612) pgsql/src/backend/utils/adt: tsginidx.c (r1.10 -> r1.11) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/tsginidx.c?r1=1.10&r2=1.11) tsgistidx.c (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/tsgistidx.c?r1=1.7&r2=1.8) tsquery_gist.c (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/tsquery_gist.c?r1=1.4&r2=1.5) pgsql/src/bin/pg_dump: pg_dump.c (r1.487 -> r1.488) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.c?r1=1.487&r2=1.488) pgsql/src/include/catalog: catversion.h (r1.447 -> r1.448) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h?r1=1.447&r2=1.448) pg_amop.h (r1.85 -> r1.86) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_amop.h?r1=1.85&r2=1.86) pg_proc.h (r1.488 -> r1.489) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h?r1=1.488&r2=1.489) pgsql/src/include/nodes: parsenodes.h (r1.361 -> r1.362) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h?r1=1.361&r2=1.362)
pgsql-committers by date: