forked from robe/postgresql
This feature allows an extension author to reference extension schemas of extensions in the requires variable of the control file using variable syntax @extschema:<extname>@ where <extname> is the name of any of the listed required extensions. It also defines another optional config parameter in the control file called no_relocate which consists of a subset of the requires extensions that should have ALTER EXTENSION SET SCHEMA prevented. This feature is needed particularly in cases when another extension packages a function which references an object from one of its required extensions and this function is used to back indexes, constraints, and materialized views. Without this feature, because pg_restore removes the paths, these indexes, constraints, materialized views are not restored because when the function is called, the function call fails because items it depends on cannot be schema qualified. This feature will allow extension authors to schema qualify references to required extension objects to prevent this issue. Aside from this issue, schema qualifying all these references will improve security by preventing a rogue version of a function from being used. - Extension tests both Makefile and meson.build - Documentation of the new feature - Define a new extension control parameter no_relocate Which is a comma separated list of required extensions that should be prevented from ALTER .. SET SCHEMA - Prevent an extension from being relocated if another extension requires it and has it listed in it's no_relocate list - Change execute_extension_script to take as input required extension oids, since calling functions already build this list Discussion: https://postgr.es/m/000801d94959%2463a9f520%242afddf60%24%40pcorp.us |
||
---|---|---|
config | ||
contrib | ||
doc | ||
src | ||
.cirrus.yml | ||
.dir-locals.el | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
COPYRIGHT | ||
GNUmakefile.in | ||
HISTORY | ||
Makefile | ||
README | ||
README.git | ||
aclocal.m4 | ||
configure | ||
configure.ac | ||
meson.build | ||
meson_options.txt |
README
PostgreSQL Database Management System ===================================== This directory contains the source code distribution of the PostgreSQL database management system. PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings. PostgreSQL has many language interfaces, many of which are listed here: https://www.postgresql.org/download/ See the file INSTALL for instructions on how to build and install PostgreSQL. That file also lists supported operating systems and hardware platforms and contains information regarding any other software packages that are required to build or run the PostgreSQL system. Copyright and license information can be found in the file COPYRIGHT. A comprehensive documentation set is included in this distribution; it can be read as described in the installation instructions. The latest version of this software may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.