Peter Eisentraut <peter@eisentraut.org> writes:
> On 04.04.26 17:38, Tom Lane wrote:
>> After poking at that: testing tableoid does sort of work, in that it
>> reads as the OID of the target table named in COPY. But I think any
>> rational use for a test on tableoid here would be in connection with
>> a partitioned target table, and the user would wish it to read as the
>> OID of the destination partition. So I think we should disallow
>> tableoid along with the other system columns, pending somebody having
>> the ambition to make that work.
> I think this is the same issue that was discussed here:
> https://www.postgresql.org/message-id/flat/30c39ee8-bb11-4b8f-9697-45f7e018a8d3%40eisentraut.org
> There was no conclusion there, but I agree with the proposal to prohibit
> this use.
Ah, indeed. Jian's patch in that thread seems rough but potentially
workable to me, but seemingly the thread tailed off for lack of
interest. I don't want to revive it now as part of a bug fix.
Disallowing tableoid for now, and then re-allowing it if someone
picks up that patch down the road, seems like a good solution.
For one thing, since that patch changes the semantics of tableoid
in COPY WHERE, I think it'd be a good idea to have a release or
two in between where we throw error. That'd be helpful to flush
out any field usages that might be affected.
regards, tom lane