pgsql: Push index operator lossiness determination down to GIST/GIN

Поиск
Список
Период
Сортировка
От tgl@postgresql.org (Tom Lane)
Тема pgsql: Push index operator lossiness determination down to GIST/GIN
Дата
Msg-id 20080414170534.3DA9A7559CC@cvs.postgresql.org
обсуждение исходный текст
Список 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 по дате отправления:

Предыдущее
От: alvherre@postgresql.org (Alvaro Herrera)
Дата:
Сообщение: pgsql: Fix indentation in new REFERENCED BY psql output, per Brendan
Следующее
От: adunstan@postgresql.org (Andrew Dunstan)
Дата:
Сообщение: pgsql: Make integer_datetimes the default for MSVC even if not mentioned