Обсуждение: pgsql: Get rid of the need for manual maintenance of the initial
pgsql: Get rid of the need for manual maintenance of the initial
От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message: ----------- Get rid of the need for manual maintenance of the initial contents of pg_attribute, by having genbki.pl derive the information from the various catalog header files. This greatly simplifies modification of the "bootstrapped" catalogs. This patch finally kills genbki.sh and Gen_fmgrtab.sh; we now rely entirely on Perl scripts for those build steps. To avoid creating a Perl build dependency where there was not one before, the output files generated by these scripts are now treated as distprep targets, ie, they will be built and shipped in tarballs. But you will need a reasonably modern Perl (probably at least 5.6) if you want to build from a CVS pull. The changes to the MSVC build process are untested, and may well break --- we'll soon find out from the buildfarm. John Naylor, based on ideas from Robert Haas and others Modified Files: -------------- pgsql/doc/src/sgml: bki.sgml (r1.22 -> r1.23) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/bki.sgml?r1=1.22&r2=1.23) installation.sgml (r1.335 -> r1.336) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/installation.sgml?r1=1.335&r2=1.336) pgsql/src/backend: Makefile (r1.137 -> r1.138) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/Makefile?r1=1.137&r2=1.138) pgsql/src/backend/catalog: Makefile (r1.74 -> r1.75) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/Makefile?r1=1.74&r2=1.75) README (r1.13 -> r1.14) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/README?r1=1.13&r2=1.14) pgsql/src/backend/utils: Gen_fmgrtab.pl (r1.3 -> r1.4) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/Gen_fmgrtab.pl?r1=1.3&r2=1.4) Makefile (r1.28 -> r1.29) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/Makefile?r1=1.28&r2=1.29) pgsql/src/backend/utils/cache: relcache.c (r1.295 -> r1.296) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c?r1=1.295&r2=1.296) pgsql/src/include: Makefile (r1.29 -> r1.30) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/Makefile?r1=1.29&r2=1.30) pgsql/src/include/catalog: genbki.h (r1.5 -> r1.6) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/genbki.h?r1=1.5&r2=1.6) indexing.h (r1.114 -> r1.115) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/indexing.h?r1=1.114&r2=1.115) pg_aggregate.h (r1.69 -> r1.70) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_aggregate.h?r1=1.69&r2=1.70) pg_am.h (r1.64 -> r1.65) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_am.h?r1=1.64&r2=1.65) pg_amop.h (r1.91 -> r1.92) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_amop.h?r1=1.91&r2=1.92) pg_amproc.h (r1.76 -> r1.77) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_amproc.h?r1=1.76&r2=1.77) pg_attrdef.h (r1.25 -> r1.26) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_attrdef.h?r1=1.25&r2=1.26) pg_attribute.h (r1.156 -> r1.157) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_attribute.h?r1=1.156&r2=1.157) pg_auth_members.h (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_auth_members.h?r1=1.7&r2=1.8) pg_authid.h (r1.11 -> r1.12) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_authid.h?r1=1.11&r2=1.12) pg_cast.h (r1.43 -> r1.44) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_cast.h?r1=1.43&r2=1.44) pg_class.h (r1.118 -> r1.119) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_class.h?r1=1.118&r2=1.119) pg_constraint.h (r1.35 -> r1.36) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_constraint.h?r1=1.35&r2=1.36) pg_conversion.h (r1.23 -> r1.24) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_conversion.h?r1=1.23&r2=1.24) pg_database.h (r1.52 -> r1.53) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_database.h?r1=1.52&r2=1.53) pg_db_role_setting.h (r1.2 -> r1.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_db_role_setting.h?r1=1.2&r2=1.3) pg_default_acl.h (r1.2 -> r1.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_default_acl.h?r1=1.2&r2=1.3) pg_depend.h (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_depend.h?r1=1.12&r2=1.13) pg_description.h (r1.29 -> r1.30) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_description.h?r1=1.29&r2=1.30) pg_enum.h (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_enum.h?r1=1.7&r2=1.8) pg_foreign_data_wrapper.h (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_foreign_data_wrapper.h?r1=1.4&r2=1.5) pg_foreign_server.h (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_foreign_server.h?r1=1.4&r2=1.5) pg_index.h (r1.49 -> r1.50) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_index.h?r1=1.49&r2=1.50) pg_inherits.h (r1.29 -> r1.30) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_inherits.h?r1=1.29&r2=1.30) pg_language.h (r1.36 -> r1.37) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_language.h?r1=1.36&r2=1.37) pg_largeobject.h (r1.26 -> r1.27) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_largeobject.h?r1=1.26&r2=1.27) pg_largeobject_metadata.h (r1.2 -> r1.3) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_largeobject_metadata.h?r1=1.2&r2=1.3) pg_listener.h (r1.27 -> r1.28) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_listener.h?r1=1.27&r2=1.28) pg_namespace.h (r1.26 -> r1.27) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_namespace.h?r1=1.26&r2=1.27) pg_opclass.h (r1.86 -> r1.87) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_opclass.h?r1=1.86&r2=1.87) pg_operator.h (r1.168 -> r1.169) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_operator.h?r1=1.168&r2=1.169) pg_opfamily.h (r1.12 -> r1.13) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_opfamily.h?r1=1.12&r2=1.13) pg_pltemplate.h (r1.11 -> r1.12) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_pltemplate.h?r1=1.11&r2=1.12) pg_proc.h (r1.558 -> r1.559) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h?r1=1.558&r2=1.559) pg_rewrite.h (r1.34 -> r1.35) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_rewrite.h?r1=1.34&r2=1.35) pg_shdepend.h (r1.11 -> r1.12) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_shdepend.h?r1=1.11&r2=1.12) pg_shdescription.h (r1.8 -> r1.9) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_shdescription.h?r1=1.8&r2=1.9) pg_statistic.h (r1.41 -> r1.42) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_statistic.h?r1=1.41&r2=1.42) pg_tablespace.h (r1.13 -> r1.14) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_tablespace.h?r1=1.13&r2=1.14) pg_trigger.h (r1.37 -> r1.38) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_trigger.h?r1=1.37&r2=1.38) pg_ts_config.h (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_ts_config.h?r1=1.6&r2=1.7) pg_ts_config_map.h (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_ts_config_map.h?r1=1.6&r2=1.7) pg_ts_dict.h (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_ts_dict.h?r1=1.6&r2=1.7) pg_ts_parser.h (r1.6 -> r1.7) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_ts_parser.h?r1=1.6&r2=1.7) pg_ts_template.h (r1.7 -> r1.8) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_ts_template.h?r1=1.7&r2=1.8) pg_type.h (r1.211 -> r1.212) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_type.h?r1=1.211&r2=1.212) pg_user_mapping.h (r1.4 -> r1.5) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_user_mapping.h?r1=1.4&r2=1.5) toasting.h (r1.11 -> r1.12) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/toasting.h?r1=1.11&r2=1.12) pgsql/src/interfaces/ecpg/ecpglib: pg_type.h (r1.10 -> r1.11) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/ecpg/ecpglib/pg_type.h?r1=1.10&r2=1.11) pgsql/src/tools/msvc: Solution.pm (r1.51 -> r1.52) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/tools/msvc/Solution.pm?r1=1.51&r2=1.52) clean.bat (r1.17 -> r1.18) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/tools/msvc/clean.bat?r1=1.17&r2=1.18) Added Files: ----------- pgsql/src/backend/catalog: .cvsignore (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/.cvsignore?rev=1.1&content-type=text/x-cvsweb-markup) Catalog.pm (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/Catalog.pm?rev=1.1&content-type=text/x-cvsweb-markup) genbki.pl (r1.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/genbki.pl?rev=1.1&content-type=text/x-cvsweb-markup) Removed Files: ------------- pgsql/src/backend/catalog: genbki.sh (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/genbki.sh) pgsql/src/backend/utils: Gen_fmgrtab.sh (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/Gen_fmgrtab.sh) pgsql/src/tools/msvc: Genbki.pm (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/tools/msvc/Genbki.pm)
On Mon, Jan 4, 2010 at 8:06 PM, Tom Lane <tgl@postgresql.org> wrote: > Log Message: > ----------- > Get rid of the need for manual maintenance of the initial contents of > pg_attribute, by having genbki.pl derive the information from the various > catalog header files. This greatly simplifies modification of the > "bootstrapped" catalogs. > > This patch finally kills genbki.sh and Gen_fmgrtab.sh; we now rely entirely on > Perl scripts for those build steps. To avoid creating a Perl build dependency > where there was not one before, the output files generated by these scripts > are now treated as distprep targets, ie, they will be built and shipped in > tarballs. But you will need a reasonably modern Perl (probably at least > 5.6) if you want to build from a CVS pull. > > The changes to the MSVC build process are untested, and may well break --- > we'll soon find out from the buildfarm. > > John Naylor, based on ideas from Robert Haas and others Awesome. ...Robert
Robert Haas <robertmhaas@gmail.com> writes: > Awesome. It still needs some makefile work, but I wanted to push it in so we could see if the MSVC stuff works. regards, tom lane
Tom Lane wrote: > Robert Haas <robertmhaas@gmail.com> writes: > >> Awesome. >> > > It still needs some makefile work, but I wanted to push it in so we > could see if the MSVC stuff works. > > > Looks like it does. cheers andrew