Re: jsonb and nested hstore
От | Andres Freund |
---|---|
Тема | Re: jsonb and nested hstore |
Дата | |
Msg-id | 20140210100522.GE26601@awork2.anarazel.de обсуждение исходный текст |
Ответ на | Re: jsonb and nested hstore (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: jsonb and nested hstore
Re: jsonb and nested hstore |
Список | pgsql-hackers |
Hi, On 2014-02-06 18:47:31 -0500, Andrew Dunstan wrote: > * switching to using text representation in jsonb send/recv > +/* > + * jsonb type recv function > + * > + * the type is sent as text in binary mode, so this is almost the same > + * as the input function. > + */ > +Datum > +jsonb_recv(PG_FUNCTION_ARGS) > +{ > + StringInfo buf = (StringInfo) PG_GETARG_POINTER(0); > + text *result = cstring_to_text_with_len(buf->data, buf->len); > + > + return deserialize_json_text(result); > +} > +/* > + * jsonb type send function > + * > + * Just send jsonb as a string of text > + */ > +Datum > +jsonb_send(PG_FUNCTION_ARGS) > +{ > + Jsonb *jb = PG_GETARG_JSONB(0); > + StringInfoData buf; > + char *out; > + > + out = JsonbToCString(NULL, (JB_ISEMPTY(jb)) ? NULL : VARDATA(jb), VARSIZE(jb)); > + > + pq_begintypsend(&buf); > + pq_sendtext(&buf, out, strlen(out)); > + PG_RETURN_BYTEA_P(pq_endtypsend(&buf)); > +} I'd suggest making the format discernible from possible different future formats, to allow introducing a proper binary at some later time. Maybe just send a int8 first, containing the format. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: