Hi, You can't do catalog access below the bufmgr.c layer. It could lead to all kinds of nastiness, including potentially recursing back to md.c. Even leaving
Yep, this is my biggest concern. It turns out, that the way to make such a feature is to use just GUC for all tablespaces or
forward elevel "from above".
that aside, we can't do catalog accesses in all kinds of environments that this currently is active in - most importantly it's affecting the startup process. We don't do catalog accesses in the startup process, and even if we were to do so, we couldn't unconditionally because the catalog might not even be consistent at this point (nor is it guaranteed that the wal_level even allows to access catalogs during recovery).
Yep, that is why I do use in get_tablespace_elevel:
+ /* + * Use GUC level only in normal mode. + */ + if (!IsNormalProcessingMode()) + return ERROR;