Re: immutable functions and enumerate type casts in indexes - Mailing list pgsql-general

From Edoardo Panfili
Subject Re: immutable functions and enumerate type casts in indexes
Date
Msg-id 48BEABFB.9030807@aspix.it
Whole thread Raw
In response to Re: immutable functions and enumerate type casts in indexes  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane ha scritto:
> Edoardo Panfili <edoardo@aspix.it> writes:
>>     labelDatum = DirectFunctionCall1(enum_out,datumIbrido);
>>     label = (char *) DatumGetPointer(labelDatum);
>
> Just FYI, preferred style for the second line would be
>
>     label = DatumGetCString(labelDatum);
>
> Nearly all standard data types have DatumGetFoo and FooGetDatum
> macros to hide the conversion details (even if it's only a cast).

the clean version:
--------------------------------------------------------------
#include "utils/builtins.h"

PG_FUNCTION_INFO_V1(esterna_nome);
Datum esterna_nome(PG_FUNCTION_ARGS){
     Datum datumIbrido = PG_GETARG_DATUM(0);
     Datum labelDatum;
     char *label;

     labelDatum = DirectFunctionCall1(enum_out,datumIbrido);
     label = DatumGetCString(labelDatum);
     if(strcmp(label,("label_constant"))==0){
         ...
     }
     ...
}
--------------------------------------------------------------


thank you again!
Edoardo

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: vacuum analyze hurts performance
Next
From: SCassidy@overlandstorage.com
Date:
Subject: Re: Oracle and Postgresql