Does anyone know what is the limit on the size of JSON data type in PostgreSQL 9.2?

推荐答案

查看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);
}

因此,至少目前来看,jsontext数据类型相同,但带有JSON验证.text数据类型的最大大小为1GB.

Json相关问答推荐

Golang JSON Date Tim.Date()测试请求

抓取低于w jolt的对象级别

Vegalite中分组条形图中的偏移量问题

如何在Vega中使标记的符号在鼠标指针悬停时可点击

无法从JSON解析ZonedDateTime,但可以使用格式化程序很好地解析

如何使用PowerShell从ExchangeOnline命令执行中获得JSON输出

使用JQ将JSON输出转换为CSV复杂 struct

在 python 中循环 JSON 数组

爆炸没有数组的 struct pyspark

Go - JSON 验证抛出错误,除非我在 struct 中使用指针.为什么?

使用 json 值过滤 Django 模型

如何为包含一些固定值并可能具有其他附加值的数组字符串创建数组 json 架构

如何让 JSON.NET 忽略对象关系?

如何判断 Json 对象中是否存在键并获取其值

在 Qt 4.7 中解析 JSON 的最简单方法

如何访问 JSON 对象数组的第一个元素?

带有方法参数的 WCF webHttpBinding 错误. 最多可以在没有包装元素的情况下序列化一个主体参数

如何使用 Gson 解码具有未知字段的 JSON?

使用 JSONArray 和 JSONObject 进行 Foreach

不处理从这里抛出的错误