]> granicus.if.org Git - postgresql/commitdiff
Change the float4-returning functions in contrib/seg to fmgr v1 calling
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 Apr 2008 21:11:35 +0000 (21:11 +0000)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 Apr 2008 21:11:35 +0000 (21:11 +0000)
conventions.

I also changed seg_in and seg_out, which was probably unnecessary, but
it can't harm.

contrib/seg/seg.c

index 9579eeab3ef446108e3646150e8b72a417c6e6f4..5d224b951d83a920efc7fbaa6a48cc608c6ba699 100644 (file)
@@ -33,11 +33,17 @@ extern int   seg_yydebug;
 /*
 ** Input/Output routines
 */
-SEG               *seg_in(char *str);
-char      *seg_out(SEG * seg);
-float4         seg_lower(SEG * seg);
-float4         seg_upper(SEG * seg);
-float4         seg_center(SEG * seg);
+PG_FUNCTION_INFO_V1(seg_in);
+PG_FUNCTION_INFO_V1(seg_out);
+PG_FUNCTION_INFO_V1(seg_lower);
+PG_FUNCTION_INFO_V1(seg_upper);
+PG_FUNCTION_INFO_V1(seg_center);
+
+Datum          seg_in(PG_FUNCTION_ARGS);
+Datum          seg_out(PG_FUNCTION_ARGS);
+Datum          seg_lower(PG_FUNCTION_ARGS);
+Datum          seg_upper(PG_FUNCTION_ARGS);
+Datum          seg_center(PG_FUNCTION_ARGS);
 
 /*
 ** GiST support methods
@@ -98,9 +104,10 @@ int                 significant_digits(char *s);
  * Input/Output functions
  *****************************************************************************/
 
-SEG *
-seg_in(char *str)
+Datum
+seg_in(PG_FUNCTION_ARGS)
 {
+       char       *str = PG_GETARG_CSTRING(0);
        SEG                *result = palloc(sizeof(SEG));
 
        seg_scanner_init(str);
@@ -110,18 +117,16 @@ seg_in(char *str)
 
        seg_scanner_finish();
 
-       return (result);
+       PG_RETURN_POINTER(result);
 }
 
-char *
-seg_out(SEG * seg)
+Datum
+seg_out(PG_FUNCTION_ARGS)
 {
+       SEG                *seg = (SEG *) PG_GETARG_POINTER(0);
        char       *result;
        char       *p;
 
-       if (seg == NULL)
-               return (NULL);
-
        p = result = (char *) palloc(40);
 
        if (seg->l_ext == '>' || seg->l_ext == '<' || seg->l_ext == '~')
@@ -153,25 +158,31 @@ seg_out(SEG * seg)
                }
        }
 
-       return (result);
+       PG_RETURN_CSTRING(result);
 }
 
-float4
-seg_center(SEG * seg)
+Datum
+seg_center(PG_FUNCTION_ARGS)
 {
-       return ((float) seg->lower + (float) seg->upper) / 2.0;
+       SEG     *seg = (SEG *) PG_GETARG_POINTER(0);
+
+       PG_RETURN_FLOAT4(((float) seg->lower + (float) seg->upper) / 2.0);
 }
 
-float4
-seg_lower(SEG * seg)
+Datum
+seg_lower(PG_FUNCTION_ARGS)
 {
-       return seg->lower;
+       SEG     *seg = (SEG *) PG_GETARG_POINTER(0);
+
+       PG_RETURN_FLOAT4(seg->lower);
 }
 
-float4
-seg_upper(SEG * seg)
+Datum
+seg_upper(PG_FUNCTION_ARGS)
 {
-       return seg->upper;
+       SEG             *seg = (SEG *) PG_GETARG_POINTER(0);
+
+       PG_RETURN_FLOAT4(seg->upper);
 }