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

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add support for binary I/O of ltree, lquery, and ltxtquery types
Date: 2020-04-01 21:32:02
Message-ID: E1jJkxu-0005HI-SY@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/949a9f043eb70a4986041b47513579f9a13d6a33

Modified Files
--------------
contrib/ltree/crc32.c | 4 +-
contrib/ltree/crc32.h | 2 +-
contrib/ltree/ltree--1.1--1.2.sql | 37 +++++++
contrib/ltree/ltree_io.c | 205 +++++++++++++++++++++++++++++++++-----
contrib/ltree/ltxtquery_io.c | 73 +++++++++++++-
5 files changed, 288 insertions(+), 33 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-04-01 23:44:29 pgsql: Clean up parsing of ltree and lquery some more.
Previous Message Tom Lane 2020-04-01 18:50:04 pgsql: Check equality semantics for unique indexes on partitioned table