Thread: New warnings in plgsql/src/scan.l

New warnings in plgsql/src/scan.l

From
Alvaro Herrera
Date:
I see new warnings in the generation of plpgsql's scanner:

/usr/bin/flex  -Pplpgsql_base_yy -o'/pg/source/00orig/src/pl/plpgsql/src/pl_scan.c'
/pg/source/00orig/src/pl/plpgsql/src/scan.l
/pg/source/00orig/src/pl/plpgsql/src/scan.l:198: warning, the character range [-ÿ] is ambiguous in a case-insensitive
scanner
/pg/source/00orig/src/pl/plpgsql/src/scan.l:198: warning, the character range [-ÿ] is ambiguous in a case-insensitive
scanner
/pg/source/00orig/src/pl/plpgsql/src/scan.l:320: warning, the character range [-ÿ] is ambiguous in a case-insensitive
scanner


I think those have to do with E'' handling changes.  I remember there
were similar problems in the main scanner as well some time ago, not
sure about the resolution.

-- 
Alvaro Herrera (<alvherre[a]surnet.cl>)
"I personally became interested in Linux while I was dating an English major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)


Re: New warnings in plgsql/src/scan.l

From
Peter Eisentraut
Date:
Alvaro Herrera wrote:
> I see new warnings in the generation of plpgsql's scanner:
>
> /usr/bin/flex  -Pplpgsql_base_yy
> -o'/pg/source/00orig/src/pl/plpgsql/src/pl_scan.c'
> /pg/source/00orig/src/pl/plpgsql/src/scan.l
> /pg/source/00orig/src/pl/plpgsql/src/scan.l:198: warning, the
> character range [-ÿ] is ambiguous in a case-insensitive scanner

This warning has existed in one from or another ever since the latest 
flex version is in use.  For example, 7.4 shows it as well.  I don't 
think we have to do anything (except rewrite PL/pgSQL's parser, which 
is somehow planned (or hoped for) anyway).

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: New warnings in plgsql/src/scan.l

From
Alvaro Herrera
Date:
On Mon, Jul 04, 2005 at 06:51:48PM +0200, Peter Eisentraut wrote:
> Alvaro Herrera wrote:
> > I see new warnings in the generation of plpgsql's scanner:
> >
> > /usr/bin/flex  -Pplpgsql_base_yy
> > -o'/pg/source/00orig/src/pl/plpgsql/src/pl_scan.c'
> > /pg/source/00orig/src/pl/plpgsql/src/scan.l
> > /pg/source/00orig/src/pl/plpgsql/src/scan.l:198: warning, the
> > character range [-ÿ] is ambiguous in a case-insensitive scanner
> 
> This warning has existed in one from or another ever since the latest 
> flex version is in use.

Really?  Hmm, maybe the issue is that my system "upgraded itself."  I
see flex is at 2.5.31 ATM, not sure how to find out when it was
upgraded.

(But then maybe I'm wrong about those warnings being new; maybe they
were usually drowned in the noise of "tsort input having a loop", or
something like that, that I've never cared to shut up.)

-- 
Alvaro Herrera (<alvherre[a]surnet.cl>)
"This is a foot just waiting to be shot"                (Andrew Dunstan)


Re: New warnings in plgsql/src/scan.l

From
Tom Lane
Date:
Alvaro Herrera <alvherre@surnet.cl> writes:
> On Mon, Jul 04, 2005 at 06:51:48PM +0200, Peter Eisentraut wrote:
>> This warning has existed in one from or another ever since the latest 
>> flex version is in use.

> Really?  Hmm, maybe the issue is that my system "upgraded itself."  I
> see flex is at 2.5.31 ATM, not sure how to find out when it was
> upgraded.

2.5.31 is known broken; our only response to problems with it is
"use 2.5.4".
        regards, tom lane


Re: New warnings in plgsql/src/scan.l

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Alvaro Herrera wrote:
>> I see new warnings in the generation of plpgsql's scanner:
>> 
>> /usr/bin/flex  -Pplpgsql_base_yy
>> -o'/pg/source/00orig/src/pl/plpgsql/src/pl_scan.c'
>> /pg/source/00orig/src/pl/plpgsql/src/scan.l
>> /pg/source/00orig/src/pl/plpgsql/src/scan.l:198: warning, the
>> character range [-�] is ambiguous in a case-insensitive scanner

> This warning has existed in one from or another ever since the latest 
> flex version is in use.  For example, 7.4 shows it as well.  I don't 
> think we have to do anything (except rewrite PL/pgSQL's parser, which 
> is somehow planned (or hoped for) anyway).

The warnings are pointing at uses of "identifier" and similar.  I think
it's probably unhappy that we are writing things like
ident_start        [A-Za-z\200-\377_]

along with '%option case-insensitive'.  However this doesn't strike me
as ambiguous, merely redundant ...

It may also be important to invoke flex in C locale --- I seem to recall
some previous discussion to the effect that its idea of "case
insensitive" depends on the build-time locale.
        regards, tom lane