PostgreSQL Source Code git master
geo_decls.h File Reference
#include <math.h>
#include "fmgr.h"
Include dependency graph for geo_decls.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Point
 
struct  LSEG
 
struct  PATH
 
struct  LINE
 
struct  BOX
 
struct  POLYGON
 
struct  CIRCLE
 

Macros

#define EPSILON   1.0E-06
 
#define FPzero(A)   (fabs(A) <= EPSILON)
 
#define PG_GETARG_POINT_P(n)   DatumGetPointP(PG_GETARG_DATUM(n))
 
#define PG_RETURN_POINT_P(x)   return PointPGetDatum(x)
 
#define PG_GETARG_LSEG_P(n)   DatumGetLsegP(PG_GETARG_DATUM(n))
 
#define PG_RETURN_LSEG_P(x)   return LsegPGetDatum(x)
 
#define PG_GETARG_PATH_P(n)   DatumGetPathP(PG_GETARG_DATUM(n))
 
#define PG_GETARG_PATH_P_COPY(n)   DatumGetPathPCopy(PG_GETARG_DATUM(n))
 
#define PG_RETURN_PATH_P(x)   return PathPGetDatum(x)
 
#define PG_GETARG_LINE_P(n)   DatumGetLineP(PG_GETARG_DATUM(n))
 
#define PG_RETURN_LINE_P(x)   return LinePGetDatum(x)
 
#define PG_GETARG_BOX_P(n)   DatumGetBoxP(PG_GETARG_DATUM(n))
 
#define PG_RETURN_BOX_P(x)   return BoxPGetDatum(x)
 
#define PG_GETARG_POLYGON_P(n)   DatumGetPolygonP(PG_GETARG_DATUM(n))
 
#define PG_GETARG_POLYGON_P_COPY(n)   DatumGetPolygonPCopy(PG_GETARG_DATUM(n))
 
#define PG_RETURN_POLYGON_P(x)   return PolygonPGetDatum(x)
 
#define PG_GETARG_CIRCLE_P(n)   DatumGetCircleP(PG_GETARG_DATUM(n))
 
#define PG_RETURN_CIRCLE_P(x)   return CirclePGetDatum(x)
 

Functions

static bool FPeq (double A, double B)
 
static bool FPne (double A, double B)
 
static bool FPlt (double A, double B)
 
static bool FPle (double A, double B)
 
static bool FPgt (double A, double B)
 
static bool FPge (double A, double B)
 
static PointDatumGetPointP (Datum X)
 
static Datum PointPGetDatum (const Point *X)
 
static LSEGDatumGetLsegP (Datum X)
 
static Datum LsegPGetDatum (const LSEG *X)
 
static PATHDatumGetPathP (Datum X)
 
static PATHDatumGetPathPCopy (Datum X)
 
static Datum PathPGetDatum (const PATH *X)
 
static LINEDatumGetLineP (Datum X)
 
static Datum LinePGetDatum (const LINE *X)
 
static BOXDatumGetBoxP (Datum X)
 
static Datum BoxPGetDatum (const BOX *X)
 
static POLYGONDatumGetPolygonP (Datum X)
 
static POLYGONDatumGetPolygonPCopy (Datum X)
 
static Datum PolygonPGetDatum (const POLYGON *X)
 
static CIRCLEDatumGetCircleP (Datum X)
 
static Datum CirclePGetDatum (const CIRCLE *X)
 

Macro Definition Documentation

◆ EPSILON

#define EPSILON   1.0E-06

Definition at line 41 of file geo_decls.h.

◆ FPzero

#define FPzero (   A)    (fabs(A) <= EPSILON)

Definition at line 44 of file geo_decls.h.

◆ PG_GETARG_BOX_P

#define PG_GETARG_BOX_P (   n)    DatumGetBoxP(PG_GETARG_DATUM(n))

Definition at line 242 of file geo_decls.h.

◆ PG_GETARG_CIRCLE_P

#define PG_GETARG_CIRCLE_P (   n)    DatumGetCircleP(PG_GETARG_DATUM(n))

Definition at line 274 of file geo_decls.h.

◆ PG_GETARG_LINE_P

#define PG_GETARG_LINE_P (   n)    DatumGetLineP(PG_GETARG_DATUM(n))

Definition at line 229 of file geo_decls.h.

◆ PG_GETARG_LSEG_P

#define PG_GETARG_LSEG_P (   n)    DatumGetLsegP(PG_GETARG_DATUM(n))

Definition at line 197 of file geo_decls.h.

◆ PG_GETARG_PATH_P

#define PG_GETARG_PATH_P (   n)    DatumGetPathP(PG_GETARG_DATUM(n))

Definition at line 215 of file geo_decls.h.

◆ PG_GETARG_PATH_P_COPY

#define PG_GETARG_PATH_P_COPY (   n)    DatumGetPathPCopy(PG_GETARG_DATUM(n))

Definition at line 216 of file geo_decls.h.

◆ PG_GETARG_POINT_P

#define PG_GETARG_POINT_P (   n)    DatumGetPointP(PG_GETARG_DATUM(n))

Definition at line 184 of file geo_decls.h.

◆ PG_GETARG_POLYGON_P

#define PG_GETARG_POLYGON_P (   n)    DatumGetPolygonP(PG_GETARG_DATUM(n))

Definition at line 260 of file geo_decls.h.

◆ PG_GETARG_POLYGON_P_COPY

#define PG_GETARG_POLYGON_P_COPY (   n)    DatumGetPolygonPCopy(PG_GETARG_DATUM(n))

Definition at line 261 of file geo_decls.h.

◆ PG_RETURN_BOX_P

