Martijn was exactly right! All of the examples I'd been following were using pass-by-reference, the function call interface is oblivious and I missed this very important part of the type definition. Yea! Big thanks, _Greg n Sat, 2006-11-18 at 23:15 +0100, Martijn van Oosterhout wrote: > On Sat, Nov 18, 2006 at 01:07:15PM -0800, J. Greg Davidson wrote: > > Hello, > > > > My user-defined types are crashing the PostgreSQL server and I don't > > understand why. I've been trying to figure it out on my own for overr > > a week. I've cooked what I'm doing down to the essentials and I'm > > asking for help. Help: What am I doing wrong? > > This may be a long shot but: > > > CREATE TYPE pair ( > > INTERNALLENGTH = 4, -- 32-bits > > INPUT = pair_in, > > OUTPUT = pair_out > > ); > > You're not specifying PASSEDBYVALUE, so I think postgres is assuming > you're returning a *pointer* to 4 bytes, so it's dying trying to copy > it. > > Hope this helps,