|
39 | 39 | * POST_DATA objects must sort after DO_POST_DATA_BOUNDARY, and DATA objects |
40 | 40 | * must sort between them. |
41 | 41 | */ |
| 42 | + |
| 43 | +/* This enum lists the priority levels in order */ |
| 44 | +enumdbObjectTypePriorities |
| 45 | +{ |
| 46 | +PRIO_NAMESPACE=1, |
| 47 | +PRIO_PROCLANG, |
| 48 | +PRIO_COLLATION, |
| 49 | +PRIO_TRANSFORM, |
| 50 | +PRIO_EXTENSION, |
| 51 | +PRIO_TYPE,/* used for DO_TYPE and DO_SHELL_TYPE */ |
| 52 | +PRIO_FUNC, |
| 53 | +PRIO_AGG, |
| 54 | +PRIO_ACCESS_METHOD, |
| 55 | +PRIO_OPERATOR, |
| 56 | +PRIO_OPFAMILY,/* used for DO_OPFAMILY and DO_OPCLASS */ |
| 57 | +PRIO_CAST, |
| 58 | +PRIO_CONVERSION, |
| 59 | +PRIO_TSPARSER, |
| 60 | +PRIO_TSTEMPLATE, |
| 61 | +PRIO_TSDICT, |
| 62 | +PRIO_TSCONFIG, |
| 63 | +PRIO_FDW, |
| 64 | +PRIO_FOREIGN_SERVER, |
| 65 | +PRIO_TABLE, |
| 66 | +PRIO_DUMMY_TYPE, |
| 67 | +PRIO_ATTRDEF, |
| 68 | +PRIO_BLOB, |
| 69 | +PRIO_PRE_DATA_BOUNDARY,/* boundary! */ |
| 70 | +PRIO_TABLE_DATA, |
| 71 | +PRIO_SEQUENCE_SET, |
| 72 | +PRIO_BLOB_DATA, |
| 73 | +PRIO_POST_DATA_BOUNDARY,/* boundary! */ |
| 74 | +PRIO_CONSTRAINT, |
| 75 | +PRIO_INDEX, |
| 76 | +PRIO_INDEX_ATTACH, |
| 77 | +PRIO_STATSEXT, |
| 78 | +PRIO_RULE, |
| 79 | +PRIO_TRIGGER, |
| 80 | +PRIO_FK_CONSTRAINT, |
| 81 | +PRIO_POLICY, |
| 82 | +PRIO_PUBLICATION, |
| 83 | +PRIO_PUBLICATION_REL, |
| 84 | +PRIO_SUBSCRIPTION, |
| 85 | +PRIO_DEFAULT_ACL,/* done in ACL pass */ |
| 86 | +PRIO_EVENT_TRIGGER,/* must be next to last! */ |
| 87 | +PRIO_REFRESH_MATVIEW/* must be last! */ |
| 88 | +}; |
| 89 | + |
| 90 | +/* This table is indexed by enum DumpableObjectType */ |
42 | 91 | staticconstintdbObjectTypePriority[]= |
43 | 92 | { |
44 | | -1,/* DO_NAMESPACE */ |
45 | | -4,/* DO_EXTENSION */ |
46 | | -5,/* DO_TYPE */ |
47 | | -5,/* DO_SHELL_TYPE */ |
48 | | -6,/* DO_FUNC */ |
49 | | -7,/* DO_AGG */ |
50 | | -8,/* DO_OPERATOR */ |
51 | | -8,/* DO_ACCESS_METHOD */ |
52 | | -9,/* DO_OPCLASS */ |
53 | | -9,/* DO_OPFAMILY */ |
54 | | -3,/* DO_COLLATION */ |
55 | | -11,/* DO_CONVERSION */ |
56 | | -18,/* DO_TABLE */ |
57 | | -20,/* DO_ATTRDEF */ |
58 | | -28,/* DO_INDEX */ |
59 | | -29,/* DO_INDEX_ATTACH */ |
60 | | -30,/* DO_STATSEXT */ |
61 | | -31,/* DO_RULE */ |
62 | | -32,/* DO_TRIGGER */ |
63 | | -27,/* DO_CONSTRAINT */ |
64 | | -33,/* DO_FK_CONSTRAINT */ |
65 | | -2,/* DO_PROCLANG */ |
66 | | -10,/* DO_CAST */ |
67 | | -23,/* DO_TABLE_DATA */ |
68 | | -24,/* DO_SEQUENCE_SET */ |
69 | | -19,/* DO_DUMMY_TYPE */ |
70 | | -12,/* DO_TSPARSER */ |
71 | | -14,/* DO_TSDICT */ |
72 | | -13,/* DO_TSTEMPLATE */ |
73 | | -15,/* DO_TSCONFIG */ |
74 | | -16,/* DO_FDW */ |
75 | | -17,/* DO_FOREIGN_SERVER */ |
76 | | -38,/* DO_DEFAULT_ACL --- done in ACL pass */ |
77 | | -3,/* DO_TRANSFORM */ |
78 | | -21,/* DO_BLOB */ |
79 | | -25,/* DO_BLOB_DATA */ |
80 | | -22,/* DO_PRE_DATA_BOUNDARY */ |
81 | | -26,/* DO_POST_DATA_BOUNDARY */ |
82 | | -39,/* DO_EVENT_TRIGGER --- next to last! */ |
83 | | -40,/* DO_REFRESH_MATVIEW --- last! */ |
84 | | -34,/* DO_POLICY */ |
85 | | -35,/* DO_PUBLICATION */ |
86 | | -36,/* DO_PUBLICATION_REL */ |
87 | | -37/* DO_SUBSCRIPTION */ |
| 93 | +PRIO_NAMESPACE,/* DO_NAMESPACE */ |
| 94 | +PRIO_EXTENSION,/* DO_EXTENSION */ |
| 95 | +PRIO_TYPE,/* DO_TYPE */ |
| 96 | +PRIO_TYPE,/* DO_SHELL_TYPE */ |
| 97 | +PRIO_FUNC,/* DO_FUNC */ |
| 98 | +PRIO_AGG,/* DO_AGG */ |
| 99 | +PRIO_OPERATOR,/* DO_OPERATOR */ |
| 100 | +PRIO_ACCESS_METHOD,/* DO_ACCESS_METHOD */ |
| 101 | +PRIO_OPFAMILY,/* DO_OPCLASS */ |
| 102 | +PRIO_OPFAMILY,/* DO_OPFAMILY */ |
| 103 | +PRIO_COLLATION,/* DO_COLLATION */ |
| 104 | +PRIO_CONVERSION,/* DO_CONVERSION */ |
| 105 | +PRIO_TABLE,/* DO_TABLE */ |
| 106 | +PRIO_ATTRDEF,/* DO_ATTRDEF */ |
| 107 | +PRIO_INDEX,/* DO_INDEX */ |
| 108 | +PRIO_INDEX_ATTACH,/* DO_INDEX_ATTACH */ |
| 109 | +PRIO_STATSEXT,/* DO_STATSEXT */ |
| 110 | +PRIO_RULE,/* DO_RULE */ |
| 111 | +PRIO_TRIGGER,/* DO_TRIGGER */ |
| 112 | +PRIO_CONSTRAINT,/* DO_CONSTRAINT */ |
| 113 | +PRIO_FK_CONSTRAINT,/* DO_FK_CONSTRAINT */ |
| 114 | +PRIO_PROCLANG,/* DO_PROCLANG */ |
| 115 | +PRIO_CAST,/* DO_CAST */ |
| 116 | +PRIO_TABLE_DATA,/* DO_TABLE_DATA */ |
| 117 | +PRIO_SEQUENCE_SET,/* DO_SEQUENCE_SET */ |
| 118 | +PRIO_DUMMY_TYPE,/* DO_DUMMY_TYPE */ |
| 119 | +PRIO_TSPARSER,/* DO_TSPARSER */ |
| 120 | +PRIO_TSDICT,/* DO_TSDICT */ |
| 121 | +PRIO_TSTEMPLATE,/* DO_TSTEMPLATE */ |
| 122 | +PRIO_TSCONFIG,/* DO_TSCONFIG */ |
| 123 | +PRIO_FDW,/* DO_FDW */ |
| 124 | +PRIO_FOREIGN_SERVER,/* DO_FOREIGN_SERVER */ |
| 125 | +PRIO_DEFAULT_ACL,/* DO_DEFAULT_ACL */ |
| 126 | +PRIO_TRANSFORM,/* DO_TRANSFORM */ |
| 127 | +PRIO_BLOB,/* DO_BLOB */ |
| 128 | +PRIO_BLOB_DATA,/* DO_BLOB_DATA */ |
| 129 | +PRIO_PRE_DATA_BOUNDARY,/* DO_PRE_DATA_BOUNDARY */ |
| 130 | +PRIO_POST_DATA_BOUNDARY,/* DO_POST_DATA_BOUNDARY */ |
| 131 | +PRIO_EVENT_TRIGGER,/* DO_EVENT_TRIGGER */ |
| 132 | +PRIO_REFRESH_MATVIEW,/* DO_REFRESH_MATVIEW */ |
| 133 | +PRIO_POLICY,/* DO_POLICY */ |
| 134 | +PRIO_PUBLICATION,/* DO_PUBLICATION */ |
| 135 | +PRIO_PUBLICATION_REL,/* DO_PUBLICATION_REL */ |
| 136 | +PRIO_SUBSCRIPTION/* DO_SUBSCRIPTION */ |
88 | 137 | }; |
89 | 138 |
|
90 | 139 | StaticAssertDecl(lengthof(dbObjectTypePriority)== (DO_SUBSCRIPTION+1), |
|