PostGIS
2.4.9dev-r@@SVN_REVISION@@
lwgeom_geos_relatematch.c
Go to the documentation of this file.
1
/**********************************************************************
2
*
3
* PostGIS - Spatial Types for PostgreSQL
4
* http://postgis.net
5
*
6
* PostGIS is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* PostGIS is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with PostGIS. If not, see <http://www.gnu.org/licenses/>.
18
*
19
**********************************************************************
20
*
21
* Copyright (C) 2010 Sandro Santilli <strk@kbt.io>
22
*
23
**********************************************************************/
24
25
26
#include "postgres.h"
27
#include "fmgr.h"
28
#include "funcapi.h"
29
30
#include "../postgis_config.h"
31
#include "
lwgeom_geos.h
"
32
#include "lwgeom_pg.h"
33
34
#include <string.h>
35
#include <assert.h>
36
37
/* #define POSTGIS_DEBUG_LEVEL 4 */
38
39
Datum
ST_RelateMatch
(PG_FUNCTION_ARGS);
40
PG_FUNCTION_INFO_V1
(
ST_RelateMatch
);
41
Datum
ST_RelateMatch
(PG_FUNCTION_ARGS)
42
{
43
char
*mat, *pat;
44
text *mat_text, *pat_text;
45
int
result;
46
47
/* Read the arguments */
48
mat_text = (PG_GETARG_TEXT_P(0));
49
pat_text = (PG_GETARG_TEXT_P(1));
50
51
/* Convert from text to cstring */
52
mat =
text2cstring
(mat_text);
53
pat =
text2cstring
(pat_text);
54
55
initGEOS(lwpgnotice,
lwgeom_geos_error
);
56
57
result = GEOSRelatePatternMatch(mat, pat);
58
if
(result == 2)
59
{
60
lwfree
(mat);
lwfree
(pat);
61
lwpgerror(
"GEOSRelatePatternMatch: %s"
,
lwgeom_geos_errmsg
);
62
PG_RETURN_NULL();
63
}
64
65
lwfree
(mat);
lwfree
(pat);
66
PG_RETURN_BOOL(result);
67
}
68
lwfree
void lwfree(void *mem)
Definition:
lwutil.c:244
lwgeom_geos_errmsg
char lwgeom_geos_errmsg[LWGEOM_GEOS_ERRMSG_MAXSIZE]
Definition:
liblwgeom/lwgeom_geos.c:39
PG_FUNCTION_INFO_V1
PG_FUNCTION_INFO_V1(ST_RelateMatch)
lwgeom_geos_error
void lwgeom_geos_error(const char *fmt,...)
Definition:
liblwgeom/lwgeom_geos.c:42
text2cstring
char * text2cstring(const text *textptr)
ST_RelateMatch
Datum ST_RelateMatch(PG_FUNCTION_ARGS)
Definition:
lwgeom_geos_relatematch.c:41
lwgeom_geos.h
postgis
lwgeom_geos_relatematch.c
Generated by
1.8.13