PostgreSQL 9.2.1 के स्रोत को देख रहे हैं:
Source: postgresql-9.2.1\src\backend\utils\adt\json.c:
/*
* Input.
*/
Datum
json_in(PG_FUNCTION_ARGS)
{
char *text = PG_GETARG_CSTRING(0);
json_validate_cstring(text);
/* Internal representation is the same as text, for now */
PG_RETURN_TEXT_P(cstring_to_text(text));
}
PostgreSQL 9.3.5 के लिए अपडेट:
json_in
. में कोड बदल गया है फ़ंक्शन, लेकिन json आंतरिक प्रतिनिधित्व अभी भी टेक्स्ट है:
Source: postgresql-9.3.5\src\backend\utils\adt\json.c:
/*
* Input.
*/
Datum
json_in(PG_FUNCTION_ARGS)
{
char *json = PG_GETARG_CSTRING(0);
text *result = cstring_to_text(json);
JsonLexContext *lex;
/* validate it */
lex = makeJsonLexContext(result, false);
pg_parse_json(lex, &nullSemAction);
/* Internal representation is the same as text, for now */
PG_RETURN_TEXT_P(result);
}
तो ऐसा प्रतीत होता है कि, अभी के लिए कम से कम, json
text
के समान है डेटाटाइप लेकिन JSON सत्यापन के साथ। text
डेटाटाइप का अधिकतम आकार 1GB है।