Re: unnesting multirange data types
Jonathan S. Katz <jkatz@postgresql.org>
From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-09T20:24:27Z
Lists: pgsql-hackers
On 6/9/21 3:44 PM, Jonathan S. Katz wrote: > On 6/9/21 3:25 PM, Tom Lane wrote: >> "Jonathan S. Katz" <jkatz@postgresql.org> writes: >>> I would like to decompose the returned multirange into its individual >>> ranges, similarly to how I would "unnest" an array: >> >> +1 for adding such a feature, but I suppose it's too late for v14. > > Well, the case I would make for v14 is that, as of right now, the onus > is on the driver writers / application developers to be able to unpack > the multiranges. > > I haven't tried manipulating a multirange in a PL like Python, maybe > some exploration there would unveil more or less pain, or if it could be > iterated over in PL/pgSQL (I'm suspecting no). I did a couple more tests around this. As suspected, in PL/pgSQL, there is no way to unpack or iterate over a multirange type. In PL/Python, both range types and multirange types are treated as strings. From there, you can at least ultimately parse and manipulate it into your preferred Python types, but this goes back to my earlier point about putting the onus on the developer to do so. Thanks, Jonathan
Commits
-
Fix small inconsistencies in catalog definition of multirange operators
- 4d39d4e639b4 14.0 landed
- 768ea9bcf981 15.0 landed
-
Revert 29854ee8d1 due to buildfarm failures
- 817bb0a7d1e0 14.0 landed
-
Copy-edit text for the pg_terminate_backend() "timeout" parameter.
- 0aac73e6a260 14.0 cited
-
Add missing pg_description strings for pg_type entries.
- b09a64d602a1 12.0 cited
-
Fix pg_description entries for jsonb_to_record() and jsonb_to_recordset().
- a4627e8fd479 9.6.0 cited
-
docs: clarify JSONB operator descriptions
- b852dc4cbd09 9.6.0 cited
-
Set procost to 10 for each of the pg_foo_is_visible() functions.
- a80889a7359e 9.3.0 cited
-
Make use of LATERAL in information_schema.sequences view.
- c246eb5aafe6 9.3.0 cited
-
Add pg_trigger_depth() function
- 74ab96a45ef6 9.2.0 cited
-
Add database comments to template0 and postgres databases, and improve
- ddd6ff289f25 9.1.0 cited