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

Lists: pgsql-committers
From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Support varlena fields with single-byte headers and unaligned
Date: 2007-04-06 04:21:44
Message-ID: 20070406042144.A47E39FB6BC@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: 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)