Re: json, jsonb, and casts

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(dot)dunstan(at)pgexperts(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: json, jsonb, and casts
Date: 2014-11-06 20:58:35
Message-ID: 15685.1415307515@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Dunstan <andrew(dot)dunstan(at)pgexperts(dot)com> writes:
> In 9.3 we changed the way json generating functions worked by taking
> account of cast functions to json from non-builtin types, such as hstore.

> In 9.5 I am proposing to provide similar functionality for jsonb. The
> patch actually takes account of cast functions to both jsonb and json
> (with jsonb preferred). If there is a cast to jsonb, we use it and then
> merge the result into the jsonb being accumulated. If there is just a
> cast to json, we use it, and then parse that directly into the result
> datum.

> It was arguably a bit of an oversight not to take account of casts to
> jsonb in 9.4 in datum_to_json(). So I'm thinking of rolling into this
> patch changes to json.c::datum_to_json() and friends to take analogous
> account of casts to jsonb (i.e. call the cast function, turn the
> resulting jsonb into a cstring and append it to the result).

Meh. This leaves it very ambiguous which cast function would be applied
if both are available. I think it's overcomplicated anyway.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2014-11-06 21:17:28 Re: Tweaking Foreign Keys for larger tables
Previous Message Jim Nasby 2014-11-06 20:55:37 Re: Proposal: Log inability to lock pages during vacuum