[HACKERS] Inconsistent syntax for NumericOnly grammar production
| От | Tom Lane |
|---|---|
| Тема | [HACKERS] Inconsistent syntax for NumericOnly grammar production |
| Дата | |
| Msg-id | 30908.1496006184@sss.pgh.pa.us обсуждение |
| Ответы |
Re: [HACKERS] Inconsistent syntax for NumericOnly grammar production
|
| Список | pgsql-hackers |
I noticed that gram.y has
NumericOnly: FCONST { $$ = makeFloat($1); } | '-' FCONST
{ $$ = makeFloat($2); doNegateFloat($$); } | SignedIconst
{ $$ = makeInteger($1); } ;
but
SignedIconst: Iconst { $$ = $1; } | '+' Iconst { $$
=+ $2; } | '-' Iconst { $$ = - $2; } ;
The inconsistency here means that you can do, for example,
regression=# set random_page_cost = +4;
SET
regression=# set random_page_cost = 4.2;
SET
but not
regression=# set random_page_cost = +4.2;
ERROR: syntax error at or near "4.2"
LINE 1: set random_page_cost = +4.2; ^
That's weird enough in itself, and the problem is about to get more
widespread because the partbound_datum production depends on NumericOnly.
Any objections to allowing "+ FCONST" here? I'm inclined to
fix this and back-patch it as well.
regards, tom lane
В списке pgsql-hackers по дате отправления: