137{
138 char *
str = PG_GETARG_CSTRING(0);
139
140 int32 geog_typmod = -1;
144
145 if ( (PG_NARGS()>2) && (!PG_ARGISNULL(2)) ) {
146 geog_typmod = PG_GETARG_INT32(2);
147 }
148
150
151
152 if (
str[0] ==
'\0' )
153 ereport(ERROR,(errmsg("parse error - invalid geometry")));
154
155
157 {
158
160
161 if ( ! lwgeom )
162 ereport(ERROR,(errmsg("parse error - invalid geometry")));
163 }
164
165 else
166 {
168 PG_PARSER_ERROR(lwg_parser_result);
169
170 lwgeom = lwg_parser_result.
geom;
171 }
172
173
174 srid_check_latlong(fcinfo, lwgeom->
srid);
175
176
178
179
181
182
183 PG_RETURN_POINTER(g_ser);
184}
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.