On Sat, Jul 12, 2014 at 2:19 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
> Sawada Masahiko wrote:
>
>> As you said, if line number reached UINT_MAX then I think that this
>> case is too strange.
>> I think INT_MAX is enough for line number.
>
> My point is not whether 2 billion is a better number than 4 billion as a
> maximum value. My point is that wraparound of signed int is, I think,
> not even defined in C, whereas wraparound of unsigned int is well
> defined. cur_line should be declared as unsigned int. I don't trust
> that INT_MAX+2 arithmetic.
>
> Please don't use cur_line as a name for a global variable. Something
> like PSQLLineNumber seems more appropriate if it's going to be exposed
> through prompt.h. However, note that MainLoop() keeps state in local
> variables and notes that it is reentrant; what happens to your cur_line
> when a file is read by \i and similar? I wonder if it should be part of
> PsqlScanStateData instead ...
>
Thank you for comment.
I restarted to make this patch again.
Attached patch is new version patch, and rebased.
pset structure has cur_lineno variable which shows current line number
as unsigned int64.
Regards,
-------
Sawada Masahiko