| From: | Andres Freund <andres(at)anarazel(dot)de> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: COPY FROM WITH HEADER skips a tuple every 4 billion tuples |
| Date: | 2018-05-22 16:16:45 |
| Message-ID: | 20180522161645.ovmmqou2uloy7jdg@alap3.anarazel.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2018-05-22 11:55:26 -0400, Tom Lane wrote:
> David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> writes:
> > while it might not look too scary by itself, it gets a bit more so
> > when you learn that the cur_lineno is only 32 bits wide. This will
> > result in skipping a tuple every time the 32-bit variable wraps back
> > around to 0 again.
>
> Hm, so why is the correct rowcount returned --- are we running
> a separate counter for that purpose, and if so why?
Yes, it's a local counter in CopyFrom/CopyTo. It's probably not
entirely trivial to unify the two. The batching etc makes us modify
cur_lineno in a bit weird ways at times. It's noteworthy that the
comment for cur_lineno says: /* line number for error messages */
Greetings,
Andres Freund
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2018-05-22 16:18:04 | Re: plperl fails with perl 5.28 |
| Previous Message | Lenain | 2018-05-22 16:07:07 | pgAdmin4 Docker behind load balancer |