Creates ESRI .prj file for this shp output It looks in the spatial_ref_sys table and outputs the srtext field for this data If data is a table will use geometry_columns, if a query or view will read SRID from query output. 
  726         char    *pszFullname, *pszBasename;
 
  729         char *pszFilename = state->
shp_file;
 
  730         char *schema = state->
schema;
 
  731         char *table = state->
table;
 
  736         char esc_schema[1024];
 
  737         char esc_table[1024];
 
  738         char esc_geo_col_name[1024];
 
  746         PQescapeStringConn(state->
conn, esc_table, table, strlen(table), &error);
 
  747         PQescapeStringConn(state->
conn, esc_geo_col_name, geo_col_name, strlen(geo_col_name), &error);
 
  760                 PQescapeStringConn(state->
conn, esc_schema, schema, strlen(schema), &error);
 
  762                         "SELECT COALESCE((SELECT sr.srtext " 
  763                         " FROM  geometry_columns As gc INNER JOIN spatial_ref_sys sr ON sr.srid = gc.srid " 
  764                         " WHERE gc.f_table_schema = '%s' AND gc.f_table_name = '%s' AND gc.f_geometry_column = '%s' LIMIT 1),  " 
  765                         " (SELECT CASE WHEN COUNT(DISTINCT sr.srid) > 1 THEN 'm' ELSE MAX(sr.srtext) END As srtext " 
  766                         " FROM \"%s\".\"%s\" As g INNER JOIN spatial_ref_sys sr ON sr.srid = ST_SRID((g.\"%s\")::geometry)) , ' ') As srtext ",
 
  767                         esc_schema, esc_table, esc_geo_col_name, schema, table, geo_col_name);
 
  772                         "SELECT COALESCE((SELECT sr.srtext " 
  773                     " FROM  geometry_columns As gc INNER JOIN spatial_ref_sys sr ON sr.srid = gc.srid " 
  774                     " WHERE gc.f_table_name = '%s' AND gc.f_geometry_column = '%s' AND pg_table_is_visible((gc.f_table_schema || '.' || gc.f_table_name)::regclass) LIMIT 1),  " 
  775                     " (SELECT CASE WHEN COUNT(DISTINCT sr.srid) > 1 THEN 'm' ELSE MAX(sr.srtext) END as srtext " 
  776                     " FROM \"%s\" As g INNER JOIN spatial_ref_sys sr ON sr.srid = ST_SRID((g.\"%s\")::geometry)), ' ') As srtext ",
 
  777                     esc_table, esc_geo_col_name, table, geo_col_name);
 
  782         res = PQexec(state->
conn, query);
 
  784         if ( ! 
res || PQresultStatus(
res) != PGRES_TUPLES_OK )
 
  792         for (i=0; i < PQntuples(
res); i++)
 
  794                 srtext = PQgetvalue(
res, i, 0);
 
  795                 if (strcmp(srtext,
"m") == 0)
 
  797                         snprintf(state->
message, 
SHPDUMPERMSGLEN, 
_(
"WARNING: Mixed set of spatial references. No prj file will be generated"));
 
  804                         if (srtext[0] == 
' ')
 
  806                                 snprintf(state->
message, 
SHPDUMPERMSGLEN, 
_(
"WARNING: Cannot determine spatial reference (empty table or unknown spatial ref). No prj file will be generated."));
 
  817                                 pszBasename = (
char *) 
malloc(strlen(pszFilename)+5);
 
  818                                 strcpy( pszBasename, pszFilename );
 
  819                                 for ( i = strlen(pszBasename)-1;
 
  820                                         i > 0 && pszBasename[i] != 
'.' && pszBasename[i] != 
'/' 
  821                                         && pszBasename[i] != 
'\\';
 
  824                                 if ( pszBasename[i] == 
'.' )
 
  825                                         pszBasename[i] = 
'\0';
 
  834                                 fp = fopen( pszFullname, 
"wb" );
 
  843                                         result = fputs (srtext,fp);
 
  844                                         LWDEBUGF(3, 
"\n result %d proj SRText is %s .\n", 
result, srtext);
 
char result[OUT_DOUBLE_BUFFER_SIZE]
#define LWDEBUGF(level, msg,...)
static char * core_asprintf(const char *format,...) __attribute__((format(printf
char message[SHPDUMPERMSGLEN]