Skip to content

Fix last_deployment Eager Load for Environment Dashboard

Shinya Maeda requested to merge optimize-environment-dasshboard-query into master

What does this MR do?

This MR fixes last_deployment eager load for environment dashboard.

It fetches only the latest deployments per environment, so that subsequent deployable eager load effectively targets small amount of samples.

Here is the queries before the optimization.

pre optimization SELECT MAX("environments"."id"), COUNT("environments"."id") FROM "environments" WHERE "environments"."project_id" IN ($1, $2, $3) AND ("environments"."state" IN ('available')) GROUP BY COALESCE(environment_type, name), project_id [["project_id", 459], ["project_id", 492], ["project_id", 525]] SELECT "environments".* FROM "environments" WHERE "environments"."project_id" IN ($1, $2, $3) AND ("environments"."state" IN ('available')) AND "environments"."id" IN ($4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32) [["project_id", 459], ["project_id", 492], ["project_id", 525], ["id", 51], ["id", 4274], ["id", 1167], ["id", 460], ["id", 52], ["id", 1066], ["id", 50], ["id", 4272], ["id", 1268], ["id", 49], ["id", 33], ["id", 39], ["id", 42], ["id", 3270], ["id", 662], ["id", 48], ["id", 4273], ["id", 34], ["id", 864], ["id", 763], ["id", 965], ["id", 40], ["id", 43], ["id", 4271], ["id", 38], ["id", 47], ["id", 41], ["id", 2269], ["id", 561]] SELECT "projects".* FROM "projects" WHERE "projects"."id" IN ($1, $2, $3) [["id", 459], ["id", 492], ["id", 525]] SELECT "deployments".* FROM "deployments" WHERE "deployments"."status" = $1 AND "deployments"."environment_id" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30) ORDER BY deployments.id DESC [["status", 2], ["environment_id", 33], ["environment_id", 34], ["environment_id", 38], ["environment_id", 39], ["environment_id", 40], ["environment_id", 41], ["environment_id", 42], ["environment_id", 43], ["environment_id", 47], ["environment_id", 48], ["environment_id", 49], ["environment_id", 50], ["environment_id", 51], ["environment_id", 52], ["environment_id", 460], ["environment_id", 561], ["environment_id", 662], ["environment_id", 763], ["environment_id", 864], ["environment_id", 965], ["environment_id", 1066], ["environment_id", 1167], ["environment_id", 1268], ["environment_id", 2269], ["environment_id", 3270], ["environment_id", 4271], ["environment_id", 4272], ["environment_id", 4273], ["environment_id", 4274]] SELECT "projects".* FROM "projects" WHERE "projects"."id" IN ($1, $2, $3) [["id", 525], ["id", 492], ["id", 459]] SELECT "ci_builds".* FROM "ci_builds" WHERE "ci_builds"."id" IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110, $111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121, $122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132, $133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143, $144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $154, $155, $156, $157, $158, $159, $160, $161, $162, $163, $164, $165, $166, $167, $168, $169, $170, $171, $172, $173, $174, $175, $176, $177, $178, $179, $180, $181, $182, $183, $184, $185, $186, $187, $188, $189, $190, $191, $192, $193, $194, $195, $196, $197, $198, $199, $200, $201, $202, $203, $204, $205, $206, $207, $208, $209, $210, $211, $212, $213, $214, $215, $216, $217, $218, $219, $220, $221, $222, $223, $224, $225, $226, $227, $228, $229, $230, $231, $232, $233, $234, $235, $236, $237, $238, $239, $240, $241, $242, $243, $244, $245, $246, $247, $248, $249, $250, $251, $252, $253, $254, $255, $256, $257, $258, $259, $260, $261, $262, $263, $264, $265, $266, $267, $268, $269, $270, $271, $272, $273, $274, $275, $276, $277, $278, $279, $280, $281, $282, $283, $284, $285, $286, $287, $288, $289, $290, $291, $292, $293, $294, $295, $296, $297, $298, $299, $300, $301, $302, $303, $304, $305, $306, $307, $308, $309, $310, $311, $312, $313, $314, $315, $316, $317, $318, $319, $320, $321, $322, $323, $324, $325, $326, $327, $328, $329, $330, $331, $332, $333, $334, $335, $336, $337, $338, $339, $340, $341, $342, $343, $344, $345, $346, $347, $348, $349, $350, $351, $352, $353, $354, $355, $356, $357, $358, $359, $360, $361, $362, $363, $364, $365, $366, $367, $368, $369, $370, $371, $372, $373, $374, $375, $376, $377, $378, $379, $380, $381, $382, $383, $384, $385, $386, $387, $388, $389, $390, $391, $392, $393, $394, $395, $396, $397, $398, $399, $400, $401, $402, $403, $404, $405, $406, $407, $408, $409, $410, $411, $412, $413, $414, $415, $416, $417, $418, $419, $420, $421, $422, $423, $424, $425, $426, $427, $428, $429, $430, $431, $432, $433, $434, $435, $436, $437, $438, $439, $440, $441, $442, $443, $444, $445, $446, $447, $448, $449, $450, $451, $452, $453, $454, $455, $456, $457, $458, $459, $460, $461, $462, $463, $464, $465, $466, $467, $468, $469, $470, $471, $472, $473, $474, $475, $476, $477, $478, $479, $480, $481, $482, $483, $484, $485, $486, $487, $488, $489, $490, $491, $492, $493, $494, $495, $496, $497, $498, $499, $500, $501, $502, $503, $504, $505, $506, $507, $508, $509, $510, $511, $512, $513, $514, $515, $516, $517, $518, $519, $520, $521, $522, $523, $524, $525, $526, $527, $528, $529, $530, $531, $532, $533, $534, $535, $536, $537, $538, $539, $540, $541, $542, $543, $544, $545, $546, $547, $548, $549, $550, $551, $552, $553, $554, $555, $556, $557, $558, $559, $560, $561, $562, $563, $564, $565, $566, $567, $568, $569, $570, $571, $572, $573, $574, $575, $576, $577, $578, $579, $580, $581, $582, $583, $584, $585, $586, $587, $588, $589, $590, $591, $592, $593, $594, $595, $596, $597, $598, $599, $600, $601, $602, $603, $604, $605, $606, $607, $608, $609, $610, $611, $612, $613, $614, $615, $616, $617, $618, $619, $620, $621, $622, $623, $624, $625, $626, $627, $628, $629, $630, $631, $632, $633, $634, $635, $636, $637, $638, $639, $640, $641, $642, $643, $644, $645, $646, $647, $648, $649, $650, $651, $652, $653, $654, $655, $656, $657, $658, $659, $660, $661, $662, $663, $664, $665, $666, $667, $668, $669, $670, $671, $672, $673, $674, $675, $676, $677, $678, $679, $680, $681, $682, $683, $684, $685, $686, $687, $688, $689, $690, $691, $692, $693, $694, $695, $696, $697, $698, $699, $700, $701, $702, $703, $704, $705, $706, $707, $708, $709, $710, $711, $712, $713, $714, $715, $716, $717, $718, $719, $720, $721, $722, $723, $724, $725, $726, $727, $728, $729, $730, $731, $732, $733, $734, $735, $736, $737, $738, $739, $740, $741, $742, $743, $744, $745, $746, $747, $748, $749, $750, $751, $752, $753, $754, $755, $756, $757, $758, $759, $760, $761, $762, $763, $764, $765, $766, $767, $768, $769, $770, $771, $772, $773, $774, $775, $776, $777, $778, $779, $780, $781, $782, $783, $784, $785, $786, $787, $788, $789, $790, $791, $792, $793, $794, $795, $796, $797, $798, $799, $800, $801, $802, $803, $804, $805, $806, $807, $808, $809, $810, $811, $812, $813, $814, $815, $816, $817, $818, $819, $820, $821, $822, $823, $824, $825, $826, $827, $828, $829, $830, $831, $832, $833, $834, $835, $836, $837, $838, $839, $840, $841, $842, $843, $844, $845, $846, $847, $848, $849, $850, $851, $852, $853, $854, $855, $856, $857, $858, $859, $860, $861, $862, $863, $864, $865, $866, $867, $868, $869, $870, $871, $872, $873, $874, $875, $876, $877, $878, $879, $880, $881, $882, $883, $884, $885, $886, $887, $888, $889, $890, $891, $892, $893, $894, $895, $896, $897, $898, $899, $900, $901, $902, $903, $904, $905, $906, $907, $908, $909, $910, $911, $912, $913, $914, $915, $916, $917, $918, $919, $920, $921, $922, $923, $924, $925, $926, $927, $928, $929, $930, $931, $932, $933, $934, $935, $936, $937, $938, $939, $940, $941, $942, $943, $944, $945, $946, $947, $948, $949, $950, $951, $952, $953, $954, $955, $956, $957, $958, $959, $960, $961, $962, $963, $964, $965, $966, $967, $968, $969, $970, $971, $972, $973, $974, $975, $976, $977, $978, $979, $980, $981, $982, $983, $984, $985, $986, $987, $988, $989, $990, $991, $992, $993, $994, $995, $996, $997, $998, $999, $1000, $1001, $1002, $1003, $1004, $1005, $1006, $1007, $1008, $1009, $1010, $1011, $1012, $1013, $1014, $1015, $1016, $1017, $1018, $1019, $1020, $1021, $1022, $1023, $1024, $1025, $1026, $1027, $1028, $1029, $1030, $1031, $1032, $1033, $1034, $1035, $1036, $1037, $1038, $1039, $1040, $1041, $1042, $1043, $1044, $1045, $1046, $1047, $1048, $1049, $1050, $1051, $1052, $1053, $1054, $1055, $1056, $1057, $1058, $1059, $1060, $1061, $1062, $1063, $1064, $1065, $1066, $1067, $1068, $1069, $1070, $1071, $1072, $1073, $1074, $1075, $1076, $1077, $1078, $1079, $1080, $1081, $1082, $1083, $1084, $1085, $1086, $1087, $1088, $1089, $1090, $1091, $1092, $1093, $1094, $1095, $1096, $1097, $1098, $1099, $1100, $1101, $1102, $1103, $1104, $1105, $1106, $1107, $1108, $1109, $1110, $1111, $1112, $1113, $1114, $1115, $1116, $1117, $1118, $1119, $1120, $1121, $1122, $1123, $1124, $1125, $1126, $1127, $1128, $1129, $1130, $1131, $1132, $1133, $1134, $1135, $1136, $1137, $1138, $1139, $1140, $1141, $1142, $1143, $1144, $1145, $1146, $1147, $1148, $1149, $1150, $1151, $1152, $1153, $1154, $1155, $1156, $1157, $1158, $1159, $1160, $1161, $1162, $1163, $1164, $1165, $1166, $1167, $1168, $1169, $1170, $1171, $1172, $1173, $1174, $1175, $1176, $1177, $1178, $1179, $1180, $1181, $1182, $1183, $1184, $1185, $1186, $1187, $1188, $1189, $1190, $1191, $1192, $1193, $1194, $1195, $1196, $1197, $1198, $1199, $1200, $1201, $1202, $1203, $1204, $1205, $1206, $1207, $1208, $1209, $1210, $1211, $1212, $1213, $1214, $1215, $1216, $1217, $1218, $1219, $1220, $1221, $1222, $1223, $1224, $1225, $1226, $1227, $1228, $1229, $1230, $1231, $1232, $1233, $1234, $1235, $1236, $1237, $1238, $1239, $1240, $1241, $1242, $1243, $1244, $1245, $1246, $1247, $1248, $1249, $1250, $1251, $1252, $1253, $1254, $1255, $1256, $1257, $1258, $1259, $1260, $1261, $1262, $1263, $1264, $1265, $1266, $1267, $1268, $1269, $1270, $1271, $1272, $1273, $1274, $1275, $1276, $1277, $1278, $1279, $1280, $1281, $1282, $1283, $1284, $1285, $1286, $1287, $1288, $1289, $1290, $1291, $1292, $1293, $1294, $1295, $1296, $1297, $1298, $1299, $1300, $1301, $1302, $1303, $1304, $1305, $1306, $1307, $1308, $1309, $1310, $1311, $1312, $1313, $1314, $1315, $1316, $1317, $1318, $1319, $1320, $1321, $1322, $1323, $1324, $1325, $1326, $1327, $1328, $1329, $1330, $1331, $1332, $1333, $1334, $1335, $1336, $1337, $1338, $1339, $1340, $1341, $1342, $1343, $1344, $1345, $1346, $1347, $1348, $1349, $1350, $1351, $1352, $1353, $1354, $1355, $1356, $1357, $1358, $1359, $1360, $1361, $1362, $1363, $1364, $1365, $1366, $1367, $1368, $1369, $1370, $1371, $1372, $1373, $1374, $1375, $1376, $1377, $1378, $1379, $1380, $1381, $1382, $1383, $1384, $1385, $1386, $1387, $1388, $1389, $1390, $1391, $1392, $1393, $1394, $1395, $1396, $1397, $1398, $1399, $1400, $1401, $1402, $1403, $1404, $1405, $1406, $1407, $1408) [["id", 331], ["id", 130], ["id", 1188], ["id", 251], ["id", 2140], ["id", 1785], ["id", 1169], ["id", 1986], ["id", 495], ["id", 1116], ["id", 1118], ["id", 540], ["id", 1530], ["id", 11], ["id", 187], ["id", 1701], ["id", 1920], ["id", 1267], ["id", 218], ["id", 670], ["id", 1900], ["id", 414], ["id", 2026], ["id", 1571], ["id", 2091], ["id", 178], ["id", 896], ["id", 898], ["id", 1673], ["id", 3], ["id", 237], ["id", 102], ["id", 1], ["id", 118], ["id", 2094], ["id", 110], ["id", 215], ["id", 667], ["id", 745], ["id", 347], ["id", 1272], ["id", 27], ["id", 1844], ["id", 1965], ["id", 1378], ["id", 1251], ["id", 711], ["id", 680], ["id", 1998], ["id", 1294], ["id", 1954], ["id", 1252], ["id", 219], ["id", 2086], ["id", 1707], ["id", 1574], ["id", 1903], ["id", 736], ["id", 649], ["id", 305], ["id", 367], ["id", 368], ["id", 335], ["id", 1440], ["id", 583], ["id", 1913], ["id", 1247], ["id", 338], ["id", 398], ["id", 950], ["id", 1047], ["id", 509], ["id", 912], ["id", 2036], ["id", 2119], ["id", 238], ["id", 1174], ["id", 288], ["id", 409], ["id", 613], ["id", 1747], ["id", 2030], ["id", 403], ["id", 557], ["id", 1114], ["id", 90], ["id", 2013], ["id", 824], ["id", 2047], ["id", 117], ["id", 1982], ["id", 551], ["id", 854], ["id", 517], ["id", 253], ["id", 1240], ["id", 286], ["id", 991], ["id", 770], ["id", 1527], ["id", 77], ["id", 1175], ["id", 1916], ["id", 1523], ["id", 1203], ["id", 739], ["id", 638], ["id", 321], ["id", 864], ["id", 1225], ["id", 32], ["id", 2038], ["id", 256], ["id", 760], ["id", 1243], ["id", 1281], ["id", 141], ["id", 618], ["id", 740], ["id", 1374], ["id", 628], ["id", 965], ["id", 352], ["id", 393], ["id", 1731], ["id", 596], ["id", 792], ["id", 1560], ["id", 1204], ["id", 647], ["id", 602], ["id", 785], ["id", 1706], ["id", 108], ["id", 860], ["id", 1245], ["id", 1906], ["id", 810], ["id", 239], ["id", 850], ["id", 748], ["id", 1756], ["id", 425], ["id", 1513], ["id", 429], ["id", 24], ["id", 575], ["id", 99], ["id", 330], ["id", 386], ["id", 200], ["id", 1727], ["id", 1973], ["id", 1737], ["id", 1667], ["id", 1517], ["id", 1516], ["id", 1677], ["id", 1525], ["id", 1734], ["id", 1229], ["id", 2108], ["id", 1572], ["id", 1783], ["id", 364], ["id", 669], ["id", 534], ["id", 1232], ["id", 1223], ["id", 604], ["id", 2073], ["id", 1570], ["id", 692], ["id", 285], ["id", 1190], ["id", 59], ["id", 677], ["id", 125], ["id", 359], ["id", 2129], ["id", 1676], ["id", 2065], ["id", 654], ["id", 415], ["id", 1943], ["id", 634], ["id", 2022], ["id", 1498], ["id", 395], ["id", 1837], ["id", 31], ["id", 454], ["id", 1289], ["id", 179], ["id", 112], ["id", 576], ["id", 1683], ["id", 685], ["id", 209], ["id", 128], ["id", 87], ["id", 1686], ["id", 1904], ["id", 981], ["id", 92], ["id", 2066], ["id", 845], ["id", 1432], ["id", 1199], ["id", 1831], ["id", 220], ["id", 1828], ["id", 1936], ["id", 164], ["id", 666], ["id", 45], ["id", 326], ["id", 766], ["id", 29], ["id", 1450], ["id", 1231], ["id", 1723], ["id", 1678], ["id", 356], ["id", 1915], ["id", 492], ["id", 1569], ["id", 301], ["id", 993], ["id", 124], ["id", 312], ["id", 2179], ["id", 2075], ["id", 348], ["id", 978], ["id", 2110], ["id", 926], ["id", 2023], ["id", 228], ["id", 254], ["id", 580], ["id", 258], ["id", 570], ["id", 827], ["id", 227], ["id", 917], ["id", 872], ["id", 1227], ["id", 2001], ["id", 531], ["id", 135], ["id", 1375], ["id", 1423], ["id", 292], ["id", 1205], ["id", 527], ["id", 1182], ["id", 921], ["id", 1961], ["id", 1939], ["id", 265], ["id", 1956], ["id", 346], ["id", 1902], ["id", 953], ["id", 1360], ["id", 975], ["id", 787], ["id", 1748], ["id", 913], ["id", 851], ["id", 1935], ["id", 1971], ["id", 994], ["id", 920], ["id", 1690], ["id", 2098], ["id", 1773], ["id", 1576], ["id", 1222], ["id", 627], ["id", 2117], ["id", 281], ["id", 350], ["id", 188], ["id", 1960], ["id", 2016], ["id", 1221], ["id", 687], ["id", 761], ["id", 383], ["id", 2050], ["id", 561], ["id", 717], ["id", 1271], ["id", 1937], ["id", 1005], ["id", 1292], ["id", 134], ["id", 738], ["id", 1989], ["id", 1522], ["id", 734], ["id", 2177], ["id", 1529], ["id", 846], ["id", 542], ["id", 195], ["id", 857], ["id", 486], ["id", 375], ["id", 432], ["id", 773], ["id", 992], ["id", 2099], ["id", 329], ["id", 1422], ["id", 700], ["id", 341], ["id", 319], ["id", 2089], ["id", 1003], ["id", 1985], ["id", 927], ["id", 663], ["id", 902], ["id", 160], ["id", 240], ["id", 1006], ["id", 339], ["id", 1993], ["id", 565], ["id", 458], ["id", 881], ["id", 519], ["id", 471], ["id", 1580], ["id", 206], ["id", 2078], ["id", 632], ["id", 539], ["id", 1841], ["id", 741], ["id", 1438], ["id", 2034], ["id", 1928], ["id", 1729], ["id", 9], ["id", 731], ["id", 1274], ["id", 1823], ["id", 40], ["id", 691], ["id", 1681], ["id", 139], ["id", 61], ["id", 2079], ["id", 794], ["id", 759], ["id", 1912], ["id", 815], ["id", 1659], ["id", 225], ["id", 212], ["id", 448], ["id", 791], ["id", 1655], ["id", 955], ["id", 890], ["id", 1192], ["id", 1183], ["id", 997], ["id", 1564], ["id", 962], ["id", 620], ["id", 248], ["id", 909], ["id", 428], ["id", 35], ["id", 2125], ["id", 1042], ["id", 1273], ["id", 1359], ["id", 1685], ["id", 236], ["id", 572], ["id", 2021], ["id", 1759], ["id", 430], ["id", 297], ["id", 635], ["id", 834], ["id", 266], ["id", 154], ["id", 260], ["id", 353], ["id", 560], ["id", 2045], ["id", 2032], ["id", 140], ["id", 578], ["id", 1288], ["id", 1663], ["id", 1692], ["id", 466], ["id", 340], ["id", 584], ["id", 1357], ["id", 725], ["id", 703], ["id", 1762], ["id", 2015], ["id", 449], ["id", 1456], ["id", 2003], ["id", 875], ["id", 1373], ["id", 944], ["id", 1679], ["id", 1977], ["id", 929], ["id", 174], ["id", 1177], ["id", 643], ["id", 205], ["id", 704], ["id", 1857], ["id", 780], ["id", 376], ["id", 182], ["id", 976], ["id", 1581], ["id", 605], ["id", 73], ["id", 1284], ["id", 611], ["id", 568], ["id", 1714], ["id", 1730], ["id", 1781], ["id", 1665], ["id", 1661], ["id", 511], ["id", 1755], ["id", 2024], ["id", 204], ["id", 1262], ["id", 104], ["id", 1990], ["id", 243], ["id", 419], ["id", 496], ["id", 2109], ["id", 615], ["id", 316], ["id", 261], ["id", 1854], ["id", 853], ["id", 505], ["id", 345], ["id", 1957], ["id", 842], ["id", 2123], ["id", 2058], ["id", 1291], ["id", 1984], ["id", 277], ["id", 883], ["id", 1193], ["id", 2005], ["id", 2017], ["id", 127], ["id", 1439], ["id", 263], ["id", 1209], ["id", 1135], ["id", 2009], ["id", 417], ["id", 132], ["id", 877], ["id", 1832], ["id", 2063], ["id", 639], ["id", 1840], ["id", 457], ["id", 1504], ["id", 379], ["id", 1180], ["id", 298], ["id", 1113], ["id", 1380], ["id", 970], ["id", 796], ["id", 69], ["id", 697], ["id", 960], ["id", 1895], ["id", 1945], ["id", 749], ["id", 1991], ["id", 111], ["id", 1215], ["id", 619], ["id", 1693], ["id", 2169], ["id", 48], ["id", 678], ["id", 320], ["id", 2046], ["id", 569], ["id", 1668], ["id", 1133], ["id", 1575], ["id", 1370], ["id", 54], ["id", 1417], ["id", 1260], ["id", 349], ["id", 131], ["id", 1757], ["id", 1855], ["id", 1108], ["id", 1975], ["id", 91], ["id", 1705], ["id", 1132], ["id", 640], ["id", 1434], ["id", 221], ["id", 521], ["id", 2116], ["id", 416], ["id", 530], ["id", 2134], ["id", 1688], ["id", 888], ["id", 268], ["id", 426], ["id", 614], ["id", 2092], ["id", 573], ["id", 789], ["id", 616], ["id", 612], ["id", 224], ["id", 681], ["id", 1774], ["id", 1509], ["id", 1427], ["id", 1261], ["id", 193], ["id", 1181], ["id", 1733], ["id", 995], ["id", 284], ["id", 686], ["id", 964], ["id", 562], ["id", 843], ["id", 1507], ["id", 2048], ["id", 1521], ["id", 1664], ["id", 986], ["id", 814], ["id", 633], ["id", 406], ["id", 137], ["id", 538], ["id", 1510], ["id", 1927], ["id", 1978], ["id", 2010], ["id", 650], ["id", 774], ["id", 1761], ["id", 782], ["id", 510], ["id", 57], ["id", 201], ["id", 558], ["id", 1684], ["id", 876], ["id", 463], ["id", 1201], ["id", 1110], ["id", 1680], ["id", 1219], ["id", 718], ["id", 1670], ["id", 1454], ["id", 564], ["id", 133], ["id", 436], ["id", 184], ["id", 914], ["id", 18], ["id", 1075], ["id", 278], ["id", 1503], ["id", 515], ["id", 1236], ["id", 757], ["id", 848], ["id", 146], ["id", 313], ["id", 665], ["id", 626], ["id", 1129], ["id", 153], ["id", 190], ["id", 1947], ["id", 1194], ["id", 2100], ["id", 1196], ["id", 2053], ["id", 501], ["id", 2000], ["id", 293], ["id", 1953], ["id", 1172], ["id", 2170], ["id", 522], ["id", 1202], ["id", 980], ["id", 1914], ["id", 625], ["id", 776], ["id", 799], ["id", 1736], ["id", 1377], ["id", 79], ["id", 1178], ["id", 1896], ["id", 1753], ["id", 1121], ["id", 644], ["id", 1829], ["id", 1929], ["id", 230], ["id", 1246], ["id", 197], ["id", 1938], ["id", 977], ["id", 1926], ["id", 518], ["id", 283], ["id", 2180], ["id", 167], ["id", 1710], ["id", 1011], ["id", 597], ["id", 1821], ["id", 502], ["id", 129], ["id", 397], ["id", 1691], ["id", 2130], ["id", 617], ["id", 1436], ["id", 581], ["id", 456], ["id", 1818], ["id", 513], ["id", 468], ["id", 1208], ["id", 847], ["id", 593], ["id", 96], ["id", 1007], ["id", 446], ["id", 1720], ["id", 1048], ["id", 1453], ["id", 34], ["id", 600], ["id", 871], ["id", 571], ["id", 1270], ["id", 1197], ["id", 328], ["id", 6], ["id", 196], ["id", 730], ["id", 460], ["id", 361], ["id", 404], ["id", 1698], ["id", 70], ["id", 443], ["id", 1109], ["id", 363], ["id", 1858], ["id", 1263], ["id", 844], ["id", 1764], ["id", 1499], ["id", 1566], ["id", 2143], ["id", 591], ["id", 1496], ["id", 333], ["id", 1115], ["id", 275], ["id", 1662], ["id", 2103], ["id", 1825], ["id", 17], ["id", 768], ["id", 282], ["id", 1848], ["id", 1187], ["id", 1615], ["id", 2083], ["id", 1666], ["id", 287], ["id", 1242], ["id", 1901], ["id", 705], ["id", 1376], ["id", 74], ["id", 1824], ["id", 413], ["id", 1746], ["id", 469], ["id", 582], ["id", 956], ["id", 1430], ["id", 852], ["id", 878], ["id", 2115], ["id", 948], ["id", 916], ["id", 1716], ["id", 889], ["id", 566], ["id", 918], ["id", 930], ["id", 1843], ["id", 1742], ["id", 2141], ["id", 423], ["id", 177], ["id", 1893], ["id", 44], ["id", 1671], ["id", 12], ["id", 895], ["id", 2064], ["id", 302], ["id", 1897], ["id", 485], ["id", 1447], ["id", 967], ["id", 2090], ["id", 932], ["id", 304], ["id", 989], ["id", 15], ["id", 39], ["id", 743], ["id", 830], ["id", 1210], ["id", 866], ["id", 999], ["id", 969], ["id", 106], ["id", 707], ["id", 80], ["id", 1856], ["id", 958], ["id", 849], ["id", 559], ["id", 76], ["id", 384], ["id", 1711], ["id", 1997], ["id", 290], ["id", 729], ["id", 1934], ["id", 973], ["id", 1458], ["id", 1696], ["id", 1725], ["id", 1211], ["id", 2041], ["id", 421], ["id", 2120], ["id", 1364], ["id", 1195], ["id", 823], ["id", 89], ["id", 226], ["id", 165], ["id", 1250], ["id", 482], ["id", 464], ["id", 2096], ["id", 1528], ["id", 2068], ["id", 14], ["id", 2070], ["id", 255], ["id", 653], ["id", 2095], ["id", 507], ["id", 465], ["id", 1779], ["id", 216], ["id", 688], ["id", 478], ["id", 233], ["id", 314], ["id", 2107], ["id", 587], ["id", 392], ["id", 391], ["id", 385], ["id", 97], ["id", 702], ["id", 214], ["id", 1512], ["id", 2126], ["id", 1836], ["id", 475], ["id", 1126], ["id", 1565], ["id", 2043], ["id", 2105], ["id", 879], ["id", 2102], ["id", 904], ["id", 535], ["id", 1524], ["id", 2081], ["id", 2171], ["id", 788], ["id", 1379], ["id", 1704], ["id", 2002], ["id", 1415], ["id", 1265], ["id", 585], ["id", 1660], ["id", 1750], ["id", 271], ["id", 549], ["id", 498], ["id", 232], ["id", 1743], ["id", 334], ["id", 442], ["id", 1822], ["id", 138], ["id", 93], ["id", 276], ["id", 624], ["id", 1784], ["id", 523], ["id", 2054], ["id", 873], ["id", 1777], ["id", 2104], ["id", 1735], ["id", 804], ["id", 595], ["id", 1046], ["id", 806], ["id", 1457], ["id", 710], ["id", 719], ["id", 533], ["id", 217], ["id", 1942], ["id", 1672], ["id", 176], ["id", 1925], ["id", 786], ["id", 1367], ["id", 508], ["id", 109], ["id", 959], ["id", 979], ["id", 939], ["id", 825], ["id", 148], ["id", 472], ["id", 264], ["id", 1362], ["id", 1718], ["id", 1044], ["id", 374], ["id", 1726], ["id", 390], ["id", 812], ["id", 811], ["id", 103], ["id", 1198], ["id", 1988], ["id", 481], ["id", 1946], ["id", 528], ["id", 807], ["id", 1433], ["id", 309], ["id", 835], ["id", 769], ["id", 1910], ["id", 2072], ["id", 1827], ["id", 660], ["id", 922], ["id", 351], ["id", 838], ["id", 554], ["id", 2049], ["id", 1127], ["id", 23], ["id", 1518], ["id", 380], ["id", 244], ["id", 245], ["id", 161], ["id", 547], ["id", 1847], ["id", 1111], ["id", 661], ["id", 865], ["id", 1511], ["id", 1618], ["id", 2113], ["id", 1778], ["id", 910], ["id", 563], ["id", 169], ["id", 2035], ["id", 524], ["id", 675], ["id", 1285], ["id", 1958], ["id", 2062], ["id", 113], ["id", 440], ["id", 1974], ["id", 1420], ["id", 915], ["id", 382], ["id", 1768], ["id", 822], ["id", 577], ["id", 891], ["id", 1573], ["id", 499], ["id", 648], ["id", 1722], ["id", 1996], ["id", 907], ["id", 655], ["id", 1959], ["id", 742], ["id", 598], ["id", 303], ["id", 1962], ["id", 487], ["id", 2080], ["id", 1428], ["id", 631], ["id", 38], ["id", 1617], ["id", 1239], ["id", 1010], ["id", 1124], ["id", 892], ["id", 919], ["id", 360], ["id", 982], ["id", 1502], ["id", 1621], ["id", 758], ["id", 1361], ["id", 447], ["id", 1448], ["id", 512], ["id", 961], ["id", 737], ["id", 1442], ["id", 1620], ["id", 1369], ["id", 1009], ["id", 1917], ["id", 550], ["id", 145], ["id", 532], ["id", 33], ["id", 520], ["id", 1241], ["id", 946], ["id", 270], ["id", 1682], ["id", 900], ["id", 1234], ["id", 453], ["id", 762], ["id", 802], ["id", 327], ["id", 1780], ["id", 862], ["id", 2056], ["id", 2031], ["id", 156], ["id", 371], ["id", 990], ["id", 646], ["id", 235], ["id", 764], ["id", 1699], ["id", 121], ["id", 553], ["id", 1908], ["id", 1459], ["id", 65], ["id", 362], ["id", 652], ["id", 257], ["id", 494], ["id", 839], ["id", 1995], ["id", 2133], ["id", 1256], ["id", 1419], ["id", 1952], ["id", 1185], ["id", 795], ["id", 1833], ["id", 500], ["id", 1112], ["id", 833], ["id", 332], ["id", 1830], ["id", 545], ["id", 689], ["id", 2076], ["id", 81], ["id", 1834], ["id", 829], ["id", 715], ["id", 1562], ["id", 2071], ["id", 355], ["id", 16], ["id", 317], ["id", 935], ["id", 1712], ["id", 2137], ["id", 46], ["id", 733], ["id", 1253], ["id", 1898], ["id", 1899], ["id", 832], ["id", 659], ["id", 1851], ["id", 143], ["id", 1170], ["id", 1220], ["id", 2121], ["id", 671], ["id", 1994], ["id", 998], ["id", 28], ["id", 621], ["id", 694], ["id", 142], ["id", 1444], ["id", 50], ["id", 470], ["id", 1999], ["id", 450], ["id", 951], ["id", 2101], ["id", 308], ["id", 721], ["id", 608], ["id", 2144], ["id", 682], ["id", 514], ["id", 1122], ["id", 56], ["id", 1226], ["id", 318], ["id", 410], ["id", 949], ["id", 1424], ["id", 506], ["id", 295], ["id", 1248], ["id", 1932], ["id", 43], ["id", 906], ["id", 1658], ["id", 151], ["id", 1724], ["id", 1520], ["id", 279], ["id", 589], ["id", 37], ["id", 784], ["id", 744], ["id", 2114], ["id", 1123], ["id", 144], ["id", 800], ["id", 503], ["id", 170], ["id", 1969], ["id", 818], ["id", 455], ["id", 905], ["id", 662], ["id", 911], ["id", 746], ["id", 1931], ["id", 213], ["id", 1358], ["id", 1293], ["id", 2061], ["id", 1708], ["id", 708], ["id", 1964], ["id", 1214], ["id", 435], ["id", 1244], ["id", 473], ["id", 779], ["id", 696], ["id", 1578], ["id", 901], ["id", 64], ["id", 191], ["id", 389], ["id", 599], ["id", 250], ["id", 754], ["id", 55], ["id", 5], ["id", 2097], ["id", 1120], ["id", 41], ["id", 1923], ["id", 556], ["id", 445], ["id", 2042], ["id", 928], ["id", 1514], ["id", 831], ["id", 272], ["id", 775], ["id", 1745], ["id", 13], ["id", 2033], ["id", 1741], ["id", 996], ["id", 937], ["id", 1697], ["id", 424], ["id", 452], ["id", 837], ["id", 664], ["id", 488], ["id", 1776], ["id", 1909], ["id", 342], ["id", 427], ["id", 2082], ["id", 868], ["id", 372], ["id", 88], ["id", 2174], ["id", 1238], ["id", 2127], ["id", 1268], ["id", 2037], ["id", 1043], ["id", 85], ["id", 726], ["id", 175], ["id", 1045], ["id", 699], ["id", 401], ["id", 1365], ["id", 1918], ["id", 747], ["id", 1216], ["id", 493], ["id", 1371], ["id", 1264], ["id", 755], ["id", 1445], ["id", 162], ["id", 2060], ["id", 444], ["id", 1987], ["id", 727], ["id", 1709], ["id", 805], ["id", 262], ["id", 299], ["id", 1191], ["id", 150], ["id", 2069], ["id", 606], ["id", 1845], ["id", 781], ["id", 1515], ["id", 656], ["id", 115], ["id", 1176], ["id", 370], ["id", 411], ["id", 817], ["id", 1907], ["id", 1819], ["id", 8], ["id", 516], ["id", 2172], ["id", 422], ["id", 1002], ["id", 1282], ["id", 58], ["id", 1738], ["id", 684], ["id", 62], ["id", 433], ["id", 1749], ["id", 555], ["id", 2131], ["id", 291], ["id", 387], ["id", 1275], ["id", 1255], ["id", 1416], ["id", 1249], ["id", 543], ["id", 2004], ["id", 752], ["id", 1850], ["id", 166], ["id", 322], ["id", 180], ["id", 636], ["id", 1237], ["id", 400], ["id", 2014], ["id", 1919], ["id", 49], ["id", 701], ["id", 2138], ["id", 1508], ["id", 1173], ["id", 1966], ["id", 1579], ["id", 2142], ["id", 2012], ["id", 771], ["id", 480], ["id", 899], ["id", 86], ["id", 20], ["id", 1763], ["id", 772], ["id", 1186], ["id", 544], ["id", 716], ["id", 940], ["id", 1775], ["id", 296], ["id", 1463], ["id", 1228], ["id", 1426], ["id", 821], ["id", 323], ["id", 1218], ["id", 548], ["id", 354], ["id", 1446], ["id", 808], ["id", 100], ["id", 249], ["id", 396], ["id", 897], ["id", 826], ["id", 1455], ["id", 229], ["id", 82], ["id", 803], ["id", 722], ["id", 943], ["id", 438], ["id", 2074], ["id", 1765], ["id", 1758], ["id", 1955], ["id", 1189], ["id", 709], ["id", 2040], ["id", 1519], ["id", 1766], ["id", 813], ["id", 325], ["id", 1933], ["id", 2111], ["id", 2052], ["id", 529], ["id", 1949], ["id", 2020], ["id", 1561], ["id", 1657], ["id", 942], ["id", 1752], ["id", 101], ["id", 394], ["id", 1207], ["id", 623], ["id", 1892], ["id", 365], ["id", 208], ["id", 933], ["id", 461], ["id", 984], ["id", 1728], ["id", 1721], ["id", 1695], ["id", 972], ["id", 310], ["id", 1449], ["id", 476], ["id", 1001], ["id", 869], ["id", 1130], ["id", 2039], ["id", 793], ["id", 2], ["id", 246], ["id", 78], ["id", 1559], ["id", 2084], ["id", 1460], ["id", 1425], ["id", 1497], ["id", 2055], ["id", 1128], ["id", 306], ["id", 1179], ["id", 2008], ["id", 801], ["id", 941], ["id", 94], ["id", 1184], ["id", 1979], ["id", 186], ["id", 1689], ["id", 629], ["id", 1835], ["id", 451], ["id", 706], ["id", 1363], ["id", 885], ["id", 324], ["id", 1366], ["id", 2018], ["id", 1429], ["id", 957], ["id", 676], ["id", 1278], ["id", 2087], ["id", 116], ["id", 841], ["id", 867], ["id", 1941], ["id", 234], ["id", 1981], ["id", 622], ["id", 809], ["id", 1760], ["id", 863], ["id", 586], ["id", 887], ["id", 1930], ["id", 431], ["id", 381], ["id", 1968], ["id", 402], ["id", 474], ["id", 658], ["id", 408], ["id", 2175], ["id", 68], ["id", 1233], ["id", 83], ["id", 405], ["id", 223], ["id", 2178], ["id", 2173], ["id", 2006], ["id", 1972], ["id", 2088], ["id", 2025], ["id", 1849]] SELECT "users".* FROM "users" WHERE "users"."id" IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19) [["id", 9], ["id", 25], ["id", 23], ["id", 1], ["id", 26], ["id", 6], ["id", 3], ["id", 21], ["id", 8], ["id", 11], ["id", 14], ["id", 2], ["id", 13], ["id", 12], ["id", 5], ["id", 4], ["id", 7], ["id", 10], ["id", 50]]
post optimization SELECT MAX("environments"."id"), COUNT("environments"."id") FROM "environments" WHERE "environments"."project_id" IN ($1, $2, $3) AND ("environments"."state" IN ('available')) GROUP BY COALESCE(environment_type, name), project_id [["project_id", 459], ["project_id", 492], ["project_id", 525]] SELECT "environments".* FROM "environments" WHERE "environments"."project_id" IN ($1, $2, $3) AND ("environments"."state" IN ('available')) AND "environments"."id" IN ($4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32) [["project_id", 459], ["project_id", 492], ["project_id", 525], ["id", 51], ["id", 4274], ["id", 1167], ["id", 460], ["id", 52], ["id", 1066], ["id", 50], ["id", 4272], ["id", 1268], ["id", 49], ["id", 33], ["id", 39], ["id", 42], ["id", 3270], ["id", 662], ["id", 48], ["id", 4273], ["id", 34], ["id", 864], ["id", 763], ["id", 965], ["id", 40], ["id", 43], ["id", 4271], ["id", 38], ["id", 47], ["id", 41], ["id", 2269], ["id", 561]] SELECT "projects".* FROM "projects" WHERE "projects"."id" IN ($1, $2, $3) [["id", 459], ["id", 492], ["id", 525]] SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = $1 [["id", 1]] SELECT DISTINCT ON (environment_id) deployments.* FROM "deployments" WHERE "deployments"."status" = $1 AND "deployments"."environment_id" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30) ORDER BY environment_id, deployments.id DESC [["status", 2], ["environment_id", 33], ["environment_id", 34], ["environment_id", 38], ["environment_id", 39], ["environment_id", 40], ["environment_id", 41], ["environment_id", 42], ["environment_id", 43], ["environment_id", 47], ["environment_id", 48], ["environment_id", 49], ["environment_id", 50], ["environment_id", 51], ["environment_id", 52], ["environment_id", 460], ["environment_id", 561], ["environment_id", 662], ["environment_id", 763], ["environment_id", 864], ["environment_id", 965], ["environment_id", 1066], ["environment_id", 1167], ["environment_id", 1268], ["environment_id", 2269], ["environment_id", 3270], ["environment_id", 4271], ["environment_id", 4272], ["environment_id", 4273], ["environment_id", 4274]] SELECT "projects".* FROM "projects" WHERE "projects"."id" IN ($1, $2, $3) [["id", 459], ["id", 492], ["id", 525]] SELECT "ci_builds".* FROM "ci_builds" WHERE "ci_builds"."id" IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) [["id", 2144], ["id", 1849], ["id", 2008], ["id", 2178], ["id", 68], ["id", 73], ["id", 2076], ["id", 1043], ["id", 932], ["id", 331]] SELECT "users".* FROM "users" WHERE "users"."id" IN ($1, $2, $3, $4, $5) [["id", 26], ["id", 23], ["id", 21], ["id", 4], ["id", 1]]

Related: #33609 (closed)

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Kamil Trzciński

Merge request reports