pgsql: Make all Perl warnings fatal

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Make all Perl warnings fatal
Date: 2023-12-29 17:46:02
Message-ID: E1rJGvp-00CWH1-Lj@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Make all Perl warnings fatal

There are a lot of Perl scripts in the tree, mostly code generation
and TAP tests. Occasionally, these scripts produce warnings. These
are probably always mistakes on the developer side (true positives).
Typical examples are warnings from genbki.pl or related when you make
a mess in the catalog files during development, or warnings from tests
when they massage a config file that looks different on different
hosts, or mistakes during merges (e.g., duplicate subroutine
definitions), or just mistakes that weren't noticed because there is a
lot of output in a verbose build.

This changes all warnings into fatal errors, by replacing

use warnings;

by

use warnings FATAL => 'all';

in all Perl files.

Discussion: https://www.postgresql.org/message-id/flat/06f899fd-1826-05ab-42d6-adeb1fd5e200%40eisentraut.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c5385929593dd8499cfb5d85ac322e8ee1819fd4

Modified Files
--------------
config/check_modules.pl | 2 +-
contrib/amcheck/t/001_verify_heapam.pl | 2 +-
contrib/amcheck/t/002_cic.pl | 2 +-
contrib/amcheck/t/003_cic_2pc.pl | 2 +-
contrib/amcheck/t/004_verify_nbtree_unique.pl | 2 +-
contrib/amcheck/t/005_pitr.pl | 2 +-
contrib/auto_explain/t/001_auto_explain.pl | 2 +-
contrib/basebackup_to_shell/t/001_basic.pl | 2 +-
contrib/bloom/t/001_wal.pl | 2 +-
contrib/fuzzystrmatch/daitch_mokotoff_header.pl | 2 +-
contrib/intarray/bench/bench.pl | 2 +-
contrib/intarray/bench/create_test.pl | 2 +-
contrib/oid2name/t/001_basic.pl | 2 +-
contrib/pg_prewarm/t/001_basic.pl | 2 +-
contrib/seg/seg-validate.pl | 2 +-
contrib/seg/sort-segments.pl | 2 +-
contrib/test_decoding/t/001_repl_stats.pl | 2 +-
contrib/vacuumlo/t/001_basic.pl | 2 +-
doc/src/sgml/generate-errcodes-table.pl | 2 +-
doc/src/sgml/generate-keywords-table.pl | 2 +-
doc/src/sgml/generate-targets-meson.pl | 2 +-
doc/src/sgml/mk_feature_tables.pl | 2 +-
src/backend/catalog/Catalog.pm | 2 +-
src/backend/catalog/genbki.pl | 2 +-
src/backend/nodes/gen_node_support.pl | 2 +-
src/backend/parser/check_keywords.pl | 2 +-
src/backend/snowball/snowball_create.pl | 2 +-
src/backend/storage/lmgr/generate-lwlocknames.pl | 2 +-
src/backend/utils/Gen_dummy_probes.pl | 2 +-
src/backend/utils/Gen_fmgrtab.pl | 2 +-
src/backend/utils/activity/generate-wait_event_types.pl | 2 +-
src/backend/utils/generate-errcodes.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_BIG5.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_EUC_CN.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_EUC_JIS_2004.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_EUC_JP.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_EUC_KR.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_EUC_TW.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_GB18030.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_JOHAB.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_SHIFT_JIS_2004.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_SJIS.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_UHC.pl | 2 +-
src/backend/utils/mb/Unicode/UCS_to_most.pl | 2 +-
src/backend/utils/mb/Unicode/convutils.pm | 2 +-
src/bin/initdb/t/001_initdb.pl | 2 +-
src/bin/pg_amcheck/t/001_basic.pl | 2 +-
src/bin/pg_amcheck/t/002_nonesuch.pl | 2 +-
src/bin/pg_amcheck/t/003_check.pl | 2 +-
src/bin/pg_amcheck/t/004_verify_heapam.pl | 2 +-
src/bin/pg_amcheck/t/005_opclass_damage.pl | 2 +-
src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl | 2 +-
src/bin/pg_basebackup/t/010_pg_basebackup.pl | 2 +-
src/bin/pg_basebackup/t/011_in_place_tablespace.pl | 2 +-
src/bin/pg_basebackup/t/020_pg_receivewal.pl | 2 +-
src/bin/pg_basebackup/t/030_pg_recvlogical.pl | 2 +-
src/bin/pg_checksums/t/001_basic.pl | 2 +-
src/bin/pg_checksums/t/002_actions.pl | 2 +-
src/bin/pg_combinebackup/t/001_basic.pl | 2 +-
src/bin/pg_combinebackup/t/002_compare_backups.pl | 2 +-
src/bin/pg_combinebackup/t/003_timeline.pl | 2 +-
src/bin/pg_combinebackup/t/004_manifest.pl | 2 +-
src/bin/pg_combinebackup/t/005_integrity.pl | 2 +-
src/bin/pg_config/t/001_pg_config.pl | 2 +-
src/bin/pg_controldata/t/001_pg_controldata.pl | 2 +-
src/bin/pg_ctl/t/001_start_stop.pl | 2 +-
src/bin/pg_ctl/t/002_status.pl | 2 +-
src/bin/pg_ctl/t/003_promote.pl | 2 +-
src/bin/pg_ctl/t/004_logrotate.pl | 2 +-
src/bin/pg_dump/t/001_basic.pl | 2 +-
src/bin/pg_dump/t/002_pg_dump.pl | 2 +-
src/bin/pg_dump/t/003_pg_dump_with_server.pl | 2 +-
src/bin/pg_dump/t/004_pg_dump_parallel.pl | 2 +-
src/bin/pg_dump/t/005_pg_dump_filterfile.pl | 2 +-
src/bin/pg_dump/t/010_dump_connstr.pl | 2 +-
src/bin/pg_resetwal/t/001_basic.pl | 2 +-
src/bin/pg_resetwal/t/002_corrupted.pl | 2 +-
src/bin/pg_rewind/t/001_basic.pl | 2 +-
src/bin/pg_rewind/t/002_databases.pl | 2 +-
src/bin/pg_rewind/t/003_extrafiles.pl | 2 +-
src/bin/pg_rewind/t/004_pg_xlog_symlink.pl | 2 +-
src/bin/pg_rewind/t/005_same_timeline.pl | 2 +-
src/bin/pg_rewind/t/006_options.pl | 2 +-
src/bin/pg_rewind/t/007_standby_source.pl | 2 +-
src/bin/pg_rewind/t/008_min_recovery_point.pl | 2 +-
src/bin/pg_rewind/t/009_growing_files.pl | 2 +-
src/bin/pg_rewind/t/RewindTest.pm | 2 +-
src/bin/pg_test_fsync/t/001_basic.pl | 2 +-
src/bin/pg_test_timing/t/001_basic.pl | 2 +-
src/bin/pg_upgrade/t/001_basic.pl | 2 +-
src/bin/pg_upgrade/t/002_pg_upgrade.pl | 2 +-
src/bin/pg_upgrade/t/003_logical_slots.pl | 2 +-
src/bin/pg_verifybackup/t/001_basic.pl | 2 +-
src/bin/pg_verifybackup/t/002_algorithm.pl | 2 +-
src/bin/pg_verifybackup/t/003_corruption.pl | 2 +-
src/bin/pg_verifybackup/t/004_options.pl | 2 +-
src/bin/pg_verifybackup/t/005_bad_manifest.pl | 2 +-
src/bin/pg_verifybackup/t/006_encoding.pl | 2 +-
src/bin/pg_verifybackup/t/007_wal.pl | 2 +-
src/bin/pg_verifybackup/t/008_untar.pl | 2 +-
src/bin/pg_verifybackup/t/009_extract.pl | 2 +-
src/bin/pg_verifybackup/t/010_client_untar.pl | 2 +-
src/bin/pg_waldump/t/001_basic.pl | 2 +-
src/bin/pg_waldump/t/002_save_fullpage.pl | 2 +-
src/bin/pgbench/t/001_pgbench_with_server.pl | 2 +-
src/bin/pgbench/t/002_pgbench_no_server.pl | 2 +-
src/bin/psql/create_help.pl | 2 +-
src/bin/psql/t/001_basic.pl | 2 +-
src/bin/psql/t/010_tab_completion.pl | 2 +-
src/bin/psql/t/020_cancel.pl | 2 +-
src/bin/scripts/t/010_clusterdb.pl | 2 +-
src/bin/scripts/t/011_clusterdb_all.pl | 2 +-
src/bin/scripts/t/020_createdb.pl | 2 +-
src/bin/scripts/t/040_createuser.pl | 2 +-
src/bin/scripts/t/050_dropdb.pl | 2 +-
src/bin/scripts/t/070_dropuser.pl | 2 +-
src/bin/scripts/t/080_pg_isready.pl | 2 +-
src/bin/scripts/t/090_reindexdb.pl | 2 +-
src/bin/scripts/t/091_reindexdb_all.pl | 2 +-
src/bin/scripts/t/100_vacuumdb.pl | 2 +-
src/bin/scripts/t/101_vacuumdb_all.pl | 2 +-
src/bin/scripts/t/102_vacuumdb_stages.pl | 2 +-
src/bin/scripts/t/200_connstr.pl | 2 +-
src/common/unicode/generate-norm_test_table.pl | 2 +-
src/common/unicode/generate-unicode_category_table.pl | 2 +-
src/common/unicode/generate-unicode_east_asian_fw_table.pl | 2 +-
src/common/unicode/generate-unicode_nonspacing_table.pl | 2 +-
src/common/unicode/generate-unicode_norm_table.pl | 2 +-
src/common/unicode/generate-unicode_normprops_table.pl | 2 +-
src/common/unicode/generate-unicode_version.pl | 2 +-
src/include/catalog/duplicate_oids | 2 +-
src/include/catalog/reformat_dat_file.pl | 2 +-
src/include/catalog/renumber_oids.pl | 2 +-
src/include/catalog/unused_oids | 2 +-
src/interfaces/ecpg/preproc/check_rules.pl | 2 +-
src/interfaces/ecpg/preproc/parse.pl | 2 +-
src/interfaces/libpq/t/001_uri.pl | 2 +-
src/interfaces/libpq/t/002_api.pl | 2 +-
src/interfaces/libpq/t/003_load_balance_host_list.pl | 2 +-
src/interfaces/libpq/t/004_load_balance_dns.pl | 2 +-
src/pl/plperl/plc_perlboot.pl | 6 +++---
src/pl/plperl/plperl_opmask.pl | 2 +-
src/pl/plperl/text2macro.pl | 2 +-
src/pl/plpgsql/src/generate-plerrcodes.pl | 2 +-
src/pl/plpython/generate-spiexceptions.pl | 2 +-
src/pl/tcl/generate-pltclerrcodes.pl | 2 +-
src/test/authentication/t/001_password.pl | 2 +-
src/test/authentication/t/002_saslprep.pl | 2 +-
src/test/authentication/t/003_peer.pl | 2 +-
src/test/authentication/t/004_file_inclusion.pl | 2 +-
src/test/authentication/t/005_sspi.pl | 2 +-
src/test/authentication/t/006_login_trigger.pl | 2 +-
src/test/icu/t/010_database.pl | 2 +-
src/test/kerberos/t/001_auth.pl | 2 +-
src/test/ldap/LdapServer.pm | 2 +-
src/test/ldap/t/001_auth.pl | 2 +-
src/test/ldap/t/002_bindpasswd.pl | 2 +-
src/test/locale/sort-test.pl | 2 +-
src/test/modules/brin/t/01_workitems.pl | 2 +-
src/test/modules/brin/t/02_wal_consistency.pl | 2 +-
src/test/modules/commit_ts/t/001_base.pl | 2 +-
src/test/modules/commit_ts/t/002_standby.pl | 2 +-
src/test/modules/commit_ts/t/003_standby_2.pl | 2 +-
src/test/modules/commit_ts/t/004_restart.pl | 2 +-
src/test/modules/ldap_password_func/t/001_mutated_bindpasswd.pl | 2 +-
src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl | 2 +-
src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl | 2 +-
src/test/modules/test_custom_rmgrs/t/001_basic.pl | 2 +-
src/test/modules/test_misc/t/001_constraint_validation.pl | 2 +-
src/test/modules/test_misc/t/002_tablespace.pl | 2 +-
src/test/modules/test_misc/t/003_check_guc.pl | 2 +-
src/test/modules/test_misc/t/004_io_direct.pl | 2 +-
src/test/modules/test_pg_dump/t/001_base.pl | 2 +-
src/test/modules/worker_spi/t/001_worker_spi.pl | 2 +-
src/test/modules/xid_wraparound/t/001_emergency_vacuum.pl | 2 +-
src/test/modules/xid_wraparound/t/002_limits.pl | 2 +-
src/test/modules/xid_wraparound/t/003_wraparounds.pl | 2 +-
src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm | 2 +-
src/test/perl/PostgreSQL/Test/BackgroundPsql.pm | 2 +-
src/test/perl/PostgreSQL/Test/Cluster.pm | 2 +-
src/test/perl/PostgreSQL/Test/RecursiveCopy.pm | 2 +-
src/test/perl/PostgreSQL/Test/SimpleTee.pm | 2 +-
src/test/perl/PostgreSQL/Test/Utils.pm | 2 +-
src/test/perl/PostgreSQL/Version.pm | 2 +-
src/test/perl/README | 2 +-
src/test/recovery/t/001_stream_rep.pl | 2 +-
src/test/recovery/t/002_archiving.pl | 2 +-
src/test/recovery/t/003_recovery_targets.pl | 2 +-
src/test/recovery/t/004_timeline_switch.pl | 2 +-
src/test/recovery/t/005_replay_delay.pl | 2 +-
src/test/recovery/t/006_logical_decoding.pl | 2 +-
src/test/recovery/t/007_sync_rep.pl | 2 +-
src/test/recovery/t/008_fsm_truncation.pl | 2 +-
src/test/recovery/t/009_twophase.pl | 2 +-
src/test/recovery/t/010_logical_decoding_timelines.pl | 2 +-
src/test/recovery/t/012_subtransactions.pl | 2 +-
src/test/recovery/t/013_crash_restart.pl | 2 +-
src/test/recovery/t/014_unlogged_reinit.pl | 2 +-
src/test/recovery/t/015_promotion_pages.pl | 2 +-
src/test/recovery/t/016_min_consistency.pl | 2 +-
src/test/recovery/t/017_shm.pl | 2 +-
src/test/recovery/t/018_wal_optimize.pl | 2 +-
src/test/recovery/t/019_replslot_limit.pl | 2 +-
src/test/recovery/t/020_archive_status.pl | 2 +-
src/test/recovery/t/021_row_visibility.pl | 2 +-
src/test/recovery/t/022_crash_temp_files.pl | 2 +-
src/test/recovery/t/023_pitr_prepared_xact.pl | 2 +-
src/test/recovery/t/024_archive_recovery.pl | 2 +-
src/test/recovery/t/025_stuck_on_old_timeline.pl | 2 +-
src/test/recovery/t/026_overwrite_contrecord.pl | 2 +-
src/test/recovery/t/027_stream_regress.pl | 2 +-
src/test/recovery/t/028_pitr_timelines.pl | 2 +-
src/test/recovery/t/029_stats_restart.pl | 2 +-
src/test/recovery/t/030_stats_cleanup_replica.pl | 2 +-
src/test/recovery/t/031_recovery_conflict.pl | 2 +-
src/test/recovery/t/032_relfilenode_reuse.pl | 2 +-
src/test/recovery/t/033_replay_tsp_drops.pl | 2 +-
src/test/recovery/t/034_create_database.pl | 2 +-
src/test/recovery/t/035_standby_logical_decoding.pl | 2 +-
src/test/recovery/t/036_truncated_dropped.pl | 2 +-
src/test/recovery/t/037_invalid_database.pl | 2 +-
src/test/recovery/t/038_save_logical_slots_shutdown.pl | 2 +-
src/test/recovery/t/039_end_of_wal.pl | 2 +-
src/test/recovery/t/cp_history_files | 2 +-
src/test/ssl/t/001_ssltests.pl | 4 +++-
src/test/ssl/t/002_scram.pl | 2 +-
src/test/ssl/t/003_sslinfo.pl | 2 +-
src/test/ssl/t/SSL/Backend/OpenSSL.pm | 2 +-
src/test/ssl/t/SSL/Server.pm | 2 +-
src/test/subscription/t/001_rep_changes.pl | 2 +-
src/test/subscription/t/002_types.pl | 2 +-
src/test/subscription/t/003_constraints.pl | 2 +-
src/test/subscription/t/004_sync.pl | 2 +-
src/test/subscription/t/005_encoding.pl | 2 +-
src/test/subscription/t/006_rewrite.pl | 2 +-
src/test/subscription/t/007_ddl.pl | 2 +-
src/test/subscription/t/008_diff_schema.pl | 2 +-
src/test/subscription/t/009_matviews.pl | 2 +-
src/test/subscription/t/010_truncate.pl | 2 +-
src/test/subscription/t/011_generated.pl | 2 +-
src/test/subscription/t/012_collation.pl | 2 +-
src/test/subscription/t/013_partition.pl | 2 +-
src/test/subscription/t/014_binary.pl | 2 +-
src/test/subscription/t/015_stream.pl | 2 +-
src/test/subscription/t/016_stream_subxact.pl | 2 +-
src/test/subscription/t/017_stream_ddl.pl | 2 +-
src/test/subscription/t/018_stream_subxact_abort.pl | 2 +-
src/test/subscription/t/019_stream_subxact_ddl_abort.pl | 2 +-
src/test/subscription/t/020_messages.pl | 2 +-
src/test/subscription/t/021_twophase.pl | 2 +-
src/test/subscription/t/022_twophase_cascade.pl | 2 +-
src/test/subscription/t/023_twophase_stream.pl | 2 +-
src/test/subscription/t/024_add_drop_pub.pl | 2 +-
src/test/subscription/t/025_rep_changes_for_schema.pl | 2 +-
src/test/subscription/t/026_stats.pl | 2 +-
src/test/subscription/t/027_nosuperuser.pl | 2 +-
src/test/subscription/t/028_row_filter.pl | 2 +-
src/test/subscription/t/029_on_error.pl | 2 +-
src/test/subscription/t/030_origin.pl | 2 +-
src/test/subscription/t/031_column_list.pl | 2 +-
src/test/subscription/t/032_subscribe_use_index.pl | 2 +-
src/test/subscription/t/033_run_as_table_owner.pl | 2 +-
src/test/subscription/t/100_bugs.pl | 2 +-
src/tools/PerfectHash.pm | 2 +-
src/tools/check_bison_recursion.pl | 2 +-
src/tools/ci/windows_build_config.pl | 2 +-
src/tools/copyright.pl | 2 +-
src/tools/fix-old-flex-code.pl | 2 +-
src/tools/gen_export.pl | 2 +-
src/tools/gen_keywordlist.pl | 2 +-
src/tools/git_changelog | 2 +-
src/tools/mark_pgdllimport.pl | 2 +-
src/tools/msvc_gendef.pl | 2 +-
src/tools/pg_bsd_indent/t/001_pg_bsd_indent.pl | 2 +-
src/tools/pginclude/pgcheckdefines | 2 +-
src/tools/pgindent/pgindent | 2 +-
src/tools/version_stamp.pl | 2 +-
src/tools/win32tzlist.pl | 2 +-
278 files changed, 282 insertions(+), 280 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Jeff Davis 2023-12-29 20:05:43 pgsql: Fix collate.windows.win1252 test.
Previous Message Tom Lane 2023-12-29 15:57:28 pgsql: In pg_dump, don't dump a stats object unless dumping underlying