>>>> nonsensical inputs with appropriate error messages.
>>> string or character data type there is no -infinity and +infinity.
>>> MINIMUM/MAXIMUM or UNBOUNDED MIN/MAX to indicate the extremities.
>> terminology already in use of upper and lower bounds.
> was confused a little bit.
> Also, I assume UNBOUNDED ABOVE signifies positive infinity and vice versa.
ABOVE/BELOW extension to UNBOUNDED specification.
posted for simplifying range partition overlap check.
0002 is the UNBOUNDED syntax extension patch.
-                                        * than or equal to the new lower bound.
+                                        * existing partition, or in a gap.
+                                        * lower bound of the next partition).
-                                        * off1 and off1 + 1, we have a "gap"
-                                        * within the gap.
-                                                * partition clearly overlaps.
will fit in the gap.
+                                                * if there is one.
between offset + 1 and offset + 2.
and there is no "gap"
-                                                * at off1 + 1).
ERROR:  partition "fail_part" would overlap partition "part2"
-ERROR:  partition "fail_part" would overlap partition "part3"
+ERROR:  partition "fail_part" would overlap partition "part2"
would be considered to be overlapping per the current rule.
in an upper bound could be -infinity.
checking for the new use cases allowed by the new syntax.
-      it signifies <literal>+infinity</literal> as the upper bound.
+      the <literal>FROM</literal> or the <literal>TO</literal> list.
+                                        * the comparison procedure.
- * *upper_val).  For UNBOUNDED limits, NULL is returned instead of a Const.
+ * *upper_val).  For infinite limits, NULL is returned instead of a Const.
* All of these structures are freshly palloc'd.
+ * qualify for this partition.
+ * provided both al and au are finite values.
* containing a constant TRUE, because callers expect a non-empty list.
-                                * For the last finite-valued column, use LE.
-                * lower and upper bound lists.
+                * elements in the lowerdatums list into "negative_infinity"
+                * in the upperdatums list into "positive_infinity".
+ * decorated DefElem instead, both before and after analysis.
ERROR:  partition "fail_part" would overlap partition "part12"
ERROR:  partition "fail_part" would overlap partition "part10"
+-- specified with direction in arbitrary ways.
DETAIL:  Failing row contains (2, hi there).
+-- FROM and TO of range partition bounds.
+DETAIL:  Failing row contains (b, 1).
+DETAIL:  Failing row contains (c, 1).
+DETAIL:  Failing row contains (dr, 1).
+DETAIL:  Failing row contains (d, 1).