diff --git a/src/test/regress/expected/inet.out b/src/test/regress/expected/inet.out index be9427eb6b817..caf91a7adbc89 100644 --- a/src/test/regress/expected/inet.out +++ b/src/test/regress/expected/inet.out @@ -790,3 +790,91 @@ SELECT inet_merge(c, i) FROM INET_TBL WHERE inet_same_family(c, i); ::/24 (17 rows) +-- tests to specifically check some of the potentially sharp edges when it +-- comes to SortSupport implementation +SELECT i FROM (VALUES + ('0.0.0.0/0'::inet), + ('0.0.0.1/0'::inet), + ('0.0.0.0/1'::inet), + ('0.0.0.0/32'::inet), + ('0.0.0.1/1'::inet), + ('192.168.1.4/0'::inet), + ('192.168.1.5/0'::inet), + ('255.255.255.255/0'::inet), + ('255.255.255.255/1'::inet), + ('192.168.1.3/1'::inet), + ('192.168.1.1/5'::inet), + ('192.168.1.255/5'::inet), + ('192.168.1.1/6'::inet), + ('192.168.1.255/6'::inet), + ('192.168.1.1/23'::inet), + ('192.168.1.2/23'::inet), + ('192.168.1.3/23'::inet), + ('192.168.1.0/24'::inet), + ('192.168.1.0/25'::inet), + ('255.255.255.255/31'::inet), + ('255.255.255.254/32'::inet), + ('255.255.255.255/32'::inet), + ('0000:0000:0000:0000:0000:0000:0000:0000/0'::inet), + ('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/0'::inet), + ('0000:0000:0000:0000:0000:0000:0000:0000/128'::inet), + ('127::1'::inet), + ('127::2'::inet), + ('8000:0000:0000:0000:0000:0000:0000:0000/1'::inet), + ('ffff:83e7:f118:57dc:6093:6d92:689d:58cf/70'::inet), + ('ffff:84b0:4775:536e:c3ed:7116:a6d6:34f0/44'::inet), + ('ffff:8566:f84:5867:47f1:7867:d2ba:8a1a/69'::inet), + ('ffff:8883:f028:7d2:4d68:d510:7d6b:ac43/73'::inet), + ('ffff:8ae8:7c14:65b3:196:8e4a:89ae:fb30/89'::inet), + ('ffff:8dd0:646:694c:7c16:7e35:6a26:171/104'::inet), + ('ffff:8eef:cbf:700:eda3:ae32:f4b4:318b/121'::inet), + ('ffff:90e7:e744:664:a93:8efe:1f25:7663/122'::inet), + ('ffff:9597:c69c:8b24:57a:8639:ec78:6026/111'::inet), + ('ffff:9e86:79ea:f16e:df31:8e4d:7783:532e/88'::inet), + ('ffff:a0c7:82d3:24de:f762:6e1f:316d:3fb2/23'::inet), + ('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128'::inet) +) AS i ORDER BY i; + i +---------------------------------------------- + (0.0.0.0/0) + (0.0.0.1/0) + (192.168.1.4/0) + (192.168.1.5/0) + (255.255.255.255/0) + (0.0.0.0/1) + (0.0.0.1/1) + (0.0.0.0) + (192.168.1.3/1) + (255.255.255.255/1) + (192.168.1.1/5) + (192.168.1.255/5) + (192.168.1.1/6) + (192.168.1.255/6) + (192.168.1.1/23) + (192.168.1.2/23) + (192.168.1.3/23) + (192.168.1.0/24) + (192.168.1.0/25) + (255.255.255.255/31) + (255.255.255.254) + (255.255.255.255) + (::/0) + (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/0) + (::) + (127::1) + (127::2) + (8000::/1) + (ffff:83e7:f118:57dc:6093:6d92:689d:58cf/70) + (ffff:84b0:4775:536e:c3ed:7116:a6d6:34f0/44) + (ffff:8566:f84:5867:47f1:7867:d2ba:8a1a/69) + (ffff:8883:f028:7d2:4d68:d510:7d6b:ac43/73) + (ffff:8ae8:7c14:65b3:196:8e4a:89ae:fb30/89) + (ffff:8dd0:646:694c:7c16:7e35:6a26:171/104) + (ffff:8eef:cbf:700:eda3:ae32:f4b4:318b/121) + (ffff:90e7:e744:664:a93:8efe:1f25:7663/122) + (ffff:9597:c69c:8b24:57a:8639:ec78:6026/111) + (ffff:9e86:79ea:f16e:df31:8e4d:7783:532e/88) + (ffff:a0c7:82d3:24de:f762:6e1f:316d:3fb2/23) + (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff) +(40 rows) + diff --git a/src/test/regress/sql/inet.sql b/src/test/regress/sql/inet.sql index 880e115360d98..3b49b5a046186 100644 --- a/src/test/regress/sql/inet.sql +++ b/src/test/regress/sql/inet.sql @@ -146,3 +146,48 @@ INSERT INTO INET_TBL (c, i) VALUES ('10', '10::/8'); SELECT inet_merge(c, i) FROM INET_TBL; -- fix it by inet_same_family() condition SELECT inet_merge(c, i) FROM INET_TBL WHERE inet_same_family(c, i); + +-- tests to specifically check some of the potentially sharp edges when it +-- comes to SortSupport implementation +SELECT i FROM (VALUES + ('0.0.0.0/0'::inet), + ('0.0.0.1/0'::inet), + ('0.0.0.0/1'::inet), + ('0.0.0.0/32'::inet), + ('0.0.0.1/1'::inet), + ('192.168.1.4/0'::inet), + ('192.168.1.5/0'::inet), + ('255.255.255.255/0'::inet), + ('255.255.255.255/1'::inet), + ('192.168.1.3/1'::inet), + ('192.168.1.1/5'::inet), + ('192.168.1.255/5'::inet), + ('192.168.1.1/6'::inet), + ('192.168.1.255/6'::inet), + ('192.168.1.1/23'::inet), + ('192.168.1.2/23'::inet), + ('192.168.1.3/23'::inet), + ('192.168.1.0/24'::inet), + ('192.168.1.0/25'::inet), + ('255.255.255.255/31'::inet), + ('255.255.255.254/32'::inet), + ('255.255.255.255/32'::inet), + ('0000:0000:0000:0000:0000:0000:0000:0000/0'::inet), + ('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/0'::inet), + ('0000:0000:0000:0000:0000:0000:0000:0000/128'::inet), + ('127::1'::inet), + ('127::2'::inet), + ('8000:0000:0000:0000:0000:0000:0000:0000/1'::inet), + ('ffff:83e7:f118:57dc:6093:6d92:689d:58cf/70'::inet), + ('ffff:84b0:4775:536e:c3ed:7116:a6d6:34f0/44'::inet), + ('ffff:8566:f84:5867:47f1:7867:d2ba:8a1a/69'::inet), + ('ffff:8883:f028:7d2:4d68:d510:7d6b:ac43/73'::inet), + ('ffff:8ae8:7c14:65b3:196:8e4a:89ae:fb30/89'::inet), + ('ffff:8dd0:646:694c:7c16:7e35:6a26:171/104'::inet), + ('ffff:8eef:cbf:700:eda3:ae32:f4b4:318b/121'::inet), + ('ffff:90e7:e744:664:a93:8efe:1f25:7663/122'::inet), + ('ffff:9597:c69c:8b24:57a:8639:ec78:6026/111'::inet), + ('ffff:9e86:79ea:f16e:df31:8e4d:7783:532e/88'::inet), + ('ffff:a0c7:82d3:24de:f762:6e1f:316d:3fb2/23'::inet), + ('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128'::inet) +) AS i ORDER BY i;