summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-05-29 15:19:07 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-05-29 15:19:07 -0400
commit7d9309fca51b0a50734ae9d83a668e422e46a997 (patch)
treed62c6e4089ddb81d46faf00e3c437e9d4a26e149 /src
parent525780c6221b8635f9b1fcb1e9e2b455af93ac21 (diff)
Allow NumericOnly to be "+ FCONST".
The NumericOnly grammar production accepted ICONST, + ICONST, - ICONST, FCONST, and - FCONST, but for some reason not + FCONST. This led to strange inconsistencies like regression=# set random_page_cost = +4; SET regression=# set random_page_cost = 4000000000; SET regression=# set random_page_cost = +4000000000; ERROR: syntax error at or near "4000000000" (because 4000000000 is too large to be an ICONST). While there's no actual functional reason to need to write a "+", if we allow it for integers it seems like we should allow it for numerics too. It's been like that forever, so back-patch to all supported branches. Discussion: https://postgr.es/m/30908.1496006184@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 5d1bffd3963..f8bb66501ad 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -3396,6 +3396,7 @@ opt_by: BY {}
NumericOnly:
FCONST { $$ = makeFloat($1); }
+ | '+' FCONST { $$ = makeFloat($2); }
| '-' FCONST
{
$$ = makeFloat($2);