src/postgres/src/backend/utils/adt/jsonapi.c
/*
 * makeJsonLexContext
 *
 * lex constructor, with or without StringInfo object
 * for de-escaped lexemes.
 *
 * Without is better as it makes the processing faster, so only make one
 * if really required.
 *
 * If you already have the json as a text* value, use the first of these
 * functions, otherwise use  makeJsonLexContextCstringLen().
 */
makeJsonLexContext
lex constructor, with or without StringInfo object
for de-escaped lexemes.

Without is better as it makes the processing faster, so only make one
if really required.

If you already have the json as a text* value, use the first of these
functions, otherwise use  makeJsonLexContextCstringLen().
makeJsonLexContext lex constructor with or without StringInfo object for de - escaped lexemes . Without is better as it makes the processing faster so only make one if really required . If you already have the json as a text * value use the first of these functions otherwise use makeJsonLexContextCstringLen () .
JsonLexContext *
makeJsonLexContext(text *json, bool need_escapes)
{
	return makeJsonLexContextCstringLen(VARDATA_ANY(json),
										VARSIZE_ANY_EXHDR(json),
										need_escapes);
}
JsonLexContext * makeJsonLexContext ( text * json , bool need_escapes ) { return makeJsonLexContextCstringLen ( VARDATA_ANY ( json ) , VARSIZE_ANY_EXHDR ( json ) , need_escapes ) ; }
makeJsonLexContext
 lex constructor, with or without StringInfo object
 for de-escaped lexemes.
makeJsonLexContext lex constructor with or without StringInfo object for de - escaped lexemes .