| From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> | 
|---|---|
| To: | Peter Geoghegan <pg(at)bowt(dot)ie> | 
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: "long" type is not appropriate for counting tuples | 
| Date: | 2019-04-29 18:19:19 | 
| Message-ID: | 20190429181919.GA21636@alvherre.pgsql | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On 2019-Apr-28, Peter Geoghegan wrote:
> Commit ab0dfc961b6 used a "long" variable within _bt_load() to count
> the number of tuples entered into a B-Tree index as it is built. This
> will not work as expected on Windows, even on 64-bit Windows, because
> "long" is only 32-bits wide. It's far from impossible that you'd have
> ~2 billion index tuples when building a new index.
Agreed.  Here's a patch.  I see downthread that you also discovered the
same mistake in _h_indexbuild by grepping for "long"; I got to it by
examining callers of pgstat_progress_update_param and
pgstat_progress_update_multi_param.  I didn't find any other mistakes of
the same ilk.  Some codesites use "double" instead of "int64", but those
are not broken.
-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
| Attachment | Content-Type | Size | 
|---|---|---|
| 0001-Widen-tuple-counter-variable-to-64-bits.patch | text/x-diff | 1.3 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2019-04-29 18:24:23 | Re: "long" type is not appropriate for counting tuples | 
| Previous Message | Peter Geoghegan | 2019-04-29 18:18:49 | Re: "long" type is not appropriate for counting tuples |