aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/jsonapi.h
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2014-12-01 11:28:45 -0500
committerAndrew Dunstan <andrew@dunslane.net>2014-12-01 11:44:48 -0500
commit55c8807978e86f615623eb7922c114b841f14557 (patch)
tree12b1947890f2545d8f1b8f509ecfe905612d352b /src/include/utils/jsonapi.h
parent5c9a4a866efcc15ec041134538e01f25c2e2bd88 (diff)
downloadpostgresql-55c8807978e86f615623eb7922c114b841f14557.tar.gz
postgresql-55c8807978e86f615623eb7922c114b841f14557.zip
Fix hstore_to_json_loose's detection of valid JSON number values.
We expose a function IsValidJsonNumber that internally calls the lexer for json numbers. That allows us to use the same test everywhere, instead of inventing a broken test for hstore conversions. The new function is also used in datum_to_json, replacing the code that is now moved to the new function. Backpatch to 9.3 where hstore_to_json_loose was introduced.
Diffstat (limited to 'src/include/utils/jsonapi.h')
-rw-r--r--src/include/utils/jsonapi.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/utils/jsonapi.h b/src/include/utils/jsonapi.h
index e25a0d93d89..dcfe71c29dd 100644
--- a/src/include/utils/jsonapi.h
+++ b/src/include/utils/jsonapi.h
@@ -107,4 +107,11 @@ extern void pg_parse_json(JsonLexContext *lex, JsonSemAction *sem);
*/
extern JsonLexContext *makeJsonLexContext(text *json, bool need_escapes);
+/*
+ * Utility function to check if a string is a valid JSON number.
+ *
+ * str agrument does not need to be nul-terminated.
+ */
+extern bool IsValidJsonNumber(const char * str, int len);
+
#endif /* JSONAPI_H */