Re: Binary data type with other output method

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Binary data type with other output method
Date: 2007-12-25 23:15:37
Message-ID: 47718F19.1070908@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andreas 'ads' Scherbaum wrote:
> Hello,
>
> On Tue, 25 Dec 2007 11:10:25 -0500 Andrew Dunstan wrote:
>
>
>> Andreas 'ads' Scherbaum wrote:
>>
>>> i'm in the need to create a boolean datatype which returns an integer
>>> instead of the usual 't'/'f'. Before anyone starts to point me at
>>> casts: it's a lot overhead to cast some hundred occurances beside the
>>> source of trouble, if you forget one.
>>>
>>>
>> Do you really need a new datatype or just to change the output behaviour
>> of the inbuilt type? That should be quite easy to do in just a few lines
>> of code.
>>
>
> Just another output behavior would be enough ... but without changing
> the PG source itself. Since the package comes with the distribution,
> there's no way to build PG from source.
>
>
>
>

I think all you need to do it this:

Take the code for boolout() in src/backend/utils/adt/bool.c, adjust it
and and make it a new function boolout2. Use pgxs to make it a loadable
module.

Then load it and adjust the catalog entry for the bool type to use
boolout2 instead of boolout.

Caveat: I think you would need to redo the type adjustment after every
restore, as it wouldn't be dumped.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-12-26 01:11:45 Re: Binary data type with other output method
Previous Message Andreas 'ads' Scherbaum 2007-12-25 22:27:11 Re: Binary data type with other output method