diff options
author | Peter Eisentraut | 2021-03-06 18:25:45 +0000 |
---|---|---|
committer | Peter Eisentraut | 2021-03-06 18:28:05 +0000 |
commit | f9a0392e1cf36179c984f655a6589734b8dd7468 (patch) | |
tree | 72cf42d84a56ebc5cb99caa648bffe2c2110147a /src/test | |
parent | 30b26dfac7db2fc76dafaa8a6c459871bfcd100e (diff) |
Add bit_xor aggregate function
This can be used as a checksum for unordered sets. bit_and and bit_or
already exist.
Author: Alexey Bashtanov <bashtanov@imap.cc>
Reviewed-by: Ibrar Ahmed <ibrar.ahmad@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/9d4582ae-ecfc-3a13-2238-6ab5a37c1f41@imap.cc
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/aggregates.out | 23 | ||||
-rw-r--r-- | src/test/regress/sql/aggregates.sql | 12 |
2 files changed, 25 insertions, 10 deletions
diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out index 477fd1205c3..2c818d92534 100644 --- a/src/test/regress/expected/aggregates.out +++ b/src/test/regress/expected/aggregates.out @@ -742,11 +742,12 @@ CREATE TEMPORARY TABLE bitwise_test( -- empty case SELECT BIT_AND(i2) AS "?", - BIT_OR(i4) AS "?" + BIT_OR(i4) AS "?", + BIT_XOR(i8) AS "?" FROM bitwise_test; - ? | ? ----+--- - | + ? | ? | ? +---+---+--- + | | (1 row) COPY bitwise_test FROM STDIN NULL 'null'; @@ -762,11 +763,17 @@ SELECT BIT_OR(i8) AS "7", BIT_OR(i) AS "?", BIT_OR(x) AS "7", - BIT_OR(y) AS "1101" + BIT_OR(y) AS "1101", + BIT_XOR(i2) AS "5", + BIT_XOR(i4) AS "5", + BIT_XOR(i8) AS "5", + BIT_XOR(i) AS "?", + BIT_XOR(x) AS "7", + BIT_XOR(y) AS "1101" FROM bitwise_test; - 1 | 1 | 1 | ? | 0 | 0100 | 7 | 7 | 7 | ? | 7 | 1101 ----+---+---+---+---+------+---+---+---+---+---+------ - 1 | 1 | 1 | 1 | 0 | 0100 | 7 | 7 | 7 | 3 | 7 | 1101 + 1 | 1 | 1 | ? | 0 | 0100 | 7 | 7 | 7 | ? | 7 | 1101 | 5 | 5 | 5 | ? | 7 | 1101 +---+---+---+---+---+------+---+---+---+---+---+------+---+---+---+---+---+------ + 1 | 1 | 1 | 1 | 0 | 0100 | 7 | 7 | 7 | 3 | 7 | 1101 | 5 | 5 | 5 | 2 | 7 | 1101 (1 row) -- diff --git a/src/test/regress/sql/aggregates.sql b/src/test/regress/sql/aggregates.sql index 54f5cf7ecc4..f9579af19a9 100644 --- a/src/test/regress/sql/aggregates.sql +++ b/src/test/regress/sql/aggregates.sql @@ -212,7 +212,8 @@ CREATE TEMPORARY TABLE bitwise_test( -- empty case SELECT BIT_AND(i2) AS "?", - BIT_OR(i4) AS "?" + BIT_OR(i4) AS "?", + BIT_XOR(i8) AS "?" FROM bitwise_test; COPY bitwise_test FROM STDIN NULL 'null'; @@ -234,7 +235,14 @@ SELECT BIT_OR(i8) AS "7", BIT_OR(i) AS "?", BIT_OR(x) AS "7", - BIT_OR(y) AS "1101" + BIT_OR(y) AS "1101", + + BIT_XOR(i2) AS "5", + BIT_XOR(i4) AS "5", + BIT_XOR(i8) AS "5", + BIT_XOR(i) AS "?", + BIT_XOR(x) AS "7", + BIT_XOR(y) AS "1101" FROM bitwise_test; -- |