Re: A bug when use get_bit() function for a long bytea string

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker )
Cc: "Daniel Verite" <daniel@manitou-mail.org>, "movead.li\@highgo.ca" <movead.li@highgo.ca>, "ashutosh.bapat" <ashutosh.bapat@2ndquadrant.com>, "pgsql-hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2020-04-02T22:21:08Z
Lists: pgsql-hackers
ilmari@ilmari.org (Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker?=) writes:
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>> Yeah, I'd noticed those on previous readings of the patch.  They'd almost
>> certainly fail on some of our older/smaller buildfarm members, so they're
>> not getting committed, even if they didn't require multiple seconds apiece
>> to run (even on a machine with plenty of memory).  It's useful to have
>> them for initial testing though.

> Perl's test suite has a similar issue with tests for handling of huge
> strings, hashes, arrays, regexes etc.  We've taken the approach of
> checking the environment variable PERL_TEST_MEMORY and skipping tests
> that need more than that many gigabytes.  We currently have tests that
> check for values from 1 all the way up to 96 GiB.
> This would be trivial to do in the Postgres TAP tests, but something
> similar might feasible in the pg_regress too?

Meh.  The memory is only part of it; the other problem is that multiple
seconds expended in every future run of the regression tests is a price
that's many orders of magnitude higher than the potential value of this
test case.

			regards, tom lane



Commits

  1. Adjust bytea get_bit/set_bit to cope with bytea strings > 256MB.

  2. Adjust bytea get_bit/set_bit to use int8 not int4 for bit numbering.