aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeCustom.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-02-03 12:03:50 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-02-03 12:04:02 -0500
commit41d2c081ce659f40dec3eb9efc647082aa775eb4 (patch)
treec18745d6f0efb3cb2bf8ddfe67fd3ba7aa901651 /src/backend/executor/nodeCustom.c
parent52b63649fc5ff5d86227b8905e1c79cd9ceddf4c (diff)
downloadpostgresql-41d2c081ce659f40dec3eb9efc647082aa775eb4.tar.gz
postgresql-41d2c081ce659f40dec3eb9efc647082aa775eb4.zip
Make hstore_to_jsonb_loose match hstore_to_json_loose on what's a number.
Commit e09996ff8dee3f70 removed some ad-hoc code in hstore_to_json_loose that determined whether an hstore value string looked like a number, in favor of calling the JSON parser's is-it-a-number code. However, it neglected the fact that the exact same code appeared in hstore_to_jsonb_loose. This is not a bug, exactly, because the requirements on the two functions are not the same: hstore_to_json_loose must accept only syntactically legal JSON numbers as numbers, or it will produce invalid JSON output, as per bug #12070 which spawned the prior commit. But hstore_to_jsonb_loose could accept anything that numeric_in will eat, other than Inf and NaN. Nonetheless it seems surprising and arbitrary that the two functions don't use the same rules for what is a number versus what is a string; especially since they did use the same rules before the aforesaid commit. For one thing, that means that doing hstore_to_json_loose and then casting to jsonb can produce results different from doing just hstore_to_jsonb_loose. Hence, change hstore_to_jsonb_loose's logic to match hstore_to_json_loose, ie, hstore values are treated as numbers when they match the JSON syntax for numbers. No back-patch, since this is more in the nature of a definitional change than a bug fix.
Diffstat (limited to 'src/backend/executor/nodeCustom.c')
0 files changed, 0 insertions, 0 deletions