← Back to Overview

src/backend/commands/dropcmds.c

Coverage: 0/0 lines (0.0%)
Total Lines
0
modified
Covered
0
0.0%
Uncovered
0
100.0%
키보드 네비게이션
does_not_exist_skipping() lines 243-525
Modified Lines Coverage: 0/0 lines (0.0%)
LineHitsSourceCommit
243 - does_not_exist_skipping(ObjectType objtype, Node *object) -
244 - { -
245 - const char *msg = NULL; -
246 - char *name = NULL; -
247 - char *args = NULL; -
248 - -
249 - switch (objtype) -
250 - { -
251 - case OBJECT_ACCESS_METHOD: -
252 - msg = gettext_noop("access method \"%s\" does not exist, skipping"); -
253 - name = strVal(object); -
254 - break; -
255 - case OBJECT_TYPE: -
256 - case OBJECT_DOMAIN: -
257 - { -
258 - TypeName *typ = castNode(TypeName, object); -
259 - -
260 - if (!schema_does_not_exist_skipping(typ->names, &msg, &name)) -
261 - { -
262 - msg = gettext_noop("type \"%s\" does not exist, skipping"); -
263 - name = TypeNameToString(typ); -
264 - } -
265 - } -
266 - break; -
267 - case OBJECT_COLLATION: -
268 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
269 - { -
270 - msg = gettext_noop("collation \"%s\" does not exist, skipping"); -
271 - name = NameListToString(castNode(List, object)); -
272 - } -
273 - break; -
274 - case OBJECT_CONVERSION: -
275 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
276 - { -
277 - msg = gettext_noop("conversion \"%s\" does not exist, skipping"); -
278 - name = NameListToString(castNode(List, object)); -
279 - } -
280 - break; -
281 - case OBJECT_SCHEMA: -
282 - msg = gettext_noop("schema \"%s\" does not exist, skipping"); -
283 - name = strVal(object); -
284 - break; -
285 - case OBJECT_STATISTIC_EXT: -
286 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
287 - { -
288 - msg = gettext_noop("statistics object \"%s\" does not exist, skipping"); -
289 - name = NameListToString(castNode(List, object)); -
290 - } -
291 - break; -
292 - case OBJECT_TSPARSER: -
293 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
294 - { -
295 - msg = gettext_noop("text search parser \"%s\" does not exist, skipping"); -
296 - name = NameListToString(castNode(List, object)); -
297 - } -
298 - break; -
299 - case OBJECT_TSDICTIONARY: -
300 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
301 - { -
302 - msg = gettext_noop("text search dictionary \"%s\" does not exist, skipping"); -
303 - name = NameListToString(castNode(List, object)); -
304 - } -
305 - break; -
306 - case OBJECT_TSTEMPLATE: -
307 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
308 - { -
309 - msg = gettext_noop("text search template \"%s\" does not exist, skipping"); -
310 - name = NameListToString(castNode(List, object)); -
311 - } -
312 - break; -
313 - case OBJECT_TSCONFIGURATION: -
314 - if (!schema_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
315 - { -
316 - msg = gettext_noop("text search configuration \"%s\" does not exist, skipping"); -
317 - name = NameListToString(castNode(List, object)); -
318 - } -
319 - break; -
320 - case OBJECT_EXTENSION: -
321 - msg = gettext_noop("extension \"%s\" does not exist, skipping"); -
322 - name = strVal(object); -
323 - break; -
324 - case OBJECT_FUNCTION: -
325 - { -
326 - ObjectWithArgs *owa = castNode(ObjectWithArgs, object); -
327 - -
328 - if (!schema_does_not_exist_skipping(owa->objname, &msg, &name) && -
329 - !type_in_list_does_not_exist_skipping(owa->objargs, &msg, &name)) -
330 - { -
331 - msg = gettext_noop("function %s(%s) does not exist, skipping"); -
332 - name = NameListToString(owa->objname); -
333 - args = TypeNameListToString(owa->objargs); -
334 - } -
335 - break; -
336 - } -
337 - case OBJECT_PROCEDURE: -
338 - { -
339 - ObjectWithArgs *owa = castNode(ObjectWithArgs, object); -
340 - -
341 - if (!schema_does_not_exist_skipping(owa->objname, &msg, &name) && -
342 - !type_in_list_does_not_exist_skipping(owa->objargs, &msg, &name)) -
343 - { -
344 - msg = gettext_noop("procedure %s(%s) does not exist, skipping"); -
345 - name = NameListToString(owa->objname); -
346 - args = TypeNameListToString(owa->objargs); -
347 - } -
348 - break; -
349 - } -
350 - case OBJECT_ROUTINE: -
351 - { -
352 - ObjectWithArgs *owa = castNode(ObjectWithArgs, object); -
353 - -
354 - if (!schema_does_not_exist_skipping(owa->objname, &msg, &name) && -
355 - !type_in_list_does_not_exist_skipping(owa->objargs, &msg, &name)) -
356 - { -
357 - msg = gettext_noop("routine %s(%s) does not exist, skipping"); -
358 - name = NameListToString(owa->objname); -
359 - args = TypeNameListToString(owa->objargs); -
360 - } -
361 - break; -
362 - } -
363 - case OBJECT_AGGREGATE: -
364 - { -
365 - ObjectWithArgs *owa = castNode(ObjectWithArgs, object); -
366 - -
367 - if (!schema_does_not_exist_skipping(owa->objname, &msg, &name) && -
368 - !type_in_list_does_not_exist_skipping(owa->objargs, &msg, &name)) -
369 - { -
370 - msg = gettext_noop("aggregate %s(%s) does not exist, skipping"); -
371 - name = NameListToString(owa->objname); -
372 - args = TypeNameListToString(owa->objargs); -
373 - } -
374 - break; -
375 - } -
376 - case OBJECT_OPERATOR: -
377 - { -
378 - ObjectWithArgs *owa = castNode(ObjectWithArgs, object); -
379 - -
380 - if (!schema_does_not_exist_skipping(owa->objname, &msg, &name) && -
381 - !type_in_list_does_not_exist_skipping(owa->objargs, &msg, &name)) -
382 - { -
383 - msg = gettext_noop("operator %s does not exist, skipping"); -
384 - name = NameListToString(owa->objname); -
385 - } -
386 - break; -
387 - } -
388 - case OBJECT_LANGUAGE: -
389 - msg = gettext_noop("language \"%s\" does not exist, skipping"); -
390 - name = strVal(object); -
391 - break; -
392 - case OBJECT_CAST: -
393 - { -
394 - if (!type_in_list_does_not_exist_skipping(list_make1(linitial(castNode(List, object))), &msg, &name) && -
395 - !type_in_list_does_not_exist_skipping(list_make1(lsecond(castNode(List, object))), &msg, &name)) -
396 - { -
397 - /* XXX quote or no quote? */ -
398 - msg = gettext_noop("cast from type %s to type %s does not exist, skipping"); -
399 - name = TypeNameToString(linitial_node(TypeName, castNode(List, object))); -
400 - args = TypeNameToString(lsecond_node(TypeName, castNode(List, object))); -
401 - } -
402 - } -
403 - break; -
404 - case OBJECT_TRANSFORM: -
405 - if (!type_in_list_does_not_exist_skipping(list_make1(linitial(castNode(List, object))), &msg, &name)) -
406 - { -
407 - msg = gettext_noop("transform for type %s language \"%s\" does not exist, skipping"); -
408 - name = TypeNameToString(linitial_node(TypeName, castNode(List, object))); -
409 - args = strVal(lsecond(castNode(List, object))); -
410 - } -
411 - break; -
412 - case OBJECT_TRIGGER: -
413 - if (!owningrel_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
414 - { -
415 - msg = gettext_noop("trigger \"%s\" for relation \"%s\" does not exist, skipping"); -
416 - name = strVal(llast(castNode(List, object))); -
417 - args = NameListToString(list_copy_head(castNode(List, object), -
418 - list_length(castNode(List, object)) - 1)); -
419 - } -
420 - break; -
421 - case OBJECT_POLICY: -
422 - if (!owningrel_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
423 - { -
424 - msg = gettext_noop("policy \"%s\" for relation \"%s\" does not exist, skipping"); -
425 - name = strVal(llast(castNode(List, object))); -
426 - args = NameListToString(list_copy_head(castNode(List, object), -
427 - list_length(castNode(List, object)) - 1)); -
428 - } -
429 - break; -
430 - case OBJECT_EVENT_TRIGGER: -
431 - msg = gettext_noop("event trigger \"%s\" does not exist, skipping"); -
432 - name = strVal(object); -
433 - break; -
434 - case OBJECT_RULE: -
435 - if (!owningrel_does_not_exist_skipping(castNode(List, object), &msg, &name)) -
436 - { -
437 - msg = gettext_noop("rule \"%s\" for relation \"%s\" does not exist, skipping"); -
438 - name = strVal(llast(castNode(List, object))); -
439 - args = NameListToString(list_copy_head(castNode(List, object), -
440 - list_length(castNode(List, object)) - 1)); -
441 - } -
442 - break; -
443 - case OBJECT_FDW: -
444 - msg = gettext_noop("foreign-data wrapper \"%s\" does not exist, skipping"); -
445 - name = strVal(object); -
446 - break; -
447 - case OBJECT_FOREIGN_SERVER: -
448 - msg = gettext_noop("server \"%s\" does not exist, skipping"); -
449 - name = strVal(object); -
450 - break; -
451 - case OBJECT_OPCLASS: -
452 - { -
453 - List *opcname = list_copy_tail(castNode(List, object), 1); -
454 - -
455 - if (!schema_does_not_exist_skipping(opcname, &msg, &name)) -
456 - { -
457 - msg = gettext_noop("operator class \"%s\" does not exist for access method \"%s\", skipping"); -
458 - name = NameListToString(opcname); -
459 - args = strVal(linitial(castNode(List, object))); -
460 - } -
461 - } -
462 - break; -
463 - case OBJECT_OPFAMILY: -
464 - { -
465 - List *opfname = list_copy_tail(castNode(List, object), 1); -
466 - -
467 - if (!schema_does_not_exist_skipping(opfname, &msg, &name)) -
468 - { -
469 - msg = gettext_noop("operator family \"%s\" does not exist for access method \"%s\", skipping"); -
470 - name = NameListToString(opfname); -
471 - args = strVal(linitial(castNode(List, object))); -
472 - } -
473 - } -
474 - break; -
475 - case OBJECT_PUBLICATION: -
476 - msg = gettext_noop("publication \"%s\" does not exist, skipping"); -
477 - name = strVal(object); -
478 - break; -
479 - -
480 - case OBJECT_COLUMN: -
481 - case OBJECT_DATABASE: -
482 - case OBJECT_FOREIGN_TABLE: -
483 - case OBJECT_INDEX: -
484 - case OBJECT_MATVIEW: -
485 - case OBJECT_PROPGRAPH: 86c14eaWIP: SQL Property Graph Queries (SQL/PGQ)
486 - case OBJECT_ROLE: -
487 - case OBJECT_SEQUENCE: -
488 - case OBJECT_SUBSCRIPTION: -
489 - case OBJECT_TABLE: -
490 - case OBJECT_TABLESPACE: -
491 - case OBJECT_VIEW: -
492 - -
493 - /* -
494 - * These are handled elsewhere, so if someone gets here the code -
495 - * is probably wrong or should be revisited. -
496 - */ -
497 - elog(ERROR, "unsupported object type: %d", (int) objtype); -
498 - break; -
499 - -
500 - case OBJECT_AMOP: -
501 - case OBJECT_AMPROC: -
502 - case OBJECT_ATTRIBUTE: -
503 - case OBJECT_DEFAULT: -
504 - case OBJECT_DEFACL: -
505 - case OBJECT_DOMCONSTRAINT: -
506 - case OBJECT_LARGEOBJECT: -
507 - case OBJECT_PARAMETER_ACL: -
508 - case OBJECT_PUBLICATION_NAMESPACE: -
509 - case OBJECT_PUBLICATION_REL: -
510 - case OBJECT_TABCONSTRAINT: -
511 - case OBJECT_USER_MAPPING: -
512 - /* These are currently not used or needed. */ -
513 - elog(ERROR, "unsupported object type: %d", (int) objtype); -
514 - break; -
515 - -
516 - /* no default, to let compiler warn about missing case */ -
517 - } -
518 - if (!msg) -
519 - elog(ERROR, "unrecognized object type: %d", (int) objtype); -
520 - -
521 - if (!args) -
522 - ereport(NOTICE, (errmsg(msg, name))); -
523 - else -
524 - ereport(NOTICE, (errmsg(msg, name, args))); -
525 - } -