mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
9e3755ecb2
c.h #includes a number of core libc header files, such as <stdio.h>. There's no point in re-including these after having read postgres.h, postgres_fe.h, or c.h; so remove code that did so. While at it, also fix some places that were ignoring our standard pattern of "include postgres[_fe].h, then system header files, then other Postgres header files". While there's not any great magic in doing it that way rather than system headers last, it's silly to have just a few files deviating from the general pattern. (But I didn't attempt to enforce this globally, only in files I was touching anyway.) I'd be the first to say that this is mostly compulsive neatnik-ism, but over time it might save enough compile cycles to be useful.
40 lines
667 B
C
40 lines
667 B
C
/* contrib/ltree/crc32.c */
|
|
|
|
/*
|
|
* Implements CRC-32, as used in ltree.
|
|
*
|
|
* Note that the CRC is used in the on-disk format of GiST indexes, so we
|
|
* must stay backwards-compatible!
|
|
*/
|
|
|
|
#include "postgres.h"
|
|
|
|
#ifdef LOWER_NODE
|
|
#include <ctype.h>
|
|
#define TOLOWER(x) tolower((unsigned char) (x))
|
|
#else
|
|
#define TOLOWER(x) (x)
|
|
#endif
|
|
|
|
#include "utils/pg_crc.h"
|
|
#include "crc32.h"
|
|
|
|
unsigned int
|
|
ltree_crc32_sz(char *buf, int size)
|
|
{
|
|
pg_crc32 crc;
|
|
char *p = buf;
|
|
|
|
INIT_TRADITIONAL_CRC32(crc);
|
|
while (size > 0)
|
|
{
|
|
char c = (char) TOLOWER(*p);
|
|
|
|
COMP_TRADITIONAL_CRC32(crc, &c, 1);
|
|
size--;
|
|
p++;
|
|
}
|
|
FIN_TRADITIONAL_CRC32(crc);
|
|
return (unsigned int) crc;
|
|
}
|