postgresql/src/include
Tom Lane ad50934eaa Fix alignment and toasting bugs in range types.
A range type whose element type has 'd' alignment must have 'd' alignment
itself, else there is no guarantee that the element value can be used
in-place.  (Because range_deserialize uses att_align_pointer which forcibly
aligns the given pointer, violations of this rule did not lead to SIGBUS
but rather to garbage data being extracted, as in one of the added
regression test cases.)

Also, you can't put a toast pointer inside a range datum, since the
referenced value could disappear with the range datum still present.
For consistency with the handling of arrays and records, I also forced
decompression of in-line-compressed bound values.  It would work to store
them as-is, but our policy is to avoid situations that might result in
double compression.

Add assorted regression tests for this, and bump catversion because of
fixes to built-in pg_type entries.

Also some marginal cleanup of inconsistent/unnecessary error checks.
2011-11-14 21:42:04 -05:00
..
access Wakeup WALWriter as needed for asynchronous commit performance. 2011-11-13 09:00:57 +00:00
bootstrap Split work of bgwriter between 2 processes: bgwriter and checkpointer. 2011-11-01 17:14:47 +00:00
catalog Fix alignment and toasting bugs in range types. 2011-11-14 21:42:04 -05:00
commands Support range data types. 2011-11-03 13:42:15 +02:00
datatype Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
executor Rearrange the implementation of index-only scans. 2011-10-11 14:21:30 -04:00
foreign pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
lib Add missing format attributes 2011-09-10 23:12:46 +03:00
libpq Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
mb Improve make_greater_string() with encoding-specific incrementers. 2011-10-29 14:22:20 -04:00
nodes Support range data types. 2011-11-03 13:42:15 +02:00
optimizer Wrap appendrel member outputs in PlaceHolderVars in additional cases. 2011-11-08 21:14:21 -05:00
parser Support synchronization of snapshots through an export/import procedure. 2011-10-22 18:23:30 -04:00
port Revert "Force use of "%I64d" format for 64 bit ints on MinGW." 2011-04-27 14:55:18 -04:00
portability Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postmaster Refactor xlog.c to create src/backend/postmaster/startup.c 2011-11-02 14:25:01 +00:00
regex Teach regular expression operators to honor collations. 2011-04-10 18:03:09 -04:00
replication Split walsender.h in public/private headers 2011-09-13 21:42:49 -03:00
rewrite Try to acquire relation locks in RangeVarGetRelid. 2011-07-08 22:19:30 -04:00
snowball Add markers for skips. 2011-08-26 18:15:13 -04:00
storage Revert removal of trace_userlocks, because userlocks aren't gone. 2011-11-10 17:54:27 -05:00
tcop Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
tsearch Improve comments for TSLexeme data structure. 2011-11-03 18:47:28 -04:00
utils Fix copyright notices, other minor editing in new range-types code. 2011-11-14 13:59:34 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
c.h Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking printf type functions. 2011-04-28 10:56:14 -04:00
fmgr.h Pgindent run before 9.1 beta2. 2011-06-09 14:32:50 -04:00
funcapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getaddrinfo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getopt_long.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
Makefile Fix server header file installation with vpath builds 2011-11-10 20:52:54 +02:00
miscadmin.h Add postmaster/postgres undocumented -b option for binary upgrades. 2011-04-25 12:00:21 -04:00
pg_config.h.in Make pgbench use erand48() rather than random(). 2011-08-03 16:26:40 -04:00
pg_config.h.win32 Correct the lie in pg_config.h.win32 about having inttypes.h. 2011-08-08 08:52:05 -04:00
pg_config_manual.h Revert accidental change to pg_config_manual.h. 2011-10-09 22:20:44 -04:00
pg_trace.h Add markers. 2011-08-26 18:15:14 -04:00
pgstat.h In COPY, insert tuples to the heap in batches. 2011-11-09 10:54:41 +02:00
pgtime.h Simplify handling of the timezone GUC by making initdb choose the default. 2011-09-09 17:59:11 -04:00
port.h setlocale() on Windows doesn't work correctly if the locale name contains 2011-09-01 11:08:32 +03:00
postgres.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postgres_ext.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
postgres_fe.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
rusagestub.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
windowapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00