Thread: contrib/cube & contrib/seg regression fixes

contrib/cube & contrib/seg regression fixes

From
Joe Conway
Date:
The attached fixes regression test failures in contrib/cube & contrib/seg.
Both had error message wording that changed.

Please apply.

Thanks,

Joe
Index: contrib/cube/expected/cube.out
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/cube/expected/cube.out,v
retrieving revision 1.5
diff -c -r1.5 cube.out
*** contrib/cube/expected/cube.out    12 Sep 2002 00:26:00 -0000    1.5
--- contrib/cube/expected/cube.out    14 Sep 2002 02:49:15 -0000
***************
*** 258,303 ****
  SELECT ''::cube AS cube;
  ERROR:  cube_in: can't parse an empty string
  SELECT 'ABC'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' or `O_PAREN' or `O_BRACKET' at or before position 1, character ('A', \101),
input:'ABC' 

  SELECT '()'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (')', \051), input: '()'

  SELECT '[]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 2, character (']', \135), input: '[]'

  SELECT '[()]'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (')', \051), input: '[()]'

  SELECT '[(1)]'::cube AS cube;
! ERROR:  parse error, expecting `COMMA' at or before position 5, character (']', \135), input: '[(1)]'

  SELECT '[(1),]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 6, character (']', \135), input: '[(1),]'

  SELECT '[(1),2]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 7, character (']', \135), input: '[(1),2]'

  SELECT '[(1),(2),(3)]'::cube AS cube;
