| -- |
| -- Test seg datatype |
| -- |
| CREATE EXTENSION seg; |
| -- Check whether any of our opclasses fail amvalidate |
| SELECT amname, opcname |
| FROM pg_opclass opc LEFT JOIN pg_am am ON am.oid = opcmethod |
| WHERE opc.oid >= 16384 AND NOT amvalidate(opc.oid); |
| amname | opcname |
| --------+--------- |
| (0 rows) |
| |
| -- |
| -- testing the input and output functions |
| -- |
| -- Any number |
| SELECT '1'::seg AS seg; |
| seg |
| ----- |
| 1 |
| (1 row) |
| |
| SELECT '-1'::seg AS seg; |
| seg |
| ----- |
| -1 |
| (1 row) |
| |
| SELECT '1.0'::seg AS seg; |
| seg |
| ----- |
| 1.0 |
| (1 row) |
| |
| SELECT '-1.0'::seg AS seg; |
| seg |
| ------ |
| -1.0 |
| (1 row) |
| |
| SELECT '1e7'::seg AS seg; |
| seg |
| ------- |
| 1e+07 |
| (1 row) |
| |
| SELECT '-1e7'::seg AS seg; |
| seg |
| -------- |
| -1e+07 |
| (1 row) |
| |
| SELECT '1.0e7'::seg AS seg; |
| seg |
| --------- |
| 1.0e+07 |
| (1 row) |
| |
| SELECT '-1.0e7'::seg AS seg; |
| seg |
| ---------- |
| -1.0e+07 |
| (1 row) |
| |
| SELECT '1e+7'::seg AS seg; |
| seg |
| ------- |
| 1e+07 |
| (1 row) |
| |
| SELECT '-1e+7'::seg AS seg; |
| seg |
| -------- |
| -1e+07 |
| (1 row) |
| |
| SELECT '1.0e+7'::seg AS seg; |
| seg |
| --------- |
| 1.0e+07 |
| (1 row) |
| |
| SELECT '-1.0e+7'::seg AS seg; |
| seg |
| ---------- |
| -1.0e+07 |
| (1 row) |
| |
| SELECT '1e-7'::seg AS seg; |
| seg |
| ------- |
| 1e-07 |
| (1 row) |
| |
| SELECT '-1e-7'::seg AS seg; |
| seg |
| -------- |
| -1e-07 |
| (1 row) |
| |
| SELECT '1.0e-7'::seg AS seg; |
| seg |
| --------- |
| 1.0e-07 |
| (1 row) |
| |
| SELECT '-1.0e-7'::seg AS seg; |
| seg |
| ---------- |
| -1.0e-07 |
| (1 row) |
| |
| SELECT '2e-6'::seg AS seg; |
| seg |
| ------- |
| 2e-06 |
| (1 row) |
| |
| SELECT '2e-5'::seg AS seg; |
| seg |
| ------- |
| 2e-05 |
| (1 row) |
| |
| SELECT '2e-4'::seg AS seg; |
| seg |
| -------- |
| 0.0002 |
| (1 row) |
| |
| SELECT '2e-3'::seg AS seg; |
| seg |
| ------- |
| 0.002 |
| (1 row) |
| |
| SELECT '2e-2'::seg AS seg; |
| seg |
| ------ |
| 0.02 |
| (1 row) |
| |
| SELECT '2e-1'::seg AS seg; |
| seg |
| ----- |
| 0.2 |
| (1 row) |
| |
| SELECT '2e-0'::seg AS seg; |
| seg |
| ----- |
| 2 |
| (1 row) |
| |
| SELECT '2e+0'::seg AS seg; |
| seg |
| ----- |
| 2 |
| (1 row) |
| |
| SELECT '2e+1'::seg AS seg; |
| seg |
| ----- |
| 2e1 |
| (1 row) |
| |
| SELECT '2e+2'::seg AS seg; |
| seg |
| ----- |
| 2e2 |
| (1 row) |
| |
| SELECT '2e+3'::seg AS seg; |
| seg |
| ----- |
| 2e3 |
| (1 row) |
| |
| SELECT '2e+4'::seg AS seg; |
| seg |
| ----- |
| 2e4 |
| (1 row) |
| |
| SELECT '2e+5'::seg AS seg; |
| seg |
| ------- |
| 2e+05 |
| (1 row) |
| |
| SELECT '2e+6'::seg AS seg; |
| seg |
| ------- |
| 2e+06 |
| (1 row) |
| |
| -- Significant digits preserved |
| SELECT '1'::seg AS seg; |
| seg |
| ----- |
| 1 |
| (1 row) |
| |
| SELECT '1.0'::seg AS seg; |
| seg |
| ----- |
| 1.0 |
| (1 row) |
| |
| SELECT '1.00'::seg AS seg; |
| seg |
| ------ |
| 1.00 |
| (1 row) |
| |
| SELECT '1.000'::seg AS seg; |
| seg |
| ------- |
| 1.000 |
| (1 row) |
| |
| SELECT '1.0000'::seg AS seg; |
| seg |
| -------- |
| 1.0000 |
| (1 row) |
| |
| SELECT '1.00000'::seg AS seg; |
| seg |
| --------- |
| 1.00000 |
| (1 row) |
| |
| SELECT '1.000000'::seg AS seg; |
| seg |
| --------- |
| 1.00000 |
| (1 row) |
| |
| SELECT '0.000000120'::seg AS seg; |
| seg |
| ---------- |
| 1.20e-07 |
| (1 row) |
| |
| SELECT '3.400e5'::seg AS seg; |
| seg |
| ----------- |
| 3.400e+05 |
| (1 row) |
| |
| -- Digits truncated |
| SELECT '12.34567890123456'::seg AS seg; |
| seg |
| --------- |
| 12.3457 |
| (1 row) |
| |
| -- Numbers with certainty indicators |
| SELECT '~6.5'::seg AS seg; |
| seg |
| ------ |
| ~6.5 |
| (1 row) |
| |
| SELECT '<6.5'::seg AS seg; |
| seg |
| ------ |
| <6.5 |
| (1 row) |
| |
| SELECT '>6.5'::seg AS seg; |
| seg |
| ------ |
| >6.5 |
| (1 row) |
| |
| SELECT '~ 6.5'::seg AS seg; |
| seg |
| ------ |
| ~6.5 |
| (1 row) |
| |
| SELECT '< 6.5'::seg AS seg; |
| seg |
| ------ |
| <6.5 |
| (1 row) |
| |
| SELECT '> 6.5'::seg AS seg; |
| seg |
| ------ |
| >6.5 |
| (1 row) |
| |
| -- Open intervals |
| SELECT '0..'::seg AS seg; |
| seg |
| ------ |
| 0 .. |
| (1 row) |
| |
| SELECT '0...'::seg AS seg; |
| seg |
| ------ |
| 0 .. |
| (1 row) |
| |
| SELECT '0 ..'::seg AS seg; |
| seg |
| ------ |
| 0 .. |
| (1 row) |
| |
| SELECT '0 ...'::seg AS seg; |
| seg |
| ------ |
| 0 .. |
| (1 row) |
| |
| SELECT '..0'::seg AS seg; |
| seg |
| ------ |
| .. 0 |
| (1 row) |
| |
| SELECT '...0'::seg AS seg; |
| seg |
| ------ |
| .. 0 |
| (1 row) |
| |
| SELECT '.. 0'::seg AS seg; |
| seg |
| ------ |
| .. 0 |
| (1 row) |
| |
| SELECT '... 0'::seg AS seg; |
| seg |
| ------ |
| .. 0 |
| (1 row) |
| |
| -- Finite intervals |
| SELECT '0 .. 1'::seg AS seg; |
| seg |
| -------- |
| 0 .. 1 |
| (1 row) |
| |
| SELECT '-1 .. 0'::seg AS seg; |
| seg |
| --------- |
| -1 .. 0 |
| (1 row) |
| |
| SELECT '-1 .. 1'::seg AS seg; |
| seg |
| --------- |
| -1 .. 1 |
| (1 row) |
| |
| -- (+/-) intervals |
| SELECT '0(+-)1'::seg AS seg; |
| seg |
| --------- |
| -1 .. 1 |
| (1 row) |
| |
| SELECT '0(+-)1.0'::seg AS seg; |
| seg |
| ------------- |
| -1.0 .. 1.0 |
| (1 row) |
| |
| SELECT '1.0(+-)0.005'::seg AS seg; |
| seg |
| ---------------- |
| 0.995 .. 1.005 |
| (1 row) |
| |
| SELECT '101(+-)1'::seg AS seg; |
| seg |
| ------------------ |
| 1.00e2 .. 1.02e2 |
| (1 row) |
| |
| -- incorrect number of significant digits in 99.0: |
| SELECT '100(+-)1'::seg AS seg; |
| seg |
| ---------------- |
| 99.0 .. 1.01e2 |
| (1 row) |
| |
| -- invalid input |
| SELECT ''::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT ''::seg AS seg; |
| ^ |
| DETAIL: syntax error at end of input |
| SELECT 'ABC'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT 'ABC'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "A" |
| SELECT '1ABC'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '1ABC'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "A" |
| SELECT '1.'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '1.'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "." |
| SELECT '1.....'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '1.....'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near ".." |
| SELECT '.1'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '.1'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "." |
| SELECT '1..2.'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '1..2.'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "." |
| SELECT '1 e7'::seg AS seg; |
| ERROR: bad seg representation |
| LINE 1: SELECT '1 e7'::seg AS seg; |
| ^ |
| DETAIL: syntax error at or near "e" |
| SELECT '1e700'::seg AS seg; |
| ERROR: "1e700" is out of range for type real |
| LINE 1: SELECT '1e700'::seg AS seg; |
| ^ |
| -- |
| -- testing the operators |
| -- |
| -- equality/inequality: |
| -- |
| SELECT '24 .. 33.20'::seg = '24 .. 33.20'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '24 .. 33.20'::seg = '24 .. 33.21'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '24 .. 33.20'::seg != '24 .. 33.20'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '24 .. 33.20'::seg != '24 .. 33.21'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- overlap |
| -- |
| SELECT '1'::seg && '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg && '2'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 ..'::seg && '0 ..'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '..0'::seg && '0..'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1 .. 0.1'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1 .. 0'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1 .. -0.0001'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 ..'::seg && '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg && '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg && '2'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 2'::seg && '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '2'::seg && '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg && '0 .. 2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- overlap on the left |
| -- |
| SELECT '1'::seg &< '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg &< '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg &< '2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '0 .. 0.5'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '0 .. 2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '1 .. 2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &< '2 .. 3'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- overlap on the right |
| -- |
| SELECT '0'::seg &> '1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg &> '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '2'::seg &> '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '2'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 0.5'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 2'::seg &> '0 .. 2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1 .. 2'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '2 .. 3'::seg &> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- left |
| -- |
| SELECT '1'::seg << '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg << '1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg << '2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '2'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '0 .. 0.5'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '0 .. 2'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '1 .. 2'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg << '2 .. 3'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- right |
| -- |
| SELECT '0'::seg >> '1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg >> '1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '2'::seg >> '1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '2'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. 0.5'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 1'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0 .. 2'::seg >> '0 .. 2'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '1 .. 2'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '2 .. 3'::seg >> '0 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- "contained in" (the left value belongs within the interval specified in the right value): |
| -- |
| SELECT '0'::seg <@ '0'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg <@ '0 ..'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg <@ '.. 0'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1 .. 1'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- "contains" (the left value contains the interval specified in the right value): |
| -- |
| SELECT '0'::seg @> '0'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '0 .. '::seg <@ '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '.. 0'::seg <@ '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '-1 .. 1'::seg <@ '0'::seg AS bool; |
| bool |
| ------ |
| f |
| (1 row) |
| |
| SELECT '0'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '-1'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| SELECT '1'::seg <@ '-1 .. 1'::seg AS bool; |
| bool |
| ------ |
| t |
| (1 row) |
| |
| -- Load some example data and build the index |
| -- |
| CREATE TABLE test_seg (s seg); |
| NOTICE: Table doesn't have 'DISTRIBUTED BY' clause, and no column type is suitable for a distribution key. Creating a NULL policy entry. |
| \copy test_seg from 'data/test_seg.data' |
| CREATE INDEX test_seg_ix ON test_seg USING gist (s); |
| SET enable_indexscan = false; |
| EXPLAIN (COSTS OFF) |
| SELECT count(*) FROM test_seg WHERE s @> '11..11.3'; |
| QUERY PLAN |
| ------------------------------------------------------- |
| Aggregate |
| -> Bitmap Heap Scan on test_seg |
| Recheck Cond: (s @> '1.1e1 .. 11.3'::seg) |
| -> Bitmap Index Scan on test_seg_ix |
| Index Cond: (s @> '1.1e1 .. 11.3'::seg) |
| (5 rows) |
| |
| SELECT count(*) FROM test_seg WHERE s @> '11..11.3'; |
| count |
| ------- |
| 143 |
| (1 row) |
| |
| RESET enable_indexscan; |
| SET enable_bitmapscan = false; |
| EXPLAIN (COSTS OFF) |
| SELECT count(*) FROM test_seg WHERE s @> '11..11.3'; |
| QUERY PLAN |
| ----------------------------------------------------- |
| Aggregate |
| -> Index Only Scan using test_seg_ix on test_seg |
| Index Cond: (s @> '1.1e1 .. 11.3'::seg) |
| (3 rows) |
| |
| SELECT count(*) FROM test_seg WHERE s @> '11..11.3'; |
| count |
| ------- |
| 143 |
| (1 row) |
| |
| RESET enable_bitmapscan; |
| -- Test sorting |
| SELECT * FROM test_seg WHERE s @> '11..11.3' GROUP BY s; |
| s |
| ----------------- |
| .. 4.0e1 |
| .. >8.2e1 |
| .. 9.0e1 |
| <1.0 .. >13.0 |
| 1.3 .. 12.0 |
| 2.0 .. 11.5 |
| 2.1 .. 11.8 |
| <2.3 .. |
| >2.3 .. |
| 2.4 .. 11.3 |
| 2.5 .. 11.5 |
| 2.5 .. 11.8 |
| 2.6 .. |
| 2.7 .. 12.0 |
| <3.0 .. |
| 3 .. 5.8e1 |
| 3.1 .. 11.5 |
| 3.5 .. 11.5 |
| 3.5 .. 12.2 |
| <4.0 .. >1.2e1 |
| <4.0 .. |
| 4 .. 1.2e1 |
| 4.0 .. 11.7 |
| 4.0 .. 12.5 |
| 4.0 .. 13.0 |
| 4.0 .. 6.0e1 |
| 4.0 .. |
| 4.2 .. 11.5 |
| 4.2 .. 11.7 |
| <4.5 .. >1.2e1 |
| 4.5 .. 11.5 |
| 4.5 .. <1.2e1 |
| 4.5 .. >1.2e1 |
| 4.5 .. 12.5 |
| 4.5 .. 1.15e2 |
| 4.7 .. 11.8 |
| 4.8 .. 11.5 |
| 4.8 .. 11.6 |
| 4.8 .. 12.5 |
| 4.8 .. |
| 4.9 .. >1.2e1 |
| 4.9 .. |
| 5 .. 11.5 |
| 5 .. 1.2e1 |
| 5 .. 3.0e1 |
| 5.0 .. 11.4 |
| 5.0 .. 11.5 |
| 5.0 .. 11.6 |
| 5.0 .. 11.7 |
| 5.0 .. 12.0 |
| 5.0 .. >12.0 |
| 5.0 .. >1.2e1 |
| 5.2 .. 11.5 |
| 5.2 .. >1.2e1 |
| 5.25 .. >1.2e1 |
| 5.3 .. 11.5 |
| 5.3 .. 1.3e1 |
| 5.3 .. >9.0e1 |
| 5.3 .. |
| 5.4 .. |
| 5.5 .. 11.5 |
| 5.5 .. 11.7 |
| 5.5 .. 1.2e1 |
| 5.5 .. >1.2e1 |
| 5.5 .. 12.5 |
| 5.5 .. 13.5 |
| 5.5 .. |
| >5.5 .. |
| 5.7 .. |
| 5.9 .. |
| 6 .. 11.5 |
| 6 .. >1.2e1 |
| 6.0 .. 11.5 |
| 6.0 .. 1.3e1 |
| >6.0 .. <11.5 |
| 6.1 .. >1.2e1 |
| 6.1 .. |
| 6.2 .. >11.5 |
| 6.3 .. |
| 6.5 .. 11.5 |
| 6.5 .. 12.0 |
| 6.5 .. >12.0 |
| 6.5 .. |
| 6.6 .. |
| 6.7 .. 11.5 |
| 6.7 .. |
| 6.75 .. |
| 6.8 .. |
| 6.9 .. 12.2 |
| 6.9 .. >9.0e1 |
| 6.9 .. |
| <7.0 .. >11.5 |
| 7.0 .. 11.5 |
| 7.0 .. >11.5 |
| 7.0 .. |
| >7.15 .. |
| 7.2 .. 13.5 |
| 7.3 .. >9.0e1 |
| 7.3 .. |
| >7.3 .. |
| 7.4 .. 12.1 |
| 7.4 .. |
| 7.5 .. 11.5 |
| 7.5 .. 12.0 |
| 7.5 .. |
| 7.7 .. 11.5 |
| 7.7 .. |
| 7.75 .. |
| 8.0 .. 11.7 |
| 8.0 .. 12.0 |
| 8.0 .. >13.0 |
| 8.2 .. |
| 8.3 .. |
| 8.5 .. >11.5 |
| 8.5 .. 12.5 |
| 8.5 .. |
| 8.6 .. >9.9e1 |
| 8.7 .. 11.3 |
| 8.7 .. 11.7 |
| 8.9 .. 11.5 |
| 9 .. >1.2e1 |
| 9.0 .. 11.3 |
| 9.0 .. 11.5 |
| 9.0 .. 1.2e1 |
| 9.0 .. |
| 9.2 .. 1.2e1 |
| 9.4 .. 12.2 |
| <9.5 .. 1.2e1 |
| <9.5 .. >12.2 |
| 9.5 .. |
| 9.6 .. 11.5 |
| 9.7 .. 11.5 |
| 9.7 .. >1.2e1 |
| 9.8 .. >12.5 |
| <1.0e1 .. >11.6 |
| 10.0 .. 11.5 |
| 10.0 .. 12.5 |
| 10.0 .. >12.5 |
| 10.2 .. 11.8 |
| <10.5 .. 11.5 |
| 10.5 .. 11.5 |
| 10.5 .. <13.5 |
| 10.7 .. 12.3 |
| (143 rows) |
| |
| -- Test functions |
| SELECT seg_lower(s), seg_center(s), seg_upper(s) |
| FROM test_seg WHERE s @> '11.2..11.3' OR s IS NULL ORDER BY s; |
| seg_lower | seg_center | seg_upper |
| -----------+------------+----------- |
| -Infinity | -Infinity | 40 |
| -Infinity | -Infinity | 82 |
| -Infinity | -Infinity | 90 |
| 1 | 7 | 13 |
| 1.3 | 6.65 | 12 |
| 2 | 6.75 | 11.5 |
| 2.1 | 6.95 | 11.8 |
| 2.3 | Infinity | Infinity |
| 2.3 | Infinity | Infinity |
| 2.4 | 6.8500004 | 11.3 |
| 2.5 | 7 | 11.5 |
| 2.5 | 7.15 | 11.8 |
| 2.6 | Infinity | Infinity |
| 2.7 | 7.35 | 12 |
| 3 | Infinity | Infinity |
| 3 | 30.5 | 58 |
| 3.1 | 7.3 | 11.5 |
| 3.5 | 7.5 | 11.5 |
| 3.5 | 7.85 | 12.2 |
| 4 | 8 | 12 |
| 4 | Infinity | Infinity |
| 4 | 8 | 12 |
| 4 | 7.85 | 11.7 |
| 4 | 8.25 | 12.5 |
| 4 | 8.5 | 13 |
| 4 | 32 | 60 |
| 4 | Infinity | Infinity |
| 4.2 | 7.85 | 11.5 |
| 4.2 | 7.95 | 11.7 |
| 4.5 | 8.25 | 12 |
| 4.5 | 8 | 11.5 |
| 4.5 | 8.25 | 12 |
| 4.5 | 8.25 | 12 |
| 4.5 | 8.5 | 12.5 |
| 4.5 | 59.75 | 115 |
| 4.7 | 8.25 | 11.8 |
| 4.8 | 8.15 | 11.5 |
| 4.8 | 8.200001 | 11.6 |
| 4.8 | 8.65 | 12.5 |
| 4.8 | Infinity | Infinity |
| 4.9 | 8.45 | 12 |
| 4.9 | Infinity | Infinity |
| 5 | 8.25 | 11.5 |
| 5 | 8.5 | 12 |
| 5 | 17.5 | 30 |
| 5 | 8.2 | 11.4 |
| 5 | 8.25 | 11.5 |
| 5 | 8.3 | 11.6 |
| 5 | 8.35 | 11.7 |
| 5 | 8.5 | 12 |
| 5 | 8.5 | 12 |
| 5 | 8.5 | 12 |
| 5.2 | 8.35 | 11.5 |
| 5.2 | 8.6 | 12 |
| 5.25 | 8.625 | 12 |
| 5.3 | 8.4 | 11.5 |
| 5.3 | 9.15 | 13 |
| 5.3 | 47.65 | 90 |
| 5.3 | Infinity | Infinity |
| 5.4 | Infinity | Infinity |
| 5.5 | 8.5 | 11.5 |
| 5.5 | 8.6 | 11.7 |
| 5.5 | 8.75 | 12 |
| 5.5 | 8.75 | 12 |
| 5.5 | 9 | 12.5 |
| 5.5 | 9.5 | 13.5 |
| 5.5 | Infinity | Infinity |
| 5.5 | Infinity | Infinity |
| 5.7 | Infinity | Infinity |
| 5.9 | Infinity | Infinity |
| 6 | 8.75 | 11.5 |
| 6 | 9 | 12 |
| 6 | 8.75 | 11.5 |
| 6 | 9.5 | 13 |
| 6 | 8.75 | 11.5 |
| 6.1 | 9.05 | 12 |
| 6.1 | Infinity | Infinity |
| 6.2 | 8.85 | 11.5 |
| 6.3 | Infinity | Infinity |
| 6.5 | 9 | 11.5 |
| 6.5 | 9.25 | 12 |
| 6.5 | 9.25 | 12 |
| 6.5 | Infinity | Infinity |
| 6.6 | Infinity | Infinity |
| 6.7 | 9.1 | 11.5 |
| 6.7 | Infinity | Infinity |
| 6.75 | Infinity | Infinity |
| 6.8 | Infinity | Infinity |
| 6.9 | 9.55 | 12.2 |
| 6.9 | 48.45 | 90 |
| 6.9 | Infinity | Infinity |
| 7 | 9.25 | 11.5 |
| 7 | 9.25 | 11.5 |
| 7 | 9.25 | 11.5 |
| 7 | Infinity | Infinity |
| 7.15 | Infinity | Infinity |
| 7.2 | 10.35 | 13.5 |
| 7.3 | 48.65 | 90 |
| 7.3 | Infinity | Infinity |
| 7.3 | Infinity | Infinity |
| 7.4 | 9.75 | 12.1 |
| 7.4 | Infinity | Infinity |
| 7.5 | 9.5 | 11.5 |
| 7.5 | 9.75 | 12 |
| 7.5 | Infinity | Infinity |
| 7.7 | 9.6 | 11.5 |
| 7.7 | Infinity | Infinity |
| 7.75 | Infinity | Infinity |
| 8 | 9.85 | 11.7 |
| 8 | 10 | 12 |
| 8 | 10.5 | 13 |
| 8.2 | Infinity | Infinity |
| 8.3 | Infinity | Infinity |
| 8.5 | 10 | 11.5 |
| 8.5 | 10.5 | 12.5 |
| 8.5 | Infinity | Infinity |
| 8.6 | 53.8 | 99 |
| 8.7 | 10 | 11.3 |
| 8.7 | 10.2 | 11.7 |
| 8.9 | 10.2 | 11.5 |
| 9 | 10.5 | 12 |
| 9 | 10.15 | 11.3 |
| 9 | 10.25 | 11.5 |
| 9 | 10.5 | 12 |
| 9 | Infinity | Infinity |
| 9.2 | 10.6 | 12 |
| 9.4 | 10.799999 | 12.2 |
| 9.5 | 10.75 | 12 |
| 9.5 | 10.85 | 12.2 |
| 9.5 | Infinity | Infinity |
| 9.6 | 10.55 | 11.5 |
| 9.7 | 10.6 | 11.5 |
| 9.7 | 10.85 | 12 |
| 9.8 | 11.15 | 12.5 |
| 10 | 10.8 | 11.6 |
| 10 | 10.75 | 11.5 |
| 10 | 11.25 | 12.5 |
| 10 | 11.25 | 12.5 |
| 10.2 | 11 | 11.8 |
| 10.5 | 11 | 11.5 |
| 10.5 | 11 | 11.5 |
| 10.5 | 12 | 13.5 |
| 10.7 | 11.5 | 12.3 |
| | | |
| (144 rows) |
| |
| -- Test that has all opclasses |
| select opcname,amname from pg_opclass opc, pg_am am where am.oid=opc.opcmethod and opcintype='seg'::regtype; |
| opcname | amname |
| --------------+-------- |
| seg_ops | btree |
| gist_seg_ops | gist |
| seg_ops | bitmap |
| (3 rows) |
| |