Re: Re: [COMMITTERS] pgsql: Get rid of the need for manual maintenance of the initial
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-01-05T20:36:30Z
Lists: pgsql-hackers
Tom Lane wrote:
> I'm not nearly good enough in Perl to be sure about the semantics
> of this loop. Is it possible that it's changing the global contents
> of the @$data structure, rather than just hacking a local copy of
> each row before pushing some values into @fmgr?
>
That's exactly what it does. The loop variable is an alias. See
perlsyn(1) for details.
These two lines appear to be suspicious:
$row->{bki_values} =~ s/"[^"]*"/"xxx"/g;
@{$row}{@attnames} = split /\s+/, $row->{bki_values};
Something like:
(my $bkival = $row->{bki_values}) =~ s/"[^"]*"/"xxx"/g;
my $atts = {};
@{$atts}{@attnames} = split /\s+/, $bkival;
might work better.
cheers
andrew