forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite5dcbb8
committed
Rework code to determine partition pruning procedure
Amit Langote reported that partition prune was unable to work witharrays, enums, etc, which led him to research the appropriate way tomatch query clauses to partition keys: instead of searching for an exactmatch of the expression's type, it is better to rely on the fact thatthe expression qual has already been resolved to a specific operator,and that the partition key is linked to a specific operator family.With that info, it's possible to figure out the strategy and comparisonfunction to use for the pruning clause in a manner that works reliablyfor pseudo-types also.Include new test cases that demonstrate pruning where pseudotypes areinvolved.Author: Amit Langote, Álvaro HerreraDiscussion:https://postgr.es/m/2b02f1e9-9812-9c41-972d-517bdc0f815d@lab.ntt.co.jp1 parentcea5f9a commite5dcbb8
File tree
3 files changed
+251
-50
lines changed- src
- backend/partitioning
- test/regress
- expected
- sql
3 files changed
+251
-50
lines changedLines changed: 60 additions & 50 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
946 | 946 |
| |
947 | 947 |
| |
948 | 948 |
| |
949 |
| - | |
950 |
| - | |
951 |
| - | |
952 |
| - | |
953 |
| - | |
954 |
| - | |
955 |
| - | |
| 949 | + | |
956 | 950 |
| |
957 | 951 |
| |
958 | 952 |
| |
| |||
1426 | 1420 |
| |
1427 | 1421 |
| |
1428 | 1422 |
| |
1429 |
| - | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
1430 | 1426 |
| |
1431 | 1427 |
| |
1432 |
| - | |
| 1428 | + | |
1433 | 1429 |
| |
1434 | 1430 |
| |
1435 | 1431 |
| |
| |||
1483 | 1479 |
| |
1484 | 1480 |
| |
1485 | 1481 |
| |
1486 |
| - | |
1487 |
| - | |
1488 |
| - | |
1489 |
| - | |
1490 |
| - | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
1491 | 1489 |
| |
1492 |
| - | |
| 1490 | + | |
1493 | 1491 |
| |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
1494 | 1502 |
| |
1495 | 1503 |
| |
1496 | 1504 |
| |
1497 |
| - | |
1498 |
| - | |
1499 |
| - | |
1500 |
| - | |
| 1505 | + | |
1501 | 1506 |
| |
1502 | 1507 |
| |
1503 | 1508 |
| |
1504 |
| - | |
1505 |
| - | |
1506 |
| - | |
1507 |
| - | |
1508 | 1509 |
| |
1509 |
| - | |
1510 |
| - | |
1511 |
| - | |
1512 |
| - | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
1513 | 1514 |
| |
1514 | 1515 |
| |
1515 | 1516 |
| |
1516 | 1517 |
| |
1517 | 1518 |
| |
1518 | 1519 |
| |
1519 | 1520 |
| |
1520 |
| - | |
1521 |
| - | |
1522 |
| - | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
1523 | 1531 |
| |
1524 | 1532 |
| |
1525 | 1533 |
| |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
1526 | 1539 |
| |
1527 | 1540 |
| |
1528 | 1541 |
| |
1529 | 1542 |
| |
1530 | 1543 |
| |
1531 |
| - | |
| 1544 | + | |
1532 | 1545 |
| |
1533 | 1546 |
| |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
1534 | 1551 |
| |
1535 | 1552 |
| |
1536 | 1553 |
| |
1537 |
| - | |
| 1554 | + | |
| 1555 | + | |
1538 | 1556 |
| |
1539 | 1557 |
| |
1540 | 1558 |
| |
| |||
1547 | 1565 |
| |
1548 | 1566 |
| |
1549 | 1567 |
| |
1550 |
| - | |
1551 |
| - | |
1552 | 1568 |
| |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
1553 | 1572 |
| |
1554 | 1573 |
| |
1555 |
| - | |
1556 |
| - | |
1557 |
| - | |
1558 |
| - | |
1559 |
| - | |
1560 | 1574 |
| |
1561 | 1575 |
| |
1562 | 1576 |
| |
1563 | 1577 |
| |
1564 | 1578 |
| |
1565 |
| - | |
1566 |
| - | |
1567 |
| - | |
1568 |
| - | |
1569 |
| - | |
1570 |
| - | |
| 1579 | + | |
1571 | 1580 |
| |
1572 |
| - | |
1573 |
| - | |
1574 |
| - | |
1575 | 1581 |
| |
1576 |
| - | |
1577 |
| - | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
1578 | 1588 |
| |
1579 | 1589 |
| |
1580 | 1590 |
| |
|
Lines changed: 138 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2599 | 2599 |
| |
2600 | 2600 |
| |
2601 | 2601 |
| |
| 2602 | + | |
| 2603 | + | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
| 2636 | + | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| 2641 | + | |
| 2642 | + | |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
| 2646 | + | |
| 2647 | + | |
| 2648 | + | |
| 2649 | + | |
| 2650 | + | |
| 2651 | + | |
| 2652 | + | |
| 2653 | + | |
| 2654 | + | |
| 2655 | + | |
| 2656 | + | |
| 2657 | + | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
| 2664 | + | |
| 2665 | + | |
| 2666 | + | |
| 2667 | + | |
| 2668 | + | |
| 2669 | + | |
| 2670 | + | |
| 2671 | + | |
| 2672 | + | |
| 2673 | + | |
| 2674 | + | |
| 2675 | + | |
| 2676 | + | |
| 2677 | + | |
| 2678 | + | |
| 2679 | + | |
| 2680 | + | |
| 2681 | + | |
| 2682 | + | |
| 2683 | + | |
| 2684 | + | |
| 2685 | + | |
| 2686 | + | |
| 2687 | + | |
| 2688 | + | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
| 2694 | + | |
| 2695 | + | |
| 2696 | + | |
| 2697 | + | |
| 2698 | + | |
| 2699 | + | |
| 2700 | + | |
| 2701 | + | |
| 2702 | + | |
| 2703 | + | |
| 2704 | + | |
| 2705 | + | |
| 2706 | + | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
| 2710 | + | |
| 2711 | + | |
| 2712 | + | |
| 2713 | + | |
| 2714 | + | |
| 2715 | + | |
| 2716 | + | |
| 2717 | + | |
| 2718 | + | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + |
Lines changed: 53 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
645 | 645 |
| |
646 | 646 |
| |
647 | 647 |
| |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + |
0 commit comments
Comments
(0)