138{
139 char *
str = PG_GETARG_CSTRING(0);
140
141 int32 geog_typmod = -1;
145
146 if ( (PG_NARGS()>2) && (!PG_ARGISNULL(2)) ) {
147 geog_typmod = PG_GETARG_INT32(2);
148 }
149
151
152
153 if (
str[0] ==
'\0' )
154 ereport(ERROR,(errmsg("parse error - invalid geometry")));
155
156
158 {
159
161
162 if ( ! lwgeom )
163 ereport(ERROR,(errmsg("parse error - invalid geometry")));
164 }
165
166 else
167 {
169 PG_PARSER_ERROR(lwg_parser_result);
170
171 lwgeom = lwg_parser_result.
geom;
172 }
173
174
175 srid_check_latlong(lwgeom->
srid);
176
177
179
180
182
183
184 PG_RETURN_POINTER(g_ser);
185}
GSERIALIZED * gserialized_geography_from_lwgeom(LWGEOM *lwgeom, int32 geog_typmod)
#define LW_PARSER_CHECK_ALL
void lwgeom_free(LWGEOM *geom)
#define LW_PARSER_CHECK_NONE
void lwgeom_parser_result_init(LWGEOM_PARSER_RESULT *parser_result)
int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int parse_flags)
Parse a WKT geometry string into an LWGEOM structure.
LWGEOM * lwgeom_from_hexwkb(const char *hexwkb, const char check)
Parser result structure: returns the result of attempting to convert (E)WKT/(E)WKB to LWGEOM.