While I'm quite on board with providing useful error cursors, the example cases in this patch don't seem all that useful:
-- trying to create range partition with empty range CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (1) TO (0); ERROR: empty range bound specified for partition "fail_part" +LINE 1: ...E fail_part PARTITION OF range_parted2 FOR VALUES FROM (1) T... + ^ DETAIL: Specified lower bound (1) is greater than or equal to upper bound (0). As best I can tell from these examples, the cursor will always point at the FROM keyword, making it pretty unhelpful. It seems like in addition to getting the query string passed down, you need to do some work on the code that's actually reporting the error position. I'd expect at a minimum that the pointer allows identifying which column of a multi-column partition key is giving trouble. The phrasing of this particular message, for example, suggests that it ought to point at the "1" expression. regards, tom lane