- Notifications
You must be signed in to change notification settings - Fork5k
Commit1f39bce
committed
Disk-based Hash Aggregation.
While performing hash aggregation, track memory usage when adding newgroups to a hash table. If the memory usage exceeds work_mem, enter"spill mode".In spill mode, new groups are not created in the hash table(s), butexisting groups continue to be advanced if input tuples match. Tuplesthat would cause a new group to be created are instead spilled to alogical tape to be processed later.The tuples are spilled in a partitioned fashion. When all tuples fromthe outer plan are processed (either by advancing the group orspilling the tuple), finalize and emit the groups from the hashtable. Then, create new batches of work from the spilled partitions,and select one of the saved batches and process it (possibly spillingrecursively).Author: Jeff DavisReviewed-by: Tomas Vondra, Adam Lee, Justin Pryzby, Taylor Vesely, Melanie PlagemanDiscussion:https://postgr.es/m/507ac540ec7c20136364b5272acbcd4574aa76ef.camel@j-davis.com1 parente00912e commit1f39bce
File tree
18 files changed
+1950
-38
lines changed- doc/src/sgml
- src
- backend
- commands
- executor
- optimizer
- path
- plan
- prep
- util
- utils/misc
- include
- executor
- nodes
- optimizer
- test/regress
- expected
- sql
18 files changed
+1950
-38
lines changedLines changed: 32 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4482 | 4482 |
| |
4483 | 4483 |
| |
4484 | 4484 |
| |
| 4485 | + | |
| 4486 | + | |
| 4487 | + | |
| 4488 | + | |
| 4489 | + | |
| 4490 | + | |
| 4491 | + | |
| 4492 | + | |
| 4493 | + | |
| 4494 | + | |
| 4495 | + | |
| 4496 | + | |
| 4497 | + | |
| 4498 | + | |
| 4499 | + | |
| 4500 | + | |
| 4501 | + | |
4485 | 4502 |
| |
4486 | 4503 |
| |
4487 | 4504 |
| |
| |||
4496 | 4513 |
| |
4497 | 4514 |
| |
4498 | 4515 |
| |
| 4516 | + | |
| 4517 | + | |
| 4518 | + | |
| 4519 | + | |
| 4520 | + | |
| 4521 | + | |
| 4522 | + | |
| 4523 | + | |
| 4524 | + | |
| 4525 | + | |
| 4526 | + | |
| 4527 | + | |
| 4528 | + | |
| 4529 | + | |
| 4530 | + | |
4499 | 4531 |
| |
4500 | 4532 |
| |
4501 | 4533 |
| |
|
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
104 | 104 |
| |
105 | 105 |
| |
106 | 106 |
| |
| 107 | + | |
107 | 108 |
| |
108 | 109 |
| |
109 | 110 |
| |
| |||
1882 | 1883 |
| |
1883 | 1884 |
| |
1884 | 1885 |
| |
| 1886 | + | |
1885 | 1887 |
| |
1886 | 1888 |
| |
1887 | 1889 |
| |
| |||
2769 | 2771 |
| |
2770 | 2772 |
| |
2771 | 2773 |
| |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
| 2797 | + | |
| 2798 | + | |
| 2799 | + | |
| 2800 | + | |
| 2801 | + | |
| 2802 | + | |
| 2803 | + | |
| 2804 | + | |
| 2805 | + | |
| 2806 | + | |
| 2807 | + | |
| 2808 | + | |
2772 | 2809 |
| |
2773 | 2810 |
| |
2774 | 2811 |
| |
|
0 commit comments
Comments
(0)