Fixing pgbench init overflow

John H <johnhyvr@gmail.com>

From: Chen Hao Hsu <johnhyvr@gmail.com>
To: pgsql-hackers@postgresql.org
Date: 2023-12-22T23:18:16Z
Lists: pgsql-hackers

Attachments

Hello,

pgbench mixes int and int64 to initialize the tables.
When a large enough scale factor is passed, initPopulateTable
overflows leading to it never completing, ie.

2147400000 of 2200000000 tuples (97%) of
pgbench_accounts done (elapsed 4038.83 s, remaining 98.93 s)
-2147400000 of 2200000000 tuples (-97%) of
pgbench_accounts done (elapsed 4038.97 s, remaining -8176.86 s)


Attached is a patch that fixes this, pgbench -i -s 22000 works now.

-- 
John Hsu - Amazon Web Services

Commits

  1. pgbench: Fix overflow in table populating when rows >= 2^31-1

  2. pgbench: Use COPY for client-side data generation