pgsql: Throw a useful error message if an extension script file is fed

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Throw a useful error message if an extension script file is fed
Дата
Msg-id E1RE4lW-0003tE-PK@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Throw a useful error message if an extension script file is fed to psql.

We have seen one too many reports of people trying to use 9.1 extension
files in the old-fashioned way of sourcing them in psql.  Not only does
that usually not work (due to failure to substitute for MODULE_PATHNAME
and/or @extschema@), but if it did work they'd get a collection of loose
objects not an extension.  To prevent this, insert an \echo ... \quit
line that prints a suitable error message into each extension script file,
and teach commands/extension.c to ignore lines starting with \echo.
That should not only prevent any adverse consequences of loading a script
file the wrong way, but make it crystal clear to users that they need to
do it differently now.

Tom Lane, following an idea of Andrew Dunstan's.  Back-patch into 9.1
... there is not going to be much value in this if we wait till 9.2.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/458857cc9d7d00711b272a0dabbcb591b506d6b8

Modified Files
--------------
contrib/adminpack/adminpack--1.0.sql               |    3 +
contrib/btree_gin/btree_gin--1.0.sql               |    3 +
contrib/btree_gin/btree_gin--unpackaged--1.0.sql   |    3 +
contrib/btree_gist/btree_gist--1.0.sql             |    3 +
contrib/btree_gist/btree_gist--unpackaged--1.0.sql |    3 +
contrib/chkpass/chkpass--1.0.sql                   |    3 +
contrib/chkpass/chkpass--unpackaged--1.0.sql       |    3 +
contrib/citext/citext--1.0.sql                     |    3 +
contrib/citext/citext--unpackaged--1.0.sql         |    3 +
contrib/cube/cube--1.0.sql                         |    3 +
contrib/cube/cube--unpackaged--1.0.sql             |    3 +
contrib/dblink/dblink--1.0.sql                     |    3 +
contrib/dblink/dblink--unpackaged--1.0.sql         |    3 +
contrib/dict_int/dict_int--1.0.sql                 |    3 +
contrib/dict_int/dict_int--unpackaged--1.0.sql     |    3 +
contrib/dict_xsyn/dict_xsyn--1.0.sql               |    3 +
contrib/dict_xsyn/dict_xsyn--unpackaged--1.0.sql   |    3 +
contrib/earthdistance/earthdistance--1.0.sql       |    3 +
.../earthdistance--unpackaged--1.0.sql             |    3 +
contrib/file_fdw/file_fdw--1.0.sql                 |    3 +
contrib/fuzzystrmatch/fuzzystrmatch--1.0.sql       |    3 +
.../fuzzystrmatch--unpackaged--1.0.sql             |    3 +
contrib/hstore/hstore--1.0.sql                     |    3 +
contrib/hstore/hstore--unpackaged--1.0.sql         |    3 +
contrib/intagg/intagg--1.0.sql                     |    3 +
contrib/intagg/intagg--unpackaged--1.0.sql         |    3 +
contrib/intarray/intarray--1.0.sql                 |    3 +
contrib/intarray/intarray--unpackaged--1.0.sql     |    3 +
contrib/isn/isn--1.0.sql                           |    3 +
contrib/isn/isn--unpackaged--1.0.sql               |    3 +
contrib/lo/lo--1.0.sql                             |    3 +
contrib/lo/lo--unpackaged--1.0.sql                 |    3 +
contrib/ltree/ltree--1.0.sql                       |    3 +
contrib/ltree/ltree--unpackaged--1.0.sql           |    3 +
contrib/pageinspect/pageinspect--1.0.sql           |    3 +
.../pageinspect/pageinspect--unpackaged--1.0.sql   |    3 +
contrib/pg_buffercache/pg_buffercache--1.0.sql     |    3 +
.../pg_buffercache--unpackaged--1.0.sql            |    3 +
contrib/pg_freespacemap/pg_freespacemap--1.0.sql   |    3 +
.../pg_freespacemap--unpackaged--1.0.sql           |    3 +
.../pg_stat_statements/pg_stat_statements--1.0.sql |    3 +
.../pg_stat_statements--unpackaged--1.0.sql        |    3 +
contrib/pg_trgm/pg_trgm--1.0.sql                   |    3 +
contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql       |    3 +
contrib/pgcrypto/pgcrypto--1.0.sql                 |    3 +
contrib/pgcrypto/pgcrypto--unpackaged--1.0.sql     |    3 +
contrib/pgrowlocks/pgrowlocks--1.0.sql             |    3 +
contrib/pgrowlocks/pgrowlocks--unpackaged--1.0.sql |    3 +
contrib/pgstattuple/pgstattuple--1.0.sql           |    3 +
.../pgstattuple/pgstattuple--unpackaged--1.0.sql   |    3 +
contrib/seg/seg--1.0.sql                           |    3 +
contrib/seg/seg--unpackaged--1.0.sql               |    3 +
contrib/spi/autoinc--1.0.sql                       |    3 +
contrib/spi/autoinc--unpackaged--1.0.sql           |    3 +
contrib/spi/insert_username--1.0.sql               |    3 +
contrib/spi/insert_username--unpackaged--1.0.sql   |    3 +
contrib/spi/moddatetime--1.0.sql                   |    3 +
contrib/spi/moddatetime--unpackaged--1.0.sql       |    3 +
contrib/spi/refint--1.0.sql                        |    3 +
contrib/spi/refint--unpackaged--1.0.sql            |    3 +
contrib/spi/timetravel--1.0.sql                    |    3 +
contrib/spi/timetravel--unpackaged--1.0.sql        |    3 +
contrib/sslinfo/sslinfo--1.0.sql                   |    3 +
contrib/sslinfo/sslinfo--unpackaged--1.0.sql       |    3 +
contrib/tablefunc/tablefunc--1.0.sql               |    3 +
contrib/tablefunc/tablefunc--unpackaged--1.0.sql   |    3 +
contrib/test_parser/test_parser--1.0.sql           |    3 +
.../test_parser/test_parser--unpackaged--1.0.sql   |    3 +
contrib/tsearch2/tsearch2--1.0.sql                 |    3 +
contrib/tsearch2/tsearch2--unpackaged--1.0.sql     |    3 +
contrib/unaccent/unaccent--1.0.sql                 |    3 +
contrib/unaccent/unaccent--unpackaged--1.0.sql     |    3 +
contrib/uuid-ossp/uuid-ossp--1.0.sql               |    3 +
contrib/uuid-ossp/uuid-ossp--unpackaged--1.0.sql   |    3 +
contrib/xml2/xml2--1.0.sql                         |    3 +
contrib/xml2/xml2--unpackaged--1.0.sql             |    3 +
doc/src/sgml/extend.sgml                           |   14 ++++++
src/backend/commands/extension.c                   |   49 +++++++++++++-------
78 files changed, 274 insertions(+), 17 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Throw a useful error message if an extension script file is fed
Следующее
От: Bruce Momjian
Дата:
Сообщение: pgsql: Modify pgindent to use a renamed pg_bsd_indent binary. New feat