Definition at line 78 of file shp2pgsql-cli.c.
79{
82 char *header, *footer, *record;
83 int c;
84 int ret, i;
85
86#ifdef ENABLE_NLS
87 setlocale (LC_ALL, "");
88 bindtextdomain (PACKAGE, PGSQL_LOCALEDIR);
89 textdomain (PACKAGE);
90#endif
91
92
93 if (argc == 1)
94 {
96 exit(0);
97 }
98
99
102
103
104 while ((c =
pgis_getopt(argc, argv,
"-acdeg:ikm:nps:t:wDGIN:ST:W:X:")) != EOF)
105 {
106
107 if ('-' == c)
108 break;
109
110 switch (c)
111 {
112 case 'c':
113 case 'd':
114 case 'a':
115 case 'p':
117 break;
118
119 case 'D':
121 break;
122
123 case 'G':
125 break;
126
127 case 'S':
129 break;
130
131 case 's':
133 {
135 if (ptr)
136 {
137 *ptr++ = '\0';
139 sscanf(ptr,
"%d", &config->
sr_id);
140 }
141 else
142 {
143
145 }
146 }
147 else
148 {
149
150 fprintf(stderr, "The -s parameter must be specified in the form [FROM_SRID:]TO_SRID\n");
151 exit(1);
152 }
153 break;
154 case 'g':
156 break;
157 case 'm':
159 break;
160
161 case 'k':
163 break;
164
165 case 'i':
167 break;
168
169 case 'I':
171 break;
172
173 case 'w':
175 break;
176
177 case 'n':
179 break;
180
181 case 'W':
183 break;
184
185 case 'N':
187 {
188 case 'a':
190 break;
191 case 'i':
193 break;
194 case 's':
196 break;
197 default:
198 fprintf(stderr, "Unsupported NULL geometry handling policy.\nValid policies: insert, skip, abort\n");
199 exit(1);
200 }
201 break;
202
203 case 't':
205 {
207 }
209 {
211 }
213 {
215 }
217 {
219 }
220 else
221 {
222 fprintf(stderr,
"Unsupported output type: %s\nValid output types are 2D, 3DZ, 3DM and 4D\n",
pgis_optarg);
223 exit(1);
224 }
225 break;
226
227 case 'T':
229 break;
230
231 case 'X':
233 break;
234
235 case 'e':
237 break;
238
239 case '?':
241 exit(0);
242
243 default:
245 exit(0);
246 }
247 }
248
249
251 {
252 fprintf(stderr, "Invalid argument combination - cannot use both -D and -e\n");
253 exit(1);
254 }
255
256
258 {
261 }
262 else
263 {
265 exit(0);
266 }
267
268
270 {
272 char *chrptr = strchr(strptr, '.');
273
274
275 if (chrptr)
276 {
277 if ( chrptr == strptr )
278 {
279
281 exit(0);
282 }
283
284 *chrptr = '\0';
285
286 config->
schema = strdup(strptr);
287 config->
table = strdup(chrptr+1);
288 }
289 else
290 {
291 config->
table = strdup(strptr);
292 }
293 }
294
295
296
298 {
299 char *shp_file = strdup(config->
shp_file);
300 char *ptr;
301
302
303 for ( ptr = shp_file + strlen(shp_file); ptr > shp_file; ptr-- )
304 {
305 if ( *ptr == '.' )
306 {
307 *ptr = '\0';
308 break;
309 }
310 }
311
312
313 for ( ptr = shp_file + strlen(shp_file); ptr > shp_file; ptr-- )
314 {
315 if ( *ptr == '/' || *ptr == '\\' )
316 {
317 ptr++;
318 break;
319 }
320 }
321 config->
table = strdup(ptr);
323 }
324
325
326
328 {
333 }
334
335
337
338
341 {
342 fprintf(stderr,
"%s\n", state->
message);
343
345 exit(1);
346 }
347
348
350 {
352 fprintf(stderr,
"Postgis type: %s[%d]\n", state->
pgtype, state->
pgdims);
353 }
354
355
358 {
359 fprintf(stderr,
"%s\n", state->
message);
360
362 exit(1);
363 }
364
365 printf("%s", header);
367
368
370 {
371
372
374 {
377 {
378 fprintf(stderr,
"%s\n", state->
message);
379
381 exit(1);
382 }
383
384 printf("%s", header);
386 }
387
388
390 {
392
393 switch (ret)
394 {
396
397 printf("%s\n", record);
399 break;
400
402
403 fprintf(stderr,
"%s\n", state->
message);
404 exit(1);
405 break;
406
408
409 fprintf(stderr,
"%s\n", state->
message);
410 printf("%s\n", record);
412 break;
413
415
416 break;
417
419
420 break;
421 }
422 }
423
424
426 printf("\\.\n");
427
428 }
429
430
433 {
434 fprintf(stderr,
"%s\n", state->
message);
435
437 exit(1);
438 }
439
440 printf("%s", footer);
442
443
444
446
447
455
456 return 0;
457}
int pgis_getopt(int argc, char **argv, char *opts)
const char SHPAPI_CALL1 * SHPTypeName(int nSHPType);const char SHPAPI_CALL1(*) SHPPartTypeName(int nPartType
int ShpLoaderGetRecordCount(SHPLOADERSTATE *state)
void ShpLoaderDestroy(SHPLOADERSTATE *state)
SHPLOADERSTATE * ShpLoaderCreate(SHPLOADERCONFIG *config)
int ShpLoaderGetSQLCopyStatement(SHPLOADERSTATE *state, char **strheader)
int ShpLoaderOpenShape(SHPLOADERSTATE *state)
int ShpLoaderGenerateSQLRowStatement(SHPLOADERSTATE *state, int item, char **strrecord)
void set_loader_config_defaults(SHPLOADERCONFIG *config)
int ShpLoaderGetSQLFooter(SHPLOADERSTATE *state, char **strfooter)
int ShpLoaderGetSQLHeader(SHPLOADERSTATE *state, char **strheader)
#define POLICY_NULL_ABORT
#define SHPLOADERRECISNULL
#define POLICY_NULL_INSERT
#define SHPLOADERRECDELETED
char * column_map_filename
char message[SHPLOADERMSGLEN]
References shp_loader_config::column_map_filename, shp_loader_state::config, shp_loader_config::createindex, shp_loader_config::dump_format, shp_loader_config::encoding, shp_loader_config::force_output, FORCE_OUTPUT_2D, FORCE_OUTPUT_3DM, FORCE_OUTPUT_3DZ, FORCE_OUTPUT_4D, shp_loader_config::forceint4, free(), shp_loader_config::geo_col, shp_loader_config::geography, shp_loader_config::idxtablespace, malloc(), shp_loader_state::message, shp_loader_config::null_policy, shp_loader_config::opt, shp_loader_state::pgdims, pgis_getopt(), pgis_optarg, pgis_optind, shp_loader_state::pgtype, POLICY_NULL_ABORT, POLICY_NULL_INSERT, POLICY_NULL_SKIP, shp_loader_config::quoteidentifiers, shp_loader_config::readshape, shp_loader_config::schema, set_loader_config_defaults(), shp_loader_config::shp_file, shp_loader_config::shp_sr_id, shp_loader_state::shpfiletype, ShpLoaderCreate(), ShpLoaderDestroy(), SHPLOADERERR, ShpLoaderGenerateSQLRowStatement(), ShpLoaderGetRecordCount(), ShpLoaderGetSQLCopyStatement(), ShpLoaderGetSQLFooter(), ShpLoaderGetSQLHeader(), SHPLOADEROK, ShpLoaderOpenShape(), SHPLOADERRECDELETED, SHPLOADERRECISNULL, SHPLOADERWARN, SHPTypeName(), shp_loader_config::simple_geometries, shp_loader_config::sr_id, strtolower(), shp_loader_config::table, shp_loader_config::tablespace, usage(), shp_loader_config::use_wkt, and shp_loader_config::usetransaction.