PostGIS  2.2.7dev-r@@SVN_REVISION@@
Datum geography_from_text ( PG_FUNCTION_ARGS  )

Definition at line 522 of file geography_inout.c.

References struct_lwgeom_parser_result::geom, gserialized_geography_from_lwgeom(), LW_FAILURE, LW_PARSER_CHECK_ALL, lwgeom_free(), lwgeom_parse_wkt(), LWGEOM::srid, and text2cstring().

523 {
524  LWGEOM_PARSER_RESULT lwg_parser_result;
525  GSERIALIZED *g_ser = NULL;
526  text *wkt_text = PG_GETARG_TEXT_P(0);
527 
528  /* Extract the cstring from the varlena */
529  char *wkt = text2cstring(wkt_text);
530 
531  /* Pass the cstring to the input parser, and magic occurs! */
532  if ( lwgeom_parse_wkt(&lwg_parser_result, wkt, LW_PARSER_CHECK_ALL) == LW_FAILURE )
533  PG_PARSER_ERROR(lwg_parser_result);
534 
535  /* Error on any SRID != default */
536  srid_is_latlong(fcinfo, lwg_parser_result.geom->srid);
537 
538  /* Clean up string */
539  pfree(wkt);
540  g_ser = gserialized_geography_from_lwgeom(lwg_parser_result.geom, -1);
541 
542  /* Clean up temporary object */
543  lwgeom_free(lwg_parser_result.geom);
544 
545  PG_RETURN_POINTER(g_ser);
546 }
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1050
int32_t srid
Definition: liblwgeom.h:383
#define LW_FAILURE
Definition: liblwgeom.h:64
int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int parse_flags)
Parse a WKT geometry string into an LWGEOM structure.
Parser result structure: returns the result of attempting to convert (E)WKT/(E)WKB to LWGEOM...
Definition: liblwgeom.h:1876
char * text2cstring(const text *textptr)
GSERIALIZED * gserialized_geography_from_lwgeom(LWGEOM *lwgeom, int32 geog_typmod)
#define LW_PARSER_CHECK_ALL
Definition: liblwgeom.h:1870

Here is the call graph for this function: