On Mon, May 19, 2025 at 10:37:29AM +0800, jian he wrote:
> I saw REGROLEOID in foreign_expr_walker,
> I'm wondering whether REGDATABASEOID is reachable within foreign_expr_walker.
>
> not familiar with this area, also there are no coverage tests for
> other reg*Const,
> per
> https://coverage.postgresql.org/contrib/postgres_fdw/deparse.c.gcov.html
Oh, good catch. At first glance, it looks like we could just add another
case block for REGDATABASEOID, but looking closer at is_shippable(), I see
that it's just testing for objectId < FirstGenbkiObjectId. That seems like
it might be a problem because we don't consider any databases to be pinned,
and template0, template1, and postgres start with OIDs of 4, 1, and 5,
respectively. However, I'd expect that to also be a problem for the public
schema, but foreign_expr_walker() doesn't appear to have any special
handling for that. Hm...
--
nathan