Hi,
Thanks for looking.
On 2019/01/24 21:00, Alvaro Herrera wrote:
> Why did you lose the parser_errposition in parse_utilcmd.c line 3854?
>
>> - /* Fail if we don't have a constant (i.e., non-immutable coercion) */
>> - if (!IsA(value, Const))
>> + /* Make sure the expression does not refer to any vars. */
>> + if (contain_var_clause(value))
>> ereport(ERROR,
>> - (errcode(ERRCODE_DATATYPE_MISMATCH),
>> - errmsg("specified value cannot be cast to type %s for column \"%s\"",
>> - format_type_be(colType), colName),
>> - errdetail("The cast requires a non-immutable conversion."),
>> - errhint("Try putting the literal value in single quotes."),
>> - parser_errposition(pstate, con->location)));
>> + (errcode(ERRCODE_INVALID_COLUMN_REFERENCE),
>> + errmsg("cannot use column references in partition bound expression")));
The if (contain_var_clause(value)) block is new code, but I agree its
ereport should have parser_errposition just like other ereports in that
function. Fixed that in the attached.
Thanks,
Amit