pgsql: Support varlena fields with single-byte headers and unaligned - Mailing list pgsql-committers

From tgl@postgresql.org (Tom Lane)
Subject pgsql: Support varlena fields with single-byte headers and unaligned
Date
Msg-id 20070406042144.A47E39FB6BC@postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
Support varlena fields with single-byte headers and unaligned storage.

This commit breaks any code that assumes that the mere act of forming a tuple
(without writing it to disk) does not "toast" any fields.  While all available
regression tests pass, I'm not totally sure that we've fixed every nook and
cranny, especially in contrib.

Greg Stark with some help from Tom Lane

Modified Files:
--------------
    pgsql:
        configure (r1.540 -> r1.541)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/configure.diff?r1=1.540&r2=1.541)
        configure.in (r1.507 -> r1.508)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/configure.in.diff?r1=1.507&r2=1.508)
    pgsql/contrib/dblink:
        dblink.c (r1.62 -> r1.63)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/dblink/dblink.c.diff?r1=1.62&r2=1.63)
    pgsql/contrib/hstore:
        hstore_gist.c (r1.4 -> r1.5)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/hstore/hstore_gist.c.diff?r1=1.4&r2=1.5)
    pgsql/contrib/intarray:
        _int_gist.c (r1.16 -> r1.17)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/intarray/_int_gist.c.diff?r1=1.16&r2=1.17)
    pgsql/contrib/pg_trgm:
        trgm_gist.c (r1.9 -> r1.10)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/pg_trgm/trgm_gist.c.diff?r1=1.9&r2=1.10)
    pgsql/contrib/tsearch2:
        ts_cfg.c (r1.23 -> r1.24)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/tsearch2/ts_cfg.c.diff?r1=1.23&r2=1.24)
    pgsql/doc/src/sgml:
        storage.sgml (r1.16 -> r1.17)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/storage.sgml.diff?r1=1.16&r2=1.17)
    pgsql/src/backend/access/common:
        heaptuple.c (r1.116 -> r1.117)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/common/heaptuple.c.diff?r1=1.116&r2=1.117)
        indextuple.c (r1.81 -> r1.82)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/common/indextuple.c.diff?r1=1.81&r2=1.82)
    pgsql/src/backend/access/heap:
        tuptoaster.c (r1.73 -> r1.74)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/tuptoaster.c.diff?r1=1.73&r2=1.74)
    pgsql/src/backend/catalog:
        toasting.c (r1.5 -> r1.6)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/toasting.c.diff?r1=1.5&r2=1.6)
    pgsql/src/backend/commands:
        analyze.c (r1.103 -> r1.104)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/analyze.c.diff?r1=1.103&r2=1.104)
    pgsql/src/backend/executor:
        execQual.c (r1.216 -> r1.217)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.216&r2=1.217)
    pgsql/src/backend/storage/large_object:
        inv_api.c (r1.123 -> r1.124)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/large_object/inv_api.c.diff?r1=1.123&r2=1.124)
    pgsql/src/backend/utils/adt:
        arrayfuncs.c (r1.138 -> r1.139)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/arrayfuncs.c.diff?r1=1.138&r2=1.139)
        datum.c (r1.34 -> r1.35)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/datum.c.diff?r1=1.34&r2=1.35)
        network.c (r1.68 -> r1.69)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/network.c.diff?r1=1.68&r2=1.69)
        pg_lzcompress.c (r1.25 -> r1.26)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/pg_lzcompress.c.diff?r1=1.25&r2=1.26)
        varchar.c (r1.122 -> r1.123)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/varchar.c.diff?r1=1.122&r2=1.123)
        varlena.c (r1.155 -> r1.156)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/varlena.c.diff?r1=1.155&r2=1.156)
        xml.c (r1.41 -> r1.42)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/xml.c.diff?r1=1.41&r2=1.42)
    pgsql/src/backend/utils/fmgr:
        fmgr.c (r1.105 -> r1.106)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/fmgr.c.diff?r1=1.105&r2=1.106)
    pgsql/src/backend/utils/init:
        flatfiles.c (r1.24 -> r1.25)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/init/flatfiles.c.diff?r1=1.24&r2=1.25)
    pgsql/src/include/access:
        heapam.h (r1.121 -> r1.122)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/heapam.h.diff?r1=1.121&r2=1.122)
        htup.h (r1.92 -> r1.93)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/htup.h.diff?r1=1.92&r2=1.93)
        tupmacs.h (r1.32 -> r1.33)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/tupmacs.h.diff?r1=1.32&r2=1.33)
        tuptoaster.h (r1.34 -> r1.35)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/tuptoaster.h.diff?r1=1.34&r2=1.35)
    pgsql/src/include/catalog:
        catversion.h (r1.399 -> r1.400)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.399&r2=1.400)
        pg_type.h (r1.181 -> r1.182)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_type.h.diff?r1=1.181&r2=1.182)
    pgsql/src/include:
        fmgr.h (r1.49 -> r1.50)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/fmgr.h.diff?r1=1.49&r2=1.50)
        pg_config.h.in (r1.113 -> r1.114)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/pg_config.h.in.diff?r1=1.113&r2=1.114)
        postgres.h (r1.78 -> r1.79)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/postgres.h.diff?r1=1.78&r2=1.79)
    pgsql/src/include/utils:
        inet.h (r1.25 -> r1.26)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/inet.h.diff?r1=1.25&r2=1.26)
    pgsql/src/test/regress/expected:
        rowtypes.out (r1.10 -> r1.11)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/rowtypes.out.diff?r1=1.10&r2=1.11)
        strings.out (r1.30 -> r1.31)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/strings.out.diff?r1=1.30&r2=1.31)
    pgsql/src/test/regress/sql:
        rowtypes.sql (r1.7 -> r1.8)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/rowtypes.sql.diff?r1=1.7&r2=1.8)
        strings.sql (r1.19 -> r1.20)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/strings.sql.diff?r1=1.19&r2=1.20)

pgsql-committers by date:

Previous
From: markir@pgfoundry.org (User Markir)
Date:
Subject: bizgres - bizgres: Make bmcostestimate call genericcostestimate again,
Next
From: tgl@postgresql.org (Tom Lane)
Date:
Subject: pgsql: Now that core functionality is depending on autoconf's