Thread: create type input and output function examples

create type input and output function examples

From
"Clint Stotesbery"
Date:
I've seen the docs for create type and an example of the syntax to create a 
type. What I haven't seen is the functions that are passed for the input and 
output elements.

CREATE TYPE box (INTERNALLENGTH = 8,   INPUT = my_procedure_1, OUTPUT = my_procedure_2);

Now what would be in my_procedure1 and my_procedure2 procedures? I know they 
are just example placeholders above but I need to see a real example of what 
would be in those procedures to better understand what they should do. 
Thanks.

_________________________________________________________________
Surf and talk on the phone at the same time with broadband Internet access. 
Get high-speed for as low as $29.95/month (depending on the local service 
providers in your area).  https://broadband.msn.com



Re: create type input and output function examples

From
Christoph Haller
Date:
> 
> I've seen the docs for create type and an example of the syntax to create a 
> type. What I haven't seen is the functions that are passed for the input and 
> output elements.
> 
> CREATE TYPE box (INTERNALLENGTH = 8,
>     INPUT = my_procedure_1, OUTPUT = my_procedure_2);
> 
> Now what would be in my_procedure1 and my_procedure2 procedures? I know they 
> are just example placeholders above but I need to see a real example of what 
> would be in those procedures to better understand what they should do. 
> Thanks.
> 
Pretty late reply, hopefully not too late. 
My understanding is these procedures are C functions. 
For examples do the following:
List the types already in use and their io-functions as 
select typname, typinput, typoutput from pg_type ;
Then search the source code (*.c files) 
for <typinput> resp. <typoutput> 

There is a box type already. 
It's box_in and box_out functions can be found in 
$PGSQLD/src/backend/utils/adt/geo_ops.c 

HTH 
Regards, Christoph