postgresql/src/include
Heikki Linnakangas 5028f22f6e Switch to CRC-32C in WAL and other places.
The old algorithm was found to not be the usual CRC-32 algorithm, used by
Ethernet et al. We were using a non-reflected lookup table with code meant
for a reflected lookup table. That's a strange combination that AFAICS does
not correspond to any bit-wise CRC calculation, which makes it difficult to
reason about its properties. Although it has worked well in practice, seems
safer to use a well-known algorithm.

Since we're changing the algorithm anyway, we might as well choose a
different polynomial. The Castagnoli polynomial has better error-correcting
properties than the traditional CRC-32 polynomial, even if we had
implemented it correctly. Another reason for picking that is that some new
CPUs have hardware support for calculating CRC-32C, but not CRC-32, let
alone our strange variant of it. This patch doesn't add any support for such
hardware, but a future patch could now do that.

The old algorithm is kept around for tsquery and pg_trgm, which use the
values in indexes that need to remain compatible so that pg_upgrade works.
While we're at it, share the old lookup table for CRC-32 calculation
between hstore, ltree and core. They all use the same table, so might as
well.
2014-11-04 11:39:48 +02:00
..
access Switch to CRC-32C in WAL and other places. 2014-11-04 11:39:48 +02:00
bootstrap Add some noreturn attributes based on compiler recommendations 2014-08-13 22:40:48 -04:00
catalog Switch to CRC-32C in WAL and other places. 2014-11-04 11:39:48 +02:00
commands Test IsInTransactionChain, not IsTransactionBlock, in vac_update_relstats. 2014-10-30 13:04:06 -04:00
common pgindent run for 9.4 2014-05-06 12:12:18 -04:00
datatype pgindent run for 9.4 2014-05-06 12:12:18 -04:00
executor Increase number of hash join buckets for underestimate. 2014-10-13 10:16:36 -05:00
foreign Implement IMPORT FOREIGN SCHEMA. 2014-07-10 15:01:43 -04:00
lib pgindent run for 9.4 2014-05-06 12:12:18 -04:00
libpq pqmq.h needs to include something that defines StringInfo. 2014-11-03 12:24:42 -05:00
mb pgindent run for 9.4 2014-05-06 12:12:18 -04:00
nodes Implement SKIP LOCKED for row-level locks 2014-10-07 17:23:34 -03:00
optimizer Fix some more problems with nested append relations. 2014-10-01 19:31:12 -04:00
parser Implement SKIP LOCKED for row-level locks 2014-10-07 17:23:34 -03:00
port Add native compiler and memory barriers for solaris studio. 2014-10-25 11:11:39 +02:00
portability pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postmaster Add some noreturn attributes based on compiler recommendations 2014-08-13 22:40:48 -04:00
regex pgindent run for 9.4 2014-05-06 12:12:18 -04:00
replication Add GUC to enable logging of replication commands. 2014-09-13 02:55:45 +09:00
rewrite Row-Level Security Policies (RLS) 2014-09-19 11:18:35 -04:00
snowball pgindent run for 9.4 2014-05-06 12:12:18 -04:00
storage Extend dsm API with a new function dsm_unpin_mapping. 2014-10-30 14:55:23 -04:00
tcop pgindent run for 9.4 2014-05-06 12:12:18 -04:00
tsearch Allow opclasses to provide tri-valued GIN consistent functions. 2014-03-12 17:51:30 +02:00
utils Switch to CRC-32C in WAL and other places. 2014-11-04 11:39:48 +02:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
c.h Add a basic atomic ops API abstracting away platform/architecture details. 2014-09-25 23:49:05 +02:00
fmgr.h Add PG_RETURN_UINT16 macro. 2014-08-06 16:11:43 -04:00
funcapi.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
getaddrinfo.h Fix assorted issues in client host name lookup. 2014-04-02 17:11:24 -04:00
getopt_long.h Add support for optional_argument to our own getopt_long() implementation. 2014-09-10 17:21:50 +02:00
Makefile Install all headers for the new atomics API. 2014-10-02 16:52:21 +02:00
miscadmin.h Add a function to get the authenticated user ID. 2014-10-23 08:18:45 -04:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Rename CACHE_LINE_SIZE to PG_CACHE_LINE_SIZE. 2014-10-01 12:17:03 +02:00
pg_config.h.in Add native compiler and memory barriers for solaris studio. 2014-10-25 11:11:39 +02:00
pg_config.h.win32 Add a basic atomic ops API abstracting away platform/architecture details. 2014-09-25 23:49:05 +02:00
pg_getopt.h Fix comment. 2014-05-08 12:42:56 -04:00
pg_trace.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pgstat.h Save pg_stat_statements statistics file into $PGDATA/pg_stat directory at shutdown. 2014-06-04 12:09:45 +09:00
pgtar.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pgtime.h Support timezone abbreviations that sometimes change. 2014-10-16 15:22:10 -04:00
port.h Declare mkdtemp() only if we're providing it. 2014-10-17 22:55:20 -04:00
postgres_ext.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postgres_fe.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
postgres.h Fix typos in comments. 2014-07-07 19:39:42 +09:00
rusagestub.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
windowapi.h Update copyright for 2014 2014-01-07 16:05:30 -05:00