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: | Raw Message | Whole Thread | 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 |