Add support for binary I/O of ltree, lquery, and ltxtquery types.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 949a9f043eb70a4986041b47513579f9a13d6a33
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2020-04-01T21:31:29Z
Releases: 13.0
Add support for binary I/O of ltree, lquery, and ltxtquery types.

Not much to say here --- does what it says on the tin.  The "binary"
representation in each case is really just the same as the text format,
though we prefix a version-number byte in case anyone ever feels
motivated to change that.  Thus, there's not any expectation of improved
speed or reduced space; the point here is just to allow clients to use
binary format for all columns of a query result or COPY data.

This makes use of the recently added ALTER TYPE support to add binary
I/O functions to an existing data type.  As in commit a80818605,
we can piggy-back on there already being a new-for-v13 version of the
ltree extension, so we don't need a new update script file.

Nino Floris, reviewed by Alexander Korotkov and myself

Discussion: https://postgr.es/m/CANmj9Vxx50jOo1L7iSRxd142NyTz6Bdcgg7u9P3Z8o0=HGkYyQ@mail.gmail.com

Files

PathChange+/−
contrib/ltree/crc32.c modified +2 −2
contrib/ltree/crc32.h modified +1 −1
contrib/ltree/ltree--1.1--1.2.sql modified +37 −0
contrib/ltree/ltree_io.c modified +179 −26
contrib/ltree/ltxtquery_io.c modified +69 −4

Discussion