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