93{
94 Datum array = PG_GETARG_DATUM(0);
95 text *geom_column_text = PG_GETARG_TEXT_P(1);
96 char *geom_column = PG_ARGISNULL(1) ? "" : text_to_cstring(geom_column_text);
97 int32 maxdecimaldigits = PG_GETARG_INT32(2);
98 bool do_pretty = PG_GETARG_BOOL(3);
99 text *id_column_text = PG_GETARG_TEXT_P(4);
100 char *id_column = PG_ARGISNULL(4) ? "" : text_to_cstring(id_column_text);
102 Oid geom_oid = InvalidOid;
103 Oid geog_oid = InvalidOid;
104
105
106 postgis_initialize_cache();
107 geom_oid = postgis_oid(GEOMETRYOID);
108 geog_oid = postgis_oid(GEOGRAPHYOID);
109
110 if (strlen(geom_column) == 0)
111 geom_column = NULL;
112 if (strlen(id_column) == 0)
113 id_column = NULL;
114
116
118
119 PG_RETURN_TEXT_P(cstring_to_text_with_len(
result.data,
result.len));
120}
char result[OUT_DOUBLE_BUFFER_SIZE]
static void composite_to_geojson(FunctionCallInfo fcinfo, Datum composite, char *geom_column_name, char *id_column_name, int32 maxdecimaldigits, StringInfo result, bool use_line_feeds, Oid geom_oid, Oid geog_oid)