! ERROR:  parse error, expecting `C_BRACKET' at or before position 9, character (',', \054), input: '[(1),(2),(3)]'

  SELECT '1,'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (',', \054), input: '1,'

  SELECT '1,2,'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '1,2,'

  SELECT '1,,2'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (',', \054), input: '1,,2'

  SELECT '(1,)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (')', \051), input: '(1,)'

  SELECT '(1,2,)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 6, character (')', \051), input: '(1,2,)'

  SELECT '(1,,2)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '(1,,2)'

  -- invalid input: semantic errors and trailing garbage
  SELECT '[(1),(2)],'::cube AS cube; -- 0
--- 258,303 ----
  SELECT ''::cube AS cube;
  ERROR:  cube_in: can't parse an empty string
  SELECT 'ABC'::cube AS cube;
! ERROR:  parse error, unexpected $undefined., expecting FLOAT or O_PAREN or O_BRACKET at or before position 1,
character('A', \101), input: 'ABC' 

  SELECT '()'::cube AS cube;
! ERROR:  parse error, unexpected C_PAREN, expecting FLOAT at or before position 2, character (')', \051), input: '()'

  SELECT '[]'::cube AS cube;
! ERROR:  parse error, unexpected C_BRACKET, expecting O_PAREN at or before position 2, character (']', \135), input:
'[]'

  SELECT '[()]'::cube AS cube;
! ERROR:  parse error, unexpected C_PAREN, expecting FLOAT at or before position 3, character (')', \051), input:
'[()]'

  SELECT '[(1)]'::cube AS cube;
! ERROR:  parse error, unexpected C_BRACKET, expecting COMMA at or before position 5, character (']', \135), input:
'[(1)]'

  SELECT '[(1),]'::cube AS cube;
! ERROR:  parse error, unexpected C_BRACKET, expecting O_PAREN at or before position 6, character (']', \135), input:
'[(1),]'

  SELECT '[(1),2]'::cube AS cube;
! ERROR:  parse error, unexpected FLOAT, expecting O_PAREN at or before position 7, character (']', \135), input:
'[(1),2]'

  SELECT '[(1),(2),(3)]'::cube AS cube;
! ERROR:  parse error, unexpected COMMA, expecting C_BRACKET at or before position 9, character (',', \054), input:
'[(1),(2),(3)]'

  SELECT '1,'::cube AS cube;
! ERROR:  parse error, unexpected $, expecting FLOAT at or before position 2, character (',', \054), input: '1,'

  SELECT '1,2,'::cube AS cube;
! ERROR:  parse error, unexpected $, expecting FLOAT at or before position 4, character (',', \054), input: '1,2,'

  SELECT '1,,2'::cube AS cube;
! ERROR:  parse error, unexpected COMMA, expecting FLOAT at or before position 3, character (',', \054), input: '1,,2'

  SELECT '(1,)'::cube AS cube;
! ERROR:  parse error, unexpected C_PAREN, expecting FLOAT at or before position 4, character (')', \051), input:
'(1,)'

  SELECT '(1,2,)'::cube AS cube;
! ERROR:  parse error, unexpected C_PAREN, expecting FLOAT at or before position 6, character (')', \051), input:
'(1,2,)'

  SELECT '(1,,2)'::cube AS cube;
! ERROR:  parse error, unexpected COMMA, expecting FLOAT at or before position 4, character (',', \054), input:
'(1,,2)'

  -- invalid input: semantic errors and trailing garbage
  SELECT '[(1),(2)],'::cube AS cube; -- 0
Index: contrib/seg/expected/seg.out
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/seg/expected/seg.out,v
retrieving revision 1.2
diff -c -r1.2 seg.out
*** contrib/seg/expected/seg.out    23 Aug 2002 00:04:52 -0000    1.2
--- contrib/seg/expected/seg.out    14 Sep 2002 02:49:30 -0000
***************
*** 395,419 ****
  SELECT ''::seg AS seg;
  ERROR:  seg_in: can't parse an empty string
  SELECT 'ABC'::seg AS seg;
! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 1, character ('A', \101), input:
'ABC'

  SELECT '1ABC'::seg AS seg;
! ERROR:  expecting end of input at or near position 2, character ('A', \101), input: '1ABC'

  SELECT '1.'::seg AS seg;
! ERROR:  expecting end of input at or near position 2, character ('.', \056), input: '1.'

  SELECT '1.....'::seg AS seg;
! ERROR:  expecting end of input at or near position 6, character ('.', \056), input: '1.....'

  SELECT '.1'::seg AS seg;
! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 2, character ('1', \061), input:
'.1'

  SELECT '1..2.'::seg AS seg;
! ERROR:  expecting end of input at or near position 5, character ('.', \056), input: '1..2.'

  SELECT '1 e7'::seg AS seg;
! ERROR:  expecting end of input at or near position 3, character ('e', \145), input: '1 e7'

  SELECT '1e700'::seg AS seg;
  ERROR:  numeric value 1e700 unrepresentable
--- 395,419 ----
  SELECT ''::seg AS seg;
  ERROR:  seg_in: can't parse an empty string
  SELECT 'ABC'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting FLOAT or RANGE or EXTENSION at or near position 1, character
('A',\101), input: 'ABC' 

  SELECT '1ABC'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting $ at or near position 2, character ('A', \101), input: '1ABC'

  SELECT '1.'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting $ at or near position 2, character ('.', \056), input: '1.'

  SELECT '1.....'::seg AS seg;
! ERROR:  parse error, unexpected RANGE, expecting $ at or near position 6, character ('.', \056), input: '1.....'

  SELECT '.1'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting FLOAT or RANGE or EXTENSION at or near position 2, character
('1',\061), input: '.1' 

  SELECT '1..2.'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting $ at or near position 5, character ('.', \056), input: '1..2.'

  SELECT '1 e7'::seg AS seg;
! ERROR:  parse error, unexpected $undefined., expecting $ at or near position 3, character ('e', \145), input: '1 e7'

  SELECT '1e700'::seg AS seg;
  ERROR:  numeric value 1e700 unrepresentable

Re: contrib/cube & contrib/seg regression fixes

From
Tom Lane
Date:
Joe Conway <mail@joeconway.com> writes:
> The attached fixes regression test failures in contrib/cube & contrib/seg.
> Both had error message wording that changed.

[ scratches head... ]  They both pass for me already, and would fail if
this patch were to be applied.

            regards, tom lane

Re: contrib/cube & contrib/seg regression fixes

From
Joe Conway
Date:
Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>
>>The attached fixes regression test failures in contrib/cube & contrib/seg.
>>Both had error message wording that changed.
>
> [ scratches head... ]  They both pass for me already, and would fail if
> this patch were to be applied.

The message seems to be coming from bison:

#0  elog (lev=20, fmt=0x82c038c "parse error, unexpected $undefined.,
expecting FLOAT or O_PAREN or O_BRACKET at or before position 1, character
('A', \\101), input: 'ABC'\n") at elog.c:114
#1  0x40019093 in cube_yyerror (msg=0xbfffe300 "parse error, unexpected
$undefined., expecting FLOAT or O_PAREN or O_BRACKET") at cubeparse.y:204
#2  0x40018dab in cube_yyparse (result=0xbfffe8b0) at
/usr/share/bison/bison.simple:799
#3  0x40015a87 in cube_in (str=0x82c02a4 "ABC") at cube.c:102

I'm using bison-1.35. Recommendations, or should I ignore the regression failures?

Joe


Re: contrib/cube & contrib/seg regression fixes

From
Tom Lane
Date:
Joe Conway <mail@joeconway.com> writes:
> The message seems to be coming from bison:

> #0  elog (lev=20, fmt=0x82c038c "parse error, unexpected $undefined.,
> expecting FLOAT or O_PAREN or O_BRACKET at or before position 1, character
> ('A', \\101), input: 'ABC'\n") at elog.c:114
> #1  0x40019093 in cube_yyerror (msg=0xbfffe300 "parse error, unexpected
> $undefined., expecting FLOAT or O_PAREN or O_BRACKET") at cubeparse.y:204
> #2  0x40018dab in cube_yyparse (result=0xbfffe8b0) at
> /usr/share/bison/bison.simple:799

> I'm using bison-1.35. Recommendations, or should I ignore the regression failures?

AFAICT, bison 1.28 (what I have here) cannot emit any message mentioning
"unexpected"; the word just plain does not appear in bison.simple.
"unexpected $undefined." does not exactly seem like a major advance in
error-message technology anyway :-(.

I suggest we sit tight and hope that the bison guys get their act
together, soon.

            regards, tom lane

Re: contrib/cube & contrib/seg regression fixes

From
Joe Conway
Date:
Tom Lane wrote:
> AFAICT, bison 1.28 (what I have here) cannot emit any message mentioning
> "unexpected"; the word just plain does not appear in bison.simple.
> "unexpected $undefined." does not exactly seem like a major advance in
> error-message technology anyway :-(.
>
> I suggest we sit tight and hope that the bison guys get their act
> together, soon.

I figured as much. Thanks for looking at it.

FWIW, both seg and cube have "#define YYERROR_VERBOSE", which seems to add the
expected/unexpected text. It might solve the issue to remove the define and
accept slightly less verbose output.

As a side note, while researching this I looked at bison's cvs HEAD. It
appears bison is undergoing some fairly substantial rewriting -- bison.simple
is now in the attic.

Joe


Re: contrib/cube & contrib/seg regression fixes

From
Tom Lane
Date:
Joe Conway <mail@joeconway.com> writes:
> FWIW, both seg and cube have "#define YYERROR_VERBOSE", which seems to
> add the expected/unexpected text. It might solve the issue to remove
> the define and accept slightly less verbose output.

That sounds like a plan to me; if the verbose output varies from one
bison version to another, then we should turn it off in the standard
build.  (Anyone who really wants it can turn it on again.)

Any objections out there?

            regards, tom lane

Re: contrib/cube & contrib/seg regression fixes

From
Joe Conway
Date:
Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>>FWIW, both seg and cube have "#define YYERROR_VERBOSE", which seems to
>>add the expected/unexpected text. It might solve the issue to remove
>>the define and accept slightly less verbose output.
>
> That sounds like a plan to me; if the verbose output varies from one
> bison version to another, then we should turn it off in the standard
> build.  (Anyone who really wants it can turn it on again.)
>
> Any objections out there?
>

I haven't seen any objections, so here is a patch. It removes "#define
YYERROR_VERBOSE" from contrib/cube and contrib/seg, and adjusts the expected
output accordingly. Hopefully this will consistently pass across multiple
bison versions.

If no objections materialize, please apply.

Thanks,

Joe
Index: contrib/cube/cubeparse.y
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/cube/cubeparse.y,v
retrieving revision 1.5
diff -c -r1.5 cubeparse.y
*** contrib/cube/cubeparse.y    12 Sep 2002 00:26:00 -0000    1.5
--- contrib/cube/cubeparse.y    19 Sep 2002 04:32:18 -0000
***************
*** 2,8 ****
  /* NdBox = [(lowerleft),(upperright)] */
  /* [(xLL(1)...xLL(N)),(xUR(1)...xUR(n))] */

- #define YYERROR_VERBOSE
  #define YYPARSE_PARAM result  /* need this to pass a pointer (void *) to yyparse */
  #define YYSTYPE char *
  #define YYDEBUG 1
--- 2,7 ----
Index: contrib/cube/expected/cube.out
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/cube/expected/cube.out,v
retrieving revision 1.5
diff -c -r1.5 cube.out
*** contrib/cube/expected/cube.out    12 Sep 2002 00:26:00 -0000    1.5
--- contrib/cube/expected/cube.out    19 Sep 2002 04:33:04 -0000
***************
*** 258,303 ****
  SELECT ''::cube AS cube;
  ERROR:  cube_in: can't parse an empty string
  SELECT 'ABC'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' or `O_PAREN' or `O_BRACKET' at or before position 1, character ('A', \101),
