2535{
2538 GEOSGeometry *g1, *g2;
2539 char result;
2541
2542 geom1 = PG_GETARG_GSERIALIZED_P(0);
2543 geom2 = PG_GETARG_GSERIALIZED_P(1);
2545
2546
2548 PG_RETURN_BOOL(true);
2549
2550
2551
2552
2553
2556 {
2558 {
2559 PG_RETURN_BOOL(false);
2560 }
2561 }
2562
2563
2564
2565
2566
2567 if (VARSIZE(geom1) == VARSIZE(geom2) && !memcmp(geom1, geom2, VARSIZE(geom1))) {
2568 PG_RETURN_BOOL(true);
2569 }
2570
2572
2574
2575 if (!g1)
2577
2579
2580 if (!g2)
2581 {
2582 GEOSGeom_destroy(g1);
2584 }
2585
2586 result = GEOSEquals(g1,g2);
2587
2588 GEOSGeom_destroy(g1);
2589 GEOSGeom_destroy(g2);
2590
2592
2593 PG_FREE_IF_COPY(geom1, 0);
2594 PG_FREE_IF_COPY(geom2, 1);
2595
2596 PG_RETURN_BOOL(result);
2597}
int gbox_same_2d_float(const GBOX *g1, const GBOX *g2)
Check if two given GBOX are the same in x and y, or would round to the same GBOX in x and if serializ...
void gserialized_error_if_srid_mismatch(const GSERIALIZED *g1, const GSERIALIZED *g2, const char *funcname)
int gserialized_get_gbox_p(const GSERIALIZED *g, GBOX *gbox)
Read the box from the GSERIALIZED or calculate it if necessary.
int gserialized_is_empty(const GSERIALIZED *g)
Check if a GSERIALIZED is empty without deserializing first.
void lwgeom_geos_error(const char *fmt,...)
#define HANDLE_GEOS_ERROR(label)
GEOSGeometry * POSTGIS2GEOS(GSERIALIZED *pglwgeom)