On 08.06.21 15:40, David Rowley wrote:
> It's almost 2 years ago now, but I'm wondering if you saw what Andres
> proposed in [1]? The idea was basically to make a metadata array of
> the node structs so that, instead of having to output large amounts of
> .c code to do read/write/copy/equals, instead just have small
> functions that loop over the elements in the array for the given
> struct and perform the required operation based on the type.
That project was technologically impressive, but it seemed to have
significant hurdles to overcome before it can be useful. My proposal is
usable and useful today. And it doesn't prevent anyone from working on
a more sophisticated solution.
> There were still quite a lot of unsolved problems, for example, how to
> determine the length of arrays so that we know how many bytes to
> compare in equal funcs. I had a quick look at what you've got and
> see you've got a solution for that by looking at the last "int" field
> before the array and using that. (I wonder if you'd be better to use
> something more along the lines of your pg_node_attr() for that?)
I considered that, but since the convention seemed to work everywhere, I
left it. But it wouldn't be hard to change.