diff options
author | Nathan Bossart <nathan@postgresql.org> | 2024-08-12 10:35:06 -0500 |
---|---|---|
committer | Nathan Bossart <nathan@postgresql.org> | 2024-08-12 10:35:06 -0500 |
commit | 760162fedb4f7ee6f0167cc6acfadee6ccb6be66 (patch) | |
tree | 95564338177e250a12e506473c4e0fe62f9daa7d /src/test | |
parent | 313df8f5adde186b0052d7d634a6d0ae41852de0 (diff) | |
download | postgresql-760162fedb4f7ee6f0167cc6acfadee6ccb6be66.tar.gz postgresql-760162fedb4f7ee6f0167cc6acfadee6ccb6be66.zip |
Add user-callable CRC functions.
We've had code for CRC-32 and CRC-32C for some time (for WAL
records, etc.), but there was no way for users to call it, despite
apparent popular demand. The new crc32() and crc32c() functions
accept bytea input and return bigint (to avoid returning negative
values).
Bumps catversion.
Author: Aleksander Alekseev
Reviewed-by: Peter Eisentraut, Tom Lane
Discussion: https://postgr.es/m/CAJ7c6TNMTGnqnG%3DyXXUQh9E88JDckmR45H2Q%2B%3DucaCLMOW1QQw%40mail.gmail.com
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/opr_sanity.out | 2 | ||||
-rw-r--r-- | src/test/regress/expected/strings.out | 27 | ||||
-rw-r--r-- | src/test/regress/sql/strings.sql | 9 |
3 files changed, 38 insertions, 0 deletions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out index 9d047b21b88..0d734169f11 100644 --- a/src/test/regress/expected/opr_sanity.out +++ b/src/test/regress/expected/opr_sanity.out @@ -874,6 +874,8 @@ xid8ne(xid8,xid8) xid8cmp(xid8,xid8) uuid_extract_timestamp(uuid) uuid_extract_version(uuid) +crc32(bytea) +crc32c(bytea) -- restore normal output mode \a\t -- List of functions used by libpq's fe-lobj.c diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index 52b69a107fb..b65bb2d5368 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -2256,6 +2256,33 @@ SELECT sha512('The quick brown fox jumps over the lazy dog.'); (1 row) -- +-- CRC +-- +SELECT crc32(''); + crc32 +------- + 0 +(1 row) + +SELECT crc32('The quick brown fox jumps over the lazy dog.'); + crc32 +------------ + 1368401385 +(1 row) + +SELECT crc32c(''); + crc32c +-------- + 0 +(1 row) + +SELECT crc32c('The quick brown fox jumps over the lazy dog.'); + crc32c +----------- + 419469235 +(1 row) + +-- -- encode/decode -- SELECT encode('\x1234567890abcdef00', 'hex'); diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index 39596789929..8e0f3a0e75f 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -720,6 +720,15 @@ SELECT sha512(''); SELECT sha512('The quick brown fox jumps over the lazy dog.'); -- +-- CRC +-- +SELECT crc32(''); +SELECT crc32('The quick brown fox jumps over the lazy dog.'); + +SELECT crc32c(''); +SELECT crc32c('The quick brown fox jumps over the lazy dog.'); + +-- -- encode/decode -- SELECT encode('\x1234567890abcdef00', 'hex'); |