Commit 7300a69
committed
Add support for multivariate MCV lists
Introduce a third extended statistic type, supported by the CREATE
STATISTICS command - MCV lists, a generalization of the statistic
already built and used for individual columns.
Compared to the already supported types (n-distinct coefficients and
functional dependencies), MCV lists are more complex, include column
values and allow estimation of much wider range of common clauses
(equality and inequality conditions, IS NULL, IS NOT NULL etc.).
Similarly to the other types, a new pseudo-type (pg_mcv_list) is used.
Author: Tomas Vondra
Reviewed-by: Dean Rasheed, David Rowley, Mark Dilger, Alvaro Herrera
Discussion: https://postgr.es/m/dfdac334-9cf2-2597-fb27-f0fb3753f435@2ndquadrant.com1 parent 333ed24 commit 7300a69
File tree
32 files changed
+3597
-134
lines changed- doc/src/sgml
- ref
- src
- backend
- commands
- nodes
- optimizer
- path
- util
- parser
- statistics
- utils/adt
- bin/psql
- include
- catalog
- nodes
- optimizer
- statistics
- test/regress
- expected
- sql
32 files changed
+3597
-134
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6562 | 6562 | | |
6563 | 6563 | | |
6564 | 6564 | | |
6565 | | - | |
| 6565 | + | |
| 6566 | + | |
6566 | 6567 | | |
6567 | 6568 | | |
6568 | 6569 | | |
| |||
6585 | 6586 | | |
6586 | 6587 | | |
6587 | 6588 | | |
| 6589 | + | |
| 6590 | + | |
| 6591 | + | |
| 6592 | + | |
| 6593 | + | |
| 6594 | + | |
| 6595 | + | |
| 6596 | + | |
| 6597 | + | |
| 6598 | + | |
6588 | 6599 | | |
6589 | 6600 | | |
6590 | 6601 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22174 | 22174 | | |
22175 | 22175 | | |
22176 | 22176 | | |
| 22177 | + | |
| 22178 | + | |
| 22179 | + | |
| 22180 | + | |
| 22181 | + | |
| 22182 | + | |
| 22183 | + | |
| 22184 | + | |
| 22185 | + | |
| 22186 | + | |
| 22187 | + | |
| 22188 | + | |
| 22189 | + | |
| 22190 | + | |
| 22191 | + | |
| 22192 | + | |
| 22193 | + | |
| 22194 | + | |
| 22195 | + | |
| 22196 | + | |
| 22197 | + | |
| 22198 | + | |
| 22199 | + | |
| 22200 | + | |
| 22201 | + | |
| 22202 | + | |
| 22203 | + | |
| 22204 | + | |
| 22205 | + | |
| 22206 | + | |
| 22207 | + | |
| 22208 | + | |
| 22209 | + | |
| 22210 | + | |
| 22211 | + | |
| 22212 | + | |
| 22213 | + | |
| 22214 | + | |
| 22215 | + | |
| 22216 | + | |
| 22217 | + | |
| 22218 | + | |
| 22219 | + | |
| 22220 | + | |
| 22221 | + | |
| 22222 | + | |
| 22223 | + | |
| 22224 | + | |
| 22225 | + | |
| 22226 | + | |
| 22227 | + | |
| 22228 | + | |
| 22229 | + | |
| 22230 | + | |
| 22231 | + | |
| 22232 | + | |
| 22233 | + | |
| 22234 | + | |
| 22235 | + | |
| 22236 | + | |
| 22237 | + | |
| 22238 | + | |
| 22239 | + | |
| 22240 | + | |
| 22241 | + | |
| 22242 | + | |
| 22243 | + | |
| 22244 | + | |
| 22245 | + | |
| 22246 | + | |
| 22247 | + | |
| 22248 | + | |
| 22249 | + | |
| 22250 | + | |
| 22251 | + | |
| 22252 | + | |
| 22253 | + | |
| 22254 | + | |
| 22255 | + | |
| 22256 | + | |
| 22257 | + | |
| 22258 | + | |
22177 | 22259 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1285 | 1285 | | |
1286 | 1286 | | |
1287 | 1287 | | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
1288 | 1354 | | |
1289 | 1355 | | |
1290 | 1356 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
| |||
540 | 540 | | |
541 | 541 | | |
542 | 542 | | |
543 | | - | |
| 543 | + | |
544 | 544 | | |
545 | 545 | | |
546 | 546 | | |
| |||
585 | 585 | | |
586 | 586 | | |
587 | 587 | | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
588 | 700 | | |
589 | 701 | | |
590 | 702 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
87 | 88 | | |
88 | 89 | | |
89 | 90 | | |
| |||
164 | 165 | | |
165 | 166 | | |
166 | 167 | | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
167 | 198 | | |
168 | 199 | | |
169 | 200 | | |
| |||
0 commit comments