> On Mar 12, 2021, at 10:16 PM, Noah Misch <n...@leadboat.com> wrote:
>
> On Sat, Mar 13, 2021 at 01:07:15AM -0500, Tom Lane wrote:
>> I wrote:
>>>> ... btw, prairiedog (which has a rather old Perl) has a
>>>> different complaint:
>>>> Invalid type 'q' in unpack at t/004_verify_heapam.pl line 104.
>>
>>> Hmm ... "man perlfunc" on that system quoth
>>> q A signed quad (64-bit) value.
>>> Q An unsigned quad value.
>>> (Quads are available only if your system supports
>>> 64-bit
>>> integer values _and_ if Perl has been compiled to
>>> support those.
>>> Causes a fatal error otherwise.)
>>> It does not seem unreasonable for us to rely on Perl having that
>>> in 2021, so I'll see about upgrading this perl installation.
>>
>> Hm, wait a minute: hoverfly is showing the same failure, even though
>> it claims to be running a 64-bit Perl. Now I'm confused.
>
> On that machine:
>
> [nm@power8-aix 7:0 2021-03-13T06:09:08 ~ 0]$ /usr/bin/perl64 -e 'unpack "q",
> ""'
> [nm@power8-aix 7:0 2021-03-13T06:09:10 ~ 0]$ /usr/bin/perl -e 'unpack "q", ""'
> Invalid type 'q' in unpack at -e line 1.
>
> hoverfly does configure with PERL=perl64. /usr/bin/prove is from the 32-bit
> Perl, so I suspect the TAP suites get 32-bit Perl that way. (There's no
> "prove64".) This test should unpack the field as two 32-bit values, not a
> 64-bit value, to avoid requiring more from the Perl installation.
I will post a modified test in a bit that avoids using Q/q.
—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company