On Feb 1, 2012, at 12:45 AM, Pavel Stehule wrote:
I looked to sources and I found a some useful routines for people who
write extensions and probably PL too.
There are datum_compute_size and datum_write from range_types.c. These
routines can be used in PL libs and maybe in other places.
Should be these routines moved to varlena.c and be public?
Why? It is not common for types to contain other types, and it
certainly isn't likely to happen without needing lots of other
infrastructure --- the existing examples are arrays, records, and
rangetypes, and all of those come with lots of baggage. And there
are a number of choices in those functions that are pretty specific to
rangetypes, as illustrated by the fact that they're not already sharing
code with either arrays or records.
For example I can use this code in my implementation of set of enum
(enumset datatype) because I have to wrap a array sometimes (I reuse a
array infrastructure).

In orafce I can use this code for serialisation and deserialisation
Datums - it is used more times there
I'm not certain this in what Pavel is referring to, but I have often wished that I could pass something like an array into a function and have the function tell me exactly how much space that would require on-disk. It's pretty easy to figure that out for things like varchar and numeric, but doing so for arrays or composite types requires pretty detailed knowledge of PG internals.
Jim C. Nasby, Database Architect jim@nasby.net
512.569.9461 (cell) http://jim.nasby.net

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 6 | next ›
Discussion Overview
grouppgsql-hackers @
postedFeb 1, '12 at 6:18a
activeFeb 2, '12 at 3:11a



site design / logo © 2018 Grokbase