jooq-postgresql-json icon indicating copy to clipboard operation
jooq-postgresql-json copied to clipboard

Add JSON Processing Functions

Open t9t opened this issue 4 years ago • 4 comments

https://www.postgresql.org/docs/11/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE

It would be very nice to also add JSON processing functions, besides the operators.

  • [x] json_array_length(json)
  • [x] jsonb_array_length(jsonb)
  • [ ] json_each(json)
  • [ ] jsonb_each(jsonb)
  • [ ] json_each_text(json)
  • [ ] jsonb_each_text(jsonb)
  • [x] json_extract_path(from_json json, VARIADIC path_elems text[])
  • [x] jsonb_extract_path(from_json jsonb, VARIADIC path_elems text[])
  • [x] json_extract_path_text(from_json json, VARIADIC path_elems text[])
  • [x] jsonb_extract_path_text(from_json jsonb, VARIADIC path_elems text[])
  • [ ] json_object_keys(json)
  • [ ] jsonb_object_keys(jsonb)
  • [ ] json_populate_record(base anyelement, from_json json)
  • [ ] jsonb_populate_record(base anyelement, from_json jsonb)
  • [ ] json_populate_recordset(base anyelement, from_json json)
  • [ ] jsonb_populate_recordset(base anyelement, from_json jsonb)
  • [ ] json_array_elements(json)
  • [ ] jsonb_array_elements(jsonb)
  • [ ] json_array_elements_text(json)
  • [ ] jsonb_array_elements_text(jsonb)
  • [x] json_typeof(json)
  • [x] jsonb_typeof(jsonb)
  • [ ] json_to_record(json)
  • [ ] jsonb_to_record(jsonb)
  • [ ] json_to_recordset(json)
  • [ ] jsonb_to_recordset(jsonb)
  • [x] json_strip_nulls(from_json json)
  • [x] jsonb_strip_nulls(from_json jsonb)
  • [ ] jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
  • [ ] jsonb_insert(target jsonb, path text[], new_value jsonb, [insert_after boolean])
  • [x] jsonb_pretty(from_json jsonb)

I should probably focus on the ones that return json, jsonb, and text first as they will be very simple. The ones that return more complex types (such as setof text or record) will be much more difficult, so I will do them later (or even not at all, if it proves to be too time consuming).

t9t avatar Sep 24 '19 18:09 t9t