diff --git a/data_substrate b/data_substrate index 0ee68ce2451..7c0a42621ce 160000 --- a/data_substrate +++ b/data_substrate @@ -1 +1 @@ -Subproject commit 0ee68ce2451e4a0f6a46b37f1d289038279ef4be +Subproject commit 7c0a42621ceaae1283ae0a8a531796b49c547a3a diff --git a/storage/eloq/mysql-test/mono_basic/r/range_read_block_on_write_lock.result b/storage/eloq/mysql-test/mono_basic/r/range_read_block_on_write_lock.result new file mode 100644 index 00000000000..fbad715119e --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/r/range_read_block_on_write_lock.result @@ -0,0 +1,4157 @@ +set @@default_storage_engine= eloq; +DROP TABLE IF EXISTS t1; +# Test: Range reads SHOULD block when range split holds write lock +# When range split holds write lock (Phase 2-3), reads should block +# because write locks are exclusive and incompatible with read locks. +create table t1 (c0 int auto_increment, c1 char(250), c2 char(250), c3 char(250), c4 int, primary key(c0)); +insert into t1 values (0,'initial', 'data', 'row', 1); +SET SESSION debug_dbug="+d,eloq;term_SplitFlushOp_CommitAcquireAllWriteOp_Continue;node_id=-1"; +SET SESSION debug_dbug="+d,eloq;at_once;node_id=-1;action=NOTIFY_CHECKPOINTER"; +connect conn_read1,localhost,root,,test,$MONO1_PORT; +connect conn_read2,localhost,root,,test,$MONO1_PORT; +connect conn_read3,localhost,root,,test,$MONO1_PORT; +# Test Case 1: Single read should BLOCK (not complete immediately) +connection conn_read1; +begin; +select count(*) from t1;; +connection default; +# Test Case 2: Multiple concurrent reads should all BLOCK +connection conn_read2; +begin; +select count(*) from t1 where c4 = 1;; +connection conn_read3; +begin; +select c0, c1, c2 from t1 order by c0;; +connection default; +# Printing processlist before verification: +# Test Case 3: Complete the range split (releases write lock) +SET SESSION debug_dbug="-d,eloq;term_SplitFlushOp_CommitAcquireAllWriteOp_Continue;node_id=-1"; +# Test Case 4: Verify blocked reads complete after write lock is released +connection conn_read1; +count(*) +2048 +select count(*) from t1; +count(*) +2048 +commit; +connection conn_read2; +count(*) +2048 +select count(*) from t1 where c4 = 1; +count(*) +2048 +commit; +connection conn_read3; +c0 c1 c2 +1 initial data +2 initial data +3 initial data +4 initial data +6 initial data +7 initial data +8 initial data +9 initial data +13 initial data +14 initial data +15 initial data +16 initial data +17 initial data +18 initial data +19 initial data +20 initial data +28 initial data +29 initial data +30 initial data +31 initial data +32 initial data +33 initial data +34 initial data +35 initial data +36 initial data +37 initial data +38 initial data +39 initial data +40 initial data +41 initial data +42 initial data +43 initial data +59 initial data +60 initial data +61 initial data +62 initial data +63 initial data +64 initial data +65 initial data +66 initial data +67 initial data +68 initial data +69 initial data +70 initial data +71 initial data +72 initial data +73 initial data +74 initial data +75 initial data +76 initial data +77 initial data +78 initial data +79 initial data +80 initial data +81 initial data +82 initial data +83 initial data +84 initial data +85 initial data +86 initial data +87 initial data +88 initial data +89 initial data +90 initial data +122 initial data +123 initial data +124 initial data +125 initial data +126 initial data +127 initial data +128 initial data +129 initial data +130 initial data +131 initial data +132 initial data +133 initial data +134 initial data +135 initial data +136 initial data +137 initial data +138 initial data +139 initial data +140 initial data +141 initial data +142 initial data +143 initial data +144 initial data +145 initial data +146 initial data +147 initial data +148 initial data +149 initial data +150 initial data +151 initial data +152 initial data +153 initial data +154 initial data +155 initial data +156 initial data +157 initial data +158 initial data +159 initial data +160 initial data +161 initial data +162 initial data +163 initial data +164 initial data +165 initial data +166 initial data +167 initial data +168 initial data +169 initial data +170 initial data +171 initial data +172 initial data +173 initial data +174 initial data +175 initial data +176 initial data +177 initial data +178 initial data +179 initial data +180 initial data +181 initial data +182 initial data +183 initial data +184 initial data +185 initial data +249 initial data +250 initial data +251 initial data +252 initial data +253 initial data +254 initial data +255 initial data +256 initial data +257 initial data +258 initial data +259 initial data +260 initial data +261 initial data +262 initial data +263 initial data +264 initial data +265 initial data +266 initial data +267 initial data +268 initial data +269 initial data +270 initial data +271 initial data +272 initial data +273 initial data +274 initial data +275 initial data +276 initial data +277 initial data +278 initial data +279 initial data +280 initial data +281 initial data +282 initial data +283 initial data +284 initial data +285 initial data +286 initial data +287 initial data +288 initial data +289 initial data +290 initial data +291 initial data +292 initial data +293 initial data +294 initial data +295 initial data +296 initial data +297 initial data +298 initial data +299 initial data +300 initial data +301 initial data +302 initial data +303 initial data +304 initial data +305 initial data +306 initial data +307 initial data +308 initial data +309 initial data +310 initial data +311 initial data +312 initial data +313 initial data +314 initial data +315 initial data +316 initial data +317 initial data +318 initial data +319 initial data +320 initial data +321 initial data +322 initial data +323 initial data +324 initial data +325 initial data +326 initial data +327 initial data +328 initial data +329 initial data +330 initial data +331 initial data +332 initial data +333 initial data +334 initial data +335 initial data +336 initial data +337 initial data +338 initial data +339 initial data +340 initial data +341 initial data +342 initial data +343 initial data +344 initial data +345 initial data +346 initial data +347 initial data +348 initial data +349 initial data +350 initial data +351 initial data +352 initial data +353 initial data +354 initial data +355 initial data +356 initial data +357 initial data +358 initial data +359 initial data +360 initial data +361 initial data +362 initial data +363 initial data +364 initial data +365 initial data +366 initial data +367 initial data +368 initial data +369 initial data +370 initial data +371 initial data +372 initial data +373 initial data +374 initial data +375 initial data +376 initial data +497 initial data +498 initial data +499 initial data +500 initial data +501 initial data +502 initial data +503 initial data +504 initial data +505 initial data +506 initial data +507 initial data +508 initial data +509 initial data +510 initial data +511 initial data +512 initial data +513 initial data +514 initial data +515 initial data +516 initial data +517 initial data +518 initial data +519 initial data +520 initial data +521 initial data +522 initial data +523 initial data +524 initial data +525 initial data +526 initial data +527 initial data +528 initial data +529 initial data +530 initial data +531 initial data +532 initial data +533 initial data +534 initial data +535 initial data +536 initial data +537 initial data +538 initial data +539 initial data +540 initial data +541 initial data +542 initial data +543 initial data +544 initial data +545 initial data +546 initial data +547 initial data +548 initial data +549 initial data +550 initial data +551 initial data +552 initial data +553 initial data +554 initial data +555 initial data +556 initial data +557 initial data +558 initial data +559 initial data +560 initial data +561 initial data +562 initial data +563 initial data +564 initial data +565 initial data +566 initial data +567 initial data +568 initial data +569 initial data +570 initial data +571 initial data +572 initial data +573 initial data +574 initial data +575 initial data +576 initial data +577 initial data +578 initial data +579 initial data +580 initial data +581 initial data +582 initial data +583 initial data +584 initial data +585 initial data +586 initial data +587 initial data +588 initial data +589 initial data +590 initial data +591 initial data +592 initial data +593 initial data +594 initial data +595 initial data +596 initial data +597 initial data +598 initial data +599 initial data +600 initial data +601 initial data +602 initial data +603 initial data +604 initial data +605 initial data +606 initial data +607 initial data +608 initial data +609 initial data +610 initial data +611 initial data +612 initial data +613 initial data +614 initial data +615 initial data +616 initial data +617 initial data +618 initial data +619 initial data +620 initial data +621 initial data +622 initial data +623 initial data +624 initial data +625 initial data +626 initial data +627 initial data +628 initial data +629 initial data +630 initial data +631 initial data +632 initial data +633 initial data +634 initial data +635 initial data +636 initial data +637 initial data +638 initial data +639 initial data +640 initial data +641 initial data +642 initial data +643 initial data +644 initial data +645 initial data +646 initial data +647 initial data +648 initial data +649 initial data +650 initial data +651 initial data +652 initial data +653 initial data +654 initial data +655 initial data +656 initial data +657 initial data +658 initial data +659 initial data +660 initial data +661 initial data +662 initial data +663 initial data +664 initial data +665 initial data +666 initial data +667 initial data +668 initial data +669 initial data +670 initial data +671 initial data +672 initial data +673 initial data +674 initial data +675 initial data +676 initial data +677 initial data +678 initial data +679 initial data +680 initial data +681 initial data +682 initial data +683 initial data +684 initial data +685 initial data +686 initial data +687 initial data +688 initial data +689 initial data +690 initial data +691 initial data +692 initial data +693 initial data +694 initial data +695 initial data +696 initial data +697 initial data +698 initial data +699 initial data +700 initial data +701 initial data +702 initial data +703 initial data +704 initial data +705 initial data +706 initial data +707 initial data +708 initial data +709 initial data +710 initial data +711 initial data +712 initial data +713 initial data +714 initial data +715 initial data +716 initial data +717 initial data +718 initial data +719 initial data +720 initial data +721 initial data +722 initial data +723 initial data +724 initial data +725 initial data +726 initial data +727 initial data +728 initial data +729 initial data +730 initial data +731 initial data +732 initial data +733 initial data +734 initial data +735 initial data +736 initial data +737 initial data +738 initial data +739 initial data +740 initial data +741 initial data +742 initial data +743 initial data +744 initial data +745 initial data +746 initial data +747 initial data +748 initial data +749 initial data +750 initial data +751 initial data +752 initial data +769 initial data +770 initial data +771 initial data +772 initial data +773 initial data +774 initial data +775 initial data +776 initial data +777 initial data +778 initial data +779 initial data +780 initial data +781 initial data +782 initial data +783 initial data +784 initial data +785 initial data +786 initial data +787 initial data +788 initial data +789 initial data +790 initial data +791 initial data +792 initial data +793 initial data +794 initial data +795 initial data +796 initial data +797 initial data +798 initial data +799 initial data +800 initial data +801 initial data +802 initial data +803 initial data +804 initial data +805 initial data +806 initial data +807 initial data +808 initial data +809 initial data +810 initial data +811 initial data +812 initial data +813 initial data +814 initial data +815 initial data +816 initial data +817 initial data +818 initial data +819 initial data +820 initial data +821 initial data +822 initial data +823 initial data +824 initial data +825 initial data +826 initial data +827 initial data +828 initial data +829 initial data +830 initial data +831 initial data +832 initial data +833 initial data +834 initial data +835 initial data +836 initial data +837 initial data +838 initial data +839 initial data +840 initial data +841 initial data +842 initial data +843 initial data +844 initial data +845 initial data +846 initial data +847 initial data +848 initial data +849 initial data +850 initial data +851 initial data +852 initial data +853 initial data +854 initial data +855 initial data +856 initial data +857 initial data +858 initial data +859 initial data +860 initial data +861 initial data +862 initial data +863 initial data +864 initial data +865 initial data +866 initial data +867 initial data +868 initial data +869 initial data +870 initial data +871 initial data +872 initial data +873 initial data +874 initial data +875 initial data +876 initial data +877 initial data +878 initial data +879 initial data +880 initial data +881 initial data +882 initial data +883 initial data +884 initial data +885 initial data +886 initial data +887 initial data +888 initial data +889 initial data +890 initial data +891 initial data +892 initial data +893 initial data +894 initial data +895 initial data +896 initial data +897 initial data +898 initial data +899 initial data +900 initial data +901 initial data +902 initial data +903 initial data +904 initial data +905 initial data +906 initial data +907 initial data +908 initial data +909 initial data +910 initial data +911 initial data +912 initial data +913 initial data +914 initial data +915 initial data +916 initial data +917 initial data +918 initial data +919 initial data +920 initial data +921 initial data +922 initial data +923 initial data +924 initial data +925 initial data +926 initial data +927 initial data +928 initial data +929 initial data +930 initial data +931 initial data +932 initial data +933 initial data +934 initial data +935 initial data +936 initial data +937 initial data +938 initial data +939 initial data +940 initial data +941 initial data +942 initial data +943 initial data +944 initial data +945 initial data +946 initial data +947 initial data +948 initial data +949 initial data +950 initial data +951 initial data +952 initial data +953 initial data +954 initial data +955 initial data +956 initial data +957 initial data +958 initial data +959 initial data +960 initial data +961 initial data +962 initial data +963 initial data +964 initial data +965 initial data +966 initial data +967 initial data +968 initial data +969 initial data +970 initial data +971 initial data +972 initial data +973 initial data +974 initial data +975 initial data +976 initial data +977 initial data +978 initial data +979 initial data +980 initial data +981 initial data +982 initial data +983 initial data +984 initial data +985 initial data +986 initial data +987 initial data +988 initial data +989 initial data +990 initial data +991 initial data +992 initial data +993 initial data +994 initial data +995 initial data +996 initial data +997 initial data +998 initial data +999 initial data +1000 initial data +1001 initial data +1002 initial data +1003 initial data +1004 initial data +1005 initial data +1006 initial data +1007 initial data +1008 initial data +1009 initial data +1010 initial data +1011 initial data +1012 initial data +1013 initial data +1014 initial data +1015 initial data +1016 initial data +1017 initial data +1018 initial data +1019 initial data +1020 initial data +1021 initial data +1022 initial data +1023 initial data +1024 initial data +1025 initial data +1026 initial data +1027 initial data +1028 initial data +1029 initial data +1030 initial data +1031 initial data +1032 initial data +1033 initial data +1034 initial data +1035 initial data +1036 initial data +1037 initial data +1038 initial data +1039 initial data +1040 initial data +1041 initial data +1042 initial data +1043 initial data +1044 initial data +1045 initial data +1046 initial data +1047 initial data +1048 initial data +1049 initial data +1050 initial data +1051 initial data +1052 initial data +1053 initial data +1054 initial data +1055 initial data +1056 initial data +1057 initial data +1058 initial data +1059 initial data +1060 initial data +1061 initial data +1062 initial data +1063 initial data +1064 initial data +1065 initial data +1066 initial data +1067 initial data +1068 initial data +1069 initial data +1070 initial data +1071 initial data +1072 initial data +1073 initial data +1074 initial data +1075 initial data +1076 initial data +1077 initial data +1078 initial data +1079 initial data +1080 initial data +1081 initial data +1082 initial data +1083 initial data +1084 initial data +1085 initial data +1086 initial data +1087 initial data +1088 initial data +1089 initial data +1090 initial data +1091 initial data +1092 initial data +1093 initial data +1094 initial data +1095 initial data +1096 initial data +1097 initial data +1098 initial data +1099 initial data +1100 initial data +1101 initial data +1102 initial data +1103 initial data +1104 initial data +1105 initial data +1106 initial data +1107 initial data +1108 initial data +1109 initial data +1110 initial data +1111 initial data +1112 initial data +1113 initial data +1114 initial data +1115 initial data +1116 initial data +1117 initial data +1118 initial data +1119 initial data +1120 initial data +1121 initial data +1122 initial data +1123 initial data +1124 initial data +1125 initial data +1126 initial data +1127 initial data +1128 initial data +1129 initial data +1130 initial data +1131 initial data +1132 initial data +1133 initial data +1134 initial data +1135 initial data +1136 initial data +1137 initial data +1138 initial data +1139 initial data +1140 initial data +1141 initial data +1142 initial data +1143 initial data +1144 initial data +1145 initial data +1146 initial data +1147 initial data +1148 initial data +1149 initial data +1150 initial data +1151 initial data +1152 initial data +1153 initial data +1154 initial data +1155 initial data +1156 initial data +1157 initial data +1158 initial data +1159 initial data +1160 initial data +1161 initial data +1162 initial data +1163 initial data +1164 initial data +1165 initial data +1166 initial data +1167 initial data +1168 initial data +1169 initial data +1170 initial data +1171 initial data +1172 initial data +1173 initial data +1174 initial data +1175 initial data +1176 initial data +1177 initial data +1178 initial data +1179 initial data +1180 initial data +1181 initial data +1182 initial data +1183 initial data +1184 initial data +1185 initial data +1186 initial data +1187 initial data +1188 initial data +1189 initial data +1190 initial data +1191 initial data +1192 initial data +1193 initial data +1194 initial data +1195 initial data +1196 initial data +1197 initial data +1198 initial data +1199 initial data +1200 initial data +1201 initial data +1202 initial data +1203 initial data +1204 initial data +1205 initial data +1206 initial data +1207 initial data +1208 initial data +1209 initial data +1210 initial data +1211 initial data +1212 initial data +1213 initial data +1214 initial data +1215 initial data +1216 initial data +1217 initial data +1218 initial data +1219 initial data +1220 initial data +1221 initial data +1222 initial data +1223 initial data +1224 initial data +1225 initial data +1226 initial data +1227 initial data +1228 initial data +1229 initial data +1230 initial data +1231 initial data +1232 initial data +1233 initial data +1234 initial data +1235 initial data +1236 initial data +1237 initial data +1238 initial data +1239 initial data +1240 initial data +1241 initial data +1242 initial data +1243 initial data +1244 initial data +1245 initial data +1246 initial data +1247 initial data +1248 initial data +1249 initial data +1250 initial data +1251 initial data +1252 initial data +1253 initial data +1254 initial data +1255 initial data +1256 initial data +1257 initial data +1258 initial data +1259 initial data +1260 initial data +1261 initial data +1262 initial data +1263 initial data +1264 initial data +1265 initial data +1266 initial data +1267 initial data +1268 initial data +1269 initial data +1270 initial data +1271 initial data +1272 initial data +1273 initial data +1274 initial data +1275 initial data +1276 initial data +1277 initial data +1278 initial data +1279 initial data +1280 initial data +1281 initial data +1282 initial data +1283 initial data +1284 initial data +1285 initial data +1286 initial data +1287 initial data +1288 initial data +1289 initial data +1290 initial data +1291 initial data +1292 initial data +1293 initial data +1294 initial data +1295 initial data +1296 initial data +1297 initial data +1298 initial data +1299 initial data +1300 initial data +1301 initial data +1302 initial data +1303 initial data +1304 initial data +1305 initial data +1306 initial data +1307 initial data +1308 initial data +1309 initial data +1310 initial data +1311 initial data +1312 initial data +1313 initial data +1314 initial data +1315 initial data +1316 initial data +1317 initial data +1318 initial data +1319 initial data +1320 initial data +1321 initial data +1322 initial data +1323 initial data +1324 initial data +1325 initial data +1326 initial data +1327 initial data +1328 initial data +1329 initial data +1330 initial data +1331 initial data +1332 initial data +1333 initial data +1334 initial data +1335 initial data +1336 initial data +1337 initial data +1338 initial data +1339 initial data +1340 initial data +1341 initial data +1342 initial data +1343 initial data +1344 initial data +1345 initial data +1346 initial data +1347 initial data +1348 initial data +1349 initial data +1350 initial data +1351 initial data +1352 initial data +1353 initial data +1354 initial data +1355 initial data +1356 initial data +1357 initial data +1358 initial data +1359 initial data +1360 initial data +1361 initial data +1362 initial data +1363 initial data +1364 initial data +1365 initial data +1366 initial data +1367 initial data +1368 initial data +1369 initial data +1370 initial data +1371 initial data +1372 initial data +1373 initial data +1374 initial data +1375 initial data +1376 initial data +1377 initial data +1378 initial data +1379 initial data +1380 initial data +1381 initial data +1382 initial data +1383 initial data +1384 initial data +1385 initial data +1386 initial data +1387 initial data +1388 initial data +1389 initial data +1390 initial data +1391 initial data +1392 initial data +1393 initial data +1394 initial data +1395 initial data +1396 initial data +1397 initial data +1398 initial data +1399 initial data +1400 initial data +1401 initial data +1402 initial data +1403 initial data +1404 initial data +1405 initial data +1406 initial data +1407 initial data +1408 initial data +1409 initial data +1410 initial data +1411 initial data +1412 initial data +1413 initial data +1414 initial data +1415 initial data +1416 initial data +1417 initial data +1418 initial data +1419 initial data +1420 initial data +1421 initial data +1422 initial data +1423 initial data +1424 initial data +1425 initial data +1426 initial data +1427 initial data +1428 initial data +1429 initial data +1430 initial data +1431 initial data +1432 initial data +1433 initial data +1434 initial data +1435 initial data +1436 initial data +1437 initial data +1438 initial data +1439 initial data +1440 initial data +1441 initial data +1442 initial data +1443 initial data +1444 initial data +1445 initial data +1446 initial data +1447 initial data +1448 initial data +1449 initial data +1450 initial data +1451 initial data +1452 initial data +1453 initial data +1454 initial data +1455 initial data +1456 initial data +1457 initial data +1458 initial data +1459 initial data +1460 initial data +1461 initial data +1462 initial data +1463 initial data +1464 initial data +1465 initial data +1466 initial data +1467 initial data +1468 initial data +1469 initial data +1470 initial data +1471 initial data +1472 initial data +1473 initial data +1474 initial data +1475 initial data +1476 initial data +1477 initial data +1478 initial data +1479 initial data +1480 initial data +1481 initial data +1482 initial data +1483 initial data +1484 initial data +1485 initial data +1486 initial data +1487 initial data +1488 initial data +1489 initial data +1490 initial data +1491 initial data +1492 initial data +1493 initial data +1494 initial data +1495 initial data +1496 initial data +1497 initial data +1498 initial data +1499 initial data +1500 initial data +1501 initial data +1502 initial data +1503 initial data +1504 initial data +1505 initial data +1506 initial data +1507 initial data +1508 initial data +1509 initial data +1510 initial data +1511 initial data +1512 initial data +1513 initial data +1514 initial data +1515 initial data +1516 initial data +1517 initial data +1518 initial data +1519 initial data +1520 initial data +1521 initial data +1522 initial data +1523 initial data +1524 initial data +1525 initial data +1526 initial data +1527 initial data +1528 initial data +1529 initial data +1530 initial data +1531 initial data +1532 initial data +1533 initial data +1534 initial data +1535 initial data +1536 initial data +1537 initial data +1538 initial data +1539 initial data +1540 initial data +1541 initial data +1542 initial data +1543 initial data +1544 initial data +1545 initial data +1546 initial data +1547 initial data +1548 initial data +1549 initial data +1550 initial data +1551 initial data +1552 initial data +1553 initial data +1554 initial data +1555 initial data +1556 initial data +1557 initial data +1558 initial data +1559 initial data +1560 initial data +1561 initial data +1562 initial data +1563 initial data +1564 initial data +1565 initial data +1566 initial data +1567 initial data +1568 initial data +1569 initial data +1570 initial data +1571 initial data +1572 initial data +1573 initial data +1574 initial data +1575 initial data +1576 initial data +1577 initial data +1578 initial data +1579 initial data +1580 initial data +1581 initial data +1582 initial data +1583 initial data +1584 initial data +1585 initial data +1586 initial data +1587 initial data +1588 initial data +1589 initial data +1590 initial data +1591 initial data +1592 initial data +1593 initial data +1594 initial data +1595 initial data +1596 initial data +1597 initial data +1598 initial data +1599 initial data +1600 initial data +1601 initial data +1602 initial data +1603 initial data +1604 initial data +1605 initial data +1606 initial data +1607 initial data +1608 initial data +1609 initial data +1610 initial data +1611 initial data +1612 initial data +1613 initial data +1614 initial data +1615 initial data +1616 initial data +1617 initial data +1618 initial data +1619 initial data +1620 initial data +1621 initial data +1622 initial data +1623 initial data +1624 initial data +1625 initial data +1626 initial data +1627 initial data +1628 initial data +1629 initial data +1630 initial data +1631 initial data +1632 initial data +1633 initial data +1634 initial data +1635 initial data +1636 initial data +1637 initial data +1638 initial data +1639 initial data +1640 initial data +1641 initial data +1642 initial data +1643 initial data +1644 initial data +1645 initial data +1646 initial data +1647 initial data +1648 initial data +1649 initial data +1650 initial data +1651 initial data +1652 initial data +1653 initial data +1654 initial data +1655 initial data +1656 initial data +1657 initial data +1658 initial data +1659 initial data +1660 initial data +1661 initial data +1662 initial data +1663 initial data +1664 initial data +1665 initial data +1666 initial data +1667 initial data +1668 initial data +1669 initial data +1670 initial data +1671 initial data +1672 initial data +1673 initial data +1674 initial data +1675 initial data +1676 initial data +1677 initial data +1678 initial data +1679 initial data +1680 initial data +1681 initial data +1682 initial data +1683 initial data +1684 initial data +1685 initial data +1686 initial data +1687 initial data +1688 initial data +1689 initial data +1690 initial data +1691 initial data +1692 initial data +1693 initial data +1694 initial data +1695 initial data +1696 initial data +1697 initial data +1698 initial data +1699 initial data +1700 initial data +1701 initial data +1702 initial data +1703 initial data +1704 initial data +1705 initial data +1706 initial data +1707 initial data +1708 initial data +1709 initial data +1710 initial data +1711 initial data +1712 initial data +1713 initial data +1714 initial data +1715 initial data +1716 initial data +1717 initial data +1718 initial data +1719 initial data +1720 initial data +1721 initial data +1722 initial data +1723 initial data +1724 initial data +1725 initial data +1726 initial data +1727 initial data +1728 initial data +1729 initial data +1730 initial data +1731 initial data +1732 initial data +1733 initial data +1734 initial data +1735 initial data +1736 initial data +1737 initial data +1738 initial data +1739 initial data +1740 initial data +1741 initial data +1742 initial data +1743 initial data +1744 initial data +1745 initial data +1746 initial data +1747 initial data +1748 initial data +1749 initial data +1750 initial data +1751 initial data +1752 initial data +1753 initial data +1754 initial data +1755 initial data +1756 initial data +1757 initial data +1758 initial data +1759 initial data +1760 initial data +1761 initial data +1762 initial data +1763 initial data +1764 initial data +1765 initial data +1766 initial data +1767 initial data +1768 initial data +1769 initial data +1770 initial data +1771 initial data +1772 initial data +1773 initial data +1774 initial data +1775 initial data +1776 initial data +1777 initial data +1778 initial data +1779 initial data +1780 initial data +1781 initial data +1782 initial data +1783 initial data +1784 initial data +1785 initial data +1786 initial data +1787 initial data +1788 initial data +1789 initial data +1790 initial data +1791 initial data +1792 initial data +1793 initial data +1794 initial data +1795 initial data +1796 initial data +1797 initial data +1798 initial data +1799 initial data +1800 initial data +1801 initial data +1802 initial data +1803 initial data +1804 initial data +1805 initial data +1806 initial data +1807 initial data +1808 initial data +1809 initial data +1810 initial data +1811 initial data +1812 initial data +1813 initial data +1814 initial data +1815 initial data +1816 initial data +1817 initial data +1818 initial data +1819 initial data +1820 initial data +1821 initial data +1822 initial data +1823 initial data +1824 initial data +1825 initial data +1826 initial data +1827 initial data +1828 initial data +1829 initial data +1830 initial data +1831 initial data +1832 initial data +1833 initial data +1834 initial data +1835 initial data +1836 initial data +1837 initial data +1838 initial data +1839 initial data +1840 initial data +1841 initial data +1842 initial data +1843 initial data +1844 initial data +1845 initial data +1846 initial data +1847 initial data +1848 initial data +1849 initial data +1850 initial data +1851 initial data +1852 initial data +1853 initial data +1854 initial data +1855 initial data +1856 initial data +1857 initial data +1858 initial data +1859 initial data +1860 initial data +1861 initial data +1862 initial data +1863 initial data +1864 initial data +1865 initial data +1866 initial data +1867 initial data +1868 initial data +1869 initial data +1870 initial data +1871 initial data +1872 initial data +1873 initial data +1874 initial data +1875 initial data +1876 initial data +1877 initial data +1878 initial data +1879 initial data +1880 initial data +1881 initial data +1882 initial data +1883 initial data +1884 initial data +1885 initial data +1886 initial data +1887 initial data +1888 initial data +1889 initial data +1890 initial data +1891 initial data +1892 initial data +1893 initial data +1894 initial data +1895 initial data +1896 initial data +1897 initial data +1898 initial data +1899 initial data +1900 initial data +1901 initial data +1902 initial data +1903 initial data +1904 initial data +1905 initial data +1906 initial data +1907 initial data +1908 initial data +1909 initial data +1910 initial data +1911 initial data +1912 initial data +1913 initial data +1914 initial data +1915 initial data +1916 initial data +1917 initial data +1918 initial data +1919 initial data +1920 initial data +1921 initial data +1922 initial data +1923 initial data +1924 initial data +1925 initial data +1926 initial data +1927 initial data +1928 initial data +1929 initial data +1930 initial data +1931 initial data +1932 initial data +1933 initial data +1934 initial data +1935 initial data +1936 initial data +1937 initial data +1938 initial data +1939 initial data +1940 initial data +1941 initial data +1942 initial data +1943 initial data +1944 initial data +1945 initial data +1946 initial data +1947 initial data +1948 initial data +1949 initial data +1950 initial data +1951 initial data +1952 initial data +1953 initial data +1954 initial data +1955 initial data +1956 initial data +1957 initial data +1958 initial data +1959 initial data +1960 initial data +1961 initial data +1962 initial data +1963 initial data +1964 initial data +1965 initial data +1966 initial data +1967 initial data +1968 initial data +1969 initial data +1970 initial data +1971 initial data +1972 initial data +1973 initial data +1974 initial data +1975 initial data +1976 initial data +1977 initial data +1978 initial data +1979 initial data +1980 initial data +1981 initial data +1982 initial data +1983 initial data +1984 initial data +1985 initial data +1986 initial data +1987 initial data +1988 initial data +1989 initial data +1990 initial data +1991 initial data +1992 initial data +1993 initial data +1994 initial data +1995 initial data +1996 initial data +1997 initial data +1998 initial data +1999 initial data +2000 initial data +2001 initial data +2002 initial data +2003 initial data +2004 initial data +2005 initial data +2006 initial data +2007 initial data +2008 initial data +2009 initial data +2010 initial data +2011 initial data +2012 initial data +2013 initial data +2014 initial data +2015 initial data +2016 initial data +2017 initial data +2018 initial data +2019 initial data +2020 initial data +2021 initial data +2022 initial data +2023 initial data +2024 initial data +2025 initial data +2026 initial data +2027 initial data +2028 initial data +2029 initial data +2030 initial data +2031 initial data +2032 initial data +2033 initial data +2034 initial data +2035 initial data +2036 initial data +2037 initial data +2038 initial data +2039 initial data +2040 initial data +2041 initial data +2042 initial data +2043 initial data +2044 initial data +2045 initial data +2046 initial data +2047 initial data +2048 initial data +2049 initial data +2050 initial data +2051 initial data +2052 initial data +2053 initial data +2054 initial data +2055 initial data +2056 initial data +2057 initial data +2058 initial data +2059 initial data +2060 initial data +2061 initial data +2062 initial data +2063 initial data +2064 initial data +2065 initial data +2066 initial data +2067 initial data +2068 initial data +2069 initial data +2070 initial data +2071 initial data +2072 initial data +2073 initial data +2074 initial data +2075 initial data +2076 initial data +2077 initial data +2078 initial data +2079 initial data +2080 initial data +2081 initial data +2082 initial data +2083 initial data +2084 initial data +2085 initial data +2086 initial data +2087 initial data +2088 initial data +2089 initial data +2090 initial data +2091 initial data +2092 initial data +2093 initial data +2094 initial data +2095 initial data +2096 initial data +2097 initial data +2098 initial data +2099 initial data +2100 initial data +2101 initial data +2102 initial data +2103 initial data +2104 initial data +2105 initial data +2106 initial data +2107 initial data +2108 initial data +2109 initial data +2110 initial data +2111 initial data +2112 initial data +2113 initial data +2114 initial data +2115 initial data +2116 initial data +2117 initial data +2118 initial data +2119 initial data +2120 initial data +2121 initial data +2122 initial data +2123 initial data +2124 initial data +2125 initial data +2126 initial data +2127 initial data +2128 initial data +2129 initial data +2130 initial data +2131 initial data +2132 initial data +2133 initial data +2134 initial data +2135 initial data +2136 initial data +2137 initial data +2138 initial data +2139 initial data +2140 initial data +2141 initial data +2142 initial data +2143 initial data +2144 initial data +2145 initial data +2146 initial data +2147 initial data +2148 initial data +2149 initial data +2150 initial data +2151 initial data +2152 initial data +2153 initial data +2154 initial data +2155 initial data +2156 initial data +2157 initial data +2158 initial data +2159 initial data +2160 initial data +2161 initial data +2162 initial data +2163 initial data +2164 initial data +2165 initial data +2166 initial data +2167 initial data +2168 initial data +2169 initial data +2170 initial data +2171 initial data +2172 initial data +2173 initial data +2174 initial data +2175 initial data +2176 initial data +2177 initial data +2178 initial data +2179 initial data +2180 initial data +2181 initial data +2182 initial data +2183 initial data +2184 initial data +2185 initial data +2186 initial data +2187 initial data +2188 initial data +2189 initial data +2190 initial data +2191 initial data +2192 initial data +2193 initial data +2194 initial data +2195 initial data +2196 initial data +2197 initial data +2198 initial data +2199 initial data +2200 initial data +2201 initial data +2202 initial data +2203 initial data +2204 initial data +2205 initial data +2206 initial data +2207 initial data +2208 initial data +2209 initial data +2210 initial data +2211 initial data +2212 initial data +2213 initial data +2214 initial data +2215 initial data +2216 initial data +2217 initial data +2218 initial data +2219 initial data +2220 initial data +2221 initial data +2222 initial data +2223 initial data +2224 initial data +2225 initial data +2226 initial data +2227 initial data +2228 initial data +2229 initial data +2230 initial data +2231 initial data +2232 initial data +2233 initial data +2234 initial data +2235 initial data +2236 initial data +2237 initial data +2238 initial data +2239 initial data +2240 initial data +2241 initial data +2242 initial data +2243 initial data +2244 initial data +2245 initial data +2246 initial data +2247 initial data +2248 initial data +2249 initial data +2250 initial data +2251 initial data +2252 initial data +2253 initial data +2254 initial data +2255 initial data +2256 initial data +2257 initial data +2258 initial data +2259 initial data +2260 initial data +2261 initial data +2262 initial data +2263 initial data +2264 initial data +2265 initial data +2266 initial data +2267 initial data +2268 initial data +2269 initial data +2270 initial data +2271 initial data +2272 initial data +2273 initial data +2274 initial data +2275 initial data +2276 initial data +2277 initial data +2278 initial data +2279 initial data +2280 initial data +2281 initial data +2282 initial data +2283 initial data +2284 initial data +2285 initial data +2286 initial data +2287 initial data +2288 initial data +2289 initial data +2290 initial data +2291 initial data +2292 initial data +2293 initial data +2294 initial data +2295 initial data +2296 initial data +2297 initial data +2298 initial data +2299 initial data +2300 initial data +2301 initial data +2302 initial data +2303 initial data +2304 initial data +select c0, c1, c2 from t1; +c0 c1 c2 +1 initial data +2 initial data +3 initial data +4 initial data +6 initial data +7 initial data +8 initial data +9 initial data +13 initial data +14 initial data +15 initial data +16 initial data +17 initial data +18 initial data +19 initial data +20 initial data +28 initial data +29 initial data +30 initial data +31 initial data +32 initial data +33 initial data +34 initial data +35 initial data +36 initial data +37 initial data +38 initial data +39 initial data +40 initial data +41 initial data +42 initial data +43 initial data +59 initial data +60 initial data +61 initial data +62 initial data +63 initial data +64 initial data +65 initial data +66 initial data +67 initial data +68 initial data +69 initial data +70 initial data +71 initial data +72 initial data +73 initial data +74 initial data +75 initial data +76 initial data +77 initial data +78 initial data +79 initial data +80 initial data +81 initial data +82 initial data +83 initial data +84 initial data +85 initial data +86 initial data +87 initial data +88 initial data +89 initial data +90 initial data +122 initial data +123 initial data +124 initial data +125 initial data +126 initial data +127 initial data +128 initial data +129 initial data +130 initial data +131 initial data +132 initial data +133 initial data +134 initial data +135 initial data +136 initial data +137 initial data +138 initial data +139 initial data +140 initial data +141 initial data +142 initial data +143 initial data +144 initial data +145 initial data +146 initial data +147 initial data +148 initial data +149 initial data +150 initial data +151 initial data +152 initial data +153 initial data +154 initial data +155 initial data +156 initial data +157 initial data +158 initial data +159 initial data +160 initial data +161 initial data +162 initial data +163 initial data +164 initial data +165 initial data +166 initial data +167 initial data +168 initial data +169 initial data +170 initial data +171 initial data +172 initial data +173 initial data +174 initial data +175 initial data +176 initial data +177 initial data +178 initial data +179 initial data +180 initial data +181 initial data +182 initial data +183 initial data +184 initial data +185 initial data +249 initial data +250 initial data +251 initial data +252 initial data +253 initial data +254 initial data +255 initial data +256 initial data +257 initial data +258 initial data +259 initial data +260 initial data +261 initial data +262 initial data +263 initial data +264 initial data +265 initial data +266 initial data +267 initial data +268 initial data +269 initial data +270 initial data +271 initial data +272 initial data +273 initial data +274 initial data +275 initial data +276 initial data +277 initial data +278 initial data +279 initial data +280 initial data +281 initial data +282 initial data +283 initial data +284 initial data +285 initial data +286 initial data +287 initial data +288 initial data +289 initial data +290 initial data +291 initial data +292 initial data +293 initial data +294 initial data +295 initial data +296 initial data +297 initial data +298 initial data +299 initial data +300 initial data +301 initial data +302 initial data +303 initial data +304 initial data +305 initial data +306 initial data +307 initial data +308 initial data +309 initial data +310 initial data +311 initial data +312 initial data +313 initial data +314 initial data +315 initial data +316 initial data +317 initial data +318 initial data +319 initial data +320 initial data +321 initial data +322 initial data +323 initial data +324 initial data +325 initial data +326 initial data +327 initial data +328 initial data +329 initial data +330 initial data +331 initial data +332 initial data +333 initial data +334 initial data +335 initial data +336 initial data +337 initial data +338 initial data +339 initial data +340 initial data +341 initial data +342 initial data +343 initial data +344 initial data +345 initial data +346 initial data +347 initial data +348 initial data +349 initial data +350 initial data +351 initial data +352 initial data +353 initial data +354 initial data +355 initial data +356 initial data +357 initial data +358 initial data +359 initial data +360 initial data +361 initial data +362 initial data +363 initial data +364 initial data +365 initial data +366 initial data +367 initial data +368 initial data +369 initial data +370 initial data +371 initial data +372 initial data +373 initial data +374 initial data +375 initial data +376 initial data +497 initial data +498 initial data +499 initial data +500 initial data +501 initial data +502 initial data +503 initial data +504 initial data +505 initial data +506 initial data +507 initial data +508 initial data +509 initial data +510 initial data +511 initial data +512 initial data +513 initial data +514 initial data +515 initial data +516 initial data +517 initial data +518 initial data +519 initial data +520 initial data +521 initial data +522 initial data +523 initial data +524 initial data +525 initial data +526 initial data +527 initial data +528 initial data +529 initial data +530 initial data +531 initial data +532 initial data +533 initial data +534 initial data +535 initial data +536 initial data +537 initial data +538 initial data +539 initial data +540 initial data +541 initial data +542 initial data +543 initial data +544 initial data +545 initial data +546 initial data +547 initial data +548 initial data +549 initial data +550 initial data +551 initial data +552 initial data +553 initial data +554 initial data +555 initial data +556 initial data +557 initial data +558 initial data +559 initial data +560 initial data +561 initial data +562 initial data +563 initial data +564 initial data +565 initial data +566 initial data +567 initial data +568 initial data +569 initial data +570 initial data +571 initial data +572 initial data +573 initial data +574 initial data +575 initial data +576 initial data +577 initial data +578 initial data +579 initial data +580 initial data +581 initial data +582 initial data +583 initial data +584 initial data +585 initial data +586 initial data +587 initial data +588 initial data +589 initial data +590 initial data +591 initial data +592 initial data +593 initial data +594 initial data +595 initial data +596 initial data +597 initial data +598 initial data +599 initial data +600 initial data +601 initial data +602 initial data +603 initial data +604 initial data +605 initial data +606 initial data +607 initial data +608 initial data +609 initial data +610 initial data +611 initial data +612 initial data +613 initial data +614 initial data +615 initial data +616 initial data +617 initial data +618 initial data +619 initial data +620 initial data +621 initial data +622 initial data +623 initial data +624 initial data +625 initial data +626 initial data +627 initial data +628 initial data +629 initial data +630 initial data +631 initial data +632 initial data +633 initial data +634 initial data +635 initial data +636 initial data +637 initial data +638 initial data +639 initial data +640 initial data +641 initial data +642 initial data +643 initial data +644 initial data +645 initial data +646 initial data +647 initial data +648 initial data +649 initial data +650 initial data +651 initial data +652 initial data +653 initial data +654 initial data +655 initial data +656 initial data +657 initial data +658 initial data +659 initial data +660 initial data +661 initial data +662 initial data +663 initial data +664 initial data +665 initial data +666 initial data +667 initial data +668 initial data +669 initial data +670 initial data +671 initial data +672 initial data +673 initial data +674 initial data +675 initial data +676 initial data +677 initial data +678 initial data +679 initial data +680 initial data +681 initial data +682 initial data +683 initial data +684 initial data +685 initial data +686 initial data +687 initial data +688 initial data +689 initial data +690 initial data +691 initial data +692 initial data +693 initial data +694 initial data +695 initial data +696 initial data +697 initial data +698 initial data +699 initial data +700 initial data +701 initial data +702 initial data +703 initial data +704 initial data +705 initial data +706 initial data +707 initial data +708 initial data +709 initial data +710 initial data +711 initial data +712 initial data +713 initial data +714 initial data +715 initial data +716 initial data +717 initial data +718 initial data +719 initial data +720 initial data +721 initial data +722 initial data +723 initial data +724 initial data +725 initial data +726 initial data +727 initial data +728 initial data +729 initial data +730 initial data +731 initial data +732 initial data +733 initial data +734 initial data +735 initial data +736 initial data +737 initial data +738 initial data +739 initial data +740 initial data +741 initial data +742 initial data +743 initial data +744 initial data +745 initial data +746 initial data +747 initial data +748 initial data +749 initial data +750 initial data +751 initial data +752 initial data +769 initial data +770 initial data +771 initial data +772 initial data +773 initial data +774 initial data +775 initial data +776 initial data +777 initial data +778 initial data +779 initial data +780 initial data +781 initial data +782 initial data +783 initial data +784 initial data +785 initial data +786 initial data +787 initial data +788 initial data +789 initial data +790 initial data +791 initial data +792 initial data +793 initial data +794 initial data +795 initial data +796 initial data +797 initial data +798 initial data +799 initial data +800 initial data +801 initial data +802 initial data +803 initial data +804 initial data +805 initial data +806 initial data +807 initial data +808 initial data +809 initial data +810 initial data +811 initial data +812 initial data +813 initial data +814 initial data +815 initial data +816 initial data +817 initial data +818 initial data +819 initial data +820 initial data +821 initial data +822 initial data +823 initial data +824 initial data +825 initial data +826 initial data +827 initial data +828 initial data +829 initial data +830 initial data +831 initial data +832 initial data +833 initial data +834 initial data +835 initial data +836 initial data +837 initial data +838 initial data +839 initial data +840 initial data +841 initial data +842 initial data +843 initial data +844 initial data +845 initial data +846 initial data +847 initial data +848 initial data +849 initial data +850 initial data +851 initial data +852 initial data +853 initial data +854 initial data +855 initial data +856 initial data +857 initial data +858 initial data +859 initial data +860 initial data +861 initial data +862 initial data +863 initial data +864 initial data +865 initial data +866 initial data +867 initial data +868 initial data +869 initial data +870 initial data +871 initial data +872 initial data +873 initial data +874 initial data +875 initial data +876 initial data +877 initial data +878 initial data +879 initial data +880 initial data +881 initial data +882 initial data +883 initial data +884 initial data +885 initial data +886 initial data +887 initial data +888 initial data +889 initial data +890 initial data +891 initial data +892 initial data +893 initial data +894 initial data +895 initial data +896 initial data +897 initial data +898 initial data +899 initial data +900 initial data +901 initial data +902 initial data +903 initial data +904 initial data +905 initial data +906 initial data +907 initial data +908 initial data +909 initial data +910 initial data +911 initial data +912 initial data +913 initial data +914 initial data +915 initial data +916 initial data +917 initial data +918 initial data +919 initial data +920 initial data +921 initial data +922 initial data +923 initial data +924 initial data +925 initial data +926 initial data +927 initial data +928 initial data +929 initial data +930 initial data +931 initial data +932 initial data +933 initial data +934 initial data +935 initial data +936 initial data +937 initial data +938 initial data +939 initial data +940 initial data +941 initial data +942 initial data +943 initial data +944 initial data +945 initial data +946 initial data +947 initial data +948 initial data +949 initial data +950 initial data +951 initial data +952 initial data +953 initial data +954 initial data +955 initial data +956 initial data +957 initial data +958 initial data +959 initial data +960 initial data +961 initial data +962 initial data +963 initial data +964 initial data +965 initial data +966 initial data +967 initial data +968 initial data +969 initial data +970 initial data +971 initial data +972 initial data +973 initial data +974 initial data +975 initial data +976 initial data +977 initial data +978 initial data +979 initial data +980 initial data +981 initial data +982 initial data +983 initial data +984 initial data +985 initial data +986 initial data +987 initial data +988 initial data +989 initial data +990 initial data +991 initial data +992 initial data +993 initial data +994 initial data +995 initial data +996 initial data +997 initial data +998 initial data +999 initial data +1000 initial data +1001 initial data +1002 initial data +1003 initial data +1004 initial data +1005 initial data +1006 initial data +1007 initial data +1008 initial data +1009 initial data +1010 initial data +1011 initial data +1012 initial data +1013 initial data +1014 initial data +1015 initial data +1016 initial data +1017 initial data +1018 initial data +1019 initial data +1020 initial data +1021 initial data +1022 initial data +1023 initial data +1024 initial data +1025 initial data +1026 initial data +1027 initial data +1028 initial data +1029 initial data +1030 initial data +1031 initial data +1032 initial data +1033 initial data +1034 initial data +1035 initial data +1036 initial data +1037 initial data +1038 initial data +1039 initial data +1040 initial data +1041 initial data +1042 initial data +1043 initial data +1044 initial data +1045 initial data +1046 initial data +1047 initial data +1048 initial data +1049 initial data +1050 initial data +1051 initial data +1052 initial data +1053 initial data +1054 initial data +1055 initial data +1056 initial data +1057 initial data +1058 initial data +1059 initial data +1060 initial data +1061 initial data +1062 initial data +1063 initial data +1064 initial data +1065 initial data +1066 initial data +1067 initial data +1068 initial data +1069 initial data +1070 initial data +1071 initial data +1072 initial data +1073 initial data +1074 initial data +1075 initial data +1076 initial data +1077 initial data +1078 initial data +1079 initial data +1080 initial data +1081 initial data +1082 initial data +1083 initial data +1084 initial data +1085 initial data +1086 initial data +1087 initial data +1088 initial data +1089 initial data +1090 initial data +1091 initial data +1092 initial data +1093 initial data +1094 initial data +1095 initial data +1096 initial data +1097 initial data +1098 initial data +1099 initial data +1100 initial data +1101 initial data +1102 initial data +1103 initial data +1104 initial data +1105 initial data +1106 initial data +1107 initial data +1108 initial data +1109 initial data +1110 initial data +1111 initial data +1112 initial data +1113 initial data +1114 initial data +1115 initial data +1116 initial data +1117 initial data +1118 initial data +1119 initial data +1120 initial data +1121 initial data +1122 initial data +1123 initial data +1124 initial data +1125 initial data +1126 initial data +1127 initial data +1128 initial data +1129 initial data +1130 initial data +1131 initial data +1132 initial data +1133 initial data +1134 initial data +1135 initial data +1136 initial data +1137 initial data +1138 initial data +1139 initial data +1140 initial data +1141 initial data +1142 initial data +1143 initial data +1144 initial data +1145 initial data +1146 initial data +1147 initial data +1148 initial data +1149 initial data +1150 initial data +1151 initial data +1152 initial data +1153 initial data +1154 initial data +1155 initial data +1156 initial data +1157 initial data +1158 initial data +1159 initial data +1160 initial data +1161 initial data +1162 initial data +1163 initial data +1164 initial data +1165 initial data +1166 initial data +1167 initial data +1168 initial data +1169 initial data +1170 initial data +1171 initial data +1172 initial data +1173 initial data +1174 initial data +1175 initial data +1176 initial data +1177 initial data +1178 initial data +1179 initial data +1180 initial data +1181 initial data +1182 initial data +1183 initial data +1184 initial data +1185 initial data +1186 initial data +1187 initial data +1188 initial data +1189 initial data +1190 initial data +1191 initial data +1192 initial data +1193 initial data +1194 initial data +1195 initial data +1196 initial data +1197 initial data +1198 initial data +1199 initial data +1200 initial data +1201 initial data +1202 initial data +1203 initial data +1204 initial data +1205 initial data +1206 initial data +1207 initial data +1208 initial data +1209 initial data +1210 initial data +1211 initial data +1212 initial data +1213 initial data +1214 initial data +1215 initial data +1216 initial data +1217 initial data +1218 initial data +1219 initial data +1220 initial data +1221 initial data +1222 initial data +1223 initial data +1224 initial data +1225 initial data +1226 initial data +1227 initial data +1228 initial data +1229 initial data +1230 initial data +1231 initial data +1232 initial data +1233 initial data +1234 initial data +1235 initial data +1236 initial data +1237 initial data +1238 initial data +1239 initial data +1240 initial data +1241 initial data +1242 initial data +1243 initial data +1244 initial data +1245 initial data +1246 initial data +1247 initial data +1248 initial data +1249 initial data +1250 initial data +1251 initial data +1252 initial data +1253 initial data +1254 initial data +1255 initial data +1256 initial data +1257 initial data +1258 initial data +1259 initial data +1260 initial data +1261 initial data +1262 initial data +1263 initial data +1264 initial data +1265 initial data +1266 initial data +1267 initial data +1268 initial data +1269 initial data +1270 initial data +1271 initial data +1272 initial data +1273 initial data +1274 initial data +1275 initial data +1276 initial data +1277 initial data +1278 initial data +1279 initial data +1280 initial data +1281 initial data +1282 initial data +1283 initial data +1284 initial data +1285 initial data +1286 initial data +1287 initial data +1288 initial data +1289 initial data +1290 initial data +1291 initial data +1292 initial data +1293 initial data +1294 initial data +1295 initial data +1296 initial data +1297 initial data +1298 initial data +1299 initial data +1300 initial data +1301 initial data +1302 initial data +1303 initial data +1304 initial data +1305 initial data +1306 initial data +1307 initial data +1308 initial data +1309 initial data +1310 initial data +1311 initial data +1312 initial data +1313 initial data +1314 initial data +1315 initial data +1316 initial data +1317 initial data +1318 initial data +1319 initial data +1320 initial data +1321 initial data +1322 initial data +1323 initial data +1324 initial data +1325 initial data +1326 initial data +1327 initial data +1328 initial data +1329 initial data +1330 initial data +1331 initial data +1332 initial data +1333 initial data +1334 initial data +1335 initial data +1336 initial data +1337 initial data +1338 initial data +1339 initial data +1340 initial data +1341 initial data +1342 initial data +1343 initial data +1344 initial data +1345 initial data +1346 initial data +1347 initial data +1348 initial data +1349 initial data +1350 initial data +1351 initial data +1352 initial data +1353 initial data +1354 initial data +1355 initial data +1356 initial data +1357 initial data +1358 initial data +1359 initial data +1360 initial data +1361 initial data +1362 initial data +1363 initial data +1364 initial data +1365 initial data +1366 initial data +1367 initial data +1368 initial data +1369 initial data +1370 initial data +1371 initial data +1372 initial data +1373 initial data +1374 initial data +1375 initial data +1376 initial data +1377 initial data +1378 initial data +1379 initial data +1380 initial data +1381 initial data +1382 initial data +1383 initial data +1384 initial data +1385 initial data +1386 initial data +1387 initial data +1388 initial data +1389 initial data +1390 initial data +1391 initial data +1392 initial data +1393 initial data +1394 initial data +1395 initial data +1396 initial data +1397 initial data +1398 initial data +1399 initial data +1400 initial data +1401 initial data +1402 initial data +1403 initial data +1404 initial data +1405 initial data +1406 initial data +1407 initial data +1408 initial data +1409 initial data +1410 initial data +1411 initial data +1412 initial data +1413 initial data +1414 initial data +1415 initial data +1416 initial data +1417 initial data +1418 initial data +1419 initial data +1420 initial data +1421 initial data +1422 initial data +1423 initial data +1424 initial data +1425 initial data +1426 initial data +1427 initial data +1428 initial data +1429 initial data +1430 initial data +1431 initial data +1432 initial data +1433 initial data +1434 initial data +1435 initial data +1436 initial data +1437 initial data +1438 initial data +1439 initial data +1440 initial data +1441 initial data +1442 initial data +1443 initial data +1444 initial data +1445 initial data +1446 initial data +1447 initial data +1448 initial data +1449 initial data +1450 initial data +1451 initial data +1452 initial data +1453 initial data +1454 initial data +1455 initial data +1456 initial data +1457 initial data +1458 initial data +1459 initial data +1460 initial data +1461 initial data +1462 initial data +1463 initial data +1464 initial data +1465 initial data +1466 initial data +1467 initial data +1468 initial data +1469 initial data +1470 initial data +1471 initial data +1472 initial data +1473 initial data +1474 initial data +1475 initial data +1476 initial data +1477 initial data +1478 initial data +1479 initial data +1480 initial data +1481 initial data +1482 initial data +1483 initial data +1484 initial data +1485 initial data +1486 initial data +1487 initial data +1488 initial data +1489 initial data +1490 initial data +1491 initial data +1492 initial data +1493 initial data +1494 initial data +1495 initial data +1496 initial data +1497 initial data +1498 initial data +1499 initial data +1500 initial data +1501 initial data +1502 initial data +1503 initial data +1504 initial data +1505 initial data +1506 initial data +1507 initial data +1508 initial data +1509 initial data +1510 initial data +1511 initial data +1512 initial data +1513 initial data +1514 initial data +1515 initial data +1516 initial data +1517 initial data +1518 initial data +1519 initial data +1520 initial data +1521 initial data +1522 initial data +1523 initial data +1524 initial data +1525 initial data +1526 initial data +1527 initial data +1528 initial data +1529 initial data +1530 initial data +1531 initial data +1532 initial data +1533 initial data +1534 initial data +1535 initial data +1536 initial data +1537 initial data +1538 initial data +1539 initial data +1540 initial data +1541 initial data +1542 initial data +1543 initial data +1544 initial data +1545 initial data +1546 initial data +1547 initial data +1548 initial data +1549 initial data +1550 initial data +1551 initial data +1552 initial data +1553 initial data +1554 initial data +1555 initial data +1556 initial data +1557 initial data +1558 initial data +1559 initial data +1560 initial data +1561 initial data +1562 initial data +1563 initial data +1564 initial data +1565 initial data +1566 initial data +1567 initial data +1568 initial data +1569 initial data +1570 initial data +1571 initial data +1572 initial data +1573 initial data +1574 initial data +1575 initial data +1576 initial data +1577 initial data +1578 initial data +1579 initial data +1580 initial data +1581 initial data +1582 initial data +1583 initial data +1584 initial data +1585 initial data +1586 initial data +1587 initial data +1588 initial data +1589 initial data +1590 initial data +1591 initial data +1592 initial data +1593 initial data +1594 initial data +1595 initial data +1596 initial data +1597 initial data +1598 initial data +1599 initial data +1600 initial data +1601 initial data +1602 initial data +1603 initial data +1604 initial data +1605 initial data +1606 initial data +1607 initial data +1608 initial data +1609 initial data +1610 initial data +1611 initial data +1612 initial data +1613 initial data +1614 initial data +1615 initial data +1616 initial data +1617 initial data +1618 initial data +1619 initial data +1620 initial data +1621 initial data +1622 initial data +1623 initial data +1624 initial data +1625 initial data +1626 initial data +1627 initial data +1628 initial data +1629 initial data +1630 initial data +1631 initial data +1632 initial data +1633 initial data +1634 initial data +1635 initial data +1636 initial data +1637 initial data +1638 initial data +1639 initial data +1640 initial data +1641 initial data +1642 initial data +1643 initial data +1644 initial data +1645 initial data +1646 initial data +1647 initial data +1648 initial data +1649 initial data +1650 initial data +1651 initial data +1652 initial data +1653 initial data +1654 initial data +1655 initial data +1656 initial data +1657 initial data +1658 initial data +1659 initial data +1660 initial data +1661 initial data +1662 initial data +1663 initial data +1664 initial data +1665 initial data +1666 initial data +1667 initial data +1668 initial data +1669 initial data +1670 initial data +1671 initial data +1672 initial data +1673 initial data +1674 initial data +1675 initial data +1676 initial data +1677 initial data +1678 initial data +1679 initial data +1680 initial data +1681 initial data +1682 initial data +1683 initial data +1684 initial data +1685 initial data +1686 initial data +1687 initial data +1688 initial data +1689 initial data +1690 initial data +1691 initial data +1692 initial data +1693 initial data +1694 initial data +1695 initial data +1696 initial data +1697 initial data +1698 initial data +1699 initial data +1700 initial data +1701 initial data +1702 initial data +1703 initial data +1704 initial data +1705 initial data +1706 initial data +1707 initial data +1708 initial data +1709 initial data +1710 initial data +1711 initial data +1712 initial data +1713 initial data +1714 initial data +1715 initial data +1716 initial data +1717 initial data +1718 initial data +1719 initial data +1720 initial data +1721 initial data +1722 initial data +1723 initial data +1724 initial data +1725 initial data +1726 initial data +1727 initial data +1728 initial data +1729 initial data +1730 initial data +1731 initial data +1732 initial data +1733 initial data +1734 initial data +1735 initial data +1736 initial data +1737 initial data +1738 initial data +1739 initial data +1740 initial data +1741 initial data +1742 initial data +1743 initial data +1744 initial data +1745 initial data +1746 initial data +1747 initial data +1748 initial data +1749 initial data +1750 initial data +1751 initial data +1752 initial data +1753 initial data +1754 initial data +1755 initial data +1756 initial data +1757 initial data +1758 initial data +1759 initial data +1760 initial data +1761 initial data +1762 initial data +1763 initial data +1764 initial data +1765 initial data +1766 initial data +1767 initial data +1768 initial data +1769 initial data +1770 initial data +1771 initial data +1772 initial data +1773 initial data +1774 initial data +1775 initial data +1776 initial data +1777 initial data +1778 initial data +1779 initial data +1780 initial data +1781 initial data +1782 initial data +1783 initial data +1784 initial data +1785 initial data +1786 initial data +1787 initial data +1788 initial data +1789 initial data +1790 initial data +1791 initial data +1792 initial data +1793 initial data +1794 initial data +1795 initial data +1796 initial data +1797 initial data +1798 initial data +1799 initial data +1800 initial data +1801 initial data +1802 initial data +1803 initial data +1804 initial data +1805 initial data +1806 initial data +1807 initial data +1808 initial data +1809 initial data +1810 initial data +1811 initial data +1812 initial data +1813 initial data +1814 initial data +1815 initial data +1816 initial data +1817 initial data +1818 initial data +1819 initial data +1820 initial data +1821 initial data +1822 initial data +1823 initial data +1824 initial data +1825 initial data +1826 initial data +1827 initial data +1828 initial data +1829 initial data +1830 initial data +1831 initial data +1832 initial data +1833 initial data +1834 initial data +1835 initial data +1836 initial data +1837 initial data +1838 initial data +1839 initial data +1840 initial data +1841 initial data +1842 initial data +1843 initial data +1844 initial data +1845 initial data +1846 initial data +1847 initial data +1848 initial data +1849 initial data +1850 initial data +1851 initial data +1852 initial data +1853 initial data +1854 initial data +1855 initial data +1856 initial data +1857 initial data +1858 initial data +1859 initial data +1860 initial data +1861 initial data +1862 initial data +1863 initial data +1864 initial data +1865 initial data +1866 initial data +1867 initial data +1868 initial data +1869 initial data +1870 initial data +1871 initial data +1872 initial data +1873 initial data +1874 initial data +1875 initial data +1876 initial data +1877 initial data +1878 initial data +1879 initial data +1880 initial data +1881 initial data +1882 initial data +1883 initial data +1884 initial data +1885 initial data +1886 initial data +1887 initial data +1888 initial data +1889 initial data +1890 initial data +1891 initial data +1892 initial data +1893 initial data +1894 initial data +1895 initial data +1896 initial data +1897 initial data +1898 initial data +1899 initial data +1900 initial data +1901 initial data +1902 initial data +1903 initial data +1904 initial data +1905 initial data +1906 initial data +1907 initial data +1908 initial data +1909 initial data +1910 initial data +1911 initial data +1912 initial data +1913 initial data +1914 initial data +1915 initial data +1916 initial data +1917 initial data +1918 initial data +1919 initial data +1920 initial data +1921 initial data +1922 initial data +1923 initial data +1924 initial data +1925 initial data +1926 initial data +1927 initial data +1928 initial data +1929 initial data +1930 initial data +1931 initial data +1932 initial data +1933 initial data +1934 initial data +1935 initial data +1936 initial data +1937 initial data +1938 initial data +1939 initial data +1940 initial data +1941 initial data +1942 initial data +1943 initial data +1944 initial data +1945 initial data +1946 initial data +1947 initial data +1948 initial data +1949 initial data +1950 initial data +1951 initial data +1952 initial data +1953 initial data +1954 initial data +1955 initial data +1956 initial data +1957 initial data +1958 initial data +1959 initial data +1960 initial data +1961 initial data +1962 initial data +1963 initial data +1964 initial data +1965 initial data +1966 initial data +1967 initial data +1968 initial data +1969 initial data +1970 initial data +1971 initial data +1972 initial data +1973 initial data +1974 initial data +1975 initial data +1976 initial data +1977 initial data +1978 initial data +1979 initial data +1980 initial data +1981 initial data +1982 initial data +1983 initial data +1984 initial data +1985 initial data +1986 initial data +1987 initial data +1988 initial data +1989 initial data +1990 initial data +1991 initial data +1992 initial data +1993 initial data +1994 initial data +1995 initial data +1996 initial data +1997 initial data +1998 initial data +1999 initial data +2000 initial data +2001 initial data +2002 initial data +2003 initial data +2004 initial data +2005 initial data +2006 initial data +2007 initial data +2008 initial data +2009 initial data +2010 initial data +2011 initial data +2012 initial data +2013 initial data +2014 initial data +2015 initial data +2016 initial data +2017 initial data +2018 initial data +2019 initial data +2020 initial data +2021 initial data +2022 initial data +2023 initial data +2024 initial data +2025 initial data +2026 initial data +2027 initial data +2028 initial data +2029 initial data +2030 initial data +2031 initial data +2032 initial data +2033 initial data +2034 initial data +2035 initial data +2036 initial data +2037 initial data +2038 initial data +2039 initial data +2040 initial data +2041 initial data +2042 initial data +2043 initial data +2044 initial data +2045 initial data +2046 initial data +2047 initial data +2048 initial data +2049 initial data +2050 initial data +2051 initial data +2052 initial data +2053 initial data +2054 initial data +2055 initial data +2056 initial data +2057 initial data +2058 initial data +2059 initial data +2060 initial data +2061 initial data +2062 initial data +2063 initial data +2064 initial data +2065 initial data +2066 initial data +2067 initial data +2068 initial data +2069 initial data +2070 initial data +2071 initial data +2072 initial data +2073 initial data +2074 initial data +2075 initial data +2076 initial data +2077 initial data +2078 initial data +2079 initial data +2080 initial data +2081 initial data +2082 initial data +2083 initial data +2084 initial data +2085 initial data +2086 initial data +2087 initial data +2088 initial data +2089 initial data +2090 initial data +2091 initial data +2092 initial data +2093 initial data +2094 initial data +2095 initial data +2096 initial data +2097 initial data +2098 initial data +2099 initial data +2100 initial data +2101 initial data +2102 initial data +2103 initial data +2104 initial data +2105 initial data +2106 initial data +2107 initial data +2108 initial data +2109 initial data +2110 initial data +2111 initial data +2112 initial data +2113 initial data +2114 initial data +2115 initial data +2116 initial data +2117 initial data +2118 initial data +2119 initial data +2120 initial data +2121 initial data +2122 initial data +2123 initial data +2124 initial data +2125 initial data +2126 initial data +2127 initial data +2128 initial data +2129 initial data +2130 initial data +2131 initial data +2132 initial data +2133 initial data +2134 initial data +2135 initial data +2136 initial data +2137 initial data +2138 initial data +2139 initial data +2140 initial data +2141 initial data +2142 initial data +2143 initial data +2144 initial data +2145 initial data +2146 initial data +2147 initial data +2148 initial data +2149 initial data +2150 initial data +2151 initial data +2152 initial data +2153 initial data +2154 initial data +2155 initial data +2156 initial data +2157 initial data +2158 initial data +2159 initial data +2160 initial data +2161 initial data +2162 initial data +2163 initial data +2164 initial data +2165 initial data +2166 initial data +2167 initial data +2168 initial data +2169 initial data +2170 initial data +2171 initial data +2172 initial data +2173 initial data +2174 initial data +2175 initial data +2176 initial data +2177 initial data +2178 initial data +2179 initial data +2180 initial data +2181 initial data +2182 initial data +2183 initial data +2184 initial data +2185 initial data +2186 initial data +2187 initial data +2188 initial data +2189 initial data +2190 initial data +2191 initial data +2192 initial data +2193 initial data +2194 initial data +2195 initial data +2196 initial data +2197 initial data +2198 initial data +2199 initial data +2200 initial data +2201 initial data +2202 initial data +2203 initial data +2204 initial data +2205 initial data +2206 initial data +2207 initial data +2208 initial data +2209 initial data +2210 initial data +2211 initial data +2212 initial data +2213 initial data +2214 initial data +2215 initial data +2216 initial data +2217 initial data +2218 initial data +2219 initial data +2220 initial data +2221 initial data +2222 initial data +2223 initial data +2224 initial data +2225 initial data +2226 initial data +2227 initial data +2228 initial data +2229 initial data +2230 initial data +2231 initial data +2232 initial data +2233 initial data +2234 initial data +2235 initial data +2236 initial data +2237 initial data +2238 initial data +2239 initial data +2240 initial data +2241 initial data +2242 initial data +2243 initial data +2244 initial data +2245 initial data +2246 initial data +2247 initial data +2248 initial data +2249 initial data +2250 initial data +2251 initial data +2252 initial data +2253 initial data +2254 initial data +2255 initial data +2256 initial data +2257 initial data +2258 initial data +2259 initial data +2260 initial data +2261 initial data +2262 initial data +2263 initial data +2264 initial data +2265 initial data +2266 initial data +2267 initial data +2268 initial data +2269 initial data +2270 initial data +2271 initial data +2272 initial data +2273 initial data +2274 initial data +2275 initial data +2276 initial data +2277 initial data +2278 initial data +2279 initial data +2280 initial data +2281 initial data +2282 initial data +2283 initial data +2284 initial data +2285 initial data +2286 initial data +2287 initial data +2288 initial data +2289 initial data +2290 initial data +2291 initial data +2292 initial data +2293 initial data +2294 initial data +2295 initial data +2296 initial data +2297 initial data +2298 initial data +2299 initial data +2300 initial data +2301 initial data +2302 initial data +2303 initial data +2304 initial data +commit; +# Test Case 5: Verify no queries are still blocked +connection default; +# Printing processlist before verification: +# Test Case 6: Verify reads completed successfully and range split completed +connection conn_read1; +select count(*) from t1; +count(*) +2048 +disconnect conn_read1; +disconnect conn_read2; +disconnect conn_read3; +connection default; +drop table t1; diff --git a/storage/eloq/mysql-test/mono_basic/r/range_split_deadlock_abort.result b/storage/eloq/mysql-test/mono_basic/r/range_split_deadlock_abort.result new file mode 100644 index 00000000000..3663f0f3091 --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/r/range_split_deadlock_abort.result @@ -0,0 +1,26 @@ +set @@default_storage_engine= eloq; +DROP TABLE IF EXISTS t1; +# Test: Range split SHOULD downgrade lock and retry at phase 8 when deadlock detected +# When range split is at phase 8 and deadlock is detected, it should +# downgrade write intent lock and retry phase 8 instead of fully aborting. +# +# This test uses the split_flush_commit_acquire_all_deadlock fault injector +# to simulate a deadlock at phase 8, which triggers the downgrade and retry logic. +create table t1 (c0 int auto_increment, c1 char(250), c2 char(250), c3 char(250), c4 int, primary key(c0)); +insert into t1 values (0,'initial', 'data', 'row', 1); +SET SESSION debug_dbug="+d,eloq;split_flush_commit_acquire_all_deadlock;node_id=-1"; +# Step 2: Trigger range split with checkpoint +# Range split will progress through phases 1-7, and at phase 8: +# - The fault injector will inject DEAD_LOCK_ABORT error +# - IsDeadlock() will return true +# - Range split will downgrade write intent lock via PostWriteType::DowngradeLock +# - Range split will retry phase 8 after downgrade +SET SESSION debug_dbug="+d,eloq;at_once;node_id=-1;action=NOTIFY_CHECKPOINTER"; +# Step 3: Verify range split completed successfully +connection default; +select count(*) from t1; +count(*) +2048 +# Step 4: Verify no queries are still blocked +connection default; +drop table t1; diff --git a/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.opt b/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.opt new file mode 100644 index 00000000000..a62d1fea474 --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.opt @@ -0,0 +1 @@ +--checkpointer_interval=86400 diff --git a/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.test b/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.test new file mode 100644 index 00000000000..6c704a5fb6b --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/t/range_read_block_on_write_lock.test @@ -0,0 +1,148 @@ +--source include/have_eloq.inc +set @@default_storage_engine= eloq; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo # Test: Range reads SHOULD block when range split holds write lock +--echo # When range split holds write lock (Phase 2-3), reads should block +--echo # because write locks are exclusive and incompatible with read locks. + +create table t1 (c0 int auto_increment, c1 char(250), c2 char(250), c3 char(250), c4 int, primary key(c0)); + +# Insert initial data +insert into t1 values (0,'initial', 'data', 'row', 1); + +# Set debug point to pause range split at prepare phase (Phase 2-3) +# This must be set BEFORE building up data, so when the split is triggered, +# it will pause at the prepare phase where write lock is held +SET SESSION debug_dbug="+d,eloq;term_SplitFlushOp_CommitAcquireAllWriteOp_Continue;node_id=-1"; + +# Build up enough data to trigger range split +# We need to exceed range_max_size (1MB for testing builds, 256MB otherwise) +# Using the same pattern as range_split_write_forward.test: double the data each time +# 11 iterations: 1 -> 2 -> 4 -> 8 -> 16 -> 32 -> 64 -> 128 -> 256 -> 512 -> 1024 -> 2048 rows +# With char(250) columns, this should exceed the threshold +let $counter= 11; +--disable_result_log +--disable_query_log +while($counter) +{ + insert into t1 (c1, c2, c3, c4) select c1, c2, c3, c4 from t1; + dec $counter; +} +--enable_query_log +--enable_result_log + +# Trigger checkpoint to calculate range size and trigger range split if threshold exceeded +# The range split will pause at prepare phase (write lock held) due to the debug point set above +SET SESSION debug_dbug="+d,eloq;at_once;node_id=-1;action=NOTIFY_CHECKPOINTER"; +# Wait longer for checkpoint to process and range split to start and pause +--sleep 5 + +# Create connections: multiple for concurrent reads +--connect (conn_read1,localhost,root,,test,$MONO1_PORT) +--connect (conn_read2,localhost,root,,test,$MONO1_PORT) +--connect (conn_read3,localhost,root,,test,$MONO1_PORT) + +# Wait a bit more to ensure range split has started and paused at prepare phase +--sleep 2 + +--echo # Test Case 1: Single read should BLOCK (not complete immediately) +--connection conn_read1 +begin; +--send select count(*) from t1; + +# Wait a bit to ensure the read is blocked +--sleep 2 + +# Verify the read is blocked (check processlist) +# Note: Blocked queries are identified by state and info columns +# We check for connections that have: +# 1. Lock-related state (state like "%lock%") +# 2. Matching query info (info like "select count(*) from t1%") +# 3. NULL info with time >= 1 (waiting/blocked) +--connection default +let $wait_condition= + select count(*) >= 1 from information_schema.processlist + where (state like "%lock%" or info like "select count(*) from t1%") + and id != CONNECTION_ID(); +--source include/wait_condition.inc + +--echo # Test Case 2: Multiple concurrent reads should all BLOCK +--connection conn_read2 +begin; +--send select count(*) from t1 where c4 = 1; + +--connection conn_read3 +begin; +--send select c0, c1, c2 from t1 order by c0; + +# Wait a bit to ensure reads are blocked +--sleep 10 + +# Verify all reads are blocked +# Note: Blocked queries are identified by state and info columns +# We check for connections that have: +# 1. Lock-related state (state like "%lock%") +# 2. Matching query info (info like "select count(*) from t1%" or "select c0, c1, c2 from t1%") +# 3. NULL info with time >= 1 (waiting/blocked) +--connection default +--echo # Printing processlist before verification: +let $wait_condition= + select count(*) >= 3 from information_schema.processlist + where (state like "%lock%" or + info like "select count(*) from t1%" or + info like "select c0, c1, c2 from t1%") + and id != CONNECTION_ID(); +--source include/wait_condition.inc + +--echo # Test Case 3: Complete the range split (releases write lock) +# Complete the range split by removing the debug point and triggering checkpoint +# This will allow the split to proceed through all phases and release the write lock +SET SESSION debug_dbug="-d,eloq;term_SplitFlushOp_CommitAcquireAllWriteOp_Continue;node_id=-1"; +# SET SESSION debug_dbug="+d,eloq;at_once;node_id=-1;action=NOTIFY_CHECKPOINTER"; +--sleep 5 + +--echo # Test Case 4: Verify blocked reads complete after write lock is released +# All reads should now complete successfully after the range split releases the write lock +--connection conn_read1 +--reap +select count(*) from t1; +commit; + +--connection conn_read2 +--reap +select count(*) from t1 where c4 = 1; +commit; + +--connection conn_read3 +--reap +select c0, c1, c2 from t1; +commit; + +--echo # Test Case 5: Verify no queries are still blocked +--connection default +# After reaping, queries should be completed +# We verify by checking that there are no blocked queries (identified by state and info columns) +--echo # Printing processlist before verification: +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where ((state like "%lock%") or + (info IS NULL and time >= 1)) + and (info like "select%from t1%" or info IS NULL); +--source include/wait_condition.inc + +--echo # Test Case 6: Verify reads completed successfully and range split completed +--connection conn_read1 +select count(*) from t1; + +# Cleanup +--disconnect conn_read1 +--disconnect conn_read2 +--disconnect conn_read3 + +--connection default +drop table t1; + diff --git a/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.opt b/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.opt new file mode 100644 index 00000000000..a62d1fea474 --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.opt @@ -0,0 +1 @@ +--checkpointer_interval=86400 diff --git a/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.test b/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.test new file mode 100644 index 00000000000..1b0a4d89777 --- /dev/null +++ b/storage/eloq/mysql-test/mono_basic/t/range_split_deadlock_abort.test @@ -0,0 +1,73 @@ +--source include/have_eloq.inc +set @@default_storage_engine= eloq; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo # Test: Range split SHOULD downgrade lock and retry at phase 8 when deadlock detected +--echo # When range split is at phase 8 and deadlock is detected, it should +--echo # downgrade write intent lock and retry phase 8 instead of fully aborting. +--echo # +--echo # This test uses the split_flush_commit_acquire_all_deadlock fault injector +--echo # to simulate a deadlock at phase 8, which triggers the downgrade and retry logic. + +create table t1 (c0 int auto_increment, c1 char(250), c2 char(250), c3 char(250), c4 int, primary key(c0)); + +# Insert initial data +insert into t1 values (0,'initial', 'data', 'row', 1); + +# Step 1: Enable fault injector to simulate deadlock at phase 8 +# This fault injector will inject a DEAD_LOCK_ABORT error when range split +# reaches phase 8 (Commit Acquire All Write Lock), which will trigger the +# downgrade and retry logic +SET SESSION debug_dbug="+d,eloq;split_flush_commit_acquire_all_deadlock;node_id=-1"; + +# Build up enough data in t1 to trigger range split +# We need to exceed range_max_size (1MB for testing builds, 256MB otherwise) +# Using the same pattern as range_read_block_on_write_lock.test: double the data each time +# 11 iterations: 1 -> 2 -> 4 -> 8 -> 16 -> 32 -> 64 -> 128 -> 256 -> 512 -> 1024 -> 2048 rows +# With char(250) columns, this should exceed the threshold +let $counter= 11; +--disable_result_log +--disable_query_log +while($counter) +{ + insert into t1 select * from t1; + dec $counter; +} +--enable_query_log +--enable_result_log + +--echo # Step 2: Trigger range split with checkpoint +--echo # Range split will progress through phases 1-7, and at phase 8: +--echo # - The fault injector will inject DEAD_LOCK_ABORT error +--echo # - IsDeadlock() will return true +--echo # - Range split will downgrade write intent lock via PostWriteType::DowngradeLock +--echo # - Range split will retry phase 8 after downgrade +SET SESSION debug_dbug="+d,eloq;at_once;node_id=-1;action=NOTIFY_CHECKPOINTER"; + +# Wait for checkpoint to process and range split to start +--sleep 5 + +# Wait for range split to reach phase 8, trigger fault injector, downgrade, and retry +--sleep 10 + +--echo # Step 3: Verify range split completed successfully +--connection default +# Verify range split completed by checking that data is accessible +# If range split failed, we would see errors or the split wouldn't complete +select count(*) from t1; + +--echo # Step 4: Verify no queries are still blocked +--connection default +# After range split completes, there should be no blocked queries +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where ((state like "%lock%") or + (info IS NULL and time >= 1)) + and (info like "select%from t1%" or info IS NULL); +--source include/wait_condition.inc + +# Cleanup +drop table t1;