1use std::{
5 fmt,
6 fmt::{Display, Formatter},
7 ops::Deref,
8};
9
10use serde::{Deserialize, Deserializer, Serialize, Serializer, de::Visitor};
11
12#[repr(transparent)]
13#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
14pub struct ColumnId(pub u64);
15
16impl ColumnId {
17 pub const REQUEST_HISTORY_TIMESTAMP: ColumnId = ColumnId(1);
18 pub const REQUEST_HISTORY_OPERATION: ColumnId = ColumnId(2);
19 pub const REQUEST_HISTORY_FINGERPRINT: ColumnId = ColumnId(3);
20 pub const REQUEST_HISTORY_TOTAL_DURATION: ColumnId = ColumnId(4);
21 pub const REQUEST_HISTORY_COMPUTE_DURATION: ColumnId = ColumnId(5);
22 pub const REQUEST_HISTORY_SUCCESS: ColumnId = ColumnId(6);
23 pub const REQUEST_HISTORY_STATEMENT_COUNT: ColumnId = ColumnId(7);
24 pub const REQUEST_HISTORY_NORMALIZED_RQL: ColumnId = ColumnId(8);
25
26 pub const STATEMENT_STATS_SNAPSHOT_TIMESTAMP: ColumnId = ColumnId(9);
27 pub const STATEMENT_STATS_FINGERPRINT: ColumnId = ColumnId(10);
28 pub const STATEMENT_STATS_NORMALIZED_RQL: ColumnId = ColumnId(11);
29 pub const STATEMENT_STATS_CALLS: ColumnId = ColumnId(12);
30 pub const STATEMENT_STATS_TOTAL_DURATION: ColumnId = ColumnId(13);
31 pub const STATEMENT_STATS_MEAN_DURATION: ColumnId = ColumnId(14);
32 pub const STATEMENT_STATS_MAX_DURATION: ColumnId = ColumnId(15);
33 pub const STATEMENT_STATS_MIN_DURATION: ColumnId = ColumnId(16);
34 pub const STATEMENT_STATS_TOTAL_ROWS: ColumnId = ColumnId(17);
35 pub const STATEMENT_STATS_ERRORS: ColumnId = ColumnId(18);
36
37 pub const PROFILER_QUERY_SNAPSHOTS_TS: ColumnId = ColumnId(1024);
38 pub const PROFILER_QUERY_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1025);
39 pub const PROFILER_QUERY_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1026);
40 pub const PROFILER_QUERY_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1027);
41 pub const PROFILER_QUERY_SNAPSHOTS_CALLS: ColumnId = ColumnId(1028);
42 pub const PROFILER_QUERY_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1029);
43 pub const PROFILER_QUERY_SNAPSHOTS_MIN: ColumnId = ColumnId(1030);
44 pub const PROFILER_QUERY_SNAPSHOTS_MAX: ColumnId = ColumnId(1031);
45 pub const PROFILER_QUERY_SNAPSHOTS_P50: ColumnId = ColumnId(1032);
46 pub const PROFILER_QUERY_SNAPSHOTS_P60: ColumnId = ColumnId(1033);
47 pub const PROFILER_QUERY_SNAPSHOTS_P70: ColumnId = ColumnId(1034);
48 pub const PROFILER_QUERY_SNAPSHOTS_P75: ColumnId = ColumnId(1035);
49 pub const PROFILER_QUERY_SNAPSHOTS_P80: ColumnId = ColumnId(1036);
50 pub const PROFILER_QUERY_SNAPSHOTS_P85: ColumnId = ColumnId(1037);
51 pub const PROFILER_QUERY_SNAPSHOTS_P90: ColumnId = ColumnId(1038);
52 pub const PROFILER_QUERY_SNAPSHOTS_P95: ColumnId = ColumnId(1039);
53 pub const PROFILER_QUERY_SNAPSHOTS_P98: ColumnId = ColumnId(1040);
54 pub const PROFILER_QUERY_SNAPSHOTS_P99: ColumnId = ColumnId(1041);
55 pub const PROFILER_QUERY_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1042);
56 pub const PROFILER_QUERY_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1043);
57 pub const PROFILER_QUERY_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1044);
58 pub const PROFILER_QUERY_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1045);
59 pub const PROFILER_TXN_SNAPSHOTS_TS: ColumnId = ColumnId(1046);
60 pub const PROFILER_TXN_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1047);
61 pub const PROFILER_TXN_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1048);
62 pub const PROFILER_TXN_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1049);
63 pub const PROFILER_TXN_SNAPSHOTS_CALLS: ColumnId = ColumnId(1050);
64 pub const PROFILER_TXN_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1051);
65 pub const PROFILER_TXN_SNAPSHOTS_MIN: ColumnId = ColumnId(1052);
66 pub const PROFILER_TXN_SNAPSHOTS_MAX: ColumnId = ColumnId(1053);
67 pub const PROFILER_TXN_SNAPSHOTS_P50: ColumnId = ColumnId(1054);
68 pub const PROFILER_TXN_SNAPSHOTS_P60: ColumnId = ColumnId(1055);
69 pub const PROFILER_TXN_SNAPSHOTS_P70: ColumnId = ColumnId(1056);
70 pub const PROFILER_TXN_SNAPSHOTS_P75: ColumnId = ColumnId(1057);
71 pub const PROFILER_TXN_SNAPSHOTS_P80: ColumnId = ColumnId(1058);
72 pub const PROFILER_TXN_SNAPSHOTS_P85: ColumnId = ColumnId(1059);
73 pub const PROFILER_TXN_SNAPSHOTS_P90: ColumnId = ColumnId(1060);
74 pub const PROFILER_TXN_SNAPSHOTS_P95: ColumnId = ColumnId(1061);
75 pub const PROFILER_TXN_SNAPSHOTS_P98: ColumnId = ColumnId(1062);
76 pub const PROFILER_TXN_SNAPSHOTS_P99: ColumnId = ColumnId(1063);
77 pub const PROFILER_TXN_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1064);
78 pub const PROFILER_TXN_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1065);
79 pub const PROFILER_TXN_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1066);
80 pub const PROFILER_TXN_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1067);
81 pub const PROFILER_STORAGE_SNAPSHOTS_TS: ColumnId = ColumnId(1068);
82 pub const PROFILER_STORAGE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1069);
83 pub const PROFILER_STORAGE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1070);
84 pub const PROFILER_STORAGE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1071);
85 pub const PROFILER_STORAGE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1072);
86 pub const PROFILER_STORAGE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1073);
87 pub const PROFILER_STORAGE_SNAPSHOTS_MIN: ColumnId = ColumnId(1074);
88 pub const PROFILER_STORAGE_SNAPSHOTS_MAX: ColumnId = ColumnId(1075);
89 pub const PROFILER_STORAGE_SNAPSHOTS_P50: ColumnId = ColumnId(1076);
90 pub const PROFILER_STORAGE_SNAPSHOTS_P60: ColumnId = ColumnId(1077);
91 pub const PROFILER_STORAGE_SNAPSHOTS_P70: ColumnId = ColumnId(1078);
92 pub const PROFILER_STORAGE_SNAPSHOTS_P75: ColumnId = ColumnId(1079);
93 pub const PROFILER_STORAGE_SNAPSHOTS_P80: ColumnId = ColumnId(1080);
94 pub const PROFILER_STORAGE_SNAPSHOTS_P85: ColumnId = ColumnId(1081);
95 pub const PROFILER_STORAGE_SNAPSHOTS_P90: ColumnId = ColumnId(1082);
96 pub const PROFILER_STORAGE_SNAPSHOTS_P95: ColumnId = ColumnId(1083);
97 pub const PROFILER_STORAGE_SNAPSHOTS_P98: ColumnId = ColumnId(1084);
98 pub const PROFILER_STORAGE_SNAPSHOTS_P99: ColumnId = ColumnId(1085);
99 pub const PROFILER_STORAGE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1086);
100 pub const PROFILER_STORAGE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1087);
101 pub const PROFILER_STORAGE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1088);
102 pub const PROFILER_STORAGE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1089);
103 pub const PROFILER_PLAN_SNAPSHOTS_TS: ColumnId = ColumnId(1090);
104 pub const PROFILER_PLAN_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1091);
105 pub const PROFILER_PLAN_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1092);
106 pub const PROFILER_PLAN_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1093);
107 pub const PROFILER_PLAN_SNAPSHOTS_CALLS: ColumnId = ColumnId(1094);
108 pub const PROFILER_PLAN_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1095);
109 pub const PROFILER_PLAN_SNAPSHOTS_MIN: ColumnId = ColumnId(1096);
110 pub const PROFILER_PLAN_SNAPSHOTS_MAX: ColumnId = ColumnId(1097);
111 pub const PROFILER_PLAN_SNAPSHOTS_P50: ColumnId = ColumnId(1098);
112 pub const PROFILER_PLAN_SNAPSHOTS_P60: ColumnId = ColumnId(1099);
113 pub const PROFILER_PLAN_SNAPSHOTS_P70: ColumnId = ColumnId(1100);
114 pub const PROFILER_PLAN_SNAPSHOTS_P75: ColumnId = ColumnId(1101);
115 pub const PROFILER_PLAN_SNAPSHOTS_P80: ColumnId = ColumnId(1102);
116 pub const PROFILER_PLAN_SNAPSHOTS_P85: ColumnId = ColumnId(1103);
117 pub const PROFILER_PLAN_SNAPSHOTS_P90: ColumnId = ColumnId(1104);
118 pub const PROFILER_PLAN_SNAPSHOTS_P95: ColumnId = ColumnId(1105);
119 pub const PROFILER_PLAN_SNAPSHOTS_P98: ColumnId = ColumnId(1106);
120 pub const PROFILER_PLAN_SNAPSHOTS_P99: ColumnId = ColumnId(1107);
121 pub const PROFILER_PLAN_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1108);
122 pub const PROFILER_PLAN_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1109);
123 pub const PROFILER_PLAN_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1110);
124 pub const PROFILER_PLAN_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1111);
125 pub const PROFILER_CDC_SNAPSHOTS_TS: ColumnId = ColumnId(1112);
126 pub const PROFILER_CDC_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1113);
127 pub const PROFILER_CDC_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1114);
128 pub const PROFILER_CDC_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1115);
129 pub const PROFILER_CDC_SNAPSHOTS_CALLS: ColumnId = ColumnId(1116);
130 pub const PROFILER_CDC_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1117);
131 pub const PROFILER_CDC_SNAPSHOTS_MIN: ColumnId = ColumnId(1118);
132 pub const PROFILER_CDC_SNAPSHOTS_MAX: ColumnId = ColumnId(1119);
133 pub const PROFILER_CDC_SNAPSHOTS_P50: ColumnId = ColumnId(1120);
134 pub const PROFILER_CDC_SNAPSHOTS_P60: ColumnId = ColumnId(1121);
135 pub const PROFILER_CDC_SNAPSHOTS_P70: ColumnId = ColumnId(1122);
136 pub const PROFILER_CDC_SNAPSHOTS_P75: ColumnId = ColumnId(1123);
137 pub const PROFILER_CDC_SNAPSHOTS_P80: ColumnId = ColumnId(1124);
138 pub const PROFILER_CDC_SNAPSHOTS_P85: ColumnId = ColumnId(1125);
139 pub const PROFILER_CDC_SNAPSHOTS_P90: ColumnId = ColumnId(1126);
140 pub const PROFILER_CDC_SNAPSHOTS_P95: ColumnId = ColumnId(1127);
141 pub const PROFILER_CDC_SNAPSHOTS_P98: ColumnId = ColumnId(1128);
142 pub const PROFILER_CDC_SNAPSHOTS_P99: ColumnId = ColumnId(1129);
143 pub const PROFILER_CDC_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1130);
144 pub const PROFILER_CDC_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1131);
145 pub const PROFILER_CDC_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1132);
146 pub const PROFILER_CDC_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1133);
147 pub const PROFILER_FLOW_SNAPSHOTS_TS: ColumnId = ColumnId(1134);
148 pub const PROFILER_FLOW_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1135);
149 pub const PROFILER_FLOW_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1136);
150 pub const PROFILER_FLOW_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1137);
151 pub const PROFILER_FLOW_SNAPSHOTS_CALLS: ColumnId = ColumnId(1138);
152 pub const PROFILER_FLOW_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1139);
153 pub const PROFILER_FLOW_SNAPSHOTS_MIN: ColumnId = ColumnId(1140);
154 pub const PROFILER_FLOW_SNAPSHOTS_MAX: ColumnId = ColumnId(1141);
155 pub const PROFILER_FLOW_SNAPSHOTS_P50: ColumnId = ColumnId(1142);
156 pub const PROFILER_FLOW_SNAPSHOTS_P60: ColumnId = ColumnId(1143);
157 pub const PROFILER_FLOW_SNAPSHOTS_P70: ColumnId = ColumnId(1144);
158 pub const PROFILER_FLOW_SNAPSHOTS_P75: ColumnId = ColumnId(1145);
159 pub const PROFILER_FLOW_SNAPSHOTS_P80: ColumnId = ColumnId(1146);
160 pub const PROFILER_FLOW_SNAPSHOTS_P85: ColumnId = ColumnId(1147);
161 pub const PROFILER_FLOW_SNAPSHOTS_P90: ColumnId = ColumnId(1148);
162 pub const PROFILER_FLOW_SNAPSHOTS_P95: ColumnId = ColumnId(1149);
163 pub const PROFILER_FLOW_SNAPSHOTS_P98: ColumnId = ColumnId(1150);
164 pub const PROFILER_FLOW_SNAPSHOTS_P99: ColumnId = ColumnId(1151);
165 pub const PROFILER_FLOW_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1152);
166 pub const PROFILER_FLOW_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1153);
167 pub const PROFILER_FLOW_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1154);
168 pub const PROFILER_FLOW_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1155);
169 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_TS: ColumnId = ColumnId(1156);
170 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1157);
171 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1158);
172 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1159);
173 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_CALLS: ColumnId = ColumnId(1160);
174 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1161);
175 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_MIN: ColumnId = ColumnId(1162);
176 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_MAX: ColumnId = ColumnId(1163);
177 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P50: ColumnId = ColumnId(1164);
178 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P60: ColumnId = ColumnId(1165);
179 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P70: ColumnId = ColumnId(1166);
180 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P75: ColumnId = ColumnId(1167);
181 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P80: ColumnId = ColumnId(1168);
182 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P85: ColumnId = ColumnId(1169);
183 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P90: ColumnId = ColumnId(1170);
184 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P95: ColumnId = ColumnId(1171);
185 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P98: ColumnId = ColumnId(1172);
186 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_P99: ColumnId = ColumnId(1173);
187 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1174);
188 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1175);
189 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1176);
190 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1177);
191 pub const PROFILER_SERVER_SNAPSHOTS_TS: ColumnId = ColumnId(1178);
192 pub const PROFILER_SERVER_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1179);
193 pub const PROFILER_SERVER_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1180);
194 pub const PROFILER_SERVER_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1181);
195 pub const PROFILER_SERVER_SNAPSHOTS_CALLS: ColumnId = ColumnId(1182);
196 pub const PROFILER_SERVER_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1183);
197 pub const PROFILER_SERVER_SNAPSHOTS_MIN: ColumnId = ColumnId(1184);
198 pub const PROFILER_SERVER_SNAPSHOTS_MAX: ColumnId = ColumnId(1185);
199 pub const PROFILER_SERVER_SNAPSHOTS_P50: ColumnId = ColumnId(1186);
200 pub const PROFILER_SERVER_SNAPSHOTS_P60: ColumnId = ColumnId(1187);
201 pub const PROFILER_SERVER_SNAPSHOTS_P70: ColumnId = ColumnId(1188);
202 pub const PROFILER_SERVER_SNAPSHOTS_P75: ColumnId = ColumnId(1189);
203 pub const PROFILER_SERVER_SNAPSHOTS_P80: ColumnId = ColumnId(1190);
204 pub const PROFILER_SERVER_SNAPSHOTS_P85: ColumnId = ColumnId(1191);
205 pub const PROFILER_SERVER_SNAPSHOTS_P90: ColumnId = ColumnId(1192);
206 pub const PROFILER_SERVER_SNAPSHOTS_P95: ColumnId = ColumnId(1193);
207 pub const PROFILER_SERVER_SNAPSHOTS_P98: ColumnId = ColumnId(1194);
208 pub const PROFILER_SERVER_SNAPSHOTS_P99: ColumnId = ColumnId(1195);
209 pub const PROFILER_SERVER_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1196);
210 pub const PROFILER_SERVER_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1197);
211 pub const PROFILER_SERVER_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1198);
212 pub const PROFILER_SERVER_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1199);
213 pub const PROFILER_WIRE_SNAPSHOTS_TS: ColumnId = ColumnId(1200);
214 pub const PROFILER_WIRE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1201);
215 pub const PROFILER_WIRE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1202);
216 pub const PROFILER_WIRE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1203);
217 pub const PROFILER_WIRE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1204);
218 pub const PROFILER_WIRE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1205);
219 pub const PROFILER_WIRE_SNAPSHOTS_MIN: ColumnId = ColumnId(1206);
220 pub const PROFILER_WIRE_SNAPSHOTS_MAX: ColumnId = ColumnId(1207);
221 pub const PROFILER_WIRE_SNAPSHOTS_P50: ColumnId = ColumnId(1208);
222 pub const PROFILER_WIRE_SNAPSHOTS_P60: ColumnId = ColumnId(1209);
223 pub const PROFILER_WIRE_SNAPSHOTS_P70: ColumnId = ColumnId(1210);
224 pub const PROFILER_WIRE_SNAPSHOTS_P75: ColumnId = ColumnId(1211);
225 pub const PROFILER_WIRE_SNAPSHOTS_P80: ColumnId = ColumnId(1212);
226 pub const PROFILER_WIRE_SNAPSHOTS_P85: ColumnId = ColumnId(1213);
227 pub const PROFILER_WIRE_SNAPSHOTS_P90: ColumnId = ColumnId(1214);
228 pub const PROFILER_WIRE_SNAPSHOTS_P95: ColumnId = ColumnId(1215);
229 pub const PROFILER_WIRE_SNAPSHOTS_P98: ColumnId = ColumnId(1216);
230 pub const PROFILER_WIRE_SNAPSHOTS_P99: ColumnId = ColumnId(1217);
231 pub const PROFILER_WIRE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1218);
232 pub const PROFILER_WIRE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1219);
233 pub const PROFILER_WIRE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1220);
234 pub const PROFILER_WIRE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1221);
235 pub const PROFILER_AUTH_SNAPSHOTS_TS: ColumnId = ColumnId(1222);
236 pub const PROFILER_AUTH_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1223);
237 pub const PROFILER_AUTH_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1224);
238 pub const PROFILER_AUTH_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1225);
239 pub const PROFILER_AUTH_SNAPSHOTS_CALLS: ColumnId = ColumnId(1226);
240 pub const PROFILER_AUTH_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1227);
241 pub const PROFILER_AUTH_SNAPSHOTS_MIN: ColumnId = ColumnId(1228);
242 pub const PROFILER_AUTH_SNAPSHOTS_MAX: ColumnId = ColumnId(1229);
243 pub const PROFILER_AUTH_SNAPSHOTS_P50: ColumnId = ColumnId(1230);
244 pub const PROFILER_AUTH_SNAPSHOTS_P60: ColumnId = ColumnId(1231);
245 pub const PROFILER_AUTH_SNAPSHOTS_P70: ColumnId = ColumnId(1232);
246 pub const PROFILER_AUTH_SNAPSHOTS_P75: ColumnId = ColumnId(1233);
247 pub const PROFILER_AUTH_SNAPSHOTS_P80: ColumnId = ColumnId(1234);
248 pub const PROFILER_AUTH_SNAPSHOTS_P85: ColumnId = ColumnId(1235);
249 pub const PROFILER_AUTH_SNAPSHOTS_P90: ColumnId = ColumnId(1236);
250 pub const PROFILER_AUTH_SNAPSHOTS_P95: ColumnId = ColumnId(1237);
251 pub const PROFILER_AUTH_SNAPSHOTS_P98: ColumnId = ColumnId(1238);
252 pub const PROFILER_AUTH_SNAPSHOTS_P99: ColumnId = ColumnId(1239);
253 pub const PROFILER_AUTH_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1240);
254 pub const PROFILER_AUTH_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1241);
255 pub const PROFILER_AUTH_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1242);
256 pub const PROFILER_AUTH_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1243);
257 pub const PROFILER_CATALOG_SNAPSHOTS_TS: ColumnId = ColumnId(1244);
258 pub const PROFILER_CATALOG_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1245);
259 pub const PROFILER_CATALOG_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1246);
260 pub const PROFILER_CATALOG_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1247);
261 pub const PROFILER_CATALOG_SNAPSHOTS_CALLS: ColumnId = ColumnId(1248);
262 pub const PROFILER_CATALOG_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1249);
263 pub const PROFILER_CATALOG_SNAPSHOTS_MIN: ColumnId = ColumnId(1250);
264 pub const PROFILER_CATALOG_SNAPSHOTS_MAX: ColumnId = ColumnId(1251);
265 pub const PROFILER_CATALOG_SNAPSHOTS_P50: ColumnId = ColumnId(1252);
266 pub const PROFILER_CATALOG_SNAPSHOTS_P60: ColumnId = ColumnId(1253);
267 pub const PROFILER_CATALOG_SNAPSHOTS_P70: ColumnId = ColumnId(1254);
268 pub const PROFILER_CATALOG_SNAPSHOTS_P75: ColumnId = ColumnId(1255);
269 pub const PROFILER_CATALOG_SNAPSHOTS_P80: ColumnId = ColumnId(1256);
270 pub const PROFILER_CATALOG_SNAPSHOTS_P85: ColumnId = ColumnId(1257);
271 pub const PROFILER_CATALOG_SNAPSHOTS_P90: ColumnId = ColumnId(1258);
272 pub const PROFILER_CATALOG_SNAPSHOTS_P95: ColumnId = ColumnId(1259);
273 pub const PROFILER_CATALOG_SNAPSHOTS_P98: ColumnId = ColumnId(1260);
274 pub const PROFILER_CATALOG_SNAPSHOTS_P99: ColumnId = ColumnId(1261);
275 pub const PROFILER_CATALOG_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1262);
276 pub const PROFILER_CATALOG_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1263);
277 pub const PROFILER_CATALOG_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1264);
278 pub const PROFILER_CATALOG_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1265);
279 pub const PROFILER_ENGINE_SNAPSHOTS_TS: ColumnId = ColumnId(1266);
280 pub const PROFILER_ENGINE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1267);
281 pub const PROFILER_ENGINE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1268);
282 pub const PROFILER_ENGINE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1269);
283 pub const PROFILER_ENGINE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1270);
284 pub const PROFILER_ENGINE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1271);
285 pub const PROFILER_ENGINE_SNAPSHOTS_MIN: ColumnId = ColumnId(1272);
286 pub const PROFILER_ENGINE_SNAPSHOTS_MAX: ColumnId = ColumnId(1273);
287 pub const PROFILER_ENGINE_SNAPSHOTS_P50: ColumnId = ColumnId(1274);
288 pub const PROFILER_ENGINE_SNAPSHOTS_P60: ColumnId = ColumnId(1275);
289 pub const PROFILER_ENGINE_SNAPSHOTS_P70: ColumnId = ColumnId(1276);
290 pub const PROFILER_ENGINE_SNAPSHOTS_P75: ColumnId = ColumnId(1277);
291 pub const PROFILER_ENGINE_SNAPSHOTS_P80: ColumnId = ColumnId(1278);
292 pub const PROFILER_ENGINE_SNAPSHOTS_P85: ColumnId = ColumnId(1279);
293 pub const PROFILER_ENGINE_SNAPSHOTS_P90: ColumnId = ColumnId(1280);
294 pub const PROFILER_ENGINE_SNAPSHOTS_P95: ColumnId = ColumnId(1281);
295 pub const PROFILER_ENGINE_SNAPSHOTS_P98: ColumnId = ColumnId(1282);
296 pub const PROFILER_ENGINE_SNAPSHOTS_P99: ColumnId = ColumnId(1283);
297 pub const PROFILER_ENGINE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1284);
298 pub const PROFILER_ENGINE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1285);
299 pub const PROFILER_ENGINE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1286);
300 pub const PROFILER_ENGINE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1287);
301 pub const PROFILER_MUTATE_SNAPSHOTS_TS: ColumnId = ColumnId(1288);
302 pub const PROFILER_MUTATE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1289);
303 pub const PROFILER_MUTATE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1290);
304 pub const PROFILER_MUTATE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1291);
305 pub const PROFILER_MUTATE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1292);
306 pub const PROFILER_MUTATE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1293);
307 pub const PROFILER_MUTATE_SNAPSHOTS_MIN: ColumnId = ColumnId(1294);
308 pub const PROFILER_MUTATE_SNAPSHOTS_MAX: ColumnId = ColumnId(1295);
309 pub const PROFILER_MUTATE_SNAPSHOTS_P50: ColumnId = ColumnId(1296);
310 pub const PROFILER_MUTATE_SNAPSHOTS_P60: ColumnId = ColumnId(1297);
311 pub const PROFILER_MUTATE_SNAPSHOTS_P70: ColumnId = ColumnId(1298);
312 pub const PROFILER_MUTATE_SNAPSHOTS_P75: ColumnId = ColumnId(1299);
313 pub const PROFILER_MUTATE_SNAPSHOTS_P80: ColumnId = ColumnId(1300);
314 pub const PROFILER_MUTATE_SNAPSHOTS_P85: ColumnId = ColumnId(1301);
315 pub const PROFILER_MUTATE_SNAPSHOTS_P90: ColumnId = ColumnId(1302);
316 pub const PROFILER_MUTATE_SNAPSHOTS_P95: ColumnId = ColumnId(1303);
317 pub const PROFILER_MUTATE_SNAPSHOTS_P98: ColumnId = ColumnId(1304);
318 pub const PROFILER_MUTATE_SNAPSHOTS_P99: ColumnId = ColumnId(1305);
319 pub const PROFILER_MUTATE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1306);
320 pub const PROFILER_MUTATE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1307);
321 pub const PROFILER_MUTATE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1308);
322 pub const PROFILER_MUTATE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1309);
323 pub const PROFILER_TRANSPORT_SNAPSHOTS_TS: ColumnId = ColumnId(1310);
324 pub const PROFILER_TRANSPORT_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1311);
325 pub const PROFILER_TRANSPORT_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1312);
326 pub const PROFILER_TRANSPORT_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1313);
327 pub const PROFILER_TRANSPORT_SNAPSHOTS_CALLS: ColumnId = ColumnId(1314);
328 pub const PROFILER_TRANSPORT_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1315);
329 pub const PROFILER_TRANSPORT_SNAPSHOTS_MIN: ColumnId = ColumnId(1316);
330 pub const PROFILER_TRANSPORT_SNAPSHOTS_MAX: ColumnId = ColumnId(1317);
331 pub const PROFILER_TRANSPORT_SNAPSHOTS_P50: ColumnId = ColumnId(1318);
332 pub const PROFILER_TRANSPORT_SNAPSHOTS_P60: ColumnId = ColumnId(1319);
333 pub const PROFILER_TRANSPORT_SNAPSHOTS_P70: ColumnId = ColumnId(1320);
334 pub const PROFILER_TRANSPORT_SNAPSHOTS_P75: ColumnId = ColumnId(1321);
335 pub const PROFILER_TRANSPORT_SNAPSHOTS_P80: ColumnId = ColumnId(1322);
336 pub const PROFILER_TRANSPORT_SNAPSHOTS_P85: ColumnId = ColumnId(1323);
337 pub const PROFILER_TRANSPORT_SNAPSHOTS_P90: ColumnId = ColumnId(1324);
338 pub const PROFILER_TRANSPORT_SNAPSHOTS_P95: ColumnId = ColumnId(1325);
339 pub const PROFILER_TRANSPORT_SNAPSHOTS_P98: ColumnId = ColumnId(1326);
340 pub const PROFILER_TRANSPORT_SNAPSHOTS_P99: ColumnId = ColumnId(1327);
341 pub const PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1328);
342 pub const PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1329);
343 pub const PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1330);
344 pub const PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1331);
345 pub const PROFILER_TASK_SNAPSHOTS_TS: ColumnId = ColumnId(1332);
346 pub const PROFILER_TASK_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1333);
347 pub const PROFILER_TASK_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1334);
348 pub const PROFILER_TASK_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1335);
349 pub const PROFILER_TASK_SNAPSHOTS_CALLS: ColumnId = ColumnId(1336);
350 pub const PROFILER_TASK_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1337);
351 pub const PROFILER_TASK_SNAPSHOTS_MIN: ColumnId = ColumnId(1338);
352 pub const PROFILER_TASK_SNAPSHOTS_MAX: ColumnId = ColumnId(1339);
353 pub const PROFILER_TASK_SNAPSHOTS_P50: ColumnId = ColumnId(1340);
354 pub const PROFILER_TASK_SNAPSHOTS_P60: ColumnId = ColumnId(1341);
355 pub const PROFILER_TASK_SNAPSHOTS_P70: ColumnId = ColumnId(1342);
356 pub const PROFILER_TASK_SNAPSHOTS_P75: ColumnId = ColumnId(1343);
357 pub const PROFILER_TASK_SNAPSHOTS_P80: ColumnId = ColumnId(1344);
358 pub const PROFILER_TASK_SNAPSHOTS_P85: ColumnId = ColumnId(1345);
359 pub const PROFILER_TASK_SNAPSHOTS_P90: ColumnId = ColumnId(1346);
360 pub const PROFILER_TASK_SNAPSHOTS_P95: ColumnId = ColumnId(1347);
361 pub const PROFILER_TASK_SNAPSHOTS_P98: ColumnId = ColumnId(1348);
362 pub const PROFILER_TASK_SNAPSHOTS_P99: ColumnId = ColumnId(1349);
363 pub const PROFILER_TASK_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1350);
364 pub const PROFILER_TASK_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1351);
365 pub const PROFILER_TASK_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1352);
366 pub const PROFILER_TASK_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1353);
367 pub const PROFILER_POLICY_SNAPSHOTS_TS: ColumnId = ColumnId(1354);
368 pub const PROFILER_POLICY_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1355);
369 pub const PROFILER_POLICY_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1356);
370 pub const PROFILER_POLICY_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1357);
371 pub const PROFILER_POLICY_SNAPSHOTS_CALLS: ColumnId = ColumnId(1358);
372 pub const PROFILER_POLICY_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1359);
373 pub const PROFILER_POLICY_SNAPSHOTS_MIN: ColumnId = ColumnId(1360);
374 pub const PROFILER_POLICY_SNAPSHOTS_MAX: ColumnId = ColumnId(1361);
375 pub const PROFILER_POLICY_SNAPSHOTS_P50: ColumnId = ColumnId(1362);
376 pub const PROFILER_POLICY_SNAPSHOTS_P60: ColumnId = ColumnId(1363);
377 pub const PROFILER_POLICY_SNAPSHOTS_P70: ColumnId = ColumnId(1364);
378 pub const PROFILER_POLICY_SNAPSHOTS_P75: ColumnId = ColumnId(1365);
379 pub const PROFILER_POLICY_SNAPSHOTS_P80: ColumnId = ColumnId(1366);
380 pub const PROFILER_POLICY_SNAPSHOTS_P85: ColumnId = ColumnId(1367);
381 pub const PROFILER_POLICY_SNAPSHOTS_P90: ColumnId = ColumnId(1368);
382 pub const PROFILER_POLICY_SNAPSHOTS_P95: ColumnId = ColumnId(1369);
383 pub const PROFILER_POLICY_SNAPSHOTS_P98: ColumnId = ColumnId(1370);
384 pub const PROFILER_POLICY_SNAPSHOTS_P99: ColumnId = ColumnId(1371);
385 pub const PROFILER_POLICY_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1372);
386 pub const PROFILER_POLICY_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1373);
387 pub const PROFILER_POLICY_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1374);
388 pub const PROFILER_POLICY_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1375);
389 pub const PROFILER_FFI_SNAPSHOTS_TS: ColumnId = ColumnId(1376);
390 pub const PROFILER_FFI_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1377);
391 pub const PROFILER_FFI_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1378);
392 pub const PROFILER_FFI_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1379);
393 pub const PROFILER_FFI_SNAPSHOTS_CALLS: ColumnId = ColumnId(1380);
394 pub const PROFILER_FFI_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1381);
395 pub const PROFILER_FFI_SNAPSHOTS_MIN: ColumnId = ColumnId(1382);
396 pub const PROFILER_FFI_SNAPSHOTS_MAX: ColumnId = ColumnId(1383);
397 pub const PROFILER_FFI_SNAPSHOTS_P50: ColumnId = ColumnId(1384);
398 pub const PROFILER_FFI_SNAPSHOTS_P60: ColumnId = ColumnId(1385);
399 pub const PROFILER_FFI_SNAPSHOTS_P70: ColumnId = ColumnId(1386);
400 pub const PROFILER_FFI_SNAPSHOTS_P75: ColumnId = ColumnId(1387);
401 pub const PROFILER_FFI_SNAPSHOTS_P80: ColumnId = ColumnId(1388);
402 pub const PROFILER_FFI_SNAPSHOTS_P85: ColumnId = ColumnId(1389);
403 pub const PROFILER_FFI_SNAPSHOTS_P90: ColumnId = ColumnId(1390);
404 pub const PROFILER_FFI_SNAPSHOTS_P95: ColumnId = ColumnId(1391);
405 pub const PROFILER_FFI_SNAPSHOTS_P98: ColumnId = ColumnId(1392);
406 pub const PROFILER_FFI_SNAPSHOTS_P99: ColumnId = ColumnId(1393);
407 pub const PROFILER_FFI_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1394);
408 pub const PROFILER_FFI_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1395);
409 pub const PROFILER_FFI_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1396);
410 pub const PROFILER_FFI_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1397);
411 pub const RUNTIME_MEMORY_SNAPSHOTS_TS: ColumnId = ColumnId(1398);
412 pub const RUNTIME_MEMORY_SNAPSHOTS_SCOPE: ColumnId = ColumnId(1399);
413 pub const RUNTIME_MEMORY_SNAPSHOTS_METRIC: ColumnId = ColumnId(1400);
414 pub const RUNTIME_MEMORY_SNAPSHOTS_VALUE: ColumnId = ColumnId(1401);
415 pub const RUNTIME_MEMORY_SNAPSHOTS_UNIT: ColumnId = ColumnId(1402);
416 pub const RUNTIME_WATERMARKS_SNAPSHOTS_TS: ColumnId = ColumnId(1403);
417 pub const RUNTIME_WATERMARKS_SNAPSHOTS_SCOPE: ColumnId = ColumnId(1404);
418 pub const RUNTIME_WATERMARKS_SNAPSHOTS_METRIC: ColumnId = ColumnId(1405);
419 pub const RUNTIME_WATERMARKS_SNAPSHOTS_VALUE: ColumnId = ColumnId(1406);
420 pub const RUNTIME_WATERMARKS_SNAPSHOTS_UNIT: ColumnId = ColumnId(1407);
421
422 pub const PROFILER_CACHE_SNAPSHOTS_TS: ColumnId = ColumnId(1408);
423 pub const PROFILER_CACHE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1409);
424 pub const PROFILER_CACHE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1410);
425 pub const PROFILER_CACHE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1411);
426 pub const PROFILER_CACHE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1412);
427 pub const PROFILER_CACHE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1413);
428 pub const PROFILER_CACHE_SNAPSHOTS_MIN: ColumnId = ColumnId(1414);
429 pub const PROFILER_CACHE_SNAPSHOTS_MAX: ColumnId = ColumnId(1415);
430 pub const PROFILER_CACHE_SNAPSHOTS_P50: ColumnId = ColumnId(1416);
431 pub const PROFILER_CACHE_SNAPSHOTS_P60: ColumnId = ColumnId(1417);
432 pub const PROFILER_CACHE_SNAPSHOTS_P70: ColumnId = ColumnId(1418);
433 pub const PROFILER_CACHE_SNAPSHOTS_P75: ColumnId = ColumnId(1419);
434 pub const PROFILER_CACHE_SNAPSHOTS_P80: ColumnId = ColumnId(1420);
435 pub const PROFILER_CACHE_SNAPSHOTS_P85: ColumnId = ColumnId(1421);
436 pub const PROFILER_CACHE_SNAPSHOTS_P90: ColumnId = ColumnId(1422);
437 pub const PROFILER_CACHE_SNAPSHOTS_P95: ColumnId = ColumnId(1423);
438 pub const PROFILER_CACHE_SNAPSHOTS_P98: ColumnId = ColumnId(1424);
439 pub const PROFILER_CACHE_SNAPSHOTS_P99: ColumnId = ColumnId(1425);
440 pub const PROFILER_CACHE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1426);
441 pub const PROFILER_CACHE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1427);
442 pub const PROFILER_CACHE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1428);
443 pub const PROFILER_CACHE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1429);
444 pub const PROFILER_SHAPE_SNAPSHOTS_TS: ColumnId = ColumnId(1430);
445 pub const PROFILER_SHAPE_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1431);
446 pub const PROFILER_SHAPE_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1432);
447 pub const PROFILER_SHAPE_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1433);
448 pub const PROFILER_SHAPE_SNAPSHOTS_CALLS: ColumnId = ColumnId(1434);
449 pub const PROFILER_SHAPE_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1435);
450 pub const PROFILER_SHAPE_SNAPSHOTS_MIN: ColumnId = ColumnId(1436);
451 pub const PROFILER_SHAPE_SNAPSHOTS_MAX: ColumnId = ColumnId(1437);
452 pub const PROFILER_SHAPE_SNAPSHOTS_P50: ColumnId = ColumnId(1438);
453 pub const PROFILER_SHAPE_SNAPSHOTS_P60: ColumnId = ColumnId(1439);
454 pub const PROFILER_SHAPE_SNAPSHOTS_P70: ColumnId = ColumnId(1440);
455 pub const PROFILER_SHAPE_SNAPSHOTS_P75: ColumnId = ColumnId(1441);
456 pub const PROFILER_SHAPE_SNAPSHOTS_P80: ColumnId = ColumnId(1442);
457 pub const PROFILER_SHAPE_SNAPSHOTS_P85: ColumnId = ColumnId(1443);
458 pub const PROFILER_SHAPE_SNAPSHOTS_P90: ColumnId = ColumnId(1444);
459 pub const PROFILER_SHAPE_SNAPSHOTS_P95: ColumnId = ColumnId(1445);
460 pub const PROFILER_SHAPE_SNAPSHOTS_P98: ColumnId = ColumnId(1446);
461 pub const PROFILER_SHAPE_SNAPSHOTS_P99: ColumnId = ColumnId(1447);
462 pub const PROFILER_SHAPE_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1448);
463 pub const PROFILER_SHAPE_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1449);
464 pub const PROFILER_SHAPE_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1450);
465 pub const PROFILER_SHAPE_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1451);
466 pub const PROFILER_API_SNAPSHOTS_TS: ColumnId = ColumnId(1452);
467 pub const PROFILER_API_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1453);
468 pub const PROFILER_API_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1454);
469 pub const PROFILER_API_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1455);
470 pub const PROFILER_API_SNAPSHOTS_CALLS: ColumnId = ColumnId(1456);
471 pub const PROFILER_API_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1457);
472 pub const PROFILER_API_SNAPSHOTS_MIN: ColumnId = ColumnId(1458);
473 pub const PROFILER_API_SNAPSHOTS_MAX: ColumnId = ColumnId(1459);
474 pub const PROFILER_API_SNAPSHOTS_P50: ColumnId = ColumnId(1460);
475 pub const PROFILER_API_SNAPSHOTS_P60: ColumnId = ColumnId(1461);
476 pub const PROFILER_API_SNAPSHOTS_P70: ColumnId = ColumnId(1462);
477 pub const PROFILER_API_SNAPSHOTS_P75: ColumnId = ColumnId(1463);
478 pub const PROFILER_API_SNAPSHOTS_P80: ColumnId = ColumnId(1464);
479 pub const PROFILER_API_SNAPSHOTS_P85: ColumnId = ColumnId(1465);
480 pub const PROFILER_API_SNAPSHOTS_P90: ColumnId = ColumnId(1466);
481 pub const PROFILER_API_SNAPSHOTS_P95: ColumnId = ColumnId(1467);
482 pub const PROFILER_API_SNAPSHOTS_P98: ColumnId = ColumnId(1468);
483 pub const PROFILER_API_SNAPSHOTS_P99: ColumnId = ColumnId(1469);
484 pub const PROFILER_API_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1470);
485 pub const PROFILER_API_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1471);
486 pub const PROFILER_API_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1472);
487 pub const PROFILER_API_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1473);
488 pub const PROFILER_ACTOR_SNAPSHOTS_TS: ColumnId = ColumnId(1474);
489 pub const PROFILER_ACTOR_SNAPSHOTS_SPAN_NAME: ColumnId = ColumnId(1475);
490 pub const PROFILER_ACTOR_SNAPSHOTS_DIM_1: ColumnId = ColumnId(1476);
491 pub const PROFILER_ACTOR_SNAPSHOTS_DIM_2: ColumnId = ColumnId(1477);
492 pub const PROFILER_ACTOR_SNAPSHOTS_CALLS: ColumnId = ColumnId(1478);
493 pub const PROFILER_ACTOR_SNAPSHOTS_TOTAL: ColumnId = ColumnId(1479);
494 pub const PROFILER_ACTOR_SNAPSHOTS_MIN: ColumnId = ColumnId(1480);
495 pub const PROFILER_ACTOR_SNAPSHOTS_MAX: ColumnId = ColumnId(1481);
496 pub const PROFILER_ACTOR_SNAPSHOTS_P50: ColumnId = ColumnId(1482);
497 pub const PROFILER_ACTOR_SNAPSHOTS_P60: ColumnId = ColumnId(1483);
498 pub const PROFILER_ACTOR_SNAPSHOTS_P70: ColumnId = ColumnId(1484);
499 pub const PROFILER_ACTOR_SNAPSHOTS_P75: ColumnId = ColumnId(1485);
500 pub const PROFILER_ACTOR_SNAPSHOTS_P80: ColumnId = ColumnId(1486);
501 pub const PROFILER_ACTOR_SNAPSHOTS_P85: ColumnId = ColumnId(1487);
502 pub const PROFILER_ACTOR_SNAPSHOTS_P90: ColumnId = ColumnId(1488);
503 pub const PROFILER_ACTOR_SNAPSHOTS_P95: ColumnId = ColumnId(1489);
504 pub const PROFILER_ACTOR_SNAPSHOTS_P98: ColumnId = ColumnId(1490);
505 pub const PROFILER_ACTOR_SNAPSHOTS_P99: ColumnId = ColumnId(1491);
506 pub const PROFILER_ACTOR_SNAPSHOTS_EXTRA_0: ColumnId = ColumnId(1492);
507 pub const PROFILER_ACTOR_SNAPSHOTS_EXTRA_1: ColumnId = ColumnId(1493);
508 pub const PROFILER_ACTOR_SNAPSHOTS_EXTRA_2: ColumnId = ColumnId(1494);
509 pub const PROFILER_ACTOR_SNAPSHOTS_EXTRA_3: ColumnId = ColumnId(1495);
510
511 pub const PROFILER_QUERY_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
512 Self::PROFILER_QUERY_SNAPSHOTS_TS,
513 Self::PROFILER_QUERY_SNAPSHOTS_SPAN_NAME,
514 Self::PROFILER_QUERY_SNAPSHOTS_DIM_1,
515 Self::PROFILER_QUERY_SNAPSHOTS_DIM_2,
516 Self::PROFILER_QUERY_SNAPSHOTS_CALLS,
517 Self::PROFILER_QUERY_SNAPSHOTS_TOTAL,
518 Self::PROFILER_QUERY_SNAPSHOTS_MIN,
519 Self::PROFILER_QUERY_SNAPSHOTS_MAX,
520 Self::PROFILER_QUERY_SNAPSHOTS_P50,
521 Self::PROFILER_QUERY_SNAPSHOTS_P60,
522 Self::PROFILER_QUERY_SNAPSHOTS_P70,
523 Self::PROFILER_QUERY_SNAPSHOTS_P75,
524 Self::PROFILER_QUERY_SNAPSHOTS_P80,
525 Self::PROFILER_QUERY_SNAPSHOTS_P85,
526 Self::PROFILER_QUERY_SNAPSHOTS_P90,
527 Self::PROFILER_QUERY_SNAPSHOTS_P95,
528 Self::PROFILER_QUERY_SNAPSHOTS_P98,
529 Self::PROFILER_QUERY_SNAPSHOTS_P99,
530 Self::PROFILER_QUERY_SNAPSHOTS_EXTRA_0,
531 Self::PROFILER_QUERY_SNAPSHOTS_EXTRA_1,
532 Self::PROFILER_QUERY_SNAPSHOTS_EXTRA_2,
533 Self::PROFILER_QUERY_SNAPSHOTS_EXTRA_3,
534 ];
535 pub const PROFILER_TXN_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
536 Self::PROFILER_TXN_SNAPSHOTS_TS,
537 Self::PROFILER_TXN_SNAPSHOTS_SPAN_NAME,
538 Self::PROFILER_TXN_SNAPSHOTS_DIM_1,
539 Self::PROFILER_TXN_SNAPSHOTS_DIM_2,
540 Self::PROFILER_TXN_SNAPSHOTS_CALLS,
541 Self::PROFILER_TXN_SNAPSHOTS_TOTAL,
542 Self::PROFILER_TXN_SNAPSHOTS_MIN,
543 Self::PROFILER_TXN_SNAPSHOTS_MAX,
544 Self::PROFILER_TXN_SNAPSHOTS_P50,
545 Self::PROFILER_TXN_SNAPSHOTS_P60,
546 Self::PROFILER_TXN_SNAPSHOTS_P70,
547 Self::PROFILER_TXN_SNAPSHOTS_P75,
548 Self::PROFILER_TXN_SNAPSHOTS_P80,
549 Self::PROFILER_TXN_SNAPSHOTS_P85,
550 Self::PROFILER_TXN_SNAPSHOTS_P90,
551 Self::PROFILER_TXN_SNAPSHOTS_P95,
552 Self::PROFILER_TXN_SNAPSHOTS_P98,
553 Self::PROFILER_TXN_SNAPSHOTS_P99,
554 Self::PROFILER_TXN_SNAPSHOTS_EXTRA_0,
555 Self::PROFILER_TXN_SNAPSHOTS_EXTRA_1,
556 Self::PROFILER_TXN_SNAPSHOTS_EXTRA_2,
557 Self::PROFILER_TXN_SNAPSHOTS_EXTRA_3,
558 ];
559 pub const PROFILER_STORAGE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
560 Self::PROFILER_STORAGE_SNAPSHOTS_TS,
561 Self::PROFILER_STORAGE_SNAPSHOTS_SPAN_NAME,
562 Self::PROFILER_STORAGE_SNAPSHOTS_DIM_1,
563 Self::PROFILER_STORAGE_SNAPSHOTS_DIM_2,
564 Self::PROFILER_STORAGE_SNAPSHOTS_CALLS,
565 Self::PROFILER_STORAGE_SNAPSHOTS_TOTAL,
566 Self::PROFILER_STORAGE_SNAPSHOTS_MIN,
567 Self::PROFILER_STORAGE_SNAPSHOTS_MAX,
568 Self::PROFILER_STORAGE_SNAPSHOTS_P50,
569 Self::PROFILER_STORAGE_SNAPSHOTS_P60,
570 Self::PROFILER_STORAGE_SNAPSHOTS_P70,
571 Self::PROFILER_STORAGE_SNAPSHOTS_P75,
572 Self::PROFILER_STORAGE_SNAPSHOTS_P80,
573 Self::PROFILER_STORAGE_SNAPSHOTS_P85,
574 Self::PROFILER_STORAGE_SNAPSHOTS_P90,
575 Self::PROFILER_STORAGE_SNAPSHOTS_P95,
576 Self::PROFILER_STORAGE_SNAPSHOTS_P98,
577 Self::PROFILER_STORAGE_SNAPSHOTS_P99,
578 Self::PROFILER_STORAGE_SNAPSHOTS_EXTRA_0,
579 Self::PROFILER_STORAGE_SNAPSHOTS_EXTRA_1,
580 Self::PROFILER_STORAGE_SNAPSHOTS_EXTRA_2,
581 Self::PROFILER_STORAGE_SNAPSHOTS_EXTRA_3,
582 ];
583 pub const PROFILER_PLAN_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
584 Self::PROFILER_PLAN_SNAPSHOTS_TS,
585 Self::PROFILER_PLAN_SNAPSHOTS_SPAN_NAME,
586 Self::PROFILER_PLAN_SNAPSHOTS_DIM_1,
587 Self::PROFILER_PLAN_SNAPSHOTS_DIM_2,
588 Self::PROFILER_PLAN_SNAPSHOTS_CALLS,
589 Self::PROFILER_PLAN_SNAPSHOTS_TOTAL,
590 Self::PROFILER_PLAN_SNAPSHOTS_MIN,
591 Self::PROFILER_PLAN_SNAPSHOTS_MAX,
592 Self::PROFILER_PLAN_SNAPSHOTS_P50,
593 Self::PROFILER_PLAN_SNAPSHOTS_P60,
594 Self::PROFILER_PLAN_SNAPSHOTS_P70,
595 Self::PROFILER_PLAN_SNAPSHOTS_P75,
596 Self::PROFILER_PLAN_SNAPSHOTS_P80,
597 Self::PROFILER_PLAN_SNAPSHOTS_P85,
598 Self::PROFILER_PLAN_SNAPSHOTS_P90,
599 Self::PROFILER_PLAN_SNAPSHOTS_P95,
600 Self::PROFILER_PLAN_SNAPSHOTS_P98,
601 Self::PROFILER_PLAN_SNAPSHOTS_P99,
602 Self::PROFILER_PLAN_SNAPSHOTS_EXTRA_0,
603 Self::PROFILER_PLAN_SNAPSHOTS_EXTRA_1,
604 Self::PROFILER_PLAN_SNAPSHOTS_EXTRA_2,
605 Self::PROFILER_PLAN_SNAPSHOTS_EXTRA_3,
606 ];
607 pub const PROFILER_CDC_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
608 Self::PROFILER_CDC_SNAPSHOTS_TS,
609 Self::PROFILER_CDC_SNAPSHOTS_SPAN_NAME,
610 Self::PROFILER_CDC_SNAPSHOTS_DIM_1,
611 Self::PROFILER_CDC_SNAPSHOTS_DIM_2,
612 Self::PROFILER_CDC_SNAPSHOTS_CALLS,
613 Self::PROFILER_CDC_SNAPSHOTS_TOTAL,
614 Self::PROFILER_CDC_SNAPSHOTS_MIN,
615 Self::PROFILER_CDC_SNAPSHOTS_MAX,
616 Self::PROFILER_CDC_SNAPSHOTS_P50,
617 Self::PROFILER_CDC_SNAPSHOTS_P60,
618 Self::PROFILER_CDC_SNAPSHOTS_P70,
619 Self::PROFILER_CDC_SNAPSHOTS_P75,
620 Self::PROFILER_CDC_SNAPSHOTS_P80,
621 Self::PROFILER_CDC_SNAPSHOTS_P85,
622 Self::PROFILER_CDC_SNAPSHOTS_P90,
623 Self::PROFILER_CDC_SNAPSHOTS_P95,
624 Self::PROFILER_CDC_SNAPSHOTS_P98,
625 Self::PROFILER_CDC_SNAPSHOTS_P99,
626 Self::PROFILER_CDC_SNAPSHOTS_EXTRA_0,
627 Self::PROFILER_CDC_SNAPSHOTS_EXTRA_1,
628 Self::PROFILER_CDC_SNAPSHOTS_EXTRA_2,
629 Self::PROFILER_CDC_SNAPSHOTS_EXTRA_3,
630 ];
631 pub const PROFILER_FLOW_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
632 Self::PROFILER_FLOW_SNAPSHOTS_TS,
633 Self::PROFILER_FLOW_SNAPSHOTS_SPAN_NAME,
634 Self::PROFILER_FLOW_SNAPSHOTS_DIM_1,
635 Self::PROFILER_FLOW_SNAPSHOTS_DIM_2,
636 Self::PROFILER_FLOW_SNAPSHOTS_CALLS,
637 Self::PROFILER_FLOW_SNAPSHOTS_TOTAL,
638 Self::PROFILER_FLOW_SNAPSHOTS_MIN,
639 Self::PROFILER_FLOW_SNAPSHOTS_MAX,
640 Self::PROFILER_FLOW_SNAPSHOTS_P50,
641 Self::PROFILER_FLOW_SNAPSHOTS_P60,
642 Self::PROFILER_FLOW_SNAPSHOTS_P70,
643 Self::PROFILER_FLOW_SNAPSHOTS_P75,
644 Self::PROFILER_FLOW_SNAPSHOTS_P80,
645 Self::PROFILER_FLOW_SNAPSHOTS_P85,
646 Self::PROFILER_FLOW_SNAPSHOTS_P90,
647 Self::PROFILER_FLOW_SNAPSHOTS_P95,
648 Self::PROFILER_FLOW_SNAPSHOTS_P98,
649 Self::PROFILER_FLOW_SNAPSHOTS_P99,
650 Self::PROFILER_FLOW_SNAPSHOTS_EXTRA_0,
651 Self::PROFILER_FLOW_SNAPSHOTS_EXTRA_1,
652 Self::PROFILER_FLOW_SNAPSHOTS_EXTRA_2,
653 Self::PROFILER_FLOW_SNAPSHOTS_EXTRA_3,
654 ];
655 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
656 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_TS,
657 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_SPAN_NAME,
658 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_DIM_1,
659 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_DIM_2,
660 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_CALLS,
661 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_TOTAL,
662 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_MIN,
663 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_MAX,
664 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P50,
665 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P60,
666 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P70,
667 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P75,
668 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P80,
669 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P85,
670 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P90,
671 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P95,
672 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P98,
673 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_P99,
674 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_0,
675 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_1,
676 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_2,
677 Self::PROFILER_SUBSCRIPTION_SNAPSHOTS_EXTRA_3,
678 ];
679 pub const PROFILER_SERVER_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
680 Self::PROFILER_SERVER_SNAPSHOTS_TS,
681 Self::PROFILER_SERVER_SNAPSHOTS_SPAN_NAME,
682 Self::PROFILER_SERVER_SNAPSHOTS_DIM_1,
683 Self::PROFILER_SERVER_SNAPSHOTS_DIM_2,
684 Self::PROFILER_SERVER_SNAPSHOTS_CALLS,
685 Self::PROFILER_SERVER_SNAPSHOTS_TOTAL,
686 Self::PROFILER_SERVER_SNAPSHOTS_MIN,
687 Self::PROFILER_SERVER_SNAPSHOTS_MAX,
688 Self::PROFILER_SERVER_SNAPSHOTS_P50,
689 Self::PROFILER_SERVER_SNAPSHOTS_P60,
690 Self::PROFILER_SERVER_SNAPSHOTS_P70,
691 Self::PROFILER_SERVER_SNAPSHOTS_P75,
692 Self::PROFILER_SERVER_SNAPSHOTS_P80,
693 Self::PROFILER_SERVER_SNAPSHOTS_P85,
694 Self::PROFILER_SERVER_SNAPSHOTS_P90,
695 Self::PROFILER_SERVER_SNAPSHOTS_P95,
696 Self::PROFILER_SERVER_SNAPSHOTS_P98,
697 Self::PROFILER_SERVER_SNAPSHOTS_P99,
698 Self::PROFILER_SERVER_SNAPSHOTS_EXTRA_0,
699 Self::PROFILER_SERVER_SNAPSHOTS_EXTRA_1,
700 Self::PROFILER_SERVER_SNAPSHOTS_EXTRA_2,
701 Self::PROFILER_SERVER_SNAPSHOTS_EXTRA_3,
702 ];
703 pub const PROFILER_WIRE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
704 Self::PROFILER_WIRE_SNAPSHOTS_TS,
705 Self::PROFILER_WIRE_SNAPSHOTS_SPAN_NAME,
706 Self::PROFILER_WIRE_SNAPSHOTS_DIM_1,
707 Self::PROFILER_WIRE_SNAPSHOTS_DIM_2,
708 Self::PROFILER_WIRE_SNAPSHOTS_CALLS,
709 Self::PROFILER_WIRE_SNAPSHOTS_TOTAL,
710 Self::PROFILER_WIRE_SNAPSHOTS_MIN,
711 Self::PROFILER_WIRE_SNAPSHOTS_MAX,
712 Self::PROFILER_WIRE_SNAPSHOTS_P50,
713 Self::PROFILER_WIRE_SNAPSHOTS_P60,
714 Self::PROFILER_WIRE_SNAPSHOTS_P70,
715 Self::PROFILER_WIRE_SNAPSHOTS_P75,
716 Self::PROFILER_WIRE_SNAPSHOTS_P80,
717 Self::PROFILER_WIRE_SNAPSHOTS_P85,
718 Self::PROFILER_WIRE_SNAPSHOTS_P90,
719 Self::PROFILER_WIRE_SNAPSHOTS_P95,
720 Self::PROFILER_WIRE_SNAPSHOTS_P98,
721 Self::PROFILER_WIRE_SNAPSHOTS_P99,
722 Self::PROFILER_WIRE_SNAPSHOTS_EXTRA_0,
723 Self::PROFILER_WIRE_SNAPSHOTS_EXTRA_1,
724 Self::PROFILER_WIRE_SNAPSHOTS_EXTRA_2,
725 Self::PROFILER_WIRE_SNAPSHOTS_EXTRA_3,
726 ];
727 pub const PROFILER_AUTH_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
728 Self::PROFILER_AUTH_SNAPSHOTS_TS,
729 Self::PROFILER_AUTH_SNAPSHOTS_SPAN_NAME,
730 Self::PROFILER_AUTH_SNAPSHOTS_DIM_1,
731 Self::PROFILER_AUTH_SNAPSHOTS_DIM_2,
732 Self::PROFILER_AUTH_SNAPSHOTS_CALLS,
733 Self::PROFILER_AUTH_SNAPSHOTS_TOTAL,
734 Self::PROFILER_AUTH_SNAPSHOTS_MIN,
735 Self::PROFILER_AUTH_SNAPSHOTS_MAX,
736 Self::PROFILER_AUTH_SNAPSHOTS_P50,
737 Self::PROFILER_AUTH_SNAPSHOTS_P60,
738 Self::PROFILER_AUTH_SNAPSHOTS_P70,
739 Self::PROFILER_AUTH_SNAPSHOTS_P75,
740 Self::PROFILER_AUTH_SNAPSHOTS_P80,
741 Self::PROFILER_AUTH_SNAPSHOTS_P85,
742 Self::PROFILER_AUTH_SNAPSHOTS_P90,
743 Self::PROFILER_AUTH_SNAPSHOTS_P95,
744 Self::PROFILER_AUTH_SNAPSHOTS_P98,
745 Self::PROFILER_AUTH_SNAPSHOTS_P99,
746 Self::PROFILER_AUTH_SNAPSHOTS_EXTRA_0,
747 Self::PROFILER_AUTH_SNAPSHOTS_EXTRA_1,
748 Self::PROFILER_AUTH_SNAPSHOTS_EXTRA_2,
749 Self::PROFILER_AUTH_SNAPSHOTS_EXTRA_3,
750 ];
751 pub const PROFILER_CATALOG_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
752 Self::PROFILER_CATALOG_SNAPSHOTS_TS,
753 Self::PROFILER_CATALOG_SNAPSHOTS_SPAN_NAME,
754 Self::PROFILER_CATALOG_SNAPSHOTS_DIM_1,
755 Self::PROFILER_CATALOG_SNAPSHOTS_DIM_2,
756 Self::PROFILER_CATALOG_SNAPSHOTS_CALLS,
757 Self::PROFILER_CATALOG_SNAPSHOTS_TOTAL,
758 Self::PROFILER_CATALOG_SNAPSHOTS_MIN,
759 Self::PROFILER_CATALOG_SNAPSHOTS_MAX,
760 Self::PROFILER_CATALOG_SNAPSHOTS_P50,
761 Self::PROFILER_CATALOG_SNAPSHOTS_P60,
762 Self::PROFILER_CATALOG_SNAPSHOTS_P70,
763 Self::PROFILER_CATALOG_SNAPSHOTS_P75,
764 Self::PROFILER_CATALOG_SNAPSHOTS_P80,
765 Self::PROFILER_CATALOG_SNAPSHOTS_P85,
766 Self::PROFILER_CATALOG_SNAPSHOTS_P90,
767 Self::PROFILER_CATALOG_SNAPSHOTS_P95,
768 Self::PROFILER_CATALOG_SNAPSHOTS_P98,
769 Self::PROFILER_CATALOG_SNAPSHOTS_P99,
770 Self::PROFILER_CATALOG_SNAPSHOTS_EXTRA_0,
771 Self::PROFILER_CATALOG_SNAPSHOTS_EXTRA_1,
772 Self::PROFILER_CATALOG_SNAPSHOTS_EXTRA_2,
773 Self::PROFILER_CATALOG_SNAPSHOTS_EXTRA_3,
774 ];
775 pub const PROFILER_ENGINE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
776 Self::PROFILER_ENGINE_SNAPSHOTS_TS,
777 Self::PROFILER_ENGINE_SNAPSHOTS_SPAN_NAME,
778 Self::PROFILER_ENGINE_SNAPSHOTS_DIM_1,
779 Self::PROFILER_ENGINE_SNAPSHOTS_DIM_2,
780 Self::PROFILER_ENGINE_SNAPSHOTS_CALLS,
781 Self::PROFILER_ENGINE_SNAPSHOTS_TOTAL,
782 Self::PROFILER_ENGINE_SNAPSHOTS_MIN,
783 Self::PROFILER_ENGINE_SNAPSHOTS_MAX,
784 Self::PROFILER_ENGINE_SNAPSHOTS_P50,
785 Self::PROFILER_ENGINE_SNAPSHOTS_P60,
786 Self::PROFILER_ENGINE_SNAPSHOTS_P70,
787 Self::PROFILER_ENGINE_SNAPSHOTS_P75,
788 Self::PROFILER_ENGINE_SNAPSHOTS_P80,
789 Self::PROFILER_ENGINE_SNAPSHOTS_P85,
790 Self::PROFILER_ENGINE_SNAPSHOTS_P90,
791 Self::PROFILER_ENGINE_SNAPSHOTS_P95,
792 Self::PROFILER_ENGINE_SNAPSHOTS_P98,
793 Self::PROFILER_ENGINE_SNAPSHOTS_P99,
794 Self::PROFILER_ENGINE_SNAPSHOTS_EXTRA_0,
795 Self::PROFILER_ENGINE_SNAPSHOTS_EXTRA_1,
796 Self::PROFILER_ENGINE_SNAPSHOTS_EXTRA_2,
797 Self::PROFILER_ENGINE_SNAPSHOTS_EXTRA_3,
798 ];
799 pub const PROFILER_MUTATE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
800 Self::PROFILER_MUTATE_SNAPSHOTS_TS,
801 Self::PROFILER_MUTATE_SNAPSHOTS_SPAN_NAME,
802 Self::PROFILER_MUTATE_SNAPSHOTS_DIM_1,
803 Self::PROFILER_MUTATE_SNAPSHOTS_DIM_2,
804 Self::PROFILER_MUTATE_SNAPSHOTS_CALLS,
805 Self::PROFILER_MUTATE_SNAPSHOTS_TOTAL,
806 Self::PROFILER_MUTATE_SNAPSHOTS_MIN,
807 Self::PROFILER_MUTATE_SNAPSHOTS_MAX,
808 Self::PROFILER_MUTATE_SNAPSHOTS_P50,
809 Self::PROFILER_MUTATE_SNAPSHOTS_P60,
810 Self::PROFILER_MUTATE_SNAPSHOTS_P70,
811 Self::PROFILER_MUTATE_SNAPSHOTS_P75,
812 Self::PROFILER_MUTATE_SNAPSHOTS_P80,
813 Self::PROFILER_MUTATE_SNAPSHOTS_P85,
814 Self::PROFILER_MUTATE_SNAPSHOTS_P90,
815 Self::PROFILER_MUTATE_SNAPSHOTS_P95,
816 Self::PROFILER_MUTATE_SNAPSHOTS_P98,
817 Self::PROFILER_MUTATE_SNAPSHOTS_P99,
818 Self::PROFILER_MUTATE_SNAPSHOTS_EXTRA_0,
819 Self::PROFILER_MUTATE_SNAPSHOTS_EXTRA_1,
820 Self::PROFILER_MUTATE_SNAPSHOTS_EXTRA_2,
821 Self::PROFILER_MUTATE_SNAPSHOTS_EXTRA_3,
822 ];
823 pub const PROFILER_TRANSPORT_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
824 Self::PROFILER_TRANSPORT_SNAPSHOTS_TS,
825 Self::PROFILER_TRANSPORT_SNAPSHOTS_SPAN_NAME,
826 Self::PROFILER_TRANSPORT_SNAPSHOTS_DIM_1,
827 Self::PROFILER_TRANSPORT_SNAPSHOTS_DIM_2,
828 Self::PROFILER_TRANSPORT_SNAPSHOTS_CALLS,
829 Self::PROFILER_TRANSPORT_SNAPSHOTS_TOTAL,
830 Self::PROFILER_TRANSPORT_SNAPSHOTS_MIN,
831 Self::PROFILER_TRANSPORT_SNAPSHOTS_MAX,
832 Self::PROFILER_TRANSPORT_SNAPSHOTS_P50,
833 Self::PROFILER_TRANSPORT_SNAPSHOTS_P60,
834 Self::PROFILER_TRANSPORT_SNAPSHOTS_P70,
835 Self::PROFILER_TRANSPORT_SNAPSHOTS_P75,
836 Self::PROFILER_TRANSPORT_SNAPSHOTS_P80,
837 Self::PROFILER_TRANSPORT_SNAPSHOTS_P85,
838 Self::PROFILER_TRANSPORT_SNAPSHOTS_P90,
839 Self::PROFILER_TRANSPORT_SNAPSHOTS_P95,
840 Self::PROFILER_TRANSPORT_SNAPSHOTS_P98,
841 Self::PROFILER_TRANSPORT_SNAPSHOTS_P99,
842 Self::PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_0,
843 Self::PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_1,
844 Self::PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_2,
845 Self::PROFILER_TRANSPORT_SNAPSHOTS_EXTRA_3,
846 ];
847 pub const PROFILER_TASK_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
848 Self::PROFILER_TASK_SNAPSHOTS_TS,
849 Self::PROFILER_TASK_SNAPSHOTS_SPAN_NAME,
850 Self::PROFILER_TASK_SNAPSHOTS_DIM_1,
851 Self::PROFILER_TASK_SNAPSHOTS_DIM_2,
852 Self::PROFILER_TASK_SNAPSHOTS_CALLS,
853 Self::PROFILER_TASK_SNAPSHOTS_TOTAL,
854 Self::PROFILER_TASK_SNAPSHOTS_MIN,
855 Self::PROFILER_TASK_SNAPSHOTS_MAX,
856 Self::PROFILER_TASK_SNAPSHOTS_P50,
857 Self::PROFILER_TASK_SNAPSHOTS_P60,
858 Self::PROFILER_TASK_SNAPSHOTS_P70,
859 Self::PROFILER_TASK_SNAPSHOTS_P75,
860 Self::PROFILER_TASK_SNAPSHOTS_P80,
861 Self::PROFILER_TASK_SNAPSHOTS_P85,
862 Self::PROFILER_TASK_SNAPSHOTS_P90,
863 Self::PROFILER_TASK_SNAPSHOTS_P95,
864 Self::PROFILER_TASK_SNAPSHOTS_P98,
865 Self::PROFILER_TASK_SNAPSHOTS_P99,
866 Self::PROFILER_TASK_SNAPSHOTS_EXTRA_0,
867 Self::PROFILER_TASK_SNAPSHOTS_EXTRA_1,
868 Self::PROFILER_TASK_SNAPSHOTS_EXTRA_2,
869 Self::PROFILER_TASK_SNAPSHOTS_EXTRA_3,
870 ];
871 pub const PROFILER_POLICY_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
872 Self::PROFILER_POLICY_SNAPSHOTS_TS,
873 Self::PROFILER_POLICY_SNAPSHOTS_SPAN_NAME,
874 Self::PROFILER_POLICY_SNAPSHOTS_DIM_1,
875 Self::PROFILER_POLICY_SNAPSHOTS_DIM_2,
876 Self::PROFILER_POLICY_SNAPSHOTS_CALLS,
877 Self::PROFILER_POLICY_SNAPSHOTS_TOTAL,
878 Self::PROFILER_POLICY_SNAPSHOTS_MIN,
879 Self::PROFILER_POLICY_SNAPSHOTS_MAX,
880 Self::PROFILER_POLICY_SNAPSHOTS_P50,
881 Self::PROFILER_POLICY_SNAPSHOTS_P60,
882 Self::PROFILER_POLICY_SNAPSHOTS_P70,
883 Self::PROFILER_POLICY_SNAPSHOTS_P75,
884 Self::PROFILER_POLICY_SNAPSHOTS_P80,
885 Self::PROFILER_POLICY_SNAPSHOTS_P85,
886 Self::PROFILER_POLICY_SNAPSHOTS_P90,
887 Self::PROFILER_POLICY_SNAPSHOTS_P95,
888 Self::PROFILER_POLICY_SNAPSHOTS_P98,
889 Self::PROFILER_POLICY_SNAPSHOTS_P99,
890 Self::PROFILER_POLICY_SNAPSHOTS_EXTRA_0,
891 Self::PROFILER_POLICY_SNAPSHOTS_EXTRA_1,
892 Self::PROFILER_POLICY_SNAPSHOTS_EXTRA_2,
893 Self::PROFILER_POLICY_SNAPSHOTS_EXTRA_3,
894 ];
895 pub const PROFILER_FFI_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
896 Self::PROFILER_FFI_SNAPSHOTS_TS,
897 Self::PROFILER_FFI_SNAPSHOTS_SPAN_NAME,
898 Self::PROFILER_FFI_SNAPSHOTS_DIM_1,
899 Self::PROFILER_FFI_SNAPSHOTS_DIM_2,
900 Self::PROFILER_FFI_SNAPSHOTS_CALLS,
901 Self::PROFILER_FFI_SNAPSHOTS_TOTAL,
902 Self::PROFILER_FFI_SNAPSHOTS_MIN,
903 Self::PROFILER_FFI_SNAPSHOTS_MAX,
904 Self::PROFILER_FFI_SNAPSHOTS_P50,
905 Self::PROFILER_FFI_SNAPSHOTS_P60,
906 Self::PROFILER_FFI_SNAPSHOTS_P70,
907 Self::PROFILER_FFI_SNAPSHOTS_P75,
908 Self::PROFILER_FFI_SNAPSHOTS_P80,
909 Self::PROFILER_FFI_SNAPSHOTS_P85,
910 Self::PROFILER_FFI_SNAPSHOTS_P90,
911 Self::PROFILER_FFI_SNAPSHOTS_P95,
912 Self::PROFILER_FFI_SNAPSHOTS_P98,
913 Self::PROFILER_FFI_SNAPSHOTS_P99,
914 Self::PROFILER_FFI_SNAPSHOTS_EXTRA_0,
915 Self::PROFILER_FFI_SNAPSHOTS_EXTRA_1,
916 Self::PROFILER_FFI_SNAPSHOTS_EXTRA_2,
917 Self::PROFILER_FFI_SNAPSHOTS_EXTRA_3,
918 ];
919 pub const PROFILER_CACHE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
920 Self::PROFILER_CACHE_SNAPSHOTS_TS,
921 Self::PROFILER_CACHE_SNAPSHOTS_SPAN_NAME,
922 Self::PROFILER_CACHE_SNAPSHOTS_DIM_1,
923 Self::PROFILER_CACHE_SNAPSHOTS_DIM_2,
924 Self::PROFILER_CACHE_SNAPSHOTS_CALLS,
925 Self::PROFILER_CACHE_SNAPSHOTS_TOTAL,
926 Self::PROFILER_CACHE_SNAPSHOTS_MIN,
927 Self::PROFILER_CACHE_SNAPSHOTS_MAX,
928 Self::PROFILER_CACHE_SNAPSHOTS_P50,
929 Self::PROFILER_CACHE_SNAPSHOTS_P60,
930 Self::PROFILER_CACHE_SNAPSHOTS_P70,
931 Self::PROFILER_CACHE_SNAPSHOTS_P75,
932 Self::PROFILER_CACHE_SNAPSHOTS_P80,
933 Self::PROFILER_CACHE_SNAPSHOTS_P85,
934 Self::PROFILER_CACHE_SNAPSHOTS_P90,
935 Self::PROFILER_CACHE_SNAPSHOTS_P95,
936 Self::PROFILER_CACHE_SNAPSHOTS_P98,
937 Self::PROFILER_CACHE_SNAPSHOTS_P99,
938 Self::PROFILER_CACHE_SNAPSHOTS_EXTRA_0,
939 Self::PROFILER_CACHE_SNAPSHOTS_EXTRA_1,
940 Self::PROFILER_CACHE_SNAPSHOTS_EXTRA_2,
941 Self::PROFILER_CACHE_SNAPSHOTS_EXTRA_3,
942 ];
943 pub const PROFILER_SHAPE_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
944 Self::PROFILER_SHAPE_SNAPSHOTS_TS,
945 Self::PROFILER_SHAPE_SNAPSHOTS_SPAN_NAME,
946 Self::PROFILER_SHAPE_SNAPSHOTS_DIM_1,
947 Self::PROFILER_SHAPE_SNAPSHOTS_DIM_2,
948 Self::PROFILER_SHAPE_SNAPSHOTS_CALLS,
949 Self::PROFILER_SHAPE_SNAPSHOTS_TOTAL,
950 Self::PROFILER_SHAPE_SNAPSHOTS_MIN,
951 Self::PROFILER_SHAPE_SNAPSHOTS_MAX,
952 Self::PROFILER_SHAPE_SNAPSHOTS_P50,
953 Self::PROFILER_SHAPE_SNAPSHOTS_P60,
954 Self::PROFILER_SHAPE_SNAPSHOTS_P70,
955 Self::PROFILER_SHAPE_SNAPSHOTS_P75,
956 Self::PROFILER_SHAPE_SNAPSHOTS_P80,
957 Self::PROFILER_SHAPE_SNAPSHOTS_P85,
958 Self::PROFILER_SHAPE_SNAPSHOTS_P90,
959 Self::PROFILER_SHAPE_SNAPSHOTS_P95,
960 Self::PROFILER_SHAPE_SNAPSHOTS_P98,
961 Self::PROFILER_SHAPE_SNAPSHOTS_P99,
962 Self::PROFILER_SHAPE_SNAPSHOTS_EXTRA_0,
963 Self::PROFILER_SHAPE_SNAPSHOTS_EXTRA_1,
964 Self::PROFILER_SHAPE_SNAPSHOTS_EXTRA_2,
965 Self::PROFILER_SHAPE_SNAPSHOTS_EXTRA_3,
966 ];
967 pub const PROFILER_API_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
968 Self::PROFILER_API_SNAPSHOTS_TS,
969 Self::PROFILER_API_SNAPSHOTS_SPAN_NAME,
970 Self::PROFILER_API_SNAPSHOTS_DIM_1,
971 Self::PROFILER_API_SNAPSHOTS_DIM_2,
972 Self::PROFILER_API_SNAPSHOTS_CALLS,
973 Self::PROFILER_API_SNAPSHOTS_TOTAL,
974 Self::PROFILER_API_SNAPSHOTS_MIN,
975 Self::PROFILER_API_SNAPSHOTS_MAX,
976 Self::PROFILER_API_SNAPSHOTS_P50,
977 Self::PROFILER_API_SNAPSHOTS_P60,
978 Self::PROFILER_API_SNAPSHOTS_P70,
979 Self::PROFILER_API_SNAPSHOTS_P75,
980 Self::PROFILER_API_SNAPSHOTS_P80,
981 Self::PROFILER_API_SNAPSHOTS_P85,
982 Self::PROFILER_API_SNAPSHOTS_P90,
983 Self::PROFILER_API_SNAPSHOTS_P95,
984 Self::PROFILER_API_SNAPSHOTS_P98,
985 Self::PROFILER_API_SNAPSHOTS_P99,
986 Self::PROFILER_API_SNAPSHOTS_EXTRA_0,
987 Self::PROFILER_API_SNAPSHOTS_EXTRA_1,
988 Self::PROFILER_API_SNAPSHOTS_EXTRA_2,
989 Self::PROFILER_API_SNAPSHOTS_EXTRA_3,
990 ];
991 pub const PROFILER_ACTOR_SNAPSHOTS_COLUMNS: [ColumnId; 22] = [
992 Self::PROFILER_ACTOR_SNAPSHOTS_TS,
993 Self::PROFILER_ACTOR_SNAPSHOTS_SPAN_NAME,
994 Self::PROFILER_ACTOR_SNAPSHOTS_DIM_1,
995 Self::PROFILER_ACTOR_SNAPSHOTS_DIM_2,
996 Self::PROFILER_ACTOR_SNAPSHOTS_CALLS,
997 Self::PROFILER_ACTOR_SNAPSHOTS_TOTAL,
998 Self::PROFILER_ACTOR_SNAPSHOTS_MIN,
999 Self::PROFILER_ACTOR_SNAPSHOTS_MAX,
1000 Self::PROFILER_ACTOR_SNAPSHOTS_P50,
1001 Self::PROFILER_ACTOR_SNAPSHOTS_P60,
1002 Self::PROFILER_ACTOR_SNAPSHOTS_P70,
1003 Self::PROFILER_ACTOR_SNAPSHOTS_P75,
1004 Self::PROFILER_ACTOR_SNAPSHOTS_P80,
1005 Self::PROFILER_ACTOR_SNAPSHOTS_P85,
1006 Self::PROFILER_ACTOR_SNAPSHOTS_P90,
1007 Self::PROFILER_ACTOR_SNAPSHOTS_P95,
1008 Self::PROFILER_ACTOR_SNAPSHOTS_P98,
1009 Self::PROFILER_ACTOR_SNAPSHOTS_P99,
1010 Self::PROFILER_ACTOR_SNAPSHOTS_EXTRA_0,
1011 Self::PROFILER_ACTOR_SNAPSHOTS_EXTRA_1,
1012 Self::PROFILER_ACTOR_SNAPSHOTS_EXTRA_2,
1013 Self::PROFILER_ACTOR_SNAPSHOTS_EXTRA_3,
1014 ];
1015 pub const RUNTIME_MEMORY_SNAPSHOTS_COLUMNS: [ColumnId; 5] = [
1016 Self::RUNTIME_MEMORY_SNAPSHOTS_TS,
1017 Self::RUNTIME_MEMORY_SNAPSHOTS_SCOPE,
1018 Self::RUNTIME_MEMORY_SNAPSHOTS_METRIC,
1019 Self::RUNTIME_MEMORY_SNAPSHOTS_VALUE,
1020 Self::RUNTIME_MEMORY_SNAPSHOTS_UNIT,
1021 ];
1022 pub const RUNTIME_WATERMARKS_SNAPSHOTS_COLUMNS: [ColumnId; 5] = [
1023 Self::RUNTIME_WATERMARKS_SNAPSHOTS_TS,
1024 Self::RUNTIME_WATERMARKS_SNAPSHOTS_SCOPE,
1025 Self::RUNTIME_WATERMARKS_SNAPSHOTS_METRIC,
1026 Self::RUNTIME_WATERMARKS_SNAPSHOTS_VALUE,
1027 Self::RUNTIME_WATERMARKS_SNAPSHOTS_UNIT,
1028 ];
1029}
1030
1031impl Deref for ColumnId {
1032 type Target = u64;
1033
1034 fn deref(&self) -> &Self::Target {
1035 &self.0
1036 }
1037}
1038
1039impl PartialEq<u64> for ColumnId {
1040 fn eq(&self, other: &u64) -> bool {
1041 self.0.eq(other)
1042 }
1043}
1044
1045impl From<ColumnId> for u64 {
1046 fn from(value: ColumnId) -> Self {
1047 value.0
1048 }
1049}
1050
1051impl Serialize for ColumnId {
1052 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1053 where
1054 S: Serializer,
1055 {
1056 serializer.serialize_u64(self.0)
1057 }
1058}
1059
1060impl<'de> Deserialize<'de> for ColumnId {
1061 fn deserialize<D>(deserializer: D) -> Result<ColumnId, D::Error>
1062 where
1063 D: Deserializer<'de>,
1064 {
1065 struct U64Visitor;
1066
1067 impl Visitor<'_> for U64Visitor {
1068 type Value = ColumnId;
1069
1070 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1071 formatter.write_str("an unsigned 64-bit number")
1072 }
1073
1074 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1075 Ok(ColumnId(value))
1076 }
1077 }
1078
1079 deserializer.deserialize_u64(U64Visitor)
1080 }
1081}
1082
1083#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1084pub enum IndexId {
1085 Primary(PrimaryKeyId),
1086}
1087
1088impl IndexId {
1089 pub fn as_u64(&self) -> u64 {
1090 match self {
1091 IndexId::Primary(id) => id.0,
1092 }
1093 }
1094
1095 pub fn primary(id: impl Into<PrimaryKeyId>) -> Self {
1096 IndexId::Primary(id.into())
1097 }
1098
1099 pub fn next(&self) -> IndexId {
1100 match self {
1101 IndexId::Primary(primary) => IndexId::Primary(PrimaryKeyId(primary.0 + 1)),
1102 }
1103 }
1104
1105 pub fn prev(&self) -> IndexId {
1106 match self {
1107 IndexId::Primary(primary) => IndexId::Primary(PrimaryKeyId(primary.0.wrapping_sub(1))),
1108 }
1109 }
1110}
1111
1112impl Deref for IndexId {
1113 type Target = u64;
1114
1115 fn deref(&self) -> &Self::Target {
1116 match self {
1117 IndexId::Primary(id) => &id.0,
1118 }
1119 }
1120}
1121
1122impl PartialEq<u64> for IndexId {
1123 fn eq(&self, other: &u64) -> bool {
1124 self.as_u64().eq(other)
1125 }
1126}
1127
1128impl From<IndexId> for u64 {
1129 fn from(value: IndexId) -> Self {
1130 value.as_u64()
1131 }
1132}
1133
1134impl Serialize for IndexId {
1135 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1136 where
1137 S: Serializer,
1138 {
1139 serializer.serialize_u64(self.as_u64())
1140 }
1141}
1142
1143impl<'de> Deserialize<'de> for IndexId {
1144 fn deserialize<D>(deserializer: D) -> Result<IndexId, D::Error>
1145 where
1146 D: Deserializer<'de>,
1147 {
1148 struct U64Visitor;
1149
1150 impl Visitor<'_> for U64Visitor {
1151 type Value = IndexId;
1152
1153 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1154 formatter.write_str("an unsigned 64-bit number")
1155 }
1156
1157 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1158 Ok(IndexId::Primary(PrimaryKeyId(value)))
1159 }
1160 }
1161
1162 deserializer.deserialize_u64(U64Visitor)
1163 }
1164}
1165
1166#[repr(transparent)]
1167#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1168pub struct ColumnPropertyId(pub u64);
1169
1170impl Deref for ColumnPropertyId {
1171 type Target = u64;
1172
1173 fn deref(&self) -> &Self::Target {
1174 &self.0
1175 }
1176}
1177
1178impl PartialEq<u64> for ColumnPropertyId {
1179 fn eq(&self, other: &u64) -> bool {
1180 self.0.eq(other)
1181 }
1182}
1183
1184impl From<ColumnPropertyId> for u64 {
1185 fn from(value: ColumnPropertyId) -> Self {
1186 value.0
1187 }
1188}
1189
1190impl Serialize for ColumnPropertyId {
1191 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1192 where
1193 S: Serializer,
1194 {
1195 serializer.serialize_u64(self.0)
1196 }
1197}
1198
1199impl<'de> Deserialize<'de> for ColumnPropertyId {
1200 fn deserialize<D>(deserializer: D) -> Result<ColumnPropertyId, D::Error>
1201 where
1202 D: Deserializer<'de>,
1203 {
1204 struct U64Visitor;
1205
1206 impl Visitor<'_> for U64Visitor {
1207 type Value = ColumnPropertyId;
1208
1209 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1210 formatter.write_str("an unsigned 64-bit number")
1211 }
1212
1213 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1214 Ok(ColumnPropertyId(value))
1215 }
1216 }
1217
1218 deserializer.deserialize_u64(U64Visitor)
1219 }
1220}
1221
1222#[repr(transparent)]
1223#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1224pub struct NamespaceId(pub u64);
1225
1226impl Display for NamespaceId {
1227 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1228 Display::fmt(&self.0, f)
1229 }
1230}
1231
1232impl Deref for NamespaceId {
1233 type Target = u64;
1234
1235 fn deref(&self) -> &Self::Target {
1236 &self.0
1237 }
1238}
1239
1240impl PartialEq<u64> for NamespaceId {
1241 fn eq(&self, other: &u64) -> bool {
1242 self.0.eq(other)
1243 }
1244}
1245
1246impl From<NamespaceId> for u64 {
1247 fn from(value: NamespaceId) -> Self {
1248 value.0
1249 }
1250}
1251
1252impl Serialize for NamespaceId {
1253 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1254 where
1255 S: Serializer,
1256 {
1257 serializer.serialize_u64(self.0)
1258 }
1259}
1260
1261impl<'de> Deserialize<'de> for NamespaceId {
1262 fn deserialize<D>(deserializer: D) -> Result<NamespaceId, D::Error>
1263 where
1264 D: Deserializer<'de>,
1265 {
1266 struct U64Visitor;
1267
1268 impl Visitor<'_> for U64Visitor {
1269 type Value = NamespaceId;
1270
1271 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1272 formatter.write_str("an unsigned 64-bit number")
1273 }
1274
1275 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1276 Ok(NamespaceId(value))
1277 }
1278 }
1279
1280 deserializer.deserialize_u64(U64Visitor)
1281 }
1282}
1283
1284#[repr(transparent)]
1285#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1286pub struct TableId(pub u64);
1287
1288impl Display for TableId {
1289 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1290 Display::fmt(&self.0, f)
1291 }
1292}
1293
1294impl Deref for TableId {
1295 type Target = u64;
1296
1297 fn deref(&self) -> &Self::Target {
1298 &self.0
1299 }
1300}
1301
1302impl PartialEq<u64> for TableId {
1303 fn eq(&self, other: &u64) -> bool {
1304 self.0.eq(other)
1305 }
1306}
1307
1308impl From<TableId> for u64 {
1309 fn from(value: TableId) -> Self {
1310 value.0
1311 }
1312}
1313
1314impl TableId {
1315 #[inline]
1316 pub fn to_u64(self) -> u64 {
1317 self.0
1318 }
1319}
1320
1321impl From<i32> for TableId {
1322 fn from(value: i32) -> Self {
1323 Self(value as u64)
1324 }
1325}
1326
1327impl From<u64> for TableId {
1328 fn from(value: u64) -> Self {
1329 Self(value)
1330 }
1331}
1332
1333impl Serialize for TableId {
1334 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1335 where
1336 S: Serializer,
1337 {
1338 serializer.serialize_u64(self.0)
1339 }
1340}
1341
1342impl<'de> Deserialize<'de> for TableId {
1343 fn deserialize<D>(deserializer: D) -> Result<TableId, D::Error>
1344 where
1345 D: Deserializer<'de>,
1346 {
1347 struct U64Visitor;
1348
1349 impl Visitor<'_> for U64Visitor {
1350 type Value = TableId;
1351
1352 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1353 formatter.write_str("an unsigned 64-bit number")
1354 }
1355
1356 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1357 Ok(TableId(value))
1358 }
1359 }
1360
1361 deserializer.deserialize_u64(U64Visitor)
1362 }
1363}
1364
1365#[repr(transparent)]
1366#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1367pub struct ViewId(pub u64);
1368
1369impl Display for ViewId {
1370 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1371 Display::fmt(&self.0, f)
1372 }
1373}
1374
1375impl Deref for ViewId {
1376 type Target = u64;
1377
1378 fn deref(&self) -> &Self::Target {
1379 &self.0
1380 }
1381}
1382
1383impl PartialEq<u64> for ViewId {
1384 fn eq(&self, other: &u64) -> bool {
1385 self.0.eq(other)
1386 }
1387}
1388
1389impl From<ViewId> for u64 {
1390 fn from(value: ViewId) -> Self {
1391 value.0
1392 }
1393}
1394
1395impl ViewId {
1396 #[inline]
1397 pub fn to_u64(self) -> u64 {
1398 self.0
1399 }
1400}
1401
1402impl From<i32> for ViewId {
1403 fn from(value: i32) -> Self {
1404 Self(value as u64)
1405 }
1406}
1407
1408impl From<u64> for ViewId {
1409 fn from(value: u64) -> Self {
1410 Self(value)
1411 }
1412}
1413
1414impl Serialize for ViewId {
1415 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1416 where
1417 S: Serializer,
1418 {
1419 serializer.serialize_u64(self.0)
1420 }
1421}
1422
1423impl<'de> Deserialize<'de> for ViewId {
1424 fn deserialize<D>(deserializer: D) -> Result<ViewId, D::Error>
1425 where
1426 D: Deserializer<'de>,
1427 {
1428 struct U64Visitor;
1429
1430 impl Visitor<'_> for U64Visitor {
1431 type Value = ViewId;
1432
1433 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1434 formatter.write_str("an unsigned 64-bit number")
1435 }
1436
1437 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1438 Ok(ViewId(value))
1439 }
1440 }
1441
1442 deserializer.deserialize_u64(U64Visitor)
1443 }
1444}
1445
1446#[repr(transparent)]
1447#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1448pub struct PrimaryKeyId(pub u64);
1449
1450impl Display for PrimaryKeyId {
1451 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1452 Display::fmt(&self.0, f)
1453 }
1454}
1455
1456impl Deref for PrimaryKeyId {
1457 type Target = u64;
1458
1459 fn deref(&self) -> &Self::Target {
1460 &self.0
1461 }
1462}
1463
1464impl PartialEq<u64> for PrimaryKeyId {
1465 fn eq(&self, other: &u64) -> bool {
1466 self.0.eq(other)
1467 }
1468}
1469
1470impl From<PrimaryKeyId> for u64 {
1471 fn from(value: PrimaryKeyId) -> Self {
1472 value.0
1473 }
1474}
1475
1476impl From<i32> for PrimaryKeyId {
1477 fn from(value: i32) -> Self {
1478 Self(value as u64)
1479 }
1480}
1481
1482impl From<u64> for PrimaryKeyId {
1483 fn from(value: u64) -> Self {
1484 Self(value)
1485 }
1486}
1487
1488impl Serialize for PrimaryKeyId {
1489 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1490 where
1491 S: Serializer,
1492 {
1493 serializer.serialize_u64(self.0)
1494 }
1495}
1496
1497impl<'de> Deserialize<'de> for PrimaryKeyId {
1498 fn deserialize<D>(deserializer: D) -> Result<PrimaryKeyId, D::Error>
1499 where
1500 D: Deserializer<'de>,
1501 {
1502 struct U64Visitor;
1503
1504 impl Visitor<'_> for U64Visitor {
1505 type Value = PrimaryKeyId;
1506
1507 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1508 formatter.write_str("an unsigned 64-bit number")
1509 }
1510
1511 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1512 Ok(PrimaryKeyId(value))
1513 }
1514 }
1515
1516 deserializer.deserialize_u64(U64Visitor)
1517 }
1518}
1519
1520#[repr(transparent)]
1521#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1522pub struct RingBufferId(pub u64);
1523
1524impl RingBufferId {
1525 pub const REQUEST_HISTORY: RingBufferId = RingBufferId(1);
1526 pub const STATEMENT_STATS: RingBufferId = RingBufferId(2);
1527}
1528
1529impl Display for RingBufferId {
1530 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1531 Display::fmt(&self.0, f)
1532 }
1533}
1534
1535impl Deref for RingBufferId {
1536 type Target = u64;
1537
1538 fn deref(&self) -> &Self::Target {
1539 &self.0
1540 }
1541}
1542
1543impl PartialEq<u64> for RingBufferId {
1544 fn eq(&self, other: &u64) -> bool {
1545 self.0.eq(other)
1546 }
1547}
1548
1549impl From<RingBufferId> for u64 {
1550 fn from(value: RingBufferId) -> Self {
1551 value.0
1552 }
1553}
1554
1555impl RingBufferId {
1556 #[inline]
1557 pub fn to_u64(self) -> u64 {
1558 self.0
1559 }
1560}
1561
1562impl From<i32> for RingBufferId {
1563 fn from(value: i32) -> Self {
1564 Self(value as u64)
1565 }
1566}
1567
1568impl From<u64> for RingBufferId {
1569 fn from(value: u64) -> Self {
1570 Self(value)
1571 }
1572}
1573
1574impl Serialize for RingBufferId {
1575 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1576 where
1577 S: Serializer,
1578 {
1579 serializer.serialize_u64(self.0)
1580 }
1581}
1582
1583impl<'de> Deserialize<'de> for RingBufferId {
1584 fn deserialize<D>(deserializer: D) -> Result<RingBufferId, D::Error>
1585 where
1586 D: Deserializer<'de>,
1587 {
1588 struct U64Visitor;
1589
1590 impl Visitor<'_> for U64Visitor {
1591 type Value = RingBufferId;
1592
1593 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1594 formatter.write_str("an unsigned 64-bit number")
1595 }
1596
1597 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1598 Ok(RingBufferId(value))
1599 }
1600 }
1601
1602 deserializer.deserialize_u64(U64Visitor)
1603 }
1604}
1605
1606#[repr(transparent)]
1607#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1608pub struct ProcedureId(u64);
1609
1610impl ProcedureId {
1611 pub const SYSTEM_RESERVED_START: u64 = 1 << 48;
1612
1613 pub const SYSTEM_CONFIG_SET: ProcedureId = ProcedureId::persistent(1);
1614
1615 pub const fn persistent(id: u64) -> Self {
1616 assert!(id < Self::SYSTEM_RESERVED_START, "persistent ProcedureId must be below SYSTEM_RESERVED_START");
1617 Self(id)
1618 }
1619
1620 pub const fn ephemeral(id: u64) -> Self {
1621 assert!(
1622 id >= Self::SYSTEM_RESERVED_START,
1623 "ephemeral ProcedureId must be at or above SYSTEM_RESERVED_START"
1624 );
1625 Self(id)
1626 }
1627
1628 pub const fn from_raw(id: u64) -> Self {
1629 Self(id)
1630 }
1631
1632 pub const fn is_ephemeral(&self) -> bool {
1633 self.0 >= Self::SYSTEM_RESERVED_START
1634 }
1635}
1636
1637impl Display for ProcedureId {
1638 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1639 Display::fmt(&self.0, f)
1640 }
1641}
1642
1643impl Deref for ProcedureId {
1644 type Target = u64;
1645
1646 fn deref(&self) -> &Self::Target {
1647 &self.0
1648 }
1649}
1650
1651impl PartialEq<u64> for ProcedureId {
1652 fn eq(&self, other: &u64) -> bool {
1653 self.0.eq(other)
1654 }
1655}
1656
1657impl From<ProcedureId> for u64 {
1658 fn from(value: ProcedureId) -> Self {
1659 value.0
1660 }
1661}
1662
1663impl Serialize for ProcedureId {
1664 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1665 where
1666 S: Serializer,
1667 {
1668 serializer.serialize_u64(self.0)
1669 }
1670}
1671
1672impl<'de> Deserialize<'de> for ProcedureId {
1673 fn deserialize<D>(deserializer: D) -> Result<ProcedureId, D::Error>
1674 where
1675 D: Deserializer<'de>,
1676 {
1677 struct U64Visitor;
1678
1679 impl Visitor<'_> for U64Visitor {
1680 type Value = ProcedureId;
1681
1682 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1683 formatter.write_str("an unsigned 64-bit number")
1684 }
1685
1686 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1687 Ok(ProcedureId::from_raw(value))
1688 }
1689 }
1690
1691 deserializer.deserialize_u64(U64Visitor)
1692 }
1693}
1694
1695#[repr(transparent)]
1696#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1697pub struct TestId(pub u64);
1698
1699impl Display for TestId {
1700 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1701 Display::fmt(&self.0, f)
1702 }
1703}
1704
1705impl Deref for TestId {
1706 type Target = u64;
1707
1708 fn deref(&self) -> &Self::Target {
1709 &self.0
1710 }
1711}
1712
1713impl PartialEq<u64> for TestId {
1714 fn eq(&self, other: &u64) -> bool {
1715 self.0.eq(other)
1716 }
1717}
1718
1719impl From<TestId> for u64 {
1720 fn from(value: TestId) -> Self {
1721 value.0
1722 }
1723}
1724
1725impl From<i32> for TestId {
1726 fn from(value: i32) -> Self {
1727 Self(value as u64)
1728 }
1729}
1730
1731impl From<u64> for TestId {
1732 fn from(value: u64) -> Self {
1733 Self(value)
1734 }
1735}
1736
1737impl Serialize for TestId {
1738 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1739 where
1740 S: Serializer,
1741 {
1742 serializer.serialize_u64(self.0)
1743 }
1744}
1745
1746impl<'de> Deserialize<'de> for TestId {
1747 fn deserialize<D>(deserializer: D) -> Result<TestId, D::Error>
1748 where
1749 D: Deserializer<'de>,
1750 {
1751 struct U64Visitor;
1752
1753 impl Visitor<'_> for U64Visitor {
1754 type Value = TestId;
1755
1756 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1757 formatter.write_str("an unsigned 64-bit number")
1758 }
1759
1760 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1761 Ok(TestId(value))
1762 }
1763 }
1764
1765 deserializer.deserialize_u64(U64Visitor)
1766 }
1767}
1768
1769#[repr(transparent)]
1770#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1771pub struct SubscriptionId(pub u64);
1772
1773impl Display for SubscriptionId {
1774 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1775 Display::fmt(&self.0, f)
1776 }
1777}
1778
1779impl Deref for SubscriptionId {
1780 type Target = u64;
1781
1782 fn deref(&self) -> &Self::Target {
1783 &self.0
1784 }
1785}
1786
1787impl PartialEq<u64> for SubscriptionId {
1788 fn eq(&self, other: &u64) -> bool {
1789 self.0.eq(other)
1790 }
1791}
1792
1793impl From<SubscriptionId> for u64 {
1794 fn from(value: SubscriptionId) -> Self {
1795 value.0
1796 }
1797}
1798
1799impl From<u64> for SubscriptionId {
1800 fn from(value: u64) -> Self {
1801 Self(value)
1802 }
1803}
1804
1805impl Serialize for SubscriptionId {
1806 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1807 where
1808 S: Serializer,
1809 {
1810 serializer.serialize_u64(self.0)
1811 }
1812}
1813
1814impl<'de> Deserialize<'de> for SubscriptionId {
1815 fn deserialize<D>(deserializer: D) -> Result<SubscriptionId, D::Error>
1816 where
1817 D: Deserializer<'de>,
1818 {
1819 struct U64Visitor;
1820
1821 impl Visitor<'_> for U64Visitor {
1822 type Value = SubscriptionId;
1823
1824 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1825 formatter.write_str("an unsigned 64-bit number")
1826 }
1827
1828 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1829 Ok(SubscriptionId(value))
1830 }
1831 }
1832
1833 deserializer.deserialize_u64(U64Visitor)
1834 }
1835}
1836
1837#[repr(transparent)]
1838#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1839pub struct SequenceId(pub u64);
1840
1841impl Deref for SequenceId {
1842 type Target = u64;
1843
1844 fn deref(&self) -> &Self::Target {
1845 &self.0
1846 }
1847}
1848
1849impl PartialEq<u64> for SequenceId {
1850 fn eq(&self, other: &u64) -> bool {
1851 self.0.eq(other)
1852 }
1853}
1854
1855impl Serialize for SequenceId {
1856 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1857 where
1858 S: Serializer,
1859 {
1860 serializer.serialize_u64(self.0)
1861 }
1862}
1863
1864impl<'de> Deserialize<'de> for SequenceId {
1865 fn deserialize<D>(deserializer: D) -> Result<SequenceId, D::Error>
1866 where
1867 D: Deserializer<'de>,
1868 {
1869 struct U64Visitor;
1870
1871 impl Visitor<'_> for U64Visitor {
1872 type Value = SequenceId;
1873
1874 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1875 formatter.write_str("an unsigned 64-bit number")
1876 }
1877
1878 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1879 Ok(SequenceId(value))
1880 }
1881 }
1882
1883 deserializer.deserialize_u64(U64Visitor)
1884 }
1885}
1886
1887#[repr(transparent)]
1888#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1889pub struct SubscriptionColumnId(pub u64);
1890
1891impl Display for SubscriptionColumnId {
1892 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1893 Display::fmt(&self.0, f)
1894 }
1895}
1896
1897impl Deref for SubscriptionColumnId {
1898 type Target = u64;
1899
1900 fn deref(&self) -> &Self::Target {
1901 &self.0
1902 }
1903}
1904
1905impl PartialEq<u64> for SubscriptionColumnId {
1906 fn eq(&self, other: &u64) -> bool {
1907 self.0.eq(other)
1908 }
1909}
1910
1911impl From<SubscriptionColumnId> for u64 {
1912 fn from(value: SubscriptionColumnId) -> Self {
1913 value.0
1914 }
1915}
1916
1917impl From<i32> for SubscriptionColumnId {
1918 fn from(value: i32) -> Self {
1919 Self(value as u64)
1920 }
1921}
1922
1923impl From<u64> for SubscriptionColumnId {
1924 fn from(value: u64) -> Self {
1925 Self(value)
1926 }
1927}
1928
1929impl Serialize for SubscriptionColumnId {
1930 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1931 where
1932 S: Serializer,
1933 {
1934 serializer.serialize_u64(self.0)
1935 }
1936}
1937
1938impl<'de> Deserialize<'de> for SubscriptionColumnId {
1939 fn deserialize<D>(deserializer: D) -> Result<SubscriptionColumnId, D::Error>
1940 where
1941 D: Deserializer<'de>,
1942 {
1943 struct U64Visitor;
1944
1945 impl Visitor<'_> for U64Visitor {
1946 type Value = SubscriptionColumnId;
1947
1948 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
1949 formatter.write_str("an unsigned 64-bit number")
1950 }
1951
1952 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
1953 Ok(SubscriptionColumnId(value))
1954 }
1955 }
1956
1957 deserializer.deserialize_u64(U64Visitor)
1958 }
1959}
1960
1961#[repr(transparent)]
1962#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
1963pub struct SeriesId(pub u64);
1964
1965impl Display for SeriesId {
1966 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
1967 Display::fmt(&self.0, f)
1968 }
1969}
1970
1971impl Deref for SeriesId {
1972 type Target = u64;
1973
1974 fn deref(&self) -> &Self::Target {
1975 &self.0
1976 }
1977}
1978
1979impl PartialEq<u64> for SeriesId {
1980 fn eq(&self, other: &u64) -> bool {
1981 self.0.eq(other)
1982 }
1983}
1984
1985impl From<SeriesId> for u64 {
1986 fn from(value: SeriesId) -> Self {
1987 value.0
1988 }
1989}
1990
1991impl SeriesId {
1992 pub const PROFILER_QUERY_SNAPSHOTS: SeriesId = SeriesId(1024);
1993 pub const PROFILER_TXN_SNAPSHOTS: SeriesId = SeriesId(1025);
1994 pub const PROFILER_STORAGE_SNAPSHOTS: SeriesId = SeriesId(1026);
1995 pub const PROFILER_PLAN_SNAPSHOTS: SeriesId = SeriesId(1027);
1996 pub const PROFILER_CDC_SNAPSHOTS: SeriesId = SeriesId(1028);
1997 pub const PROFILER_FLOW_SNAPSHOTS: SeriesId = SeriesId(1029);
1998 pub const PROFILER_SUBSCRIPTION_SNAPSHOTS: SeriesId = SeriesId(1030);
1999 pub const PROFILER_SERVER_SNAPSHOTS: SeriesId = SeriesId(1031);
2000 pub const PROFILER_WIRE_SNAPSHOTS: SeriesId = SeriesId(1032);
2001 pub const PROFILER_AUTH_SNAPSHOTS: SeriesId = SeriesId(1033);
2002 pub const PROFILER_CATALOG_SNAPSHOTS: SeriesId = SeriesId(1034);
2003 pub const PROFILER_ENGINE_SNAPSHOTS: SeriesId = SeriesId(1035);
2004 pub const PROFILER_MUTATE_SNAPSHOTS: SeriesId = SeriesId(1036);
2005 pub const PROFILER_TRANSPORT_SNAPSHOTS: SeriesId = SeriesId(1037);
2006 pub const PROFILER_TASK_SNAPSHOTS: SeriesId = SeriesId(1038);
2007 pub const PROFILER_POLICY_SNAPSHOTS: SeriesId = SeriesId(1039);
2008 pub const PROFILER_FFI_SNAPSHOTS: SeriesId = SeriesId(1040);
2009 pub const PROFILER_CACHE_SNAPSHOTS: SeriesId = SeriesId(1043);
2010 pub const PROFILER_SHAPE_SNAPSHOTS: SeriesId = SeriesId(1044);
2011 pub const PROFILER_API_SNAPSHOTS: SeriesId = SeriesId(1045);
2012 pub const PROFILER_ACTOR_SNAPSHOTS: SeriesId = SeriesId(1046);
2013 pub const RUNTIME_MEMORY_SNAPSHOTS: SeriesId = SeriesId(1041);
2014 pub const RUNTIME_WATERMARKS_SNAPSHOTS: SeriesId = SeriesId(1042);
2015
2016 #[inline]
2017 pub fn to_u64(self) -> u64 {
2018 self.0
2019 }
2020}
2021
2022impl From<i32> for SeriesId {
2023 fn from(value: i32) -> Self {
2024 Self(value as u64)
2025 }
2026}
2027
2028impl From<u64> for SeriesId {
2029 fn from(value: u64) -> Self {
2030 Self(value)
2031 }
2032}
2033
2034impl Serialize for SeriesId {
2035 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2036 where
2037 S: Serializer,
2038 {
2039 serializer.serialize_u64(self.0)
2040 }
2041}
2042
2043impl<'de> Deserialize<'de> for SeriesId {
2044 fn deserialize<D>(deserializer: D) -> Result<SeriesId, D::Error>
2045 where
2046 D: Deserializer<'de>,
2047 {
2048 struct U64Visitor;
2049
2050 impl Visitor<'_> for U64Visitor {
2051 type Value = SeriesId;
2052
2053 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2054 formatter.write_str("an unsigned 64-bit number")
2055 }
2056
2057 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2058 Ok(SeriesId(value))
2059 }
2060 }
2061
2062 deserializer.deserialize_u64(U64Visitor)
2063 }
2064}
2065
2066#[repr(transparent)]
2067#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2068pub struct HandlerId(pub u64);
2069
2070impl Display for HandlerId {
2071 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2072 Display::fmt(&self.0, f)
2073 }
2074}
2075
2076impl Deref for HandlerId {
2077 type Target = u64;
2078
2079 fn deref(&self) -> &Self::Target {
2080 &self.0
2081 }
2082}
2083
2084impl PartialEq<u64> for HandlerId {
2085 fn eq(&self, other: &u64) -> bool {
2086 self.0.eq(other)
2087 }
2088}
2089
2090impl From<HandlerId> for u64 {
2091 fn from(value: HandlerId) -> Self {
2092 value.0
2093 }
2094}
2095
2096impl From<i32> for HandlerId {
2097 fn from(value: i32) -> Self {
2098 Self(value as u64)
2099 }
2100}
2101
2102impl From<u64> for HandlerId {
2103 fn from(value: u64) -> Self {
2104 Self(value)
2105 }
2106}
2107
2108impl Serialize for HandlerId {
2109 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2110 where
2111 S: Serializer,
2112 {
2113 serializer.serialize_u64(self.0)
2114 }
2115}
2116
2117impl<'de> Deserialize<'de> for HandlerId {
2118 fn deserialize<D>(deserializer: D) -> Result<HandlerId, D::Error>
2119 where
2120 D: Deserializer<'de>,
2121 {
2122 struct U64Visitor;
2123
2124 impl Visitor<'_> for U64Visitor {
2125 type Value = HandlerId;
2126
2127 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2128 formatter.write_str("an unsigned 64-bit number")
2129 }
2130
2131 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2132 Ok(HandlerId(value))
2133 }
2134 }
2135
2136 deserializer.deserialize_u64(U64Visitor)
2137 }
2138}
2139
2140#[repr(transparent)]
2141#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2142pub struct MigrationId(pub u64);
2143
2144impl Display for MigrationId {
2145 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2146 Display::fmt(&self.0, f)
2147 }
2148}
2149
2150impl Deref for MigrationId {
2151 type Target = u64;
2152
2153 fn deref(&self) -> &Self::Target {
2154 &self.0
2155 }
2156}
2157
2158impl PartialEq<u64> for MigrationId {
2159 fn eq(&self, other: &u64) -> bool {
2160 self.0.eq(other)
2161 }
2162}
2163
2164impl From<MigrationId> for u64 {
2165 fn from(value: MigrationId) -> Self {
2166 value.0
2167 }
2168}
2169
2170impl From<i32> for MigrationId {
2171 fn from(value: i32) -> Self {
2172 Self(value as u64)
2173 }
2174}
2175
2176impl From<u64> for MigrationId {
2177 fn from(value: u64) -> Self {
2178 Self(value)
2179 }
2180}
2181
2182impl Serialize for MigrationId {
2183 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2184 where
2185 S: Serializer,
2186 {
2187 serializer.serialize_u64(self.0)
2188 }
2189}
2190
2191impl<'de> Deserialize<'de> for MigrationId {
2192 fn deserialize<D>(deserializer: D) -> Result<MigrationId, D::Error>
2193 where
2194 D: Deserializer<'de>,
2195 {
2196 struct U64Visitor;
2197
2198 impl Visitor<'_> for U64Visitor {
2199 type Value = MigrationId;
2200
2201 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2202 formatter.write_str("an unsigned 64-bit number")
2203 }
2204
2205 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2206 Ok(MigrationId(value))
2207 }
2208 }
2209
2210 deserializer.deserialize_u64(U64Visitor)
2211 }
2212}
2213
2214#[repr(transparent)]
2215#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2216pub struct MigrationEventId(pub u64);
2217
2218impl Display for MigrationEventId {
2219 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2220 Display::fmt(&self.0, f)
2221 }
2222}
2223
2224impl Deref for MigrationEventId {
2225 type Target = u64;
2226
2227 fn deref(&self) -> &Self::Target {
2228 &self.0
2229 }
2230}
2231
2232impl PartialEq<u64> for MigrationEventId {
2233 fn eq(&self, other: &u64) -> bool {
2234 self.0.eq(other)
2235 }
2236}
2237
2238impl From<MigrationEventId> for u64 {
2239 fn from(value: MigrationEventId) -> Self {
2240 value.0
2241 }
2242}
2243
2244impl From<i32> for MigrationEventId {
2245 fn from(value: i32) -> Self {
2246 Self(value as u64)
2247 }
2248}
2249
2250impl From<u64> for MigrationEventId {
2251 fn from(value: u64) -> Self {
2252 Self(value)
2253 }
2254}
2255
2256impl Serialize for MigrationEventId {
2257 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2258 where
2259 S: Serializer,
2260 {
2261 serializer.serialize_u64(self.0)
2262 }
2263}
2264
2265impl<'de> Deserialize<'de> for MigrationEventId {
2266 fn deserialize<D>(deserializer: D) -> Result<MigrationEventId, D::Error>
2267 where
2268 D: Deserializer<'de>,
2269 {
2270 struct U64Visitor;
2271
2272 impl Visitor<'_> for U64Visitor {
2273 type Value = MigrationEventId;
2274
2275 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2276 formatter.write_str("an unsigned 64-bit number")
2277 }
2278
2279 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2280 Ok(MigrationEventId(value))
2281 }
2282 }
2283
2284 deserializer.deserialize_u64(U64Visitor)
2285 }
2286}
2287
2288#[repr(transparent)]
2289#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2290pub struct SourceId(pub u64);
2291
2292impl Display for SourceId {
2293 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2294 Display::fmt(&self.0, f)
2295 }
2296}
2297
2298impl Deref for SourceId {
2299 type Target = u64;
2300
2301 fn deref(&self) -> &Self::Target {
2302 &self.0
2303 }
2304}
2305
2306impl PartialEq<u64> for SourceId {
2307 fn eq(&self, other: &u64) -> bool {
2308 self.0.eq(other)
2309 }
2310}
2311
2312impl From<SourceId> for u64 {
2313 fn from(value: SourceId) -> Self {
2314 value.0
2315 }
2316}
2317
2318impl From<u64> for SourceId {
2319 fn from(value: u64) -> Self {
2320 Self(value)
2321 }
2322}
2323
2324impl Serialize for SourceId {
2325 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2326 where
2327 S: Serializer,
2328 {
2329 serializer.serialize_u64(self.0)
2330 }
2331}
2332
2333impl<'de> Deserialize<'de> for SourceId {
2334 fn deserialize<D>(deserializer: D) -> Result<SourceId, D::Error>
2335 where
2336 D: Deserializer<'de>,
2337 {
2338 struct U64Visitor;
2339
2340 impl Visitor<'_> for U64Visitor {
2341 type Value = SourceId;
2342
2343 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2344 formatter.write_str("an unsigned 64-bit number")
2345 }
2346
2347 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2348 Ok(SourceId(value))
2349 }
2350 }
2351
2352 deserializer.deserialize_u64(U64Visitor)
2353 }
2354}
2355
2356#[repr(transparent)]
2357#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2358pub struct BindingId(pub u64);
2359
2360impl Display for BindingId {
2361 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2362 Display::fmt(&self.0, f)
2363 }
2364}
2365
2366impl Deref for BindingId {
2367 type Target = u64;
2368
2369 fn deref(&self) -> &Self::Target {
2370 &self.0
2371 }
2372}
2373
2374impl PartialEq<u64> for BindingId {
2375 fn eq(&self, other: &u64) -> bool {
2376 self.0.eq(other)
2377 }
2378}
2379
2380impl From<BindingId> for u64 {
2381 fn from(value: BindingId) -> Self {
2382 value.0
2383 }
2384}
2385
2386impl From<u64> for BindingId {
2387 fn from(value: u64) -> Self {
2388 Self(value)
2389 }
2390}
2391
2392impl Serialize for BindingId {
2393 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2394 where
2395 S: Serializer,
2396 {
2397 serializer.serialize_u64(self.0)
2398 }
2399}
2400
2401impl<'de> Deserialize<'de> for BindingId {
2402 fn deserialize<D>(deserializer: D) -> Result<BindingId, D::Error>
2403 where
2404 D: Deserializer<'de>,
2405 {
2406 struct U64Visitor;
2407
2408 impl Visitor<'_> for U64Visitor {
2409 type Value = BindingId;
2410
2411 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2412 formatter.write_str("an unsigned 64-bit number")
2413 }
2414
2415 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2416 Ok(BindingId(value))
2417 }
2418 }
2419
2420 deserializer.deserialize_u64(U64Visitor)
2421 }
2422}
2423
2424#[repr(transparent)]
2425#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2426pub struct ColumnSnapshotId(pub u64);
2427
2428impl Display for ColumnSnapshotId {
2429 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2430 Display::fmt(&self.0, f)
2431 }
2432}
2433
2434impl Deref for ColumnSnapshotId {
2435 type Target = u64;
2436
2437 fn deref(&self) -> &Self::Target {
2438 &self.0
2439 }
2440}
2441
2442impl PartialEq<u64> for ColumnSnapshotId {
2443 fn eq(&self, other: &u64) -> bool {
2444 self.0.eq(other)
2445 }
2446}
2447
2448impl From<ColumnSnapshotId> for u64 {
2449 fn from(value: ColumnSnapshotId) -> Self {
2450 value.0
2451 }
2452}
2453
2454impl From<u64> for ColumnSnapshotId {
2455 fn from(value: u64) -> Self {
2456 Self(value)
2457 }
2458}
2459
2460impl Serialize for ColumnSnapshotId {
2461 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2462 where
2463 S: Serializer,
2464 {
2465 serializer.serialize_u64(self.0)
2466 }
2467}
2468
2469impl<'de> Deserialize<'de> for ColumnSnapshotId {
2470 fn deserialize<D>(deserializer: D) -> Result<ColumnSnapshotId, D::Error>
2471 where
2472 D: Deserializer<'de>,
2473 {
2474 struct U64Visitor;
2475
2476 impl Visitor<'_> for U64Visitor {
2477 type Value = ColumnSnapshotId;
2478
2479 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2480 formatter.write_str("an unsigned 64-bit number")
2481 }
2482
2483 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2484 Ok(ColumnSnapshotId(value))
2485 }
2486 }
2487
2488 deserializer.deserialize_u64(U64Visitor)
2489 }
2490}
2491
2492#[repr(transparent)]
2493#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Hash)]
2494pub struct SinkId(pub u64);
2495
2496impl Display for SinkId {
2497 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
2498 Display::fmt(&self.0, f)
2499 }
2500}
2501
2502impl Deref for SinkId {
2503 type Target = u64;
2504
2505 fn deref(&self) -> &Self::Target {
2506 &self.0
2507 }
2508}
2509
2510impl PartialEq<u64> for SinkId {
2511 fn eq(&self, other: &u64) -> bool {
2512 self.0.eq(other)
2513 }
2514}
2515
2516impl From<SinkId> for u64 {
2517 fn from(value: SinkId) -> Self {
2518 value.0
2519 }
2520}
2521
2522impl From<u64> for SinkId {
2523 fn from(value: u64) -> Self {
2524 Self(value)
2525 }
2526}
2527
2528impl Serialize for SinkId {
2529 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2530 where
2531 S: Serializer,
2532 {
2533 serializer.serialize_u64(self.0)
2534 }
2535}
2536
2537impl<'de> Deserialize<'de> for SinkId {
2538 fn deserialize<D>(deserializer: D) -> Result<SinkId, D::Error>
2539 where
2540 D: Deserializer<'de>,
2541 {
2542 struct U64Visitor;
2543
2544 impl Visitor<'_> for U64Visitor {
2545 type Value = SinkId;
2546
2547 fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
2548 formatter.write_str("an unsigned 64-bit number")
2549 }
2550
2551 fn visit_u64<E>(self, value: u64) -> Result<Self::Value, E> {
2552 Ok(SinkId(value))
2553 }
2554 }
2555
2556 deserializer.deserialize_u64(U64Visitor)
2557 }
2558}
2559
2560const RESERVED_USER_ID_START: u64 = 16385;
2561
2562const RESERVED_SOURCE_IDS: [u64; 25] = [
2563 RingBufferId::REQUEST_HISTORY.0,
2564 RingBufferId::STATEMENT_STATS.0,
2565 SeriesId::PROFILER_QUERY_SNAPSHOTS.0,
2566 SeriesId::PROFILER_TXN_SNAPSHOTS.0,
2567 SeriesId::PROFILER_STORAGE_SNAPSHOTS.0,
2568 SeriesId::PROFILER_PLAN_SNAPSHOTS.0,
2569 SeriesId::PROFILER_CDC_SNAPSHOTS.0,
2570 SeriesId::PROFILER_FLOW_SNAPSHOTS.0,
2571 SeriesId::PROFILER_SUBSCRIPTION_SNAPSHOTS.0,
2572 SeriesId::PROFILER_SERVER_SNAPSHOTS.0,
2573 SeriesId::PROFILER_WIRE_SNAPSHOTS.0,
2574 SeriesId::PROFILER_AUTH_SNAPSHOTS.0,
2575 SeriesId::PROFILER_CATALOG_SNAPSHOTS.0,
2576 SeriesId::PROFILER_ENGINE_SNAPSHOTS.0,
2577 SeriesId::PROFILER_MUTATE_SNAPSHOTS.0,
2578 SeriesId::PROFILER_TRANSPORT_SNAPSHOTS.0,
2579 SeriesId::PROFILER_TASK_SNAPSHOTS.0,
2580 SeriesId::PROFILER_POLICY_SNAPSHOTS.0,
2581 SeriesId::PROFILER_FFI_SNAPSHOTS.0,
2582 SeriesId::PROFILER_CACHE_SNAPSHOTS.0,
2583 SeriesId::PROFILER_SHAPE_SNAPSHOTS.0,
2584 SeriesId::PROFILER_API_SNAPSHOTS.0,
2585 SeriesId::PROFILER_ACTOR_SNAPSHOTS.0,
2586 SeriesId::RUNTIME_MEMORY_SNAPSHOTS.0,
2587 SeriesId::RUNTIME_WATERMARKS_SNAPSHOTS.0,
2588];
2589
2590const RESERVED_RINGBUFFER_COLUMNS: [ColumnId; 18] = [
2591 ColumnId::REQUEST_HISTORY_TIMESTAMP,
2592 ColumnId::REQUEST_HISTORY_OPERATION,
2593 ColumnId::REQUEST_HISTORY_FINGERPRINT,
2594 ColumnId::REQUEST_HISTORY_TOTAL_DURATION,
2595 ColumnId::REQUEST_HISTORY_COMPUTE_DURATION,
2596 ColumnId::REQUEST_HISTORY_SUCCESS,
2597 ColumnId::REQUEST_HISTORY_STATEMENT_COUNT,
2598 ColumnId::REQUEST_HISTORY_NORMALIZED_RQL,
2599 ColumnId::STATEMENT_STATS_SNAPSHOT_TIMESTAMP,
2600 ColumnId::STATEMENT_STATS_FINGERPRINT,
2601 ColumnId::STATEMENT_STATS_NORMALIZED_RQL,
2602 ColumnId::STATEMENT_STATS_CALLS,
2603 ColumnId::STATEMENT_STATS_TOTAL_DURATION,
2604 ColumnId::STATEMENT_STATS_MEAN_DURATION,
2605 ColumnId::STATEMENT_STATS_MAX_DURATION,
2606 ColumnId::STATEMENT_STATS_MIN_DURATION,
2607 ColumnId::STATEMENT_STATS_TOTAL_ROWS,
2608 ColumnId::STATEMENT_STATS_ERRORS,
2609];
2610
2611const RESERVED_COLUMN_GROUPS: [&[ColumnId]; 24] = [
2612 &RESERVED_RINGBUFFER_COLUMNS,
2613 &ColumnId::PROFILER_QUERY_SNAPSHOTS_COLUMNS,
2614 &ColumnId::PROFILER_TXN_SNAPSHOTS_COLUMNS,
2615 &ColumnId::PROFILER_STORAGE_SNAPSHOTS_COLUMNS,
2616 &ColumnId::PROFILER_PLAN_SNAPSHOTS_COLUMNS,
2617 &ColumnId::PROFILER_CDC_SNAPSHOTS_COLUMNS,
2618 &ColumnId::PROFILER_FLOW_SNAPSHOTS_COLUMNS,
2619 &ColumnId::PROFILER_SUBSCRIPTION_SNAPSHOTS_COLUMNS,
2620 &ColumnId::PROFILER_SERVER_SNAPSHOTS_COLUMNS,
2621 &ColumnId::PROFILER_WIRE_SNAPSHOTS_COLUMNS,
2622 &ColumnId::PROFILER_AUTH_SNAPSHOTS_COLUMNS,
2623 &ColumnId::PROFILER_CATALOG_SNAPSHOTS_COLUMNS,
2624 &ColumnId::PROFILER_ENGINE_SNAPSHOTS_COLUMNS,
2625 &ColumnId::PROFILER_MUTATE_SNAPSHOTS_COLUMNS,
2626 &ColumnId::PROFILER_TRANSPORT_SNAPSHOTS_COLUMNS,
2627 &ColumnId::PROFILER_TASK_SNAPSHOTS_COLUMNS,
2628 &ColumnId::PROFILER_POLICY_SNAPSHOTS_COLUMNS,
2629 &ColumnId::PROFILER_FFI_SNAPSHOTS_COLUMNS,
2630 &ColumnId::PROFILER_CACHE_SNAPSHOTS_COLUMNS,
2631 &ColumnId::PROFILER_SHAPE_SNAPSHOTS_COLUMNS,
2632 &ColumnId::PROFILER_API_SNAPSHOTS_COLUMNS,
2633 &ColumnId::PROFILER_ACTOR_SNAPSHOTS_COLUMNS,
2634 &ColumnId::RUNTIME_MEMORY_SNAPSHOTS_COLUMNS,
2635 &ColumnId::RUNTIME_WATERMARKS_SNAPSHOTS_COLUMNS,
2636];
2637
2638const fn reserved_u64_all_below(values: &[u64], limit: u64) -> bool {
2639 let mut i = 0;
2640 while i < values.len() {
2641 if values[i] >= limit {
2642 return false;
2643 }
2644 i += 1;
2645 }
2646 true
2647}
2648
2649const fn reserved_u64_has_duplicate(values: &[u64]) -> bool {
2650 let mut i = 0;
2651 while i < values.len() {
2652 let mut j = i + 1;
2653 while j < values.len() {
2654 if values[i] == values[j] {
2655 return true;
2656 }
2657 j += 1;
2658 }
2659 i += 1;
2660 }
2661 false
2662}
2663
2664const fn reserved_columns_all_below(groups: &[&[ColumnId]], limit: u64) -> bool {
2665 let mut g = 0;
2666 while g < groups.len() {
2667 let group = groups[g];
2668 let mut i = 0;
2669 while i < group.len() {
2670 if group[i].0 >= limit {
2671 return false;
2672 }
2673 i += 1;
2674 }
2675 g += 1;
2676 }
2677 true
2678}
2679
2680const fn reserved_columns_has_duplicate(groups: &[&[ColumnId]]) -> bool {
2681 let mut g1 = 0;
2682 while g1 < groups.len() {
2683 let mut i1 = 0;
2684 while i1 < groups[g1].len() {
2685 let value = groups[g1][i1].0;
2686 let mut g2 = g1;
2687 let mut i2 = i1 + 1;
2688 while g2 < groups.len() {
2689 while i2 < groups[g2].len() {
2690 if groups[g2][i2].0 == value {
2691 return true;
2692 }
2693 i2 += 1;
2694 }
2695 g2 += 1;
2696 i2 = 0;
2697 }
2698 i1 += 1;
2699 }
2700 g1 += 1;
2701 }
2702 false
2703}
2704
2705const _: () = {
2706 assert!(
2707 reserved_u64_all_below(&RESERVED_SOURCE_IDS, RESERVED_USER_ID_START),
2708 "reserved system source id leaks into the user range"
2709 );
2710 assert!(!reserved_u64_has_duplicate(&RESERVED_SOURCE_IDS), "duplicate reserved system source id");
2711 assert!(
2712 reserved_columns_all_below(&RESERVED_COLUMN_GROUPS, RESERVED_USER_ID_START),
2713 "reserved system column id leaks into the user range"
2714 );
2715 assert!(!reserved_columns_has_duplicate(&RESERVED_COLUMN_GROUPS), "duplicate reserved system column id");
2716};
2717
2718#[cfg(test)]
2719mod reserved_id_tests {
2720 use std::collections::HashSet;
2721
2722 use super::{ColumnId, RingBufferId, SeriesId};
2723
2724 const USER_ID_START: u64 = 16385;
2725
2726 fn reserved_series_ids() -> [SeriesId; 23] {
2727 [
2728 SeriesId::PROFILER_QUERY_SNAPSHOTS,
2729 SeriesId::PROFILER_TXN_SNAPSHOTS,
2730 SeriesId::PROFILER_STORAGE_SNAPSHOTS,
2731 SeriesId::PROFILER_PLAN_SNAPSHOTS,
2732 SeriesId::PROFILER_CDC_SNAPSHOTS,
2733 SeriesId::PROFILER_FLOW_SNAPSHOTS,
2734 SeriesId::PROFILER_SUBSCRIPTION_SNAPSHOTS,
2735 SeriesId::PROFILER_SERVER_SNAPSHOTS,
2736 SeriesId::PROFILER_WIRE_SNAPSHOTS,
2737 SeriesId::PROFILER_AUTH_SNAPSHOTS,
2738 SeriesId::PROFILER_CATALOG_SNAPSHOTS,
2739 SeriesId::PROFILER_ENGINE_SNAPSHOTS,
2740 SeriesId::PROFILER_MUTATE_SNAPSHOTS,
2741 SeriesId::PROFILER_TRANSPORT_SNAPSHOTS,
2742 SeriesId::PROFILER_TASK_SNAPSHOTS,
2743 SeriesId::PROFILER_POLICY_SNAPSHOTS,
2744 SeriesId::PROFILER_FFI_SNAPSHOTS,
2745 SeriesId::PROFILER_CACHE_SNAPSHOTS,
2746 SeriesId::PROFILER_SHAPE_SNAPSHOTS,
2747 SeriesId::PROFILER_API_SNAPSHOTS,
2748 SeriesId::PROFILER_ACTOR_SNAPSHOTS,
2749 SeriesId::RUNTIME_MEMORY_SNAPSHOTS,
2750 SeriesId::RUNTIME_WATERMARKS_SNAPSHOTS,
2751 ]
2752 }
2753
2754 fn reserved_column_arrays() -> [&'static [ColumnId]; 23] {
2755 [
2756 &ColumnId::PROFILER_QUERY_SNAPSHOTS_COLUMNS,
2757 &ColumnId::PROFILER_TXN_SNAPSHOTS_COLUMNS,
2758 &ColumnId::PROFILER_STORAGE_SNAPSHOTS_COLUMNS,
2759 &ColumnId::PROFILER_PLAN_SNAPSHOTS_COLUMNS,
2760 &ColumnId::PROFILER_CDC_SNAPSHOTS_COLUMNS,
2761 &ColumnId::PROFILER_FLOW_SNAPSHOTS_COLUMNS,
2762 &ColumnId::PROFILER_SUBSCRIPTION_SNAPSHOTS_COLUMNS,
2763 &ColumnId::PROFILER_SERVER_SNAPSHOTS_COLUMNS,
2764 &ColumnId::PROFILER_WIRE_SNAPSHOTS_COLUMNS,
2765 &ColumnId::PROFILER_AUTH_SNAPSHOTS_COLUMNS,
2766 &ColumnId::PROFILER_CATALOG_SNAPSHOTS_COLUMNS,
2767 &ColumnId::PROFILER_ENGINE_SNAPSHOTS_COLUMNS,
2768 &ColumnId::PROFILER_MUTATE_SNAPSHOTS_COLUMNS,
2769 &ColumnId::PROFILER_TRANSPORT_SNAPSHOTS_COLUMNS,
2770 &ColumnId::PROFILER_TASK_SNAPSHOTS_COLUMNS,
2771 &ColumnId::PROFILER_POLICY_SNAPSHOTS_COLUMNS,
2772 &ColumnId::PROFILER_FFI_SNAPSHOTS_COLUMNS,
2773 &ColumnId::PROFILER_CACHE_SNAPSHOTS_COLUMNS,
2774 &ColumnId::PROFILER_SHAPE_SNAPSHOTS_COLUMNS,
2775 &ColumnId::PROFILER_API_SNAPSHOTS_COLUMNS,
2776 &ColumnId::PROFILER_ACTOR_SNAPSHOTS_COLUMNS,
2777 &ColumnId::RUNTIME_MEMORY_SNAPSHOTS_COLUMNS,
2778 &ColumnId::RUNTIME_WATERMARKS_SNAPSHOTS_COLUMNS,
2779 ]
2780 }
2781
2782 #[test]
2783 fn system_series_ids_are_reserved_unique_and_below_user_range() {
2784 let mut seen = HashSet::new();
2785 assert!(seen.insert(RingBufferId::REQUEST_HISTORY.0), "ringbuffer source id setup");
2786 assert!(seen.insert(RingBufferId::STATEMENT_STATS.0), "ringbuffer source id setup");
2787
2788 for id in reserved_series_ids() {
2789 assert!(id.0 < USER_ID_START, "system series id {} leaks into the user range", id.0);
2790 assert!(
2791 seen.insert(id.0),
2792 "system series id {} collides with another reserved source id",
2793 id.0
2794 );
2795 }
2796 }
2797
2798 #[test]
2799 fn system_column_ids_are_reserved_unique_and_below_user_range() {
2800 let mut seen = HashSet::new();
2801 for ringbuffer_column in 1..=18u64 {
2802 assert!(seen.insert(ringbuffer_column), "ringbuffer column id setup");
2803 }
2804
2805 let mut count = 0;
2806 for array in reserved_column_arrays() {
2807 for &id in array {
2808 assert!(id.0 < USER_ID_START, "system column id {} leaks into the user range", id.0);
2809 assert!(
2810 seen.insert(id.0),
2811 "system column id {} collides with another reserved column id",
2812 id.0
2813 );
2814 count += 1;
2815 }
2816 }
2817
2818 assert_eq!(count, 21 * 22 + 2 * 5, "expected exactly 472 reserved system column ids");
2819 }
2820
2821 #[test]
2822 fn profiler_snapshot_arrays_have_22_columns_and_runtime_have_5() {
2823 for array in &reserved_column_arrays()[..21] {
2824 assert_eq!(array.len(), 22, "profiler snapshot series must declare 22 column ids");
2825 }
2826 for array in &reserved_column_arrays()[21..] {
2827 assert_eq!(array.len(), 5, "runtime snapshot series must declare 5 column ids");
2828 }
2829 }
2830}