mirror of
https://github.com/zebrajr/postgres.git
synced 2025-12-07 12:20:31 +01:00
This commit introduces the SQL/JSON standard-conforming constructors for JSON types: JSON_ARRAY() JSON_ARRAYAGG() JSON_OBJECT() JSON_OBJECTAGG() Most of the functionality was already present in PostgreSQL-specific functions, but these include some new functionality such as the ability to skip or include NULL values, and to allow duplicate keys or throw error when they are found, as well as the standard specified syntax to specify output type and format. Author: Nikita Glukhov <n.gluhov@postgrespro.ru> Author: Teodor Sigaev <teodor@sigaev.ru> Author: Oleg Bartunov <obartunov@gmail.com> Author: Alexander Korotkov <aekorotkov@gmail.com> Author: Amit Langote <amitlangote09@gmail.com> Reviewers have included (in no particular order) Andres Freund, Alexander Korotkov, Pavel Stehule, Andrew Alsup, Erik Rijkers, Zihong Yu, Himanshu Upadhyaya, Daniel Gustafsson, Justin Pryzby. Discussion: https://postgr.es/m/CAF4Au4w2x-5LTnN_bxky-mq4=WOqsGsxSpENCzHRAzSnEd8+WQ@mail.gmail.com Discussion: https://postgr.es/m/cd0bb935-0158-78a7-08b5-904886deac4b@postgrespro.ru Discussion: https://postgr.es/m/20220616233130.rparivafipt6doj3@alap3.anarazel.de Discussion: https://postgr.es/m/abd9b83b-aa66-f230-3d6d-734817f0995d%40postgresql.org
31 lines
974 B
C
31 lines
974 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* json.h
|
|
* Declarations for JSON data type support.
|
|
*
|
|
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/utils/json.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef JSON_H
|
|
#define JSON_H
|
|
|
|
#include "lib/stringinfo.h"
|
|
|
|
/* functions in json.c */
|
|
extern void escape_json(StringInfo buf, const char *str);
|
|
extern char *JsonEncodeDateTime(char *buf, Datum value, Oid typid,
|
|
const int *tzp);
|
|
extern bool to_json_is_immutable(Oid typoid);
|
|
extern Datum json_build_object_worker(int nargs, Datum *args, bool *nulls,
|
|
Oid *types, bool absent_on_null,
|
|
bool unique_keys);
|
|
extern Datum json_build_array_worker(int nargs, Datum *args, bool *nulls,
|
|
Oid *types, bool absent_on_null);
|
|
|
|
#endif /* JSON_H */
|