Re: contrib/cube & contrib/seg regression fixes - Mailing list pgsql-patches
| From | Joe Conway |
|---|---|
| Subject | Re: contrib/cube & contrib/seg regression fixes |
| Date | |
| Msg-id | 3D895FF2.8050206@joeconway.com Whole thread Raw |
| In response to | contrib/cube & contrib/seg regression fixes (Joe Conway <mail@joeconway.com>) |
| Responses |
Re: contrib/cube & contrib/seg regression fixes
|
| List | pgsql-patches |
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
pgsql-patches by date: