firtst release
Révision | 958c60d6b6abcac2387971c3462d663ced8ce783 (tree) |
---|---|
l'heure | 2015-08-18 09:31:54 |
Auteur | Kyotaro Horiguchi <horiguchi.kyotaro@lab....> |
Commiter | Kyotaro Horiguchi |
Made compatible with 9.5a1
Made make_join_rel.c to catch up REL9_5_ALPHA2. Changed regression
tests following some differences of PostgreSQL's behavior in such like
collapsing of simple VALUES clause, rows estimation and explain
representation of join filter.
@@ -4276,7 +4276,12 @@ SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1) | ||
4276 | 4276 | ORDER BY t_1.c1 LIMIT 1" |
4277 | 4277 | PL/pgSQL function nested_planner(integer) line 12 at SQL statement |
4278 | 4278 | LOG: pg_hint_plan: |
4279 | -no hint | |
4279 | +used hint: | |
4280 | +IndexScan(t_1) | |
4281 | +not used hint: | |
4282 | +duplication hint: | |
4283 | +error hint: | |
4284 | + | |
4280 | 4285 | CONTEXT: SQL statement "SELECT /*+ IndexScan(t_1) */ nested_planner(cnt - 1) FROM s1.t1 t_1 |
4281 | 4286 | JOIN s1.t2 t_2 ON (t_1.c1 = t_2.c1) |
4282 | 4287 | ORDER BY t_1.c1 LIMIT 1" |
@@ -3763,17 +3763,14 @@ error hint: | ||
3763 | 3763 | ---- |
3764 | 3764 | -- No. J-2-4-1 |
3765 | 3765 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; |
3766 | - QUERY PLAN | |
3767 | -------------------------------------------------- | |
3766 | + QUERY PLAN | |
3767 | +------------------------------------ | |
3768 | 3768 | Nested Loop |
3769 | - -> Hash Join | |
3770 | - Hash Cond: (t2.c1 = "*VALUES*".column1) | |
3771 | - -> Seq Scan on t2 | |
3772 | - -> Hash | |
3773 | - -> Values Scan on "*VALUES*" | |
3774 | 3769 | -> Index Scan using t1_i1 on t1 |
3775 | - Index Cond: (c1 = t2.c1) | |
3776 | -(8 rows) | |
3770 | + Index Cond: (c1 = 1) | |
3771 | + -> Seq Scan on t2 | |
3772 | + Filter: (c1 = 1) | |
3773 | +(5 rows) | |
3777 | 3774 | |
3778 | 3775 | /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/ |
3779 | 3776 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; |
@@ -3786,20 +3783,17 @@ Leading(t3 t1 t2) | ||
3786 | 3783 | duplication hint: |
3787 | 3784 | error hint: |
3788 | 3785 | |
3789 | - QUERY PLAN | |
3790 | -------------------------------------------------- | |
3786 | + QUERY PLAN | |
3787 | +------------------------------------ | |
3791 | 3788 | Nested Loop |
3792 | - -> Hash Join | |
3793 | - Hash Cond: (t2.c1 = "*VALUES*".column1) | |
3794 | - -> Seq Scan on t2 | |
3795 | - -> Hash | |
3796 | - -> Values Scan on "*VALUES*" | |
3797 | 3789 | -> Index Scan using t1_i1 on t1 |
3798 | - Index Cond: (c1 = t2.c1) | |
3799 | -(8 rows) | |
3790 | + Index Cond: (c1 = 1) | |
3791 | + -> Seq Scan on t2 | |
3792 | + Filter: (c1 = 1) | |
3793 | +(5 rows) | |
3800 | 3794 | |
3801 | 3795 | /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/ |
3802 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3796 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3803 | 3797 | LOG: pg_hint_plan: |
3804 | 3798 | used hint: |
3805 | 3799 | HashJoin(*VALUES* t1) |
@@ -3822,24 +3816,25 @@ error hint: | ||
3822 | 3816 | (8 rows) |
3823 | 3817 | |
3824 | 3818 | -- No. J-2-4-2 |
3825 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3819 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3826 | 3820 | QUERY PLAN |
3827 | 3821 | ------------------------------------------------------- |
3828 | 3822 | Nested Loop |
3829 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3830 | 3823 | -> Nested Loop |
3824 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3831 | 3825 | -> Hash Join |
3832 | 3826 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3833 | 3827 | -> Seq Scan on t2 |
3834 | 3828 | -> Hash |
3835 | 3829 | -> Values Scan on "*VALUES*" |
3836 | - -> Index Scan using t1_i1 on t1 | |
3837 | - Index Cond: (c1 = t2.c1) | |
3838 | - -> Values Scan on "*VALUES*_1" | |
3839 | -(11 rows) | |
3830 | + -> Materialize | |
3831 | + -> Values Scan on "*VALUES*_1" | |
3832 | + -> Index Scan using t1_i1 on t1 | |
3833 | + Index Cond: (c1 = t2.c1) | |
3834 | +(12 rows) | |
3840 | 3835 | |
3841 | 3836 | /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/ |
3842 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3837 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3843 | 3838 | LOG: pg_hint_plan: |
3844 | 3839 | used hint: |
3845 | 3840 | not used hint: |
@@ -3853,20 +3848,21 @@ error hint: | ||
3853 | 3848 | QUERY PLAN |
3854 | 3849 | ------------------------------------------------------- |
3855 | 3850 | Nested Loop |
3856 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3857 | 3851 | -> Nested Loop |
3852 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3858 | 3853 | -> Hash Join |
3859 | 3854 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3860 | 3855 | -> Seq Scan on t2 |
3861 | 3856 | -> Hash |
3862 | 3857 | -> Values Scan on "*VALUES*" |
3863 | - -> Index Scan using t1_i1 on t1 | |
3864 | - Index Cond: (c1 = t2.c1) | |
3865 | - -> Values Scan on "*VALUES*_1" | |
3866 | -(11 rows) | |
3858 | + -> Materialize | |
3859 | + -> Values Scan on "*VALUES*_1" | |
3860 | + -> Index Scan using t1_i1 on t1 | |
3861 | + Index Cond: (c1 = t2.c1) | |
3862 | +(12 rows) | |
3867 | 3863 | |
3868 | 3864 | /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/ |
3869 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3865 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3870 | 3866 | INFO: pg_hint_plan: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)" |
3871 | 3867 | DETAIL: Relation name "*VALUES*" is ambiguous. |
3872 | 3868 | INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)" |
@@ -3886,17 +3882,18 @@ Leading(*VALUES* t3 t2 t1) | ||
3886 | 3882 | QUERY PLAN |
3887 | 3883 | ------------------------------------------------------- |
3888 | 3884 | Nested Loop |
3889 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3890 | 3885 | -> Nested Loop |
3886 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3891 | 3887 | -> Hash Join |
3892 | 3888 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3893 | 3889 | -> Seq Scan on t2 |
3894 | 3890 | -> Hash |
3895 | 3891 | -> Values Scan on "*VALUES*" |
3896 | - -> Index Scan using t1_i1 on t1 | |
3897 | - Index Cond: (c1 = t2.c1) | |
3898 | - -> Values Scan on "*VALUES*_1" | |
3899 | -(11 rows) | |
3892 | + -> Materialize | |
3893 | + -> Values Scan on "*VALUES*_1" | |
3894 | + -> Index Scan using t1_i1 on t1 | |
3895 | + Index Cond: (c1 = t2.c1) | |
3896 | +(12 rows) | |
3900 | 3897 | |
3901 | 3898 | ---- |
3902 | 3899 | ---- No. J-3-1 join method hint |
@@ -926,7 +926,7 @@ error hint: | ||
926 | 926 | (10 rows) |
927 | 927 | |
928 | 928 | -- No. L-1-6-8 |
929 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
929 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
930 | 930 | QUERY PLAN |
931 | 931 | ------------------------------------------------------- |
932 | 932 | Nested Loop |
@@ -945,7 +945,7 @@ EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), | ||
945 | 945 | (13 rows) |
946 | 946 | |
947 | 947 | /*+Leading(t4 t3 t2 t1)*/ |
948 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
948 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
949 | 949 | LOG: pg_hint_plan: |
950 | 950 | used hint: |
951 | 951 | not used hint: |
@@ -3597,7 +3597,7 @@ error hint: | ||
3597 | 3597 | ---- No. L-2-4 VALUES clause |
3598 | 3598 | ---- |
3599 | 3599 | -- No. L-2-4-1 |
3600 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3600 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3601 | 3601 | QUERY PLAN |
3602 | 3602 | ------------------------------------------------- |
3603 | 3603 | Nested Loop |
@@ -3611,7 +3611,7 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, | ||
3611 | 3611 | (8 rows) |
3612 | 3612 | |
3613 | 3613 | /*+ Leading(t3 t1 t2) */ |
3614 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3614 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3615 | 3615 | LOG: pg_hint_plan: |
3616 | 3616 | used hint: |
3617 | 3617 | not used hint: |
@@ -3632,7 +3632,7 @@ error hint: | ||
3632 | 3632 | (8 rows) |
3633 | 3633 | |
3634 | 3634 | /*+ Leading(*VALUES* t1 t2) */ |
3635 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3635 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
3636 | 3636 | LOG: pg_hint_plan: |
3637 | 3637 | used hint: |
3638 | 3638 | Leading(*VALUES* t1 t2) |
@@ -3652,24 +3652,25 @@ error hint: | ||
3652 | 3652 | (7 rows) |
3653 | 3653 | |
3654 | 3654 | -- No. L-2-4-2 |
3655 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3655 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3656 | 3656 | QUERY PLAN |
3657 | 3657 | ------------------------------------------------------- |
3658 | 3658 | Nested Loop |
3659 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3660 | 3659 | -> Nested Loop |
3660 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3661 | 3661 | -> Hash Join |
3662 | 3662 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3663 | 3663 | -> Seq Scan on t2 |
3664 | 3664 | -> Hash |
3665 | 3665 | -> Values Scan on "*VALUES*" |
3666 | - -> Index Scan using t1_i1 on t1 | |
3667 | - Index Cond: (c1 = t2.c1) | |
3668 | - -> Values Scan on "*VALUES*_1" | |
3669 | -(11 rows) | |
3666 | + -> Materialize | |
3667 | + -> Values Scan on "*VALUES*_1" | |
3668 | + -> Index Scan using t1_i1 on t1 | |
3669 | + Index Cond: (c1 = t2.c1) | |
3670 | +(12 rows) | |
3670 | 3671 | |
3671 | 3672 | /*+ Leading(t4 t3 t2 t1) */ |
3672 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3673 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3673 | 3674 | LOG: pg_hint_plan: |
3674 | 3675 | used hint: |
3675 | 3676 | not used hint: |
@@ -3680,20 +3681,21 @@ error hint: | ||
3680 | 3681 | QUERY PLAN |
3681 | 3682 | ------------------------------------------------------- |
3682 | 3683 | Nested Loop |
3683 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3684 | 3684 | -> Nested Loop |
3685 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3685 | 3686 | -> Hash Join |
3686 | 3687 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3687 | 3688 | -> Seq Scan on t2 |
3688 | 3689 | -> Hash |
3689 | 3690 | -> Values Scan on "*VALUES*" |
3690 | - -> Index Scan using t1_i1 on t1 | |
3691 | - Index Cond: (c1 = t2.c1) | |
3692 | - -> Values Scan on "*VALUES*_1" | |
3693 | -(11 rows) | |
3691 | + -> Materialize | |
3692 | + -> Values Scan on "*VALUES*_1" | |
3693 | + -> Index Scan using t1_i1 on t1 | |
3694 | + Index Cond: (c1 = t2.c1) | |
3695 | +(12 rows) | |
3694 | 3696 | |
3695 | 3697 | /*+ Leading(*VALUES* t3 t2 t1) */ |
3696 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3698 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
3697 | 3699 | INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) " |
3698 | 3700 | DETAIL: Relation name "*VALUES*" is ambiguous. |
3699 | 3701 | LOG: pg_hint_plan: |
@@ -3706,17 +3708,18 @@ Leading(*VALUES* t3 t2 t1) | ||
3706 | 3708 | QUERY PLAN |
3707 | 3709 | ------------------------------------------------------- |
3708 | 3710 | Nested Loop |
3709 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
3710 | 3711 | -> Nested Loop |
3712 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
3711 | 3713 | -> Hash Join |
3712 | 3714 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
3713 | 3715 | -> Seq Scan on t2 |
3714 | 3716 | -> Hash |
3715 | 3717 | -> Values Scan on "*VALUES*" |
3716 | - -> Index Scan using t1_i1 on t1 | |
3717 | - Index Cond: (c1 = t2.c1) | |
3718 | - -> Values Scan on "*VALUES*_1" | |
3719 | -(11 rows) | |
3718 | + -> Materialize | |
3719 | + -> Values Scan on "*VALUES*_1" | |
3720 | + -> Index Scan using t1_i1 on t1 | |
3721 | + Index Cond: (c1 = t2.c1) | |
3722 | +(12 rows) | |
3720 | 3723 | |
3721 | 3724 | ---- |
3722 | 3725 | ---- No. L-3-1 leading the order of table joins |
@@ -474,7 +474,7 @@ EXPLAIN SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | ||
474 | 474 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
475 | 475 | Merge Cond: (t1.c1 = t3.c1) |
476 | 476 | -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx) |
477 | - -> Index Scan using t3_i1 on t3 (cost=xxx rows=1100 width=xxx) | |
477 | + -> Index Scan using t3_i1 on t3 (cost=xxx rows=1130 width=xxx) | |
478 | 478 | -> Sort (cost=xxx rows=100 width=xxx) |
479 | 479 | Sort Key: t2.c1 |
480 | 480 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
@@ -496,7 +496,7 @@ DETAIL: Unrecognized hint keyword "". | ||
496 | 496 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
497 | 497 | Merge Cond: (t1.c1 = t3.c1) |
498 | 498 | -> Index Scan using t1_i1 on t1 (cost=xxx rows=1000 width=xxx) |
499 | - -> Index Scan using t3_i1 on t3 (cost=xxx rows=1100 width=xxx) | |
499 | + -> Index Scan using t3_i1 on t3 (cost=xxx rows=1130 width=xxx) | |
500 | 500 | -> Sort (cost=xxx rows=100 width=xxx) |
501 | 501 | Sort Key: t2.c1 |
502 | 502 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
@@ -588,11 +588,11 @@ EXPLAIN SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1; | ||
588 | 588 | \! sql/maskout.sh results/ut-R.tmpout |
589 | 589 | QUERY PLAN |
590 | 590 | ----------------------------------------------------------------------- |
591 | - Hash Join (cost=xxx rows=1100 width=xxx) | |
591 | + Hash Join (cost=xxx rows=1130 width=xxx) | |
592 | 592 | Hash Cond: (t1.c1 = t2.c1) |
593 | - -> Seq Scan on ul1 t1 (cost=xxx rows=1100 width=xxx) | |
594 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
595 | - -> Seq Scan on ul1 t2 (cost=xxx rows=1100 width=xxx) | |
593 | + -> Seq Scan on ul1 t1 (cost=xxx rows=1130 width=xxx) | |
594 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
595 | + -> Seq Scan on ul1 t2 (cost=xxx rows=1130 width=xxx) | |
596 | 596 | (5 rows) |
597 | 597 | |
598 | 598 | \o results/ut-R.tmpout |
@@ -611,9 +611,9 @@ error hint: | ||
611 | 611 | ----------------------------------------------------------------------- |
612 | 612 | Hash Join (cost=xxx rows=1 width=xxx) |
613 | 613 | Hash Cond: (t1.c1 = t2.c1) |
614 | - -> Seq Scan on ul1 t1 (cost=xxx rows=1100 width=xxx) | |
615 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
616 | - -> Seq Scan on ul1 t2 (cost=xxx rows=1100 width=xxx) | |
614 | + -> Seq Scan on ul1 t1 (cost=xxx rows=1130 width=xxx) | |
615 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
616 | + -> Seq Scan on ul1 t2 (cost=xxx rows=1130 width=xxx) | |
617 | 617 | (5 rows) |
618 | 618 | |
619 | 619 | -- No. R-1-6-4 |
@@ -624,11 +624,11 @@ EXPLAIN SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1; | ||
624 | 624 | \! sql/maskout.sh results/ut-R.tmpout |
625 | 625 | QUERY PLAN |
626 | 626 | ----------------------------------------------------------------------- |
627 | - Hash Join (cost=xxx rows=1100 width=xxx) | |
627 | + Hash Join (cost=xxx rows=1130 width=xxx) | |
628 | 628 | Hash Cond: (t1.c1 = t2.c1) |
629 | - -> Seq Scan on tm1 t1 (cost=xxx rows=1100 width=xxx) | |
630 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
631 | - -> Seq Scan on tm1 t2 (cost=xxx rows=1100 width=xxx) | |
629 | + -> Seq Scan on tm1 t1 (cost=xxx rows=1130 width=xxx) | |
630 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
631 | + -> Seq Scan on tm1 t2 (cost=xxx rows=1130 width=xxx) | |
632 | 632 | (5 rows) |
633 | 633 | |
634 | 634 | \o results/ut-R.tmpout |
@@ -647,9 +647,9 @@ error hint: | ||
647 | 647 | ----------------------------------------------------------------------- |
648 | 648 | Hash Join (cost=xxx rows=1 width=xxx) |
649 | 649 | Hash Cond: (t1.c1 = t2.c1) |
650 | - -> Seq Scan on tm1 t1 (cost=xxx rows=1100 width=xxx) | |
651 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
652 | - -> Seq Scan on tm1 t2 (cost=xxx rows=1100 width=xxx) | |
650 | + -> Seq Scan on tm1 t1 (cost=xxx rows=1130 width=xxx) | |
651 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
652 | + -> Seq Scan on tm1 t2 (cost=xxx rows=1130 width=xxx) | |
653 | 653 | (5 rows) |
654 | 654 | |
655 | 655 | -- No. R-1-6-5 |
@@ -1127,11 +1127,11 @@ error hint: | ||
1127 | 1127 | Join Filter: (b1t2.c1 = b1t1.c1) |
1128 | 1128 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1129 | 1129 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1130 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1130 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1131 | 1131 | -> Hash (cost=xxx rows=100 width=xxx) |
1132 | 1132 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1133 | 1133 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1134 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1134 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1135 | 1135 | -> Sort (cost=xxx rows=100 width=xxx) |
1136 | 1136 | Sort Key: b1t2.c1 |
1137 | 1137 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1142,10 +1142,10 @@ error hint: | ||
1142 | 1142 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
1143 | 1143 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
1144 | 1144 | Hash Cond: (b2t3.c1 = b2t1.c1) |
1145 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
1145 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
1146 | 1146 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1147 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1148 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1147 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1148 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1149 | 1149 | -> Hash (cost=xxx rows=1000 width=xxx) |
1150 | 1150 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
1151 | 1151 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
@@ -1154,7 +1154,7 @@ error hint: | ||
1154 | 1154 | Join Filter: (bmt1.c1 = bmt4.c1) |
1155 | 1155 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1156 | 1156 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1157 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1157 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1158 | 1158 | -> Hash (cost=xxx rows=100 width=xxx) |
1159 | 1159 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1160 | 1160 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1223,11 +1223,11 @@ error hint: | ||
1223 | 1223 | Join Filter: (b1t2.c1 = b1t1.c1) |
1224 | 1224 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1225 | 1225 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1226 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1226 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1227 | 1227 | -> Hash (cost=xxx rows=1 width=xxx) |
1228 | 1228 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1229 | 1229 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1230 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1230 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1231 | 1231 | -> Sort (cost=xxx rows=100 width=xxx) |
1232 | 1232 | Sort Key: b1t2.c1 |
1233 | 1233 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1242,15 +1242,15 @@ error hint: | ||
1242 | 1242 | -> Hash (cost=xxx rows=1 width=xxx) |
1243 | 1243 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1244 | 1244 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1245 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1246 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1245 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1246 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1247 | 1247 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
1248 | 1248 | Index Cond: (c1 = b2t1.c1) |
1249 | 1249 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
1250 | 1250 | Join Filter: (bmt1.c1 = bmt4.c1) |
1251 | 1251 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1252 | 1252 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1253 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1253 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1254 | 1254 | -> Hash (cost=xxx rows=1 width=xxx) |
1255 | 1255 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1256 | 1256 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1317,11 +1317,11 @@ error hint: | ||
1317 | 1317 | Join Filter: (b1t2.c1 = b1t1.c1) |
1318 | 1318 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1319 | 1319 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1320 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1320 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1321 | 1321 | -> Hash (cost=xxx rows=100 width=xxx) |
1322 | 1322 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1323 | 1323 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1324 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1324 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1325 | 1325 | -> Sort (cost=xxx rows=100 width=xxx) |
1326 | 1326 | Sort Key: b1t2.c1 |
1327 | 1327 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1332,10 +1332,10 @@ error hint: | ||
1332 | 1332 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
1333 | 1333 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
1334 | 1334 | Hash Cond: (b2t3.c1 = b2t1.c1) |
1335 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
1335 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
1336 | 1336 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1337 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1338 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1337 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1338 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1339 | 1339 | -> Hash (cost=xxx rows=1000 width=xxx) |
1340 | 1340 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
1341 | 1341 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
@@ -1349,7 +1349,7 @@ error hint: | ||
1349 | 1349 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
1350 | 1350 | Merge Cond: (b3t1.c1 = b3t4.c1) |
1351 | 1351 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
1352 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
1352 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
1353 | 1353 | -> Hash (cost=xxx rows=100 width=xxx) |
1354 | 1354 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
1355 | 1355 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -1358,7 +1358,7 @@ error hint: | ||
1358 | 1358 | Join Filter: (bmt1.c1 = bmt4.c1) |
1359 | 1359 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1360 | 1360 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1361 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1361 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1362 | 1362 | -> Hash (cost=xxx rows=100 width=xxx) |
1363 | 1363 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1364 | 1364 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1440,11 +1440,11 @@ error hint: | ||
1440 | 1440 | Join Filter: (b1t2.c1 = b1t1.c1) |
1441 | 1441 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1442 | 1442 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1443 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1443 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1444 | 1444 | -> Hash (cost=xxx rows=1 width=xxx) |
1445 | 1445 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1446 | 1446 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1447 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1447 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1448 | 1448 | -> Sort (cost=xxx rows=100 width=xxx) |
1449 | 1449 | Sort Key: b1t2.c1 |
1450 | 1450 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1459,8 +1459,8 @@ error hint: | ||
1459 | 1459 | -> Hash (cost=xxx rows=1 width=xxx) |
1460 | 1460 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1461 | 1461 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1462 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1463 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1462 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1463 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1464 | 1464 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
1465 | 1465 | Index Cond: (c1 = b2t1.c1) |
1466 | 1466 | InitPlan 3 (returns $5) |
@@ -1472,7 +1472,7 @@ error hint: | ||
1472 | 1472 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1473 | 1473 | Merge Cond: (b3t1.c1 = b3t4.c1) |
1474 | 1474 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
1475 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
1475 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
1476 | 1476 | -> Hash (cost=xxx rows=100 width=xxx) |
1477 | 1477 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
1478 | 1478 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -1481,7 +1481,7 @@ error hint: | ||
1481 | 1481 | Join Filter: (bmt1.c1 = bmt4.c1) |
1482 | 1482 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1483 | 1483 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1484 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1484 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1485 | 1485 | -> Hash (cost=xxx rows=1 width=xxx) |
1486 | 1486 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1487 | 1487 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1518,11 +1518,11 @@ error hint: | ||
1518 | 1518 | Sort Key: bmt2.c1 |
1519 | 1519 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1520 | 1520 | Hash Cond: (bmt3.c1 = bmt2.c1) |
1521 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
1521 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
1522 | 1522 | Hash Cond: (bmt3.c1 = bmt4.c1) |
1523 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1524 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
1525 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
1523 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1524 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
1525 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
1526 | 1526 | -> Hash (cost=xxx rows=100 width=xxx) |
1527 | 1527 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
1528 | 1528 | (15 rows) |
@@ -1553,9 +1553,9 @@ error hint: | ||
1553 | 1553 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
1554 | 1554 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1555 | 1555 | Hash Cond: (bmt3.c1 = bmt4.c1) |
1556 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1557 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
1558 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
1556 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1557 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
1558 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
1559 | 1559 | -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx) |
1560 | 1560 | Index Cond: (c1 = bmt3.c1) |
1561 | 1561 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx) |
@@ -1587,11 +1587,11 @@ error hint: | ||
1587 | 1587 | Sort Key: bmt2.c1 |
1588 | 1588 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1589 | 1589 | Hash Cond: (bmt3.c1 = bmt2.c1) |
1590 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
1590 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
1591 | 1591 | Hash Cond: (bmt3.c1 = bmt4.c1) |
1592 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1593 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
1594 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
1592 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1593 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
1594 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
1595 | 1595 | -> Hash (cost=xxx rows=100 width=xxx) |
1596 | 1596 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
1597 | 1597 | (15 rows) |
@@ -1622,9 +1622,9 @@ error hint: | ||
1622 | 1622 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
1623 | 1623 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1624 | 1624 | Hash Cond: (bmt3.c1 = bmt4.c1) |
1625 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1626 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
1627 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
1625 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1626 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
1627 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
1628 | 1628 | -> Index Only Scan using t2_i1 on t2 bmt2 (cost=xxx rows=1 width=xxx) |
1629 | 1629 | Index Cond: (c1 = bmt3.c1) |
1630 | 1630 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1 width=xxx) |
@@ -1677,11 +1677,11 @@ error hint: | ||
1677 | 1677 | Join Filter: (b1t2.c1 = b1t1.c1) |
1678 | 1678 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1679 | 1679 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1680 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1680 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1681 | 1681 | -> Hash (cost=xxx rows=100 width=xxx) |
1682 | 1682 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1683 | 1683 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1684 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1684 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1685 | 1685 | -> Sort (cost=xxx rows=100 width=xxx) |
1686 | 1686 | Sort Key: b1t2.c1 |
1687 | 1687 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1692,10 +1692,10 @@ error hint: | ||
1692 | 1692 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
1693 | 1693 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
1694 | 1694 | Hash Cond: (b2t3.c1 = b2t1.c1) |
1695 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
1695 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
1696 | 1696 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1697 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1698 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1697 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1698 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1699 | 1699 | -> Hash (cost=xxx rows=1000 width=xxx) |
1700 | 1700 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
1701 | 1701 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
@@ -1704,7 +1704,7 @@ error hint: | ||
1704 | 1704 | Join Filter: (bmt1.c1 = bmt4.c1) |
1705 | 1705 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1706 | 1706 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1707 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1707 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1708 | 1708 | -> Hash (cost=xxx rows=100 width=xxx) |
1709 | 1709 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1710 | 1710 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1775,11 +1775,11 @@ error hint: | ||
1775 | 1775 | Join Filter: (b1t2.c1 = b1t1.c1) |
1776 | 1776 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1777 | 1777 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1778 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1778 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1779 | 1779 | -> Hash (cost=xxx rows=1 width=xxx) |
1780 | 1780 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1781 | 1781 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1782 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1782 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1783 | 1783 | -> Sort (cost=xxx rows=100 width=xxx) |
1784 | 1784 | Sort Key: b1t2.c1 |
1785 | 1785 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1794,15 +1794,15 @@ error hint: | ||
1794 | 1794 | -> Hash (cost=xxx rows=1 width=xxx) |
1795 | 1795 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1796 | 1796 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1797 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1798 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1797 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1798 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1799 | 1799 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
1800 | 1800 | Index Cond: (c1 = b2t1.c1) |
1801 | 1801 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
1802 | 1802 | Join Filter: (bmt1.c1 = bmt4.c1) |
1803 | 1803 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1804 | 1804 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1805 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1805 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1806 | 1806 | -> Hash (cost=xxx rows=1 width=xxx) |
1807 | 1807 | -> Merge Join (cost=xxx rows=1 width=xxx) |
1808 | 1808 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1870,11 +1870,11 @@ error hint: | ||
1870 | 1870 | Join Filter: (b1t2.c1 = b1t1.c1) |
1871 | 1871 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1872 | 1872 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1873 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1873 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1874 | 1874 | -> Hash (cost=xxx rows=100 width=xxx) |
1875 | 1875 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1876 | 1876 | Merge Cond: (b1t3.c1 = b1t2.c1) |
1877 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
1877 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
1878 | 1878 | -> Sort (cost=xxx rows=100 width=xxx) |
1879 | 1879 | Sort Key: b1t2.c1 |
1880 | 1880 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -1885,10 +1885,10 @@ error hint: | ||
1885 | 1885 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
1886 | 1886 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
1887 | 1887 | Hash Cond: (b2t3.c1 = b2t1.c1) |
1888 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
1888 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
1889 | 1889 | Merge Cond: (b2t3.c1 = b2t4.c1) |
1890 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
1891 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
1890 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
1891 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
1892 | 1892 | -> Hash (cost=xxx rows=1000 width=xxx) |
1893 | 1893 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
1894 | 1894 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
@@ -1902,7 +1902,7 @@ error hint: | ||
1902 | 1902 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
1903 | 1903 | Merge Cond: (b3t1.c1 = b3t4.c1) |
1904 | 1904 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
1905 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
1905 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
1906 | 1906 | -> Hash (cost=xxx rows=100 width=xxx) |
1907 | 1907 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
1908 | 1908 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -1911,7 +1911,7 @@ error hint: | ||
1911 | 1911 | Join Filter: (bmt1.c1 = bmt4.c1) |
1912 | 1912 | -> Hash Join (cost=xxx rows=100 width=xxx) |
1913 | 1913 | Hash Cond: (bmt3.c1 = bmt1.c1) |
1914 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
1914 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
1915 | 1915 | -> Hash (cost=xxx rows=100 width=xxx) |
1916 | 1916 | -> Merge Join (cost=xxx rows=100 width=xxx) |
1917 | 1917 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -1994,11 +1994,11 @@ error hint: | ||
1994 | 1994 | Join Filter: (b1t2.c1 = b1t1.c1) |
1995 | 1995 | -> Hash Join (cost=xxx rows=1 width=xxx) |
1996 | 1996 | Hash Cond: (b1t4.c1 = b1t2.c1) |
1997 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
1997 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
1998 | 1998 | -> Hash (cost=xxx rows=1 width=xxx) |
1999 | 1999 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2000 | 2000 | Merge Cond: (b1t3.c1 = b1t2.c1) |
2001 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2001 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2002 | 2002 | -> Sort (cost=xxx rows=100 width=xxx) |
2003 | 2003 | Sort Key: b1t2.c1 |
2004 | 2004 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -2013,8 +2013,8 @@ error hint: | ||
2013 | 2013 | -> Hash (cost=xxx rows=1 width=xxx) |
2014 | 2014 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2015 | 2015 | Merge Cond: (b2t3.c1 = b2t4.c1) |
2016 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2017 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2016 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2017 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2018 | 2018 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
2019 | 2019 | Index Cond: (c1 = b2t1.c1) |
2020 | 2020 | InitPlan 3 (returns $5) |
@@ -2026,7 +2026,7 @@ error hint: | ||
2026 | 2026 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2027 | 2027 | Merge Cond: (b3t1.c1 = b3t4.c1) |
2028 | 2028 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
2029 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
2029 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
2030 | 2030 | -> Hash (cost=xxx rows=100 width=xxx) |
2031 | 2031 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
2032 | 2032 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -2035,7 +2035,7 @@ error hint: | ||
2035 | 2035 | Join Filter: (bmt1.c1 = bmt4.c1) |
2036 | 2036 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2037 | 2037 | Hash Cond: (bmt3.c1 = bmt1.c1) |
2038 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2038 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2039 | 2039 | -> Hash (cost=xxx rows=1 width=xxx) |
2040 | 2040 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2041 | 2041 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -2102,11 +2102,11 @@ error hint: | ||
2102 | 2102 | Join Filter: (b1t2.c1 = b1t1.c1) |
2103 | 2103 | -> Hash Join (cost=xxx rows=100 width=xxx) |
2104 | 2104 | Hash Cond: (b1t4.c1 = b1t2.c1) |
2105 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
2105 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
2106 | 2106 | -> Hash (cost=xxx rows=100 width=xxx) |
2107 | 2107 | -> Merge Join (cost=xxx rows=100 width=xxx) |
2108 | 2108 | Merge Cond: (b1t3.c1 = b1t2.c1) |
2109 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2109 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2110 | 2110 | -> Sort (cost=xxx rows=100 width=xxx) |
2111 | 2111 | Sort Key: b1t2.c1 |
2112 | 2112 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -2117,21 +2117,21 @@ error hint: | ||
2117 | 2117 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2118 | 2118 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
2119 | 2119 | Hash Cond: (b2t3.c1 = b2t1.c1) |
2120 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
2120 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
2121 | 2121 | Merge Cond: (b2t3.c1 = b2t4.c1) |
2122 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2123 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2122 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2123 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2124 | 2124 | -> Hash (cost=xxx rows=1000 width=xxx) |
2125 | 2125 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
2126 | 2126 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
2127 | 2127 | Index Cond: (c1 = b2t1.c1) |
2128 | 2128 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2129 | 2129 | Hash Cond: (bmt4.c1 = bmt1.c1) |
2130 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
2130 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
2131 | 2131 | -> Hash (cost=xxx rows=1 width=xxx) |
2132 | 2132 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2133 | 2133 | Merge Cond: (bmt3.c1 = bmt1.c1) |
2134 | - -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2134 | + -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2135 | 2135 | -> Sort (cost=xxx rows=1 width=xxx) |
2136 | 2136 | Sort Key: bmt1.c1 |
2137 | 2137 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
@@ -2217,11 +2217,11 @@ error hint: | ||
2217 | 2217 | Join Filter: (b1t2.c1 = b1t1.c1) |
2218 | 2218 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2219 | 2219 | Hash Cond: (b1t4.c1 = b1t2.c1) |
2220 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
2220 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
2221 | 2221 | -> Hash (cost=xxx rows=1 width=xxx) |
2222 | 2222 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2223 | 2223 | Merge Cond: (b1t3.c1 = b1t2.c1) |
2224 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2224 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2225 | 2225 | -> Sort (cost=xxx rows=100 width=xxx) |
2226 | 2226 | Sort Key: b1t2.c1 |
2227 | 2227 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -2236,17 +2236,17 @@ error hint: | ||
2236 | 2236 | -> Hash (cost=xxx rows=1 width=xxx) |
2237 | 2237 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2238 | 2238 | Merge Cond: (b2t3.c1 = b2t4.c1) |
2239 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2240 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2239 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2240 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2241 | 2241 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
2242 | 2242 | Index Cond: (c1 = b2t1.c1) |
2243 | 2243 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2244 | 2244 | Hash Cond: (bmt4.c1 = bmt1.c1) |
2245 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
2245 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
2246 | 2246 | -> Hash (cost=xxx rows=1 width=xxx) |
2247 | 2247 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2248 | 2248 | Merge Cond: (bmt3.c1 = bmt1.c1) |
2249 | - -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2249 | + -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2250 | 2250 | -> Sort (cost=xxx rows=1 width=xxx) |
2251 | 2251 | Sort Key: bmt1.c1 |
2252 | 2252 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
@@ -2330,11 +2330,11 @@ error hint: | ||
2330 | 2330 | Join Filter: (b1t2.c1 = b1t1.c1) |
2331 | 2331 | -> Hash Join (cost=xxx rows=100 width=xxx) |
2332 | 2332 | Hash Cond: (b1t4.c1 = b1t2.c1) |
2333 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
2333 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
2334 | 2334 | -> Hash (cost=xxx rows=100 width=xxx) |
2335 | 2335 | -> Merge Join (cost=xxx rows=100 width=xxx) |
2336 | 2336 | Merge Cond: (b1t3.c1 = b1t2.c1) |
2337 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2337 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2338 | 2338 | -> Sort (cost=xxx rows=100 width=xxx) |
2339 | 2339 | Sort Key: b1t2.c1 |
2340 | 2340 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -2345,10 +2345,10 @@ error hint: | ||
2345 | 2345 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2346 | 2346 | -> Hash Join (cost=xxx rows=1000 width=xxx) |
2347 | 2347 | Hash Cond: (b2t3.c1 = b2t1.c1) |
2348 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
2348 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
2349 | 2349 | Merge Cond: (b2t3.c1 = b2t4.c1) |
2350 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2351 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2350 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2351 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2352 | 2352 | -> Hash (cost=xxx rows=1000 width=xxx) |
2353 | 2353 | -> Seq Scan on t1 b2t1 (cost=xxx rows=1000 width=xxx) |
2354 | 2354 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
@@ -2362,7 +2362,7 @@ error hint: | ||
2362 | 2362 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
2363 | 2363 | Merge Cond: (b3t1.c1 = b3t4.c1) |
2364 | 2364 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
2365 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
2365 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
2366 | 2366 | -> Hash (cost=xxx rows=100 width=xxx) |
2367 | 2367 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
2368 | 2368 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -2371,7 +2371,7 @@ error hint: | ||
2371 | 2371 | Join Filter: (bmt1.c1 = bmt4.c1) |
2372 | 2372 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2373 | 2373 | Hash Cond: (bmt3.c1 = bmt1.c1) |
2374 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2374 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2375 | 2375 | -> Hash (cost=xxx rows=1 width=xxx) |
2376 | 2376 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2377 | 2377 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -2481,11 +2481,11 @@ error hint: | ||
2481 | 2481 | Join Filter: (b1t2.c1 = b1t1.c1) |
2482 | 2482 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2483 | 2483 | Hash Cond: (b1t4.c1 = b1t2.c1) |
2484 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
2484 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
2485 | 2485 | -> Hash (cost=xxx rows=1 width=xxx) |
2486 | 2486 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2487 | 2487 | Merge Cond: (b1t3.c1 = b1t2.c1) |
2488 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2488 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2489 | 2489 | -> Sort (cost=xxx rows=100 width=xxx) |
2490 | 2490 | Sort Key: b1t2.c1 |
2491 | 2491 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
@@ -2500,8 +2500,8 @@ error hint: | ||
2500 | 2500 | -> Hash (cost=xxx rows=1 width=xxx) |
2501 | 2501 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2502 | 2502 | Merge Cond: (b2t3.c1 = b2t4.c1) |
2503 | - -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2504 | - -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2503 | + -> Index Only Scan using t3_i1 on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2504 | + -> Index Only Scan using t4_i1 on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2505 | 2505 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
2506 | 2506 | Index Cond: (c1 = b2t1.c1) |
2507 | 2507 | CTE c3 |
@@ -2513,7 +2513,7 @@ error hint: | ||
2513 | 2513 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2514 | 2514 | Merge Cond: (b3t1.c1 = b3t4.c1) |
2515 | 2515 | -> Index Only Scan using t1_i1 on t1 b3t1 (cost=xxx rows=1000 width=xxx) |
2516 | - -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
2516 | + -> Index Only Scan using t4_i1 on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
2517 | 2517 | -> Hash (cost=xxx rows=100 width=xxx) |
2518 | 2518 | -> Seq Scan on t2 b3t2 (cost=xxx rows=100 width=xxx) |
2519 | 2519 | -> Index Only Scan using t3_i1 on t3 b3t3 (cost=xxx rows=1 width=xxx) |
@@ -2522,7 +2522,7 @@ error hint: | ||
2522 | 2522 | Join Filter: (bmt1.c1 = bmt4.c1) |
2523 | 2523 | -> Hash Join (cost=xxx rows=1 width=xxx) |
2524 | 2524 | Hash Cond: (bmt3.c1 = bmt1.c1) |
2525 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2525 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2526 | 2526 | -> Hash (cost=xxx rows=1 width=xxx) |
2527 | 2527 | -> Merge Join (cost=xxx rows=1 width=xxx) |
2528 | 2528 | Merge Cond: (bmt1.c1 = bmt2.c1) |
@@ -2888,11 +2888,11 @@ error hint: | ||
2888 | 2888 | -> Sort (cost=xxx rows=100 width=xxx) |
2889 | 2889 | Sort Key: b1t2.c1 |
2890 | 2890 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2891 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
2891 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
2892 | 2892 | Hash Cond: (b1t3.c1 = b1t4.c1) |
2893 | - -> Seq Scan on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
2894 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
2895 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
2893 | + -> Seq Scan on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
2894 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
2895 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
2896 | 2896 | -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx rows=1 width=xxx) |
2897 | 2897 | Index Cond: (c1 = b1t3.c1) |
2898 | 2898 | InitPlan 2 (returns $3) |
@@ -2902,11 +2902,11 @@ error hint: | ||
2902 | 2902 | -> Sort (cost=xxx rows=100 width=xxx) |
2903 | 2903 | Sort Key: b2t2.c1 |
2904 | 2904 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2905 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
2905 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
2906 | 2906 | Hash Cond: (b2t3.c1 = b2t4.c1) |
2907 | - -> Seq Scan on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
2908 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
2909 | - -> Seq Scan on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
2907 | + -> Seq Scan on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
2908 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
2909 | + -> Seq Scan on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
2910 | 2910 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
2911 | 2911 | Index Cond: (c1 = b2t3.c1) |
2912 | 2912 | InitPlan 3 (returns $5) |
@@ -2916,11 +2916,11 @@ error hint: | ||
2916 | 2916 | -> Sort (cost=xxx rows=100 width=xxx) |
2917 | 2917 | Sort Key: b3t2.c1 |
2918 | 2918 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2919 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
2919 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
2920 | 2920 | Hash Cond: (b3t3.c1 = b3t4.c1) |
2921 | - -> Seq Scan on t3 b3t3 (cost=xxx rows=1100 width=xxx) | |
2922 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
2923 | - -> Seq Scan on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
2921 | + -> Seq Scan on t3 b3t3 (cost=xxx rows=1130 width=xxx) | |
2922 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
2923 | + -> Seq Scan on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
2924 | 2924 | -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx rows=1 width=xxx) |
2925 | 2925 | Index Cond: (c1 = b3t3.c1) |
2926 | 2926 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx) |
@@ -2930,11 +2930,11 @@ error hint: | ||
2930 | 2930 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
2931 | 2931 | -> Hash Join (cost=xxx rows=100 width=xxx) |
2932 | 2932 | Hash Cond: (bmt3.c1 = bmt4.c1) |
2933 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
2933 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
2934 | 2934 | -> Hash (cost=xxx rows=100 width=xxx) |
2935 | 2935 | -> Merge Join (cost=xxx rows=100 width=xxx) |
2936 | 2936 | Merge Cond: (bmt4.c1 = c1.c1) |
2937 | - -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
2937 | + -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
2938 | 2938 | -> Sort (cost=xxx rows=100 width=xxx) |
2939 | 2939 | Sort Key: c1.c1 |
2940 | 2940 | -> CTE Scan on c1 (cost=xxx rows=100 width=xxx) |
@@ -3037,9 +3037,9 @@ error hint: | ||
3037 | 3037 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
3038 | 3038 | -> Hash Join (cost=xxx rows=1 width=xxx) |
3039 | 3039 | Hash Cond: (b1t3.c1 = b1t4.c1) |
3040 | - -> Seq Scan on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
3041 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
3042 | - -> Seq Scan on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
3040 | + -> Seq Scan on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
3041 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
3042 | + -> Seq Scan on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
3043 | 3043 | -> Index Only Scan using t2_i1 on t2 b1t2 (cost=xxx rows=1 width=xxx) |
3044 | 3044 | Index Cond: (c1 = b1t3.c1) |
3045 | 3045 | InitPlan 2 (returns $3) |
@@ -3051,9 +3051,9 @@ error hint: | ||
3051 | 3051 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
3052 | 3052 | -> Hash Join (cost=xxx rows=1 width=xxx) |
3053 | 3053 | Hash Cond: (b2t3.c1 = b2t4.c1) |
3054 | - -> Seq Scan on t3 b2t3 (cost=xxx rows=1100 width=xxx) | |
3055 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
3056 | - -> Seq Scan on t4 b2t4 (cost=xxx rows=1100 width=xxx) | |
3054 | + -> Seq Scan on t3 b2t3 (cost=xxx rows=1130 width=xxx) | |
3055 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
3056 | + -> Seq Scan on t4 b2t4 (cost=xxx rows=1130 width=xxx) | |
3057 | 3057 | -> Index Only Scan using t2_i1 on t2 b2t2 (cost=xxx rows=1 width=xxx) |
3058 | 3058 | Index Cond: (c1 = b2t3.c1) |
3059 | 3059 | InitPlan 3 (returns $5) |
@@ -3065,9 +3065,9 @@ error hint: | ||
3065 | 3065 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
3066 | 3066 | -> Hash Join (cost=xxx rows=1 width=xxx) |
3067 | 3067 | Hash Cond: (b3t3.c1 = b3t4.c1) |
3068 | - -> Seq Scan on t3 b3t3 (cost=xxx rows=1100 width=xxx) | |
3069 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
3070 | - -> Seq Scan on t4 b3t4 (cost=xxx rows=1100 width=xxx) | |
3068 | + -> Seq Scan on t3 b3t3 (cost=xxx rows=1130 width=xxx) | |
3069 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
3070 | + -> Seq Scan on t4 b3t4 (cost=xxx rows=1130 width=xxx) | |
3071 | 3071 | -> Index Only Scan using t2_i1 on t2 b3t2 (cost=xxx rows=1 width=xxx) |
3072 | 3072 | Index Cond: (c1 = b3t3.c1) |
3073 | 3073 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=999 width=xxx) |
@@ -3077,11 +3077,11 @@ error hint: | ||
3077 | 3077 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
3078 | 3078 | -> Hash Join (cost=xxx rows=1 width=xxx) |
3079 | 3079 | Hash Cond: (bmt3.c1 = bmt4.c1) |
3080 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
3080 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
3081 | 3081 | -> Hash (cost=xxx rows=1 width=xxx) |
3082 | 3082 | -> Merge Join (cost=xxx rows=1 width=xxx) |
3083 | 3083 | Merge Cond: (bmt4.c1 = c1.c1) |
3084 | - -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
3084 | + -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
3085 | 3085 | -> Sort (cost=xxx rows=1 width=xxx) |
3086 | 3086 | Sort Key: c1.c1 |
3087 | 3087 | -> CTE Scan on c1 (cost=xxx rows=1 width=xxx) |
@@ -3139,10 +3139,10 @@ error hint: | ||
3139 | 3139 | Join Filter: (b1t2.c1 = b1t1.c1) |
3140 | 3140 | -> Hash Join (cost=xxx rows=100 width=xxx) |
3141 | 3141 | Hash Cond: (b1t3.c1 = b1t2.c1) |
3142 | - -> Merge Join (cost=xxx rows=1100 width=xxx) | |
3142 | + -> Merge Join (cost=xxx rows=1130 width=xxx) | |
3143 | 3143 | Merge Cond: (b1t3.c1 = b1t4.c1) |
3144 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
3145 | - -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
3144 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
3145 | + -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
3146 | 3146 | -> Hash (cost=xxx rows=100 width=xxx) |
3147 | 3147 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
3148 | 3148 | -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx) |
@@ -3159,11 +3159,11 @@ error hint: | ||
3159 | 3159 | -> Nested Loop (cost=xxx rows=100 width=xxx) |
3160 | 3160 | -> Hash Join (cost=xxx rows=100 width=xxx) |
3161 | 3161 | Hash Cond: (bmt3.c1 = bmt4.c1) |
3162 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
3162 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
3163 | 3163 | -> Hash (cost=xxx rows=100 width=xxx) |
3164 | 3164 | -> Merge Join (cost=xxx rows=100 width=xxx) |
3165 | 3165 | Merge Cond: (bmt4.c1 = c1.c1) |
3166 | - -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
3166 | + -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
3167 | 3167 | -> Sort (cost=xxx rows=100 width=xxx) |
3168 | 3168 | Sort Key: c1.c1 |
3169 | 3169 | -> CTE Scan on c1 (cost=xxx rows=100 width=xxx) |
@@ -3236,8 +3236,8 @@ error hint: | ||
3236 | 3236 | Hash Cond: (b1t3.c1 = b1t2.c1) |
3237 | 3237 | -> Merge Join (cost=xxx rows=1 width=xxx) |
3238 | 3238 | Merge Cond: (b1t3.c1 = b1t4.c1) |
3239 | - -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1100 width=xxx) | |
3240 | - -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1100 width=xxx) | |
3239 | + -> Index Only Scan using t3_i1 on t3 b1t3 (cost=xxx rows=1130 width=xxx) | |
3240 | + -> Index Only Scan using t4_i1 on t4 b1t4 (cost=xxx rows=1130 width=xxx) | |
3241 | 3241 | -> Hash (cost=xxx rows=100 width=xxx) |
3242 | 3242 | -> Seq Scan on t2 b1t2 (cost=xxx rows=100 width=xxx) |
3243 | 3243 | -> Index Only Scan using t1_i1 on t1 b1t1 (cost=xxx rows=1 width=xxx) |
@@ -3254,11 +3254,11 @@ error hint: | ||
3254 | 3254 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
3255 | 3255 | -> Hash Join (cost=xxx rows=1 width=xxx) |
3256 | 3256 | Hash Cond: (bmt3.c1 = bmt4.c1) |
3257 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
3257 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
3258 | 3258 | -> Hash (cost=xxx rows=1 width=xxx) |
3259 | 3259 | -> Merge Join (cost=xxx rows=1 width=xxx) |
3260 | 3260 | Merge Cond: (bmt4.c1 = c1.c1) |
3261 | - -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
3261 | + -> Index Only Scan using t4_i1 on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
3262 | 3262 | -> Sort (cost=xxx rows=1 width=xxx) |
3263 | 3263 | Sort Key: c1.c1 |
3264 | 3264 | -> CTE Scan on c1 (cost=xxx rows=1 width=xxx) |
@@ -4350,24 +4350,24 @@ error hint: | ||
4350 | 4350 | ---- |
4351 | 4351 | -- No. R-2-4-1 |
4352 | 4352 | \o results/ut-R.tmpout |
4353 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4353 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4354 | 4354 | \o |
4355 | 4355 | \! sql/maskout.sh results/ut-R.tmpout |
4356 | 4356 | QUERY PLAN |
4357 | 4357 | -------------------------------------------------------------------------------- |
4358 | 4358 | Nested Loop (cost=xxx rows=1 width=xxx) |
4359 | - -> Hash Join (cost=xxx rows=1 width=xxx) | |
4359 | + -> Hash Join (cost=xxx rows=2 width=xxx) | |
4360 | 4360 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
4361 | 4361 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
4362 | - -> Hash (cost=xxx rows=1 width=xxx) | |
4363 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4362 | + -> Hash (cost=xxx rows=2 width=xxx) | |
4363 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4364 | 4364 | -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) |
4365 | 4365 | Index Cond: (c1 = t2.c1) |
4366 | 4366 | (8 rows) |
4367 | 4367 | |
4368 | 4368 | \o results/ut-R.tmpout |
4369 | 4369 | /*+ Leading(t3 t1 t2) Rows(t3 t1 #2)Rows(t3 t1 t2 #2)*/ |
4370 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4370 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4371 | 4371 | LOG: pg_hint_plan: |
4372 | 4372 | used hint: |
4373 | 4373 | not used hint: |
@@ -4382,18 +4382,18 @@ error hint: | ||
4382 | 4382 | QUERY PLAN |
4383 | 4383 | -------------------------------------------------------------------------------- |
4384 | 4384 | Nested Loop (cost=xxx rows=1 width=xxx) |
4385 | - -> Hash Join (cost=xxx rows=1 width=xxx) | |
4385 | + -> Hash Join (cost=xxx rows=2 width=xxx) | |
4386 | 4386 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
4387 | 4387 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
4388 | - -> Hash (cost=xxx rows=1 width=xxx) | |
4389 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4388 | + -> Hash (cost=xxx rows=2 width=xxx) | |
4389 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4390 | 4390 | -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) |
4391 | 4391 | Index Cond: (c1 = t2.c1) |
4392 | 4392 | (8 rows) |
4393 | 4393 | |
4394 | 4394 | \o results/ut-R.tmpout |
4395 | 4395 | /*+ Leading(*VALUES* t1 t2) Rows(*VALUES* t1 #2)Rows(*VALUES* t1 t2 #20)*/ |
4396 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4396 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
4397 | 4397 | LOG: pg_hint_plan: |
4398 | 4398 | used hint: |
4399 | 4399 | Leading(*VALUES* t1 t2) |
@@ -4409,7 +4409,7 @@ error hint: | ||
4409 | 4409 | ----------------------------------------------------------------------------- |
4410 | 4410 | Nested Loop (cost=xxx rows=20 width=xxx) |
4411 | 4411 | -> Nested Loop (cost=xxx rows=2 width=xxx) |
4412 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4412 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4413 | 4413 | -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) |
4414 | 4414 | Index Cond: (c1 = "*VALUES*".column1) |
4415 | 4415 | -> Index Scan using t2_i1 on t2 (cost=xxx rows=1 width=xxx) |
@@ -4418,27 +4418,28 @@ error hint: | ||
4418 | 4418 | |
4419 | 4419 | -- No. R-2-4-2 |
4420 | 4420 | \o results/ut-R.tmpout |
4421 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4421 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4422 | 4422 | \o |
4423 | 4423 | \! sql/maskout.sh results/ut-R.tmpout |
4424 | 4424 | QUERY PLAN |
4425 | 4425 | -------------------------------------------------------------------------------------- |
4426 | 4426 | Nested Loop (cost=xxx rows=1 width=xxx) |
4427 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
4428 | 4427 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
4429 | - -> Hash Join (cost=xxx rows=1 width=xxx) | |
4428 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
4429 | + -> Hash Join (cost=xxx rows=2 width=xxx) | |
4430 | 4430 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
4431 | 4431 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
4432 | - -> Hash (cost=xxx rows=1 width=xxx) | |
4433 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4434 | - -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4435 | - Index Cond: (c1 = t2.c1) | |
4436 | - -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4437 | -(11 rows) | |
4432 | + -> Hash (cost=xxx rows=2 width=xxx) | |
4433 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4434 | + -> Materialize (cost=xxx rows=2 width=xxx) | |
4435 | + -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4436 | + -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4437 | + Index Cond: (c1 = t2.c1) | |
4438 | +(12 rows) | |
4438 | 4439 | |
4439 | 4440 | \o results/ut-R.tmpout |
4440 | 4441 | /*+ Leading(t4 t3 t2 t1) Rows(t4 t3 #2) Rows(t4 t3 t2 #2)Rows(t4 t3 t2 t1 #2)*/ |
4441 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4442 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4442 | 4443 | LOG: pg_hint_plan: |
4443 | 4444 | used hint: |
4444 | 4445 | not used hint: |
@@ -4454,21 +4455,22 @@ error hint: | ||
4454 | 4455 | QUERY PLAN |
4455 | 4456 | -------------------------------------------------------------------------------------- |
4456 | 4457 | Nested Loop (cost=xxx rows=1 width=xxx) |
4457 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
4458 | 4458 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
4459 | - -> Hash Join (cost=xxx rows=1 width=xxx) | |
4459 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
4460 | + -> Hash Join (cost=xxx rows=2 width=xxx) | |
4460 | 4461 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
4461 | 4462 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
4462 | - -> Hash (cost=xxx rows=1 width=xxx) | |
4463 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4464 | - -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4465 | - Index Cond: (c1 = t2.c1) | |
4466 | - -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4467 | -(11 rows) | |
4463 | + -> Hash (cost=xxx rows=2 width=xxx) | |
4464 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4465 | + -> Materialize (cost=xxx rows=2 width=xxx) | |
4466 | + -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4467 | + -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4468 | + Index Cond: (c1 = t2.c1) | |
4469 | +(12 rows) | |
4468 | 4470 | |
4469 | 4471 | \o results/ut-R.tmpout |
4470 | 4472 | /*+ Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)*/ |
4471 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4473 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
4472 | 4474 | INFO: pg_hint_plan: hint syntax error at or near "Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)" |
4473 | 4475 | DETAIL: Relation name "*VALUES*" is ambiguous. |
4474 | 4476 | INFO: pg_hint_plan: hint syntax error at or near "Rows(*VALUES* t3 t2 t1 #2)" |
@@ -4490,17 +4492,18 @@ Rows(*VALUES* t1 t2 t3 #2) | ||
4490 | 4492 | QUERY PLAN |
4491 | 4493 | -------------------------------------------------------------------------------------- |
4492 | 4494 | Nested Loop (cost=xxx rows=1 width=xxx) |
4493 | - Join Filter: (t1.c1 = "*VALUES*_1".column1) | |
4494 | 4495 | -> Nested Loop (cost=xxx rows=1 width=xxx) |
4495 | - -> Hash Join (cost=xxx rows=1 width=xxx) | |
4496 | + Join Filter: (t2.c1 = "*VALUES*_1".column1) | |
4497 | + -> Hash Join (cost=xxx rows=2 width=xxx) | |
4496 | 4498 | Hash Cond: (t2.c1 = "*VALUES*".column1) |
4497 | 4499 | -> Seq Scan on t2 (cost=xxx rows=100 width=xxx) |
4498 | - -> Hash (cost=xxx rows=1 width=xxx) | |
4499 | - -> Values Scan on "*VALUES*" (cost=xxx rows=1 width=xxx) | |
4500 | - -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4501 | - Index Cond: (c1 = t2.c1) | |
4502 | - -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4503 | -(11 rows) | |
4500 | + -> Hash (cost=xxx rows=2 width=xxx) | |
4501 | + -> Values Scan on "*VALUES*" (cost=xxx rows=2 width=xxx) | |
4502 | + -> Materialize (cost=xxx rows=2 width=xxx) | |
4503 | + -> Values Scan on "*VALUES*_1" (cost=xxx rows=2 width=xxx) | |
4504 | + -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx) | |
4505 | + Index Cond: (c1 = t2.c1) | |
4506 | +(12 rows) | |
4504 | 4507 | |
4505 | 4508 | ---- |
4506 | 4509 | ---- No. R-2-5 |
@@ -4520,7 +4523,7 @@ EXPLAIN SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sb | ||
4520 | 4523 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
4521 | 4524 | Merge Cond: (bmt1.c1 = bmt3.c1) |
4522 | 4525 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx) |
4523 | - -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4526 | + -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4524 | 4527 | -> Sort (cost=xxx rows=100 width=xxx) |
4525 | 4528 | Sort Key: bmt2.c1 |
4526 | 4529 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
@@ -4553,11 +4556,11 @@ error hint: | ||
4553 | 4556 | Sort Key: bmt2.c1 |
4554 | 4557 | -> Hash Join (cost=xxx rows=100 width=xxx) |
4555 | 4558 | Hash Cond: (bmt3.c1 = bmt2.c1) |
4556 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
4559 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
4557 | 4560 | Hash Cond: (bmt3.c1 = bmt4.c1) |
4558 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4559 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
4560 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
4561 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4562 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
4563 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
4561 | 4564 | -> Hash (cost=xxx rows=100 width=xxx) |
4562 | 4565 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
4563 | 4566 | (14 rows) |
@@ -4576,7 +4579,7 @@ EXPLAIN SELECT bmt1.c1 FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, | ||
4576 | 4579 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
4577 | 4580 | Merge Cond: (bmt1.c1 = bmt3.c1) |
4578 | 4581 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx) |
4579 | - -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4582 | + -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4580 | 4583 | -> Sort (cost=xxx rows=100 width=xxx) |
4581 | 4584 | Sort Key: bmt2.c1 |
4582 | 4585 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
@@ -4609,11 +4612,11 @@ error hint: | ||
4609 | 4612 | Sort Key: bmt2.c1 |
4610 | 4613 | -> Hash Join (cost=xxx rows=60 width=xxx) |
4611 | 4614 | Hash Cond: (bmt3.c1 = bmt2.c1) |
4612 | - -> Hash Join (cost=xxx rows=660 width=xxx) | |
4615 | + -> Hash Join (cost=xxx rows=678 width=xxx) | |
4613 | 4616 | Hash Cond: (bmt3.c1 = bmt4.c1) |
4614 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4615 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
4616 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
4617 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4618 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
4619 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
4617 | 4620 | -> Hash (cost=xxx rows=100 width=xxx) |
4618 | 4621 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
4619 | 4622 | (14 rows) |
@@ -4632,7 +4635,7 @@ EXPLAIN SELECT bmt1.c1 FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, | ||
4632 | 4635 | -> Merge Join (cost=xxx rows=1000 width=xxx) |
4633 | 4636 | Merge Cond: (bmt1.c1 = bmt3.c1) |
4634 | 4637 | -> Index Only Scan using t1_i1 on t1 bmt1 (cost=xxx rows=1000 width=xxx) |
4635 | - -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4638 | + -> Index Only Scan using t3_i1 on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4636 | 4639 | -> Sort (cost=xxx rows=100 width=xxx) |
4637 | 4640 | Sort Key: bmt2.c1 |
4638 | 4641 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
@@ -4665,11 +4668,11 @@ error hint: | ||
4665 | 4668 | Sort Key: bmt2.c1 |
4666 | 4669 | -> Hash Join (cost=xxx rows=100 width=xxx) |
4667 | 4670 | Hash Cond: (bmt3.c1 = bmt2.c1) |
4668 | - -> Hash Join (cost=xxx rows=1100 width=xxx) | |
4671 | + -> Hash Join (cost=xxx rows=1130 width=xxx) | |
4669 | 4672 | Hash Cond: (bmt3.c1 = bmt4.c1) |
4670 | - -> Seq Scan on t3 bmt3 (cost=xxx rows=1100 width=xxx) | |
4671 | - -> Hash (cost=xxx rows=1100 width=xxx) | |
4672 | - -> Seq Scan on t4 bmt4 (cost=xxx rows=1100 width=xxx) | |
4673 | + -> Seq Scan on t3 bmt3 (cost=xxx rows=1130 width=xxx) | |
4674 | + -> Hash (cost=xxx rows=1130 width=xxx) | |
4675 | + -> Seq Scan on t4 bmt4 (cost=xxx rows=1130 width=xxx) | |
4673 | 4676 | -> Hash (cost=xxx rows=100 width=xxx) |
4674 | 4677 | -> Seq Scan on t2 bmt2 (cost=xxx rows=100 width=xxx) |
4675 | 4678 | (14 rows) |
@@ -451,7 +451,7 @@ EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class WHERE oid = 1; | ||
451 | 451 | QUERY PLAN |
452 | 452 | ------------------------------------------------- |
453 | 453 | Index Scan using pg_class_oid_index on pg_class |
454 | - Index Cond: (oid = 1::oid) | |
454 | + Index Cond: (oid = '1'::oid) | |
455 | 455 | (2 rows) |
456 | 456 | |
457 | 457 | /*+SeqScan(pg_class)*/ |
@@ -463,10 +463,10 @@ not used hint: | ||
463 | 463 | duplication hint: |
464 | 464 | error hint: |
465 | 465 | |
466 | - QUERY PLAN | |
467 | --------------------------- | |
466 | + QUERY PLAN | |
467 | +---------------------------- | |
468 | 468 | Seq Scan on pg_class |
469 | - Filter: (oid = 1::oid) | |
469 | + Filter: (oid = '1'::oid) | |
470 | 470 | (2 rows) |
471 | 471 | |
472 | 472 | -- No. S-1-5-6 |
@@ -2995,11 +2995,10 @@ error hint: | ||
2995 | 2995 | ---- |
2996 | 2996 | -- No. S-2-4-1 |
2997 | 2997 | EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1; |
2998 | - QUERY PLAN | |
2999 | ---------------------------- | |
3000 | - Values Scan on "*VALUES*" | |
3001 | - Filter: (column1 = 1) | |
3002 | -(2 rows) | |
2998 | + QUERY PLAN | |
2999 | +------------ | |
3000 | + Result | |
3001 | +(1 row) | |
3003 | 3002 | |
3004 | 3003 | /*+SeqScan(t1)*/ |
3005 | 3004 | EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1; |
@@ -3010,11 +3009,10 @@ SeqScan(t1) | ||
3010 | 3009 | duplication hint: |
3011 | 3010 | error hint: |
3012 | 3011 | |
3013 | - QUERY PLAN | |
3014 | ---------------------------- | |
3015 | - Values Scan on "*VALUES*" | |
3016 | - Filter: (column1 = 1) | |
3017 | -(2 rows) | |
3012 | + QUERY PLAN | |
3013 | +------------ | |
3014 | + Result | |
3015 | +(1 row) | |
3018 | 3016 | |
3019 | 3017 | /*+SeqScan(*VALUES*)*/ |
3020 | 3018 | EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1; |
@@ -3025,24 +3023,24 @@ SeqScan(*VALUES*) | ||
3025 | 3023 | duplication hint: |
3026 | 3024 | error hint: |
3027 | 3025 | |
3028 | - QUERY PLAN | |
3029 | ---------------------------- | |
3030 | - Values Scan on "*VALUES*" | |
3031 | - Filter: (column1 = 1) | |
3032 | -(2 rows) | |
3026 | + QUERY PLAN | |
3027 | +------------ | |
3028 | + Result | |
3029 | +(1 row) | |
3033 | 3030 | |
3034 | 3031 | -- No. S-2-4-2 |
3035 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3036 | - QUERY PLAN | |
3037 | ------------------------------------------------------------- | |
3038 | - Nested Loop | |
3039 | - Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3032 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3033 | + QUERY PLAN | |
3034 | +---------------------------------------------------------- | |
3035 | + Hash Join | |
3036 | + Hash Cond: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3040 | 3037 | -> Values Scan on "*VALUES*" |
3041 | - -> Values Scan on "*VALUES*_1" | |
3042 | -(4 rows) | |
3038 | + -> Hash | |
3039 | + -> Values Scan on "*VALUES*_1" | |
3040 | +(5 rows) | |
3043 | 3041 | |
3044 | 3042 | /*+SeqScan(t1 t2)*/ |
3045 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3043 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3046 | 3044 | INFO: pg_hint_plan: hint syntax error at or near "" |
3047 | 3045 | DETAIL: SeqScan hint accepts only one relation. |
3048 | 3046 | LOG: pg_hint_plan: |
@@ -3052,16 +3050,17 @@ duplication hint: | ||
3052 | 3050 | error hint: |
3053 | 3051 | SeqScan(t1 t2) |
3054 | 3052 | |
3055 | - QUERY PLAN | |
3056 | ------------------------------------------------------------- | |
3057 | - Nested Loop | |
3058 | - Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3053 | + QUERY PLAN | |
3054 | +---------------------------------------------------------- | |
3055 | + Hash Join | |
3056 | + Hash Cond: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3059 | 3057 | -> Values Scan on "*VALUES*" |
3060 | - -> Values Scan on "*VALUES*_1" | |
3061 | -(4 rows) | |
3058 | + -> Hash | |
3059 | + -> Values Scan on "*VALUES*_1" | |
3060 | +(5 rows) | |
3062 | 3061 | |
3063 | 3062 | /*+SeqScan(*VALUES*)*/ |
3064 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3063 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
3065 | 3064 | LOG: pg_hint_plan: |
3066 | 3065 | used hint: |
3067 | 3066 | not used hint: |
@@ -3069,13 +3068,14 @@ SeqScan(*VALUES*) | ||
3069 | 3068 | duplication hint: |
3070 | 3069 | error hint: |
3071 | 3070 | |
3072 | - QUERY PLAN | |
3073 | ------------------------------------------------------------- | |
3074 | - Nested Loop | |
3075 | - Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3071 | + QUERY PLAN | |
3072 | +---------------------------------------------------------- | |
3073 | + Hash Join | |
3074 | + Hash Cond: ("*VALUES*".column1 = "*VALUES*_1".column1) | |
3076 | 3075 | -> Values Scan on "*VALUES*" |
3077 | - -> Values Scan on "*VALUES*_1" | |
3078 | -(4 rows) | |
3076 | + -> Hash | |
3077 | + -> Values Scan on "*VALUES*_1" | |
3078 | +(5 rows) | |
3079 | 3079 | |
3080 | 3080 | ---- |
3081 | 3081 | ---- No. S-3-1 scan method hint |
@@ -3794,7 +3794,7 @@ EXPLAIN (COSTS false) SELECT * FROM s1.ti1 WHERE c1 < 100 AND c2 = 1 AND lower(c | ||
3794 | 3794 | ----------------------------------------------------------------------------------------------------------------------------------------- |
3795 | 3795 | Tid Scan on ti1 |
3796 | 3796 | TID Cond: (ctid = '(1,1)'::tid) |
3797 | - Filter: ((c1 < 100) AND (c2 = 1) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3797 | + Filter: ((c1 < 100) AND (c2 = 1) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3798 | 3798 | (3 rows) |
3799 | 3799 | |
3800 | 3800 | -- No. S-3-4-1 |
@@ -3812,7 +3812,7 @@ error hint: | ||
3812 | 3812 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
3813 | 3813 | Index Scan using ti1_btree on ti1 |
3814 | 3814 | Index Cond: (c1 < 100) |
3815 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3815 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3816 | 3816 | (3 rows) |
3817 | 3817 | |
3818 | 3818 | -- No. S-3-4-2 |
@@ -3830,7 +3830,7 @@ error hint: | ||
3830 | 3830 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
3831 | 3831 | Index Scan using ti1_hash on ti1 |
3832 | 3832 | Index Cond: (c1 = 100) |
3833 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3833 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3834 | 3834 | (3 rows) |
3835 | 3835 | |
3836 | 3836 | -- No. S-3-4-3 |
@@ -3848,7 +3848,7 @@ error hint: | ||
3848 | 3848 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
3849 | 3849 | Index Scan using ti1_gist on ti1 |
3850 | 3850 | Index Cond: (c1 < 100) |
3851 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3851 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3852 | 3852 | (3 rows) |
3853 | 3853 | |
3854 | 3854 | -- No. S-3-4-4 |
@@ -3866,7 +3866,7 @@ error hint: | ||
3866 | 3866 | ----------------------------------------------------------------------------------------------------------------------------------------- |
3867 | 3867 | Tid Scan on ti1 |
3868 | 3868 | TID Cond: (ctid = '(1,1)'::tid) |
3869 | - Filter: ((c1 < 100) AND (c2 = 1) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3869 | + Filter: ((c1 < 100) AND (c2 = 1) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3870 | 3870 | (3 rows) |
3871 | 3871 | |
3872 | 3872 | -- No. S-3-4-5 |
@@ -3884,7 +3884,7 @@ error hint: | ||
3884 | 3884 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
3885 | 3885 | Index Scan using ti1_expr on ti1 |
3886 | 3886 | Index Cond: ((c1 < 100) = true) |
3887 | - Filter: ((c1 < 100) AND (c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3887 | + Filter: ((c1 < 100) AND (c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3888 | 3888 | (3 rows) |
3889 | 3889 | |
3890 | 3890 | -- No. S-3-4-6 |
@@ -3920,7 +3920,7 @@ error hint: | ||
3920 | 3920 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
3921 | 3921 | Index Scan using ti1_uniq on ti1 |
3922 | 3922 | Index Cond: (c1 < 100) |
3923 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3923 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3924 | 3924 | (3 rows) |
3925 | 3925 | |
3926 | 3926 | -- No. S-3-4-8 |
@@ -3938,7 +3938,7 @@ error hint: | ||
3938 | 3938 | --------------------------------------------------------------------------------------------------------------------------------------- |
3939 | 3939 | Index Scan using ti1_multi on ti1 |
3940 | 3940 | Index Cond: ((c1 < 100) AND (c2 = 1)) |
3941 | - Filter: ((ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3941 | + Filter: ((ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3942 | 3942 | (3 rows) |
3943 | 3943 | |
3944 | 3944 | -- No. S-3-4-9 |
@@ -3956,7 +3956,7 @@ error hint: | ||
3956 | 3956 | ----------------------------------------------------------------------------------------------------------------------------------------- |
3957 | 3957 | Tid Scan on ti1 |
3958 | 3958 | TID Cond: (ctid = '(1,1)'::tid) |
3959 | - Filter: ((c1 < 100) AND (c2 = 1) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3959 | + Filter: ((c1 < 100) AND (c2 = 1) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3960 | 3960 | (3 rows) |
3961 | 3961 | |
3962 | 3962 | -- No. S-3-4-10 |
@@ -3974,7 +3974,7 @@ error hint: | ||
3974 | 3974 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
3975 | 3975 | Index Scan using ti1_pkey on ti1 |
3976 | 3976 | Index Cond: (c1 < 100) |
3977 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3977 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3978 | 3978 | (3 rows) |
3979 | 3979 | |
3980 | 3980 | -- No. S-3-4-11 |
@@ -3992,7 +3992,7 @@ error hint: | ||
3992 | 3992 | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
3993 | 3993 | Index Scan using ti1_c2_key on ti1 |
3994 | 3994 | Index Cond: (c2 = 1) |
3995 | - Filter: ((c1 < 100) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
3995 | + Filter: ((c1 < 100) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
3996 | 3996 | (3 rows) |
3997 | 3997 | |
3998 | 3998 | -- No. S-3-4-12 |
@@ -4010,7 +4010,7 @@ error hint: | ||
4010 | 4010 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4011 | 4011 | Bitmap Heap Scan on ti1 |
4012 | 4012 | Recheck Cond: (c1 < 100) |
4013 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4013 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4014 | 4014 | -> Bitmap Index Scan on ti1_btree |
4015 | 4015 | Index Cond: (c1 < 100) |
4016 | 4016 | (5 rows) |
@@ -4030,7 +4030,7 @@ error hint: | ||
4030 | 4030 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4031 | 4031 | Bitmap Heap Scan on ti1 |
4032 | 4032 | Recheck Cond: (c1 = 100) |
4033 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4033 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4034 | 4034 | -> Bitmap Index Scan on ti1_hash |
4035 | 4035 | Index Cond: (c1 = 100) |
4036 | 4036 | (5 rows) |
@@ -4050,7 +4050,7 @@ error hint: | ||
4050 | 4050 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4051 | 4051 | Bitmap Heap Scan on ti1 |
4052 | 4052 | Recheck Cond: (c1 < 100) |
4053 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4053 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4054 | 4054 | -> Bitmap Index Scan on ti1_gist |
4055 | 4055 | Index Cond: (c1 < 100) |
4056 | 4056 | (5 rows) |
@@ -4070,7 +4070,7 @@ error hint: | ||
4070 | 4070 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4071 | 4071 | Bitmap Heap Scan on ti1 |
4072 | 4072 | Recheck Cond: (c1 < 100) |
4073 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4073 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4074 | 4074 | -> Bitmap Index Scan on ti1_gin |
4075 | 4075 | Index Cond: (c1 < 100) |
4076 | 4076 | (5 rows) |
@@ -4089,7 +4089,7 @@ error hint: | ||
4089 | 4089 | QUERY PLAN |
4090 | 4090 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
4091 | 4091 | Bitmap Heap Scan on ti1 |
4092 | - Filter: ((c1 < 100) AND (c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4092 | + Filter: ((c1 < 100) AND (c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4093 | 4093 | -> Bitmap Index Scan on ti1_expr |
4094 | 4094 | Index Cond: ((c1 < 100) = true) |
4095 | 4095 | (4 rows) |
@@ -4129,7 +4129,7 @@ error hint: | ||
4129 | 4129 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4130 | 4130 | Bitmap Heap Scan on ti1 |
4131 | 4131 | Recheck Cond: (c1 < 100) |
4132 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4132 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4133 | 4133 | -> Bitmap Index Scan on ti1_uniq |
4134 | 4134 | Index Cond: (c1 < 100) |
4135 | 4135 | (5 rows) |
@@ -4149,7 +4149,7 @@ error hint: | ||
4149 | 4149 | --------------------------------------------------------------------------------------------------------------------------------------- |
4150 | 4150 | Bitmap Heap Scan on ti1 |
4151 | 4151 | Recheck Cond: ((c1 < 100) AND (c2 = 1)) |
4152 | - Filter: ((ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4152 | + Filter: ((ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4153 | 4153 | -> Bitmap Index Scan on ti1_multi |
4154 | 4154 | Index Cond: ((c1 < 100) AND (c2 = 1)) |
4155 | 4155 | (5 rows) |
@@ -4189,7 +4189,7 @@ error hint: | ||
4189 | 4189 | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
4190 | 4190 | Bitmap Heap Scan on ti1 |
4191 | 4191 | Recheck Cond: (c1 < 100) |
4192 | - Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4192 | + Filter: ((c2 = 1) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4193 | 4193 | -> Bitmap Index Scan on ti1_pkey |
4194 | 4194 | Index Cond: (c1 < 100) |
4195 | 4195 | (5 rows) |
@@ -4209,7 +4209,7 @@ error hint: | ||
4209 | 4209 | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
4210 | 4210 | Bitmap Heap Scan on ti1 |
4211 | 4211 | Recheck Cond: (c2 = 1) |
4212 | - Filter: ((c1 < 100) AND (ctid = '(1,1)'::tid) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery) AND (lower(c4) = '1'::text)) | |
4212 | + Filter: ((c1 < 100) AND (ctid = '(1,1)'::tid) AND (lower(c4) = '1'::text) AND (to_tsvector('english'::regconfig, c4) @@ '''a'' & ''b'''::tsquery)) | |
4213 | 4213 | -> Bitmap Index Scan on ti1_c2_key |
4214 | 4214 | Index Cond: (c2 = 1) |
4215 | 4215 | (5 rows) |
@@ -4280,9 +4280,9 @@ not used hint: | ||
4280 | 4280 | duplication hint: |
4281 | 4281 | error hint: |
4282 | 4282 | |
4283 | - QUERY PLAN | |
4284 | ----------------------------------- | |
4285 | - Index Scan using ti1_gist on ti1 | |
4283 | + QUERY PLAN | |
4284 | +--------------------------------------- | |
4285 | + Index Only Scan using ti1_gist on ti1 | |
4286 | 4286 | Index Cond: (c1 < 1) |
4287 | 4287 | (2 rows) |
4288 | 4288 |
@@ -5066,11 +5066,13 @@ EXPLAIN (COSTS false) UPDATE s1.p1 SET c4 = c4 WHERE c1 = 1; | ||
5066 | 5066 | QUERY PLAN |
5067 | 5067 | -------------------------- |
5068 | 5068 | Update on p1 |
5069 | + Update on p1 | |
5070 | + Update on p1c1 | |
5069 | 5071 | -> Seq Scan on p1 |
5070 | 5072 | Filter: (c1 = 1) |
5071 | 5073 | -> Seq Scan on p1c1 |
5072 | 5074 | Filter: (c1 = 1) |
5073 | -(5 rows) | |
5075 | +(7 rows) | |
5074 | 5076 | |
5075 | 5077 | /*+IndexScan(p1)*/ |
5076 | 5078 | EXPLAIN (COSTS false) UPDATE s1.p1 SET c4 = c4 WHERE c1 = 1; |
@@ -5084,11 +5086,13 @@ error hint: | ||
5084 | 5086 | QUERY PLAN |
5085 | 5087 | --------------------------------------- |
5086 | 5088 | Update on p1 |
5089 | + Update on p1 | |
5090 | + Update on p1c1 | |
5087 | 5091 | -> Index Scan using p1_i on p1 |
5088 | 5092 | Index Cond: (c1 = 1) |
5089 | 5093 | -> Index Scan using p1c1_i on p1c1 |
5090 | 5094 | Index Cond: (c1 = 1) |
5091 | -(5 rows) | |
5095 | +(7 rows) | |
5092 | 5096 | |
5093 | 5097 | /*+IndexScan(p1 p1_pkey)*/ |
5094 | 5098 | EXPLAIN (COSTS false) UPDATE s1.p1 SET c4 = c4 WHERE c1 = 1; |
@@ -5106,11 +5110,13 @@ error hint: | ||
5106 | 5110 | QUERY PLAN |
5107 | 5111 | ------------------------------------------ |
5108 | 5112 | Update on p1 |
5113 | + Update on p1 | |
5114 | + Update on p1c1 | |
5109 | 5115 | -> Index Scan using p1_pkey on p1 |
5110 | 5116 | Index Cond: (c1 = 1) |
5111 | 5117 | -> Index Scan using p1c1_pkey on p1c1 |
5112 | 5118 | Index Cond: (c1 = 1) |
5113 | -(5 rows) | |
5119 | +(7 rows) | |
5114 | 5120 | |
5115 | 5121 | ---- |
5116 | 5122 | ---- No. S-3-9 inheritance table number |
@@ -106,7 +106,10 @@ make_join_rel(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2) | ||
106 | 106 | /* we don't bother trying to make the remaining fields valid */ |
107 | 107 | sjinfo->lhs_strict = false; |
108 | 108 | sjinfo->delay_upper_joins = false; |
109 | - sjinfo->join_quals = NIL; | |
109 | + sjinfo->semi_can_btree = false; | |
110 | + sjinfo->semi_can_hash = false; | |
111 | + sjinfo->semi_operators = NIL; | |
112 | + sjinfo->semi_rhs_exprs = NIL; | |
110 | 113 | } |
111 | 114 | |
112 | 115 | /* |
@@ -654,14 +654,14 @@ EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, | ||
654 | 654 | /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/ |
655 | 655 | EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; |
656 | 656 | /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/ |
657 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
657 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
658 | 658 | |
659 | 659 | -- No. J-2-4-2 |
660 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
660 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
661 | 661 | /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/ |
662 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
662 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
663 | 663 | /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/ |
664 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
664 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
665 | 665 | |
666 | 666 | ---- |
667 | 667 | ---- No. J-3-1 join method hint |
@@ -130,9 +130,9 @@ EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2, s1.f1() t3, s1.f1() | ||
130 | 130 | EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2, s1.f1() t3, s1.f1() t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; |
131 | 131 | |
132 | 132 | -- No. L-1-6-8 |
133 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
133 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
134 | 134 | /*+Leading(t4 t3 t2 t1)*/ |
135 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
135 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t1 (c1, c2, c3, c4), s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
136 | 136 | |
137 | 137 | -- No. L-1-6-9 |
138 | 138 | EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT st1.c1 FROM s1.t1 st1, s1.t1 st2, s1.t1 st3, s1.t1 st4 WHERE st1.c1 = st2.c1 AND st1.c1 = st3.c1 AND st1.c1 = st4.c1) SELECT * FROM c1 ct1, c1 ct2, c1 ct3, c1 ct4 WHERE ct1.c1 = ct2.c1 AND ct1.c1 = ct3.c1 AND ct1.c1 = ct4.c1; |
@@ -538,18 +538,18 @@ EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1; | ||
538 | 538 | ---- |
539 | 539 | |
540 | 540 | -- No. L-2-4-1 |
541 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
541 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
542 | 542 | /*+ Leading(t3 t1 t2) */ |
543 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
543 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
544 | 544 | /*+ Leading(*VALUES* t1 t2) */ |
545 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
545 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
546 | 546 | |
547 | 547 | -- No. L-2-4-2 |
548 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
548 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
549 | 549 | /*+ Leading(t4 t3 t2 t1) */ |
550 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
550 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
551 | 551 | /*+ Leading(*VALUES* t3 t2 t1) */ |
552 | -EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
552 | +EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
553 | 553 | |
554 | 554 | ---- |
555 | 555 | ---- No. L-3-1 leading the order of table joins |
@@ -1152,37 +1152,37 @@ EXPLAIN SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1; | ||
1152 | 1152 | |
1153 | 1153 | -- No. R-2-4-1 |
1154 | 1154 | \o results/ut-R.tmpout |
1155 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1155 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1156 | 1156 | \o |
1157 | 1157 | \! sql/maskout.sh results/ut-R.tmpout |
1158 | 1158 | |
1159 | 1159 | \o results/ut-R.tmpout |
1160 | 1160 | /*+ Leading(t3 t1 t2) Rows(t3 t1 #2)Rows(t3 t1 t2 #2)*/ |
1161 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1161 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1162 | 1162 | \o |
1163 | 1163 | \! sql/maskout.sh results/ut-R.tmpout |
1164 | 1164 | |
1165 | 1165 | \o results/ut-R.tmpout |
1166 | 1166 | /*+ Leading(*VALUES* t1 t2) Rows(*VALUES* t1 #2)Rows(*VALUES* t1 t2 #20)*/ |
1167 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1167 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1; | |
1168 | 1168 | \o |
1169 | 1169 | \! sql/maskout.sh results/ut-R.tmpout |
1170 | 1170 | |
1171 | 1171 | -- No. R-2-4-2 |
1172 | 1172 | \o results/ut-R.tmpout |
1173 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1173 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1174 | 1174 | \o |
1175 | 1175 | \! sql/maskout.sh results/ut-R.tmpout |
1176 | 1176 | |
1177 | 1177 | \o results/ut-R.tmpout |
1178 | 1178 | /*+ Leading(t4 t3 t2 t1) Rows(t4 t3 #2) Rows(t4 t3 t2 #2)Rows(t4 t3 t2 t1 #2)*/ |
1179 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1179 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1180 | 1180 | \o |
1181 | 1181 | \! sql/maskout.sh results/ut-R.tmpout |
1182 | 1182 | |
1183 | 1183 | \o results/ut-R.tmpout |
1184 | 1184 | /*+ Leading(*VALUES* t3 t2 t1) Rows(t4 t3 #2)Rows(*VALUES* t3 t2 #2)Rows(*VALUES* t3 t2 t1 #2)*/ |
1185 | -EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1185 | +EXPLAIN SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1; | |
1186 | 1186 | \o |
1187 | 1187 | \! sql/maskout.sh results/ut-R.tmpout |
1188 | 1188 |
@@ -490,11 +490,11 @@ EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = | ||
490 | 490 | EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1) WHERE t1.c1 = 1; |
491 | 491 | |
492 | 492 | -- No. S-2-4-2 |
493 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
493 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
494 | 494 | /*+SeqScan(t1 t2)*/ |
495 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
495 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
496 | 496 | /*+SeqScan(*VALUES*)*/ |
497 | -EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
497 | +EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1; | |
498 | 498 | |
499 | 499 | ---- |
500 | 500 | ---- No. S-3-1 scan method hint |