input:'ABC' 

  SELECT '()'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (')', \051), input: '()'

  SELECT '[]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 2, character (']', \135), input: '[]'

  SELECT '[()]'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (')', \051), input: '[()]'

  SELECT '[(1)]'::cube AS cube;
! ERROR:  parse error, expecting `COMMA' at or before position 5, character (']', \135), input: '[(1)]'

  SELECT '[(1),]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 6, character (']', \135), input: '[(1),]'

  SELECT '[(1),2]'::cube AS cube;
! ERROR:  parse error, expecting `O_PAREN' at or before position 7, character (']', \135), input: '[(1),2]'

  SELECT '[(1),(2),(3)]'::cube AS cube;
! ERROR:  parse error, expecting `C_BRACKET' at or before position 9, character (',', \054), input: '[(1),(2),(3)]'

  SELECT '1,'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (',', \054), input: '1,'

  SELECT '1,2,'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '1,2,'

  SELECT '1,,2'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (',', \054), input: '1,,2'

  SELECT '(1,)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (')', \051), input: '(1,)'

  SELECT '(1,2,)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 6, character (')', \051), input: '(1,2,)'

  SELECT '(1,,2)'::cube AS cube;
! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '(1,,2)'

  -- invalid input: semantic errors and trailing garbage
  SELECT '[(1),(2)],'::cube AS cube; -- 0
--- 258,303 ----
  SELECT ''::cube AS cube;
  ERROR:  cube_in: can't parse an empty string
  SELECT 'ABC'::cube AS cube;
! ERROR:  parse error at or before position 1, character ('A', \101), input: 'ABC'

  SELECT '()'::cube AS cube;
! ERROR:  parse error at or before position 2, character (')', \051), input: '()'

  SELECT '[]'::cube AS cube;
! ERROR:  parse error at or before position 2, character (']', \135), input: '[]'

  SELECT '[()]'::cube AS cube;
! ERROR:  parse error at or before position 3, character (')', \051), input: '[()]'

  SELECT '[(1)]'::cube AS cube;
! ERROR:  parse error at or before position 5, character (']', \135), input: '[(1)]'

  SELECT '[(1),]'::cube AS cube;
! ERROR:  parse error at or before position 6, character (']', \135), input: '[(1),]'

  SELECT '[(1),2]'::cube AS cube;
! ERROR:  parse error at or before position 7, character (']', \135), input: '[(1),2]'

  SELECT '[(1),(2),(3)]'::cube AS cube;
! ERROR:  parse error at or before position 9, character (',', \054), input: '[(1),(2),(3)]'

  SELECT '1,'::cube AS cube;
! ERROR:  parse error at or before position 2, character (',', \054), input: '1,'

  SELECT '1,2,'::cube AS cube;
! ERROR:  parse error at or before position 4, character (',', \054), input: '1,2,'

  SELECT '1,,2'::cube AS cube;
! ERROR:  parse error at or before position 3, character (',', \054), input: '1,,2'

  SELECT '(1,)'::cube AS cube;
! ERROR:  parse error at or before position 4, character (')', \051), input: '(1,)'

  SELECT '(1,2,)'::cube AS cube;
! ERROR:  parse error at or before position 6, character (')', \051), input: '(1,2,)'

  SELECT '(1,,2)'::cube AS cube;
! ERROR:  parse error at or before position 4, character (',', \054), input: '(1,,2)'

  -- invalid input: semantic errors and trailing garbage
  SELECT '[(1),(2)],'::cube AS cube; -- 0
Index: contrib/seg/segparse.y
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/seg/segparse.y,v
retrieving revision 1.4
diff -c -r1.4 segparse.y
*** contrib/seg/segparse.y    2 Sep 2002 06:11:42 -0000    1.4
--- contrib/seg/segparse.y    19 Sep 2002 04:35:09 -0000
***************
*** 1,5 ****
  %{
- #define YYERROR_VERBOSE
  #define YYPARSE_PARAM result  /* need this to pass a pointer (void *) to yyparse */

  #include "postgres.h"
--- 1,4 ----
Index: contrib/seg/expected/seg.out
===================================================================
RCS file: /opt/src/cvs/pgsql-server/contrib/seg/expected/seg.out,v
retrieving revision 1.2
diff -c -r1.2 seg.out
*** contrib/seg/expected/seg.out    23 Aug 2002 00:04:52 -0000    1.2
--- contrib/seg/expected/seg.out    19 Sep 2002 04:35:42 -0000
***************
*** 395,419 ****
  SELECT ''::seg AS seg;
  ERROR:  seg_in: can't parse an empty string
  SELECT 'ABC'::seg AS seg;
! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 1, character ('A', \101), input:
'ABC'

  SELECT '1ABC'::seg AS seg;
! ERROR:  expecting end of input at or near position 2, character ('A', \101), input: '1ABC'

  SELECT '1.'::seg AS seg;
! ERROR:  expecting end of input at or near position 2, character ('.', \056), input: '1.'

  SELECT '1.....'::seg AS seg;
! ERROR:  expecting end of input at or near position 6, character ('.', \056), input: '1.....'

  SELECT '.1'::seg AS seg;
! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 2, character ('1', \061), input:
'.1'

  SELECT '1..2.'::seg AS seg;
! ERROR:  expecting end of input at or near position 5, character ('.', \056), input: '1..2.'

  SELECT '1 e7'::seg AS seg;
! ERROR:  expecting end of input at or near position 3, character ('e', \145), input: '1 e7'

  SELECT '1e700'::seg AS seg;
  ERROR:  numeric value 1e700 unrepresentable
--- 395,419 ----
  SELECT ''::seg AS seg;
  ERROR:  seg_in: can't parse an empty string
  SELECT 'ABC'::seg AS seg;
! ERROR:  parse error at or near position 1, character ('A', \101), input: 'ABC'

  SELECT '1ABC'::seg AS seg;
! ERROR:  parse error at or near position 2, character ('A', \101), input: '1ABC'

  SELECT '1.'::seg AS seg;
! ERROR:  parse error at or near position 2, character ('.', \056), input: '1.'

  SELECT '1.....'::seg AS seg;
! ERROR:  parse error at or near position 6, character ('.', \056), input: '1.....'

  SELECT '.1'::seg AS seg;
! ERROR:  parse error at or near position 2, character ('1', \061), input: '.1'

  SELECT '1..2.'::seg AS seg;
! ERROR:  parse error at or near position 5, character ('.', \056), input: '1..2.'

  SELECT '1 e7'::seg AS seg;
! ERROR:  parse error at or near position 3, character ('e', \145), input: '1 e7'

  SELECT '1e700'::seg AS seg;
  ERROR:  numeric value 1e700 unrepresentable

Re: contrib/cube & contrib/seg regression fixes

From
Bruce Momjian
Date:
Patch applied by Tom.  Thanks.

---------------------------------------------------------------------------


Joe Conway wrote:
> Tom Lane wrote:
> > Joe Conway <mail@joeconway.com> writes:
> >>FWIW, both seg and cube have "#define YYERROR_VERBOSE", which seems to
> >>add the expected/unexpected text. It might solve the issue to remove
> >>the define and accept slightly less verbose output.
> >
> > That sounds like a plan to me; if the verbose output varies from one
> > bison version to another, then we should turn it off in the standard
> > build.  (Anyone who really wants it can turn it on again.)
> >
> > Any objections out there?
> >
>
> I haven't seen any objections, so here is a patch. It removes "#define
> YYERROR_VERBOSE" from contrib/cube and contrib/seg, and adjusts the expected
> output accordingly. Hopefully this will consistently pass across multiple
> bison versions.
>
> If no objections materialize, please apply.
>
> Thanks,
>
> Joe

> Index: contrib/cube/cubeparse.y
> ===================================================================
> RCS file: /opt/src/cvs/pgsql-server/contrib/cube/cubeparse.y,v
> retrieving revision 1.5
> diff -c -r1.5 cubeparse.y
> *** contrib/cube/cubeparse.y    12 Sep 2002 00:26:00 -0000    1.5
> --- contrib/cube/cubeparse.y    19 Sep 2002 04:32:18 -0000
> ***************
> *** 2,8 ****
>   /* NdBox = [(lowerleft),(upperright)] */
>   /* [(xLL(1)...xLL(N)),(xUR(1)...xUR(n))] */
>
> - #define YYERROR_VERBOSE
>   #define YYPARSE_PARAM result  /* need this to pass a pointer (void *) to yyparse */
>   #define YYSTYPE char *
>   #define YYDEBUG 1
> --- 2,7 ----
> Index: contrib/cube/expected/cube.out
> ===================================================================
> RCS file: /opt/src/cvs/pgsql-server/contrib/cube/expected/cube.out,v
> retrieving revision 1.5
> diff -c -r1.5 cube.out
> *** contrib/cube/expected/cube.out    12 Sep 2002 00:26:00 -0000    1.5
> --- contrib/cube/expected/cube.out    19 Sep 2002 04:33:04 -0000
> ***************
> *** 258,303 ****
>   SELECT ''::cube AS cube;
>   ERROR:  cube_in: can't parse an empty string
>   SELECT 'ABC'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' or `O_PAREN' or `O_BRACKET' at or before position 1, character ('A', \101),
input:'ABC' 
>
>   SELECT '()'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (')', \051), input: '()'
>
>   SELECT '[]'::cube AS cube;
> ! ERROR:  parse error, expecting `O_PAREN' at or before position 2, character (']', \135), input: '[]'
>
>   SELECT '[()]'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (')', \051), input: '[()]'
>
>   SELECT '[(1)]'::cube AS cube;
> ! ERROR:  parse error, expecting `COMMA' at or before position 5, character (']', \135), input: '[(1)]'
>
>   SELECT '[(1),]'::cube AS cube;
> ! ERROR:  parse error, expecting `O_PAREN' at or before position 6, character (']', \135), input: '[(1),]'
>
>   SELECT '[(1),2]'::cube AS cube;
> ! ERROR:  parse error, expecting `O_PAREN' at or before position 7, character (']', \135), input: '[(1),2]'
>
>   SELECT '[(1),(2),(3)]'::cube AS cube;
> ! ERROR:  parse error, expecting `C_BRACKET' at or before position 9, character (',', \054), input: '[(1),(2),(3)]'
>
>   SELECT '1,'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 2, character (',', \054), input: '1,'
>
>   SELECT '1,2,'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '1,2,'
>
>   SELECT '1,,2'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 3, character (',', \054), input: '1,,2'
>
>   SELECT '(1,)'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (')', \051), input: '(1,)'
>
>   SELECT '(1,2,)'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 6, character (')', \051), input: '(1,2,)'
>
>   SELECT '(1,,2)'::cube AS cube;
> ! ERROR:  parse error, expecting `FLOAT' at or before position 4, character (',', \054), input: '(1,,2)'
>
>   -- invalid input: semantic errors and trailing garbage
>   SELECT '[(1),(2)],'::cube AS cube; -- 0
> --- 258,303 ----
>   SELECT ''::cube AS cube;
>   ERROR:  cube_in: can't parse an empty string
>   SELECT 'ABC'::cube AS cube;
> ! ERROR:  parse error at or before position 1, character ('A', \101), input: 'ABC'
>
>   SELECT '()'::cube AS cube;
> ! ERROR:  parse error at or before position 2, character (')', \051), input: '()'
>
>   SELECT '[]'::cube AS cube;
> ! ERROR:  parse error at or before position 2, character (']', \135), input: '[]'
>
>   SELECT '[()]'::cube AS cube;
> ! ERROR:  parse error at or before position 3, character (')', \051), input: '[()]'
>
>   SELECT '[(1)]'::cube AS cube;
> ! ERROR:  parse error at or before position 5, character (']', \135), input: '[(1)]'
>
>   SELECT '[(1),]'::cube AS cube;
> ! ERROR:  parse error at or before position 6, character (']', \135), input: '[(1),]'
>
>   SELECT '[(1),2]'::cube AS cube;
> ! ERROR:  parse error at or before position 7, character (']', \135), input: '[(1),2]'
>
>   SELECT '[(1),(2),(3)]'::cube AS cube;
> ! ERROR:  parse error at or before position 9, character (',', \054), input: '[(1),(2),(3)]'
>
>   SELECT '1,'::cube AS cube;
> ! ERROR:  parse error at or before position 2, character (',', \054), input: '1,'
>
>   SELECT '1,2,'::cube AS cube;
> ! ERROR:  parse error at or before position 4, character (',', \054), input: '1,2,'
>
>   SELECT '1,,2'::cube AS cube;
> ! ERROR:  parse error at or before position 3, character (',', \054), input: '1,,2'
>
>   SELECT '(1,)'::cube AS cube;
> ! ERROR:  parse error at or before position 4, character (')', \051), input: '(1,)'
>
>   SELECT '(1,2,)'::cube AS cube;
> ! ERROR:  parse error at or before position 6, character (')', \051), input: '(1,2,)'
>
>   SELECT '(1,,2)'::cube AS cube;
> ! ERROR:  parse error at or before position 4, character (',', \054), input: '(1,,2)'
>
>   -- invalid input: semantic errors and trailing garbage
>   SELECT '[(1),(2)],'::cube AS cube; -- 0
> Index: contrib/seg/segparse.y
> ===================================================================
> RCS file: /opt/src/cvs/pgsql-server/contrib/seg/segparse.y,v
> retrieving revision 1.4
> diff -c -r1.4 segparse.y
> *** contrib/seg/segparse.y    2 Sep 2002 06:11:42 -0000    1.4
> --- contrib/seg/segparse.y    19 Sep 2002 04:35:09 -0000
> ***************
> *** 1,5 ****
>   %{
> - #define YYERROR_VERBOSE
>   #define YYPARSE_PARAM result  /* need this to pass a pointer (void *) to yyparse */
>
>   #include "postgres.h"
> --- 1,4 ----
> Index: contrib/seg/expected/seg.out
> ===================================================================
> RCS file: /opt/src/cvs/pgsql-server/contrib/seg/expected/seg.out,v
> retrieving revision 1.2
> diff -c -r1.2 seg.out
> *** contrib/seg/expected/seg.out    23 Aug 2002 00:04:52 -0000    1.2
> --- contrib/seg/expected/seg.out    19 Sep 2002 04:35:42 -0000
> ***************
> *** 395,419 ****
>   SELECT ''::seg AS seg;
>   ERROR:  seg_in: can't parse an empty string
>   SELECT 'ABC'::seg AS seg;
> ! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 1, character ('A', \101),
input:'ABC' 
>
>   SELECT '1ABC'::seg AS seg;
> ! ERROR:  expecting end of input at or near position 2, character ('A', \101), input: '1ABC'
>
>   SELECT '1.'::seg AS seg;
> ! ERROR:  expecting end of input at or near position 2, character ('.', \056), input: '1.'
>
>   SELECT '1.....'::seg AS seg;
> ! ERROR:  expecting end of input at or near position 6, character ('.', \056), input: '1.....'
>
>   SELECT '.1'::seg AS seg;
> ! ERROR:  parse error, expecting `FLOAT' or `RANGE' or `EXTENSION' at or near position 2, character ('1', \061),
input:'.1' 
>
>   SELECT '1..2.'::seg AS seg;
> ! ERROR:  expecting end of input at or near position 5, character ('.', \056), input: '1..2.'
>
>   SELECT '1 e7'::seg AS seg;
> ! ERROR:  expecting end of input at or near position 3, character ('e', \145), input: '1 e7'
>
>   SELECT '1e700'::seg AS seg;
>   ERROR:  numeric value 1e700 unrepresentable
> --- 395,419 ----
>   SELECT ''::seg AS seg;
>   ERROR:  seg_in: can't parse an empty string
>   SELECT 'ABC'::seg AS seg;
> ! ERROR:  parse error at or near position 1, character ('A', \101), input: 'ABC'
>
>   SELECT '1ABC'::seg AS seg;
> ! ERROR:  parse error at or near position 2, character ('A', \101), input: '1ABC'
>
>   SELECT '1.'::seg AS seg;
> ! ERROR:  parse error at or near position 2, character ('.', \056), input: '1.'
>
>   SELECT '1.....'::seg AS seg;
> ! ERROR:  parse error at or near position 6, character ('.', \056), input: '1.....'
>
>   SELECT '.1'::seg AS seg;
> ! ERROR:  parse error at or near position 2, character ('1', \061), input: '.1'
>
>   SELECT '1..2.'::seg AS seg;
> ! ERROR:  parse error at or near position 5, character ('.', \056), input: '1..2.'
>
>   SELECT '1 e7'::seg AS seg;
> ! ERROR:  parse error at or near position 3, character ('e', \145), input: '1 e7'
>
>   SELECT '1e700'::seg AS seg;
>   ERROR:  numeric value 1e700 unrepresentable

>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073