I wrote:
> The problem reported by Rushabh Lathia boils down to the fact that
> contrib/isn intends to define a datatype that is represented "just like
> int8", but it supposes that int8 must be pass by reference. There is
> not anything wrong with the C code; the problem is the CREATE TYPE
> command in isn.sql. To fix this we need some way of passing the state
> of FLOAT8PASSBYVAL into that SQL script.
> ...
> This is kinda ugly but I don't really see anything better.
I had a better but more invasive idea: invent a new attribute for
CREATE TYPE
LIKE = typename
which means "copy any unspecified representational details from the
given pre-existing type". This would allow the .sql file to know
less instead of more about what's happening, so it seems more
future-proof. It's a bit more work than the makefile hack I was
thinking about, but seems like a good investment. (I wouldn't
propose this if I thought contrib/isn was the only user --- I expect
there are other third-party modules with similar needs.)
Comments?
regards, tom lane