Right now, if you upgrade Postgres to a newer version that has new columns (ie, PG11 added pg_attribute.attmissingval), and if you're already on the latest version of the extension, you have no good way to get the new columns added to the views in the extension. Your only option would be to completely drop and re-create the extension. That'd be bad enough for anyone using the extension views directly, since they'd have to drop and re-create them, but the situation is FAR worse for anyone using an extension that depends on cat_tools: they would have to drop that extension in order to drop and re-create cat_tools. And that extension might contain config files.
So, we need a way to handle this that allows a user to rebuild any of our views that have version dependent definitions that cross a range of major versions.
Right now, if you upgrade Postgres to a newer version that has new columns (ie, PG11 added
pg_attribute.attmissingval), and if you're already on the latest version of the extension, you have no good way to get the new columns added to the views in the extension. Your only option would be to completely drop and re-create the extension. That'd be bad enough for anyone using the extension views directly, since they'd have to drop and re-create them, but the situation is FAR worse for anyone using an extension that depends on cat_tools: they would have to drop that extension in order to drop and re-create cat_tools. And that extension might contain config files.So, we need a way to handle this that allows a user to rebuild any of our views that have version dependent definitions that cross a range of major versions.