#define PG_RETURN_BOX_P (   x)    return BoxPGetDatum(x)

Definition at line 243 of file geo_decls.h.

◆ PG_RETURN_CIRCLE_P

#define PG_RETURN_CIRCLE_P (   x)    return CirclePGetDatum(x)

Definition at line 275 of file geo_decls.h.

◆ PG_RETURN_LINE_P

#define PG_RETURN_LINE_P (   x)    return LinePGetDatum(x)

Definition at line 230 of file geo_decls.h.

◆ PG_RETURN_LSEG_P

#define PG_RETURN_LSEG_P (   x)    return LsegPGetDatum(x)

Definition at line 198 of file geo_decls.h.

◆ PG_RETURN_PATH_P

#define PG_RETURN_PATH_P (   x)    return PathPGetDatum(x)

Definition at line 217 of file geo_decls.h.

◆ PG_RETURN_POINT_P

#define PG_RETURN_POINT_P (   x)    return PointPGetDatum(x)

Definition at line 185 of file geo_decls.h.

◆ PG_RETURN_POLYGON_P

#define PG_RETURN_POLYGON_P (   x)    return PolygonPGetDatum(x)

Definition at line 262 of file geo_decls.h.

Function Documentation

◆ BoxPGetDatum()

static Datum BoxPGetDatum ( const BOX X)
inlinestatic

◆ CirclePGetDatum()

static Datum CirclePGetDatum ( const CIRCLE X)
inlinestatic

Definition at line 270 of file geo_decls.h.

271{
272 return PointerGetDatum(X);
273}

References PointerGetDatum().

Referenced by gist_point_consistent().

◆ DatumGetBoxP()

◆ DatumGetCircleP()

static CIRCLE * DatumGetCircleP ( Datum  X)
inlinestatic

Definition at line 265 of file geo_decls.h.

266{
267 return (CIRCLE *) DatumGetPointer(X);
268}

References DatumGetPointer().

Referenced by gist_circle_compress().

◆ DatumGetLineP()

static LINE * DatumGetLineP ( Datum  X)
inlinestatic

Definition at line 220 of file geo_decls.h.

221{
222 return (LINE *) DatumGetPointer(X);
223}

References DatumGetPointer().

◆ DatumGetLsegP()

static LSEG * DatumGetLsegP ( Datum  X)
inlinestatic

Definition at line 188 of file geo_decls.h.

189{
190 return (LSEG *) DatumGetPointer(X);
191}

References DatumGetPointer().

◆ DatumGetPathP()

static PATH * DatumGetPathP ( Datum  X)
inlinestatic

Definition at line 201 of file geo_decls.h.

202{
203 return (PATH *) PG_DETOAST_DATUM(X);
204}
#define PG_DETOAST_DATUM(datum)
Definition: fmgr.h:240

References PG_DETOAST_DATUM.

◆ DatumGetPathPCopy()

static PATH * DatumGetPathPCopy ( Datum  X)
inlinestatic

Definition at line 206 of file geo_decls.h.

207{
208 return (PATH *) PG_DETOAST_DATUM_COPY(X);
209}
#define PG_DETOAST_DATUM_COPY(datum)
Definition: fmgr.h:242

References PG_DETOAST_DATUM_COPY.

◆ DatumGetPointP()

◆ DatumGetPolygonP()

static POLYGON * DatumGetPolygonP ( Datum  X)
inlinestatic

Definition at line 246 of file geo_decls.h.

247{
248 return (POLYGON *) PG_DETOAST_DATUM(X);
249}

References PG_DETOAST_DATUM.

Referenced by gist_poly_compress(), and spg_box_quad_get_scankey_bbox().

◆ DatumGetPolygonPCopy()

static POLYGON * DatumGetPolygonPCopy ( Datum  X)
inlinestatic

Definition at line 251 of file geo_decls.h.

252{
253 return (POLYGON *) PG_DETOAST_DATUM_COPY(X);
254}

References PG_DETOAST_DATUM_COPY.

◆ FPeq()

static bool FPeq ( double  A,
double  B 
)
inlinestatic

◆ FPge()

static bool FPge ( double  A,
double  B 
)
inlinestatic

◆ FPgt()

static bool FPgt ( double  A,
double  B 
)
inlinestatic

◆ FPle()

◆ FPlt()

static bool FPlt ( double  A,
double  B 
)
inlinestatic

◆ FPne()

static bool FPne ( double  A,
double  B 
)
inlinestatic

Definition at line 53 of file geo_decls.h.

54{
55 return A != B && fabs(A - B) > EPSILON;
56}

References EPSILON.

Referenced by circle_ne().

◆ LinePGetDatum()

static Datum LinePGetDatum ( const LINE X)
inlinestatic

Definition at line 225 of file geo_decls.h.

226{
227 return PointerGetDatum(X);
228}

References PointerGetDatum().

◆ LsegPGetDatum()

static Datum LsegPGetDatum ( const LSEG X)
inlinestatic

Definition at line 193 of file geo_decls.h.

194{
195 return PointerGetDatum(X);
196}

References PointerGetDatum().

Referenced by interpt_pp().

◆ PathPGetDatum()

static Datum PathPGetDatum ( const PATH X)
inlinestatic

Definition at line 211 of file geo_decls.h.

212{
213 return PointerGetDatum(X);
214}

References PointerGetDatum().

◆ PointPGetDatum()

static Datum PointPGetDatum ( const Point X)
inlinestatic

◆ PolygonPGetDatum()

static Datum PolygonPGetDatum ( const POLYGON X)
inlinestatic

Definition at line 256 of file geo_decls.h.

257{
258 return PointerGetDatum(X);
259}

References PointerGetDatum().

Referenced by gist_point_consistent().