* quote_object_name * * It tries to quote the supplied identifiers */
| 649 | * It tries to quote the supplied identifiers |
| 650 | */ |
| 651 | static char * |
| 652 | quote_object_name(const char *src1, const char *src2, |
| 653 | const char *src3, const char *src4) |
| 654 | { |
| 655 | StringInfoData result; |
| 656 | const char *temp; |
| 657 | |
| 658 | initStringInfo(&result); |
| 659 | |
| 660 | if (src1) |
| 661 | { |
| 662 | temp = quote_identifier(src1); |
| 663 | appendStringInfoString(&result, temp); |
| 664 | if (src1 != temp) |
| 665 | pfree((void *) temp); |
| 666 | } |
| 667 | if (src2) |
| 668 | { |
| 669 | temp = quote_identifier(src2); |
| 670 | appendStringInfo(&result, ".%s", temp); |
| 671 | if (src2 != temp) |
| 672 | pfree((void *) temp); |
| 673 | } |
| 674 | if (src3) |
| 675 | { |
| 676 | temp = quote_identifier(src3); |
| 677 | appendStringInfo(&result, ".%s", temp); |
| 678 | if (src3 != temp) |
| 679 | pfree((void *) temp); |
| 680 | } |
| 681 | if (src4) |
| 682 | { |
| 683 | temp = quote_identifier(src4); |
| 684 | appendStringInfo(&result, ".%s", temp); |
| 685 | if (src4 != temp) |
| 686 | pfree((void *) temp); |
| 687 | } |
| 688 | return result.data; |
| 689 | } |
| 690 | |
| 691 | /* |
| 692 | * exec_object_restorecon |
no test coverage detected