12.3457
(1 row)
--- Numbers with certainty indicators
+-- Numbers and ranges with certainty indicators. Certainty indicators
+-- are stored and preserved on output, but ignored by operators.
SELECT '~6.5'::seg AS seg;
seg
------
>6.5
(1 row)
+SELECT '~1.5 .. 2.5'::seg AS seg;
+ seg
+-------------
+ ~1.5 .. 2.5
+(1 row)
+
+SELECT '1.5 .. ~2.5'::seg AS seg;
+ seg
+-------------
+ 1.5 .. ~2.5
+(1 row)
+
+SELECT '~1.5 .. ~2.5'::seg AS seg;
+ seg
+--------------
+ ~1.5 .. ~2.5
+(1 row)
+
+SELECT '<1.5 .. 2.5'::seg AS seg;
+ seg
+-------------
+ <1.5 .. 2.5
+(1 row)
+
+SELECT '1.5 .. <2.5'::seg AS seg;
+ seg
+-------------
+ 1.5 .. <2.5
+(1 row)
+
+SELECT '>1.5 .. 2.5'::seg AS seg;
+ seg
+-------------
+ >1.5 .. 2.5
+(1 row)
+
+SELECT '1.5 .. >2.5'::seg AS seg;
+ seg
+-------------
+ 1.5 .. >2.5
+(1 row)
+
-- Open intervals
SELECT '0..'::seg AS seg;
seg
{
/* print the upper boundary if exists */
p += sprintf(p, " ");
- if (seg->u_ext == '>' || seg->u_ext == '<' || seg->l_ext == '~')
+ if (seg->u_ext == '>' || seg->u_ext == '<' || seg->u_ext == '~')
p += sprintf(p, "%c", seg->u_ext);
p += restore(p, seg->upper, seg->u_sigd);
}
-- Same, with a very long input
SELECT '12.3456789012345600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'::seg AS seg;
--- Numbers with certainty indicators
+-- Numbers and ranges with certainty indicators. Certainty indicators
+-- are stored and preserved on output, but ignored by operators.
SELECT '~6.5'::seg AS seg;
SELECT '<6.5'::seg AS seg;
SELECT '>6.5'::seg AS seg;
SELECT '< 6.5'::seg AS seg;
SELECT '> 6.5'::seg AS seg;
+SELECT '~1.5 .. 2.5'::seg AS seg;
+SELECT '1.5 .. ~2.5'::seg AS seg;
+SELECT '~1.5 .. ~2.5'::seg AS seg;
+SELECT '<1.5 .. 2.5'::seg AS seg;
+SELECT '1.5 .. <2.5'::seg AS seg;
+SELECT '>1.5 .. 2.5'::seg AS seg;
+SELECT '1.5 .. >2.5'::seg AS seg;
+
-- Open intervals
SELECT '0..'::seg AS seg;
SELECT '0...'::seg AS seg;