1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Tweak regex to avoid a bug in Perl 5.16.3.

For some reason, 5.16.3 (and perhaps slightly earlier/later versions)
go into an infinite loop with the version-replacement regex installed
by commit fc0d0ce97.  We can work around that by using an explicit
"\n" instead of the line-start metacharacter "^".

Reported-by: Sami Imseih <samimseih@gmail.com>
Discussion: https://postgr.es/m/CAA5RZ0u9dV3CdKqkqdusA_RdvBkwWe0c0rxcFWj++VYoutFYSw@mail.gmail.com
This commit is contained in:
Tom Lane
2025-02-28 15:20:22 -05:00
parent 7717f63006
commit 8b49392b27

View File

@ -296,7 +296,7 @@ sub adjust_old_dumpfile
# Same with version argument to pg_restore_relation_stats() or
# pg_restore_attribute_stats().
$dump =~ s {(^\s+'version',) '\d+'::integer,$}
$dump =~ s {\n(\s+'version',) '\d+'::integer,$}
{$1 '000000'::integer,}mg;
if ($old_version < 16)
@ -645,7 +645,7 @@ sub adjust_new_dumpfile
# Same with version argument to pg_restore_relation_stats() or
# pg_restore_attribute_stats().
$dump =~ s {(^\s+'version',) '\d+'::integer,$}
$dump =~ s {\n(\s+'version',) '\d+'::integer,$}
{$1 '000000'::integer,}mg;
# pre-v16 dumps do not know about XMLSERIALIZE(NO INDENT).