Commit 610d8cc
authored
Merge 'introduce program execution state in order to run stmt to completion in case of finalize or reset' from Nikita Sivukhin
This PR introduces program execution state in order for statement to be
aware of its state - is it terminal (Done, Failed, Interrupted) or not.
The particular problem right now is that statements like `INSERT INTO t
VALUES (1), (2), (3) RETURNING x` will execute inserts one by one and
interleave them with rows generation. This means that if statement
consumer will just read one row and then finalize the statement -
nothing will be actually committed (because transaction will be
aborted).
In order to quickly mitigate this issue - program state is introduced
which can help to decide what to do in the finalize.
Reviewed-by: Jussi Saurio <[email protected]>
Closes #4038File tree
4 files changed
+137
-16
lines changed- core
- vdbe
- sqlite3
- src
- tests
4 files changed
+137
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
2650 | 2651 | | |
2651 | 2652 | | |
2652 | 2653 | | |
| 2654 | + | |
| 2655 | + | |
| 2656 | + | |
| 2657 | + | |
2653 | 2658 | | |
2654 | 2659 | | |
2655 | 2660 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 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 | + | |
276 | 309 | | |
277 | 310 | | |
278 | 311 | | |
| |||
287 | 320 | | |
288 | 321 | | |
289 | 322 | | |
290 | | - | |
| 323 | + | |
291 | 324 | | |
292 | 325 | | |
293 | 326 | | |
| |||
356 | 389 | | |
357 | 390 | | |
358 | 391 | | |
359 | | - | |
| 392 | + | |
360 | 393 | | |
361 | 394 | | |
362 | 395 | | |
| |||
409 | 442 | | |
410 | 443 | | |
411 | 444 | | |
412 | | - | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
| 445 | + | |
417 | 446 | | |
418 | 447 | | |
419 | 448 | | |
| |||
450 | 479 | | |
451 | 480 | | |
452 | 481 | | |
453 | | - | |
| 482 | + | |
454 | 483 | | |
455 | 484 | | |
456 | 485 | | |
| |||
650 | 679 | | |
651 | 680 | | |
652 | 681 | | |
653 | | - | |
| 682 | + | |
| 683 | + | |
654 | 684 | | |
655 | 685 | | |
656 | 686 | | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
657 | 699 | | |
| 700 | + | |
658 | 701 | | |
659 | 702 | | |
660 | 703 | | |
| |||
673 | 716 | | |
674 | 717 | | |
675 | 718 | | |
676 | | - | |
| 719 | + | |
677 | 720 | | |
678 | 721 | | |
679 | 722 | | |
| |||
823 | 866 | | |
824 | 867 | | |
825 | 868 | | |
826 | | - | |
| 869 | + | |
827 | 870 | | |
828 | 871 | | |
829 | 872 | | |
| |||
871 | 914 | | |
872 | 915 | | |
873 | 916 | | |
874 | | - | |
| 917 | + | |
875 | 918 | | |
876 | 919 | | |
877 | 920 | | |
| 921 | + | |
878 | 922 | | |
879 | 923 | | |
880 | 924 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
328 | 339 | | |
329 | 340 | | |
330 | 341 | | |
331 | 342 | | |
332 | 343 | | |
333 | 344 | | |
334 | 345 | | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
335 | 354 | | |
336 | 355 | | |
337 | 356 | | |
| |||
669 | 688 | | |
670 | 689 | | |
671 | 690 | | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
672 | 698 | | |
673 | 699 | | |
674 | 700 | | |
| |||
1420 | 1446 | | |
1421 | 1447 | | |
1422 | 1448 | | |
1423 | | - | |
1424 | | - | |
1425 | | - | |
1426 | | - | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
1427 | 1453 | | |
1428 | 1454 | | |
1429 | 1455 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
746 | 748 | | |
747 | 749 | | |
748 | 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 | + | |
0 commit comments