]> granicus.if.org Git - postgis/commitdiff
Another round of PostgreSQL 8.3 fixes, this time related to arrays. Make sure that...
authorMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Thu, 10 Apr 2008 06:40:33 +0000 (06:40 +0000)
committerMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Thu, 10 Apr 2008 06:40:33 +0000 (06:40 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2761 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/lwgeom_estimate.c
lwgeom/lwgeom_functions_basic.c
lwgeom/lwgeom_geos_c.c
lwgeom/lwgeom_jts.c

index 4aef3f686d6629f0f768ce9d2c6d4966f35dfc54..25de3f0148275dbf089901fa54701179e01a9e49 100644 (file)
@@ -21,6 +21,7 @@
 #include "executor/spi.h"
 #include "fmgr.h"
 #include "parser/parsetree.h"
+#include "utils/array.h"
 
 #include "liblwgeom.h"
 #include "lwgeom_pg.h"
@@ -2579,7 +2580,7 @@ Datum LWGEOM_estimated_extent(PG_FUNCTION_ARGS)
        tuptable = SPI_tuptable;
        tupdesc = SPI_tuptable->tupdesc;
        tuple = tuptable->vals[0];
-       array = (ArrayType *)SPI_getbinval(tuple, tupdesc, 1, &isnull);
+       array = DatumGetArrayTypeP(SPI_getbinval(tuple, tupdesc, 1, &isnull));
        if (isnull)
        {
                SPI_finish();
index 0f1f5d566e2cc343fe2a7bbe5eba910283dfb67d..cf660ef6636bf03a2ea233c08d2a14a5e24a02f0 100644 (file)
@@ -1879,7 +1879,7 @@ Datum LWGEOM_accum(PG_FUNCTION_ARGS)
                elog(NOTICE, "geom_accum: NULL array");
 #endif
        } else {
-               array = (ArrayType *) PG_DETOAST_DATUM_COPY(datum);
+               array = DatumGetArrayTypePCopy(datum);
                /*array = PG_GETARG_ARRAYTYPE_P(0); */
                nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 #ifdef PGIS_DEBUG
@@ -2021,7 +2021,7 @@ Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS)
        }
 
        /* Get actual ArrayType */
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
 #ifdef PGIS_DEBUG
        elog(NOTICE, " array is %d-bytes in size, %ld w/out header",
@@ -2217,7 +2217,7 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
        }
 
        /* Get actual ArrayType */
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
 #ifdef PGIS_DEBUG
        elog(NOTICE, "LWGEOM_makeline_garray: array detoasted");
@@ -2377,7 +2377,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
        /* Get input holes if any */
        if ( PG_NARGS() > 1 )
        {
-               array = (ArrayType *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
+               array = PG_GETARG_ARRAYTYPE_P(1);
                nholes = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
                holes = lwalloc(sizeof(LWLINE *)*nholes);
                for (i=0; i<nholes; i++)
index 8b85bff2d544f41f2212d8b0c7625c95e6a4151a..440b4e00940bd2614895ee24ff89674781b141a1 100644 (file)
@@ -133,7 +133,7 @@ Datum unite_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
@@ -249,7 +249,7 @@ Datum unite_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
@@ -3362,7 +3362,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
index a02fea2d8c0de680a445790e0dc785bacd05d48c..ea2ec18a5e305a6bd1faa8171a699163f8b50060 100644 (file)
@@ -186,7 +186,7 @@ Datum unite_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
@@ -335,7 +335,7 @@ Datum unite_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));
 
@@ -3038,7 +3038,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
        /* Null array, null geometry (should be empty?) */
        if ( (Pointer *)datum == NULL ) PG_RETURN_NULL();
 
-       array = (ArrayType *) PG_DETOAST_DATUM(datum);
+       array = DatumGetArrayTypeP(datum);
 
        nelems = ArrayGetNItems(ARR_NDIM(array), ARR_DIMS(array));