Change RangeVarGetRelidExtended() to take flags argument?
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: pgsql-hackers@postgresql.org
Date: 2018-03-06T00:53:49Z
Lists: pgsql-hackers
Hi, https://www.postgresql.org/message-id/7327B413-1A57-477F-A6A0-6FD80CB5482D@amazon.com adds a SKIP LOCKED option to vacuum. To avoid blocking in expand_vacuum_rel()'s call of RangeVarGetRelid(), it open codes a SKIP_LOCKED variant (i.e. RangeVarGetRelidExtended()'s nowait, but doesn't error out). I don't like that much. Therefore I wonder if we should consolidate the existing RangeVarGetRelidExtended() arguments (missing_ok and nowait) into a flags argument. That'll then allow to add SKIP_LOCKED behaviour. One wrinkle in that plan is that it'd not be trivial to discern whether a lock couldn't be acquired or whether the object vanished. I don't really have good idea how to tackle that yet. We could make the return value more complicated (and return relation oid via parameter) but that seems like it'd be more invasive. Greetings, Andres Freund
Commits
-
Add SKIP_LOCKED option to RangeVarGetRelidExtended().
- 3e256e550672 11.0 landed
-
Combine options for RangeVarGetRelidExtended() into a flags argument.
- d87510a524f3 11.0 landed