Alexi Theodore <alexitheodore@gmail.com> writes:
> I'd like to report what I think is a bug. I've put together a script which highlights things pretty clearly. The
shortsynopsis is that when using "#variable_conflict use_variable" in a function or procedure, the correct choice of
variablevs column name is done everywhere (that I know of) except in the ON CONFLICT (<column name>) part of an INSERT
statement.That one part only seems to not follow the conflict resolution pattern.
The names in ON CONFLICT are not values, and it would not make
sense to substitute plpgsql variable values for them. A related
example is that if you write INSERT INTO t (a,b) VALUES (1,2),
none of t, a, or b are candidates to be replaced by plpgsql
variables.
regards, tom lane