diff --git a/enginetest/queries/imdb_plans.go b/enginetest/queries/imdb_plans.go index 10da722b21..928a4cf038 100644 --- a/enginetest/queries/imdb_plans.go +++ b/enginetest/queries/imdb_plans.go @@ -21324,7 +21324,7 @@ WHERE cct1.kind ='cast' ExpectedPlan: "Project\n" + " ├─ columns: [min(chn.name):0!null->voiced_char:0, min(n.name):1!null->voicing_actress:0, min(t.title):2!null->voiced_animation:0]\n" + " └─ GroupBy\n" + - " ├─ select: MIN(chn.name:9!null), MIN(n.name:31!null), MIN(t.title:38!null)\n" + + " ├─ select: MIN(chn.name:39!null), MIN(n.name:8!null), MIN(t.title:1!null)\n" + " ├─ group: \n" + " └─ InnerJoin\n" + " ├─ AND\n" + @@ -21332,266 +21332,269 @@ WHERE cct1.kind ='cast' " │ │ ├─ AND\n" + " │ │ │ ├─ AND\n" + " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ │ └─ mi.movie_id:25!null\n" + + " │ │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ │ └─ mi.movie_id:12!null\n" + " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ └─ mc.movie_id:23!null\n" + + " │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ └─ mc.movie_id:15!null\n" + " │ │ │ └─ Eq\n" + - " │ │ │ ├─ t.id:37!null\n" + - " │ │ │ └─ ci.movie_id:11!null\n" + + " │ │ │ ├─ t.id:0!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + " │ │ └─ Eq\n" + - " │ │ ├─ t.id:37!null\n" + - " │ │ └─ mk.movie_id:28!null\n" + + " │ │ ├─ t.id:0!null\n" + + " │ │ └─ mk.movie_id:10!null\n" + " │ └─ Eq\n" + - " │ ├─ t.id:37!null\n" + - " │ └─ cc.movie_id:1\n" + - " ├─ InnerJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.id:35!null\n" + - " │ │ └─ ci.role_id:14!null\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ t.id:0!null\n" + + " │ └─ cc.movie_id:33\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ it3.id:19!null\n" + - " │ │ │ └─ pi.info_type_id:34!null\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ ci.person_id:10!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ k.id:21!null\n" + - " │ │ │ │ │ └─ mk.keyword_id:29!null\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ it.id:17!null\n" + - " │ │ │ │ │ │ └─ mi.info_type_id:26!null\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ cn.id:15!null\n" + - " │ │ │ │ │ │ │ └─ mc.company_id:24!null\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ chn.id:8!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ci.person_role_id:12\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.id:6!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.status_id:3!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.id:4!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.subject_id:2!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cast (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ complete+verified (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ colSet: (15,16)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tableId: 4\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ chn.name:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Queen (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.note:3\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ cn.country_code:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ [us] (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ it.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ └─ release dates (longtext)\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ it3.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ └─ trivia (longtext)\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ ├─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (40,41)\n" + - " │ │ │ │ │ │ │ │ └─ tableId: 9\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ k.keyword:1!null\n" + - " │ │ │ │ │ │ │ │ └─ computer-animation (longtext)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ └─ mi.info:2!null IS NULL\n" + - " │ │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ │ ├─ mi.info LIKE 'Japan:%200%'\n" + - " │ │ │ │ │ │ └─ mi.info LIKE 'USA:%200%'\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.gender:2\n" + - " │ │ │ │ │ └─ f (longtext)\n" + - " │ │ │ │ └─ n.name LIKE '%An%'\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ ProcessTable\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.role:1!null\n" + - " │ │ └─ actress (longtext)\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ AND\n" + - " │ ├─ AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ t.title:1!null\n" + - " │ │ │ └─ Shrek 2 (longtext)\n" + - " │ │ └─ GreaterThanOrEqual\n" + - " │ │ ├─ t.production_year:2\n" + - " │ │ └─ 2000 (smallint)\n" + - " │ └─ LessThanOrEqual\n" + - " │ ├─ t.production_year:2\n" + - " │ └─ 2010 (smallint)\n" + - " └─ TableAlias(t)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ t.title:1!null\n" + + " │ │ │ │ └─ Shrek 2 (longtext)\n" + + " │ │ │ └─ GreaterThanOrEqual\n" + + " │ │ │ ├─ t.production_year:2\n" + + " │ │ │ └─ 2000 (smallint)\n" + + " │ │ └─ LessThanOrEqual\n" + + " │ │ ├─ t.production_year:2\n" + + " │ │ └─ 2010 (smallint)\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ rt.id:3!null\n" + + " │ └─ ci.role_id:29!null\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ rt.role:1!null\n" + + " │ │ └─ actress (longtext)\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ n.id:7!null\n" + + " │ │ │ │ └─ pi.person_id:5!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.person_id:25!null\n" + + " │ │ │ └─ pi.person_id:5!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ it3.id:19!null\n" + + " │ │ └─ pi.info_type_id:6!null\n" + + " │ └─ Eq\n" + + " │ ├─ an.person_id:30!null\n" + + " │ └─ pi.person_id:5!null\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ Eq\n" + + " │ │ ├─ n.id:7!null\n" + + " │ │ └─ ci.person_id:25!null\n" + + " │ └─ Eq\n" + + " │ ├─ n.id:7!null\n" + + " │ └─ an.person_id:30!null\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ n.gender:2\n" + + " │ │ │ └─ f (longtext)\n" + + " │ │ └─ n.name LIKE '%An%'\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mk.movie_id:10!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ k.id:17!null\n" + + " │ └─ mk.keyword_id:11!null\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ └─ mi.movie_id:12!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mi.movie_id:12!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ it.id:21!null\n" + + " │ └─ mi.info_type_id:13!null\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ mi.info:2!null IS NULL\n" + + " │ │ └─ Or\n" + + " │ │ ├─ mi.info LIKE 'Japan:%200%'\n" + + " │ │ └─ mi.info LIKE 'USA:%200%'\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mc.movie_id:15!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ cn.id:23!null\n" + + " │ └─ mc.company_id:16!null\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ k.keyword:1!null\n" + + " │ │ └─ computer-animation (longtext)\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it3.info:1!null\n" + + " │ │ └─ trivia (longtext)\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it.info:1!null\n" + + " │ │ └─ release dates (longtext)\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ ├─ columns: [id info]\n" + + " │ ├─ colSet: (38,39)\n" + + " │ └─ tableId: 8\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cn.country_code:1\n" + + " │ │ └─ [us] (longtext)\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ chn.id:38!null\n" + + " │ └─ ci.person_role_id:27\n" + + " ├─ InnerJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.id:36!null\n" + + " │ │ └─ cc.status_id:35!null\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ cc.movie_id:33\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ ci.note:3\n" + + " │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ ProcessTable\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ keys: [ci.person_id:25!null]\n" + + " │ │ │ ├─ colSet: (1-8)\n" + + " │ │ │ ├─ tableId: 1\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: aka_name\n" + + " │ │ │ └─ columns: [person_id]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cct1.id:31!null\n" + + " │ │ │ └─ cc.subject_id:34!null\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ cct1.kind:1!null\n" + + " │ │ │ │ └─ cast (longtext)\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ ProcessTable\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.kind:1!null\n" + + " │ │ └─ complete+verified (longtext)\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ ├─ columns: [id kind]\n" + + " │ ├─ colSet: (15,16)\n" + + " │ └─ tableId: 4\n" + + " └─ Filter\n" + + " ├─ Eq\n" + + " │ ├─ chn.name:1!null\n" + + " │ └─ Queen (longtext)\n" + + " └─ TableAlias(chn)\n" + + " └─ ProcessTable\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -21600,122 +21603,124 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ (chn.name = 'Queen')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'trivia')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'trivia')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ Filter\n" + + " ├─ (chn.name = 'Queen')\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -21724,122 +21729,124 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ (chn.name = 'Queen')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'trivia')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2010))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'trivia')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ Filter\n" + + " ├─ (chn.name = 'Queen')\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", }, { @@ -21913,7 +21920,7 @@ WHERE cct1.kind ='cast' ExpectedPlan: "Project\n" + " ├─ columns: [min(chn.name):0!null->voiced_char:0, min(n.name):1!null->voicing_actress:0, min(t.title):2!null->voiced_animation:0]\n" + " └─ GroupBy\n" + - " ├─ select: MIN(chn.name:9!null), MIN(n.name:31!null), MIN(t.title:38!null)\n" + + " ├─ select: MIN(chn.name:39!null), MIN(n.name:8!null), MIN(t.title:1!null)\n" + " ├─ group: \n" + " └─ InnerJoin\n" + " ├─ AND\n" + @@ -21921,261 +21928,264 @@ WHERE cct1.kind ='cast' " │ │ ├─ AND\n" + " │ │ │ ├─ AND\n" + " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ │ └─ mi.movie_id:25!null\n" + + " │ │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ │ └─ mi.movie_id:12!null\n" + " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ └─ mc.movie_id:23!null\n" + + " │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ └─ mc.movie_id:15!null\n" + " │ │ │ └─ Eq\n" + - " │ │ │ ├─ t.id:37!null\n" + - " │ │ │ └─ ci.movie_id:11!null\n" + + " │ │ │ ├─ t.id:0!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + " │ │ └─ Eq\n" + - " │ │ ├─ t.id:37!null\n" + - " │ │ └─ mk.movie_id:28!null\n" + + " │ │ ├─ t.id:0!null\n" + + " │ │ └─ mk.movie_id:10!null\n" + " │ └─ Eq\n" + - " │ ├─ t.id:37!null\n" + - " │ └─ cc.movie_id:1\n" + - " ├─ InnerJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.id:35!null\n" + - " │ │ └─ ci.role_id:14!null\n" + - " │ ├─ InnerJoin\n" + + " │ ├─ t.id:0!null\n" + + " │ └─ cc.movie_id:33\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ it3.id:19!null\n" + - " │ │ │ └─ pi.info_type_id:34!null\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ ci.person_id:10!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ k.id:21!null\n" + - " │ │ │ │ │ └─ mk.keyword_id:29!null\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ it.id:17!null\n" + - " │ │ │ │ │ │ └─ mi.info_type_id:26!null\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ cn.id:15!null\n" + - " │ │ │ │ │ │ │ └─ mc.company_id:24!null\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ chn.id:8!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ci.person_role_id:12\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.id:6!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.status_id:3!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.id:4!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.subject_id:2!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cast (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ complete+verified (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ colSet: (15,16)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tableId: 4\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ chn.name:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Queen (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.note:3\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ cn.country_code:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ [us] (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ it.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ └─ release dates (longtext)\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ it3.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ └─ height (longtext)\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ ├─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (40,41)\n" + - " │ │ │ │ │ │ │ │ └─ tableId: 9\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ k.keyword:1!null\n" + - " │ │ │ │ │ │ │ │ └─ computer-animation (longtext)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ mi.info LIKE 'USA:%200%'\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.gender:2\n" + - " │ │ │ │ │ └─ f (longtext)\n" + - " │ │ │ │ └─ n.name LIKE '%An%'\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ ProcessTable\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.role:1!null\n" + - " │ │ └─ actress (longtext)\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ AND\n" + - " │ ├─ AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ t.title:1!null\n" + - " │ │ │ └─ Shrek 2 (longtext)\n" + - " │ │ └─ GreaterThanOrEqual\n" + - " │ │ ├─ t.production_year:2\n" + - " │ │ └─ 2000 (smallint)\n" + - " │ └─ LessThanOrEqual\n" + - " │ ├─ t.production_year:2\n" + - " │ └─ 2005 (smallint)\n" + - " └─ TableAlias(t)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ t.title:1!null\n" + + " │ │ │ │ └─ Shrek 2 (longtext)\n" + + " │ │ │ └─ GreaterThanOrEqual\n" + + " │ │ │ ├─ t.production_year:2\n" + + " │ │ │ └─ 2000 (smallint)\n" + + " │ │ └─ LessThanOrEqual\n" + + " │ │ ├─ t.production_year:2\n" + + " │ │ └─ 2005 (smallint)\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ rt.id:3!null\n" + + " │ └─ ci.role_id:29!null\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ rt.role:1!null\n" + + " │ │ └─ actress (longtext)\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ n.id:7!null\n" + + " │ │ │ │ └─ pi.person_id:5!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.person_id:25!null\n" + + " │ │ │ └─ pi.person_id:5!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ it3.id:19!null\n" + + " │ │ └─ pi.info_type_id:6!null\n" + + " │ └─ Eq\n" + + " │ ├─ an.person_id:30!null\n" + + " │ └─ pi.person_id:5!null\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ Eq\n" + + " │ │ ├─ n.id:7!null\n" + + " │ │ └─ ci.person_id:25!null\n" + + " │ └─ Eq\n" + + " │ ├─ n.id:7!null\n" + + " │ └─ an.person_id:30!null\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ n.gender:2\n" + + " │ │ │ └─ f (longtext)\n" + + " │ │ └─ n.name LIKE '%An%'\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mk.movie_id:10!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ k.id:17!null\n" + + " │ └─ mk.keyword_id:11!null\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ └─ mi.movie_id:12!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mi.movie_id:12!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ it.id:21!null\n" + + " │ └─ mi.info_type_id:13!null\n" + + " ├─ Filter\n" + + " │ ├─ mi.info LIKE 'USA:%200%'\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mc.movie_id:15!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ cn.id:23!null\n" + + " │ └─ mc.company_id:16!null\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ k.keyword:1!null\n" + + " │ │ └─ computer-animation (longtext)\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it3.info:1!null\n" + + " │ │ └─ height (longtext)\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it.info:1!null\n" + + " │ │ └─ release dates (longtext)\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ ├─ columns: [id info]\n" + + " │ ├─ colSet: (38,39)\n" + + " │ └─ tableId: 8\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cn.country_code:1\n" + + " │ │ └─ [us] (longtext)\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ chn.id:38!null\n" + + " │ └─ ci.person_role_id:27\n" + + " ├─ InnerJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.id:36!null\n" + + " │ │ └─ cc.status_id:35!null\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ cc.movie_id:33\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ ci.note:3\n" + + " │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ ProcessTable\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ keys: [ci.person_id:25!null]\n" + + " │ │ │ ├─ colSet: (1-8)\n" + + " │ │ │ ├─ tableId: 1\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: aka_name\n" + + " │ │ │ └─ columns: [person_id]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cct1.id:31!null\n" + + " │ │ │ └─ cc.subject_id:34!null\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ cct1.kind:1!null\n" + + " │ │ │ │ └─ cast (longtext)\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ ProcessTable\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.kind:1!null\n" + + " │ │ └─ complete+verified (longtext)\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ ├─ columns: [id kind]\n" + + " │ ├─ colSet: (15,16)\n" + + " │ └─ tableId: 4\n" + + " └─ Filter\n" + + " ├─ Eq\n" + + " │ ├─ chn.name:1!null\n" + + " │ └─ Queen (longtext)\n" + + " └─ TableAlias(chn)\n" + + " └─ ProcessTable\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -22184,122 +22194,124 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ (chn.name = 'Queen')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'height')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ mi.info LIKE 'USA:%200%'\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ mi.info LIKE 'USA:%200%'\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'height')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ Filter\n" + + " ├─ (chn.name = 'Queen')\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -22308,122 +22320,124 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ (chn.name = 'Queen')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'height')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ mi.info LIKE 'USA:%200%'\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ (((t.title = 'Shrek 2') AND (t.production_year >= 2000)) AND (t.production_year <= 2005))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ mi.info LIKE 'USA:%200%'\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'height')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ Filter\n" + + " ├─ (chn.name = 'Queen')\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", }, { @@ -22498,7 +22512,7 @@ WHERE cct1.kind ='cast' ExpectedPlan: "Project\n" + " ├─ columns: [min(chn.name):0!null->voiced_char:0, min(n.name):1!null->voicing_actress:0, min(t.title):2!null->voiced_animation:0]\n" + " └─ GroupBy\n" + - " ├─ select: MIN(chn.name:9!null), MIN(n.name:31!null), MIN(t.title:38!null)\n" + + " ├─ select: MIN(chn.name:39!null), MIN(n.name:8!null), MIN(t.title:1!null)\n" + " ├─ group: \n" + " └─ InnerJoin\n" + " ├─ AND\n" + @@ -22506,258 +22520,261 @@ WHERE cct1.kind ='cast' " │ │ ├─ AND\n" + " │ │ │ ├─ AND\n" + " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ │ └─ mi.movie_id:25!null\n" + + " │ │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ │ └─ mi.movie_id:12!null\n" + " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ t.id:37!null\n" + - " │ │ │ │ └─ mc.movie_id:23!null\n" + + " │ │ │ │ ├─ t.id:0!null\n" + + " │ │ │ │ └─ mc.movie_id:15!null\n" + " │ │ │ └─ Eq\n" + - " │ │ │ ├─ t.id:37!null\n" + - " │ │ │ └─ ci.movie_id:11!null\n" + + " │ │ │ ├─ t.id:0!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + " │ │ └─ Eq\n" + - " │ │ ├─ t.id:37!null\n" + - " │ │ └─ mk.movie_id:28!null\n" + + " │ │ ├─ t.id:0!null\n" + + " │ │ └─ mk.movie_id:10!null\n" + " │ └─ Eq\n" + - " │ ├─ t.id:37!null\n" + - " │ └─ cc.movie_id:1\n" + - " ├─ InnerJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.id:35!null\n" + - " │ │ └─ ci.role_id:14!null\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ └─ pi.person_id:33!null\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ it3.id:19!null\n" + - " │ │ │ └─ pi.info_type_id:34!null\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ │ └─ ci.person_id:10!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ n.id:30!null\n" + - " │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ mk.movie_id:28!null\n" + - " │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ k.id:21!null\n" + - " │ │ │ │ │ └─ mk.keyword_id:29!null\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ mi.movie_id:25!null\n" + - " │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ it.id:17!null\n" + - " │ │ │ │ │ │ └─ mi.info_type_id:26!null\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ │ └─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ mc.movie_id:23!null\n" + - " │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ ├─ cn.id:15!null\n" + - " │ │ │ │ │ │ │ └─ mc.company_id:24!null\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.movie_id:11!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.movie_id:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.person_id:10!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ an.person_id:0!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ chn.id:8!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ci.person_role_id:12\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.id:6!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.status_id:3!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.id:4!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cc.subject_id:2!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct1.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ cast (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ cct2.kind:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ complete+verified (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ colSet: (15,16)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tableId: 4\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ ci.note:3\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice: Japanese version) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ cn.country_code:1\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ [us] (longtext)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ it.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ │ └─ release dates (longtext)\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ it3.info:1!null\n" + - " │ │ │ │ │ │ │ │ │ └─ trivia (longtext)\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ ├─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (40,41)\n" + - " │ │ │ │ │ │ │ │ └─ tableId: 9\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ k.keyword:1!null\n" + - " │ │ │ │ │ │ │ │ └─ computer-animation (longtext)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ └─ mi.info:2!null IS NULL\n" + - " │ │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ │ ├─ mi.info LIKE 'Japan:%200%'\n" + - " │ │ │ │ │ │ └─ mi.info LIKE 'USA:%200%'\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ ProcessTable\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ n.gender:2\n" + - " │ │ │ │ │ └─ f (longtext)\n" + - " │ │ │ │ └─ n.name LIKE '%An%'\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ ProcessTable\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rt.role:1!null\n" + - " │ │ └─ actress (longtext)\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ AND\n" + - " │ ├─ GreaterThanOrEqual\n" + - " │ │ ├─ t.production_year:2\n" + - " │ │ └─ 2000 (smallint)\n" + - " │ └─ LessThanOrEqual\n" + - " │ ├─ t.production_year:2\n" + - " │ └─ 2010 (smallint)\n" + - " └─ TableAlias(t)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " │ ├─ t.id:0!null\n" + + " │ └─ cc.movie_id:33\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ GreaterThanOrEqual\n" + + " │ │ │ ├─ t.production_year:2\n" + + " │ │ │ └─ 2000 (smallint)\n" + + " │ │ └─ LessThanOrEqual\n" + + " │ │ ├─ t.production_year:2\n" + + " │ │ └─ 2010 (smallint)\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ rt.id:3!null\n" + + " │ └─ ci.role_id:29!null\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ rt.role:1!null\n" + + " │ │ └─ actress (longtext)\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ n.id:7!null\n" + + " │ │ │ │ └─ pi.person_id:5!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.person_id:25!null\n" + + " │ │ │ └─ pi.person_id:5!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ it3.id:19!null\n" + + " │ │ └─ pi.info_type_id:6!null\n" + + " │ └─ Eq\n" + + " │ ├─ an.person_id:30!null\n" + + " │ └─ pi.person_id:5!null\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ Eq\n" + + " │ │ ├─ n.id:7!null\n" + + " │ │ └─ ci.person_id:25!null\n" + + " │ └─ Eq\n" + + " │ ├─ n.id:7!null\n" + + " │ └─ an.person_id:30!null\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ n.gender:2\n" + + " │ │ │ └─ f (longtext)\n" + + " │ │ └─ n.name LIKE '%An%'\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ mk.movie_id:10!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mk.movie_id:10!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ k.id:17!null\n" + + " │ └─ mk.keyword_id:11!null\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ │ └─ mi.movie_id:12!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ mi.movie_id:12!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mi.movie_id:12!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ it.id:21!null\n" + + " │ └─ mi.info_type_id:13!null\n" + + " ├─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ mi.info:2!null IS NULL\n" + + " │ │ └─ Or\n" + + " │ │ ├─ mi.info LIKE 'Japan:%200%'\n" + + " │ │ └─ mi.info LIKE 'USA:%200%'\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ mc.movie_id:15!null\n" + + " │ │ │ └─ ci.movie_id:26!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ mc.movie_id:15!null\n" + + " │ │ └─ cc.movie_id:33\n" + + " │ └─ Eq\n" + + " │ ├─ cn.id:23!null\n" + + " │ └─ mc.company_id:16!null\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ k.keyword:1!null\n" + + " │ │ └─ computer-animation (longtext)\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it3.info:1!null\n" + + " │ │ └─ trivia (longtext)\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ it.info:1!null\n" + + " │ │ └─ release dates (longtext)\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ ├─ columns: [id info]\n" + + " │ ├─ colSet: (38,39)\n" + + " │ └─ tableId: 8\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cn.country_code:1\n" + + " │ │ └─ [us] (longtext)\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ Eq\n" + + " │ ├─ chn.id:38!null\n" + + " │ └─ ci.person_role_id:27\n" + + " ├─ InnerJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.id:36!null\n" + + " │ │ └─ cc.status_id:35!null\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ ci.movie_id:26!null\n" + + " │ │ │ └─ cc.movie_id:33\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ ci.note:3\n" + + " │ │ │ │ │ └─ TUPLE((voice) (longtext), (voice: Japanese version) (longtext), (voice) (uncredited) (longtext), (voice: English version) (longtext))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ ProcessTable\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ keys: [ci.person_id:25!null]\n" + + " │ │ │ ├─ colSet: (1-8)\n" + + " │ │ │ ├─ tableId: 1\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: aka_name\n" + + " │ │ │ └─ columns: [person_id]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cct1.id:31!null\n" + + " │ │ │ └─ cc.subject_id:34!null\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ cct1.kind:1!null\n" + + " │ │ │ │ └─ cast (longtext)\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ ProcessTable\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ cct2.kind:1!null\n" + + " │ │ └─ complete+verified (longtext)\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ ├─ columns: [id kind]\n" + + " │ ├─ colSet: (15,16)\n" + + " │ └─ tableId: 4\n" + + " └─ TableAlias(chn)\n" + + " └─ ProcessTable\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -22766,120 +22783,122 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'trivia')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'trivia')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [min(chn.name) as voiced_char, min(n.name) as voicing_actress, min(t.title) as voiced_animation]\n" + @@ -22888,120 +22907,122 @@ WHERE cct1.kind ='cast' " ├─ Grouping()\n" + " └─ InnerJoin\n" + " ├─ (((((t.id = mi.movie_id) AND (t.id = mc.movie_id)) AND (t.id = ci.movie_id)) AND (t.id = mk.movie_id)) AND (t.id = cc.movie_id))\n" + - " ├─ InnerJoin\n" + - " │ ├─ (rt.id = ci.role_id)\n" + - " │ ├─ InnerJoin\n" + - " │ │ ├─ (((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id))\n" + - " │ │ ├─ InnerJoin\n" + - " │ │ │ ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + - " │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + - " │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + - " │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + - " │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (((ci.movie_id = cc.movie_id) AND (ci.person_id = an.person_id)) AND (chn.id = ci.person_role_id))\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.id = cc.status_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ InnerJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.id = cc.subject_id)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ CrossJoin\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ TableAlias(an)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: aka_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cc)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: complete_cast\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [movie_id subject_id status_id]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct1.kind = 'cast')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct1)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ (cct2.kind = 'complete+verified')\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cct2)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: comp_cast_type\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id kind]\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(chn)\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ ├─ name: char_name\n" + - " │ │ │ │ │ │ │ │ │ │ │ │ └─ columns: [id name]\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ TableAlias(ci)\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ │ ├─ name: cast_info\n" + - " │ │ │ │ │ │ │ │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ (cn.country_code = '[us]')\n" + - " │ │ │ │ │ │ │ │ │ │ └─ TableAlias(cn)\n" + - " │ │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ │ ├─ name: company_name\n" + - " │ │ │ │ │ │ │ │ │ │ └─ columns: [id country_code]\n" + - " │ │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ │ ├─ (it.info = 'release dates')\n" + - " │ │ │ │ │ │ │ │ │ └─ TableAlias(it)\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (it3.info = 'trivia')\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(it3)\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: info_type\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id info]\n" + - " │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ ├─ (k.keyword = 'computer-animation')\n" + - " │ │ │ │ │ │ │ └─ TableAlias(k)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: keyword\n" + - " │ │ │ │ │ │ │ └─ columns: [id keyword]\n" + - " │ │ │ │ │ │ └─ TableAlias(mc)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: movie_companies\n" + - " │ │ │ │ │ │ └─ columns: [movie_id company_id]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + - " │ │ │ │ │ └─ TableAlias(mi)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: movie_info\n" + - " │ │ │ │ │ └─ columns: [movie_id info_type_id info]\n" + - " │ │ │ │ └─ TableAlias(mk)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: movie_keyword\n" + - " │ │ │ │ └─ columns: [movie_id keyword_id]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + - " │ │ │ └─ TableAlias(n)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: name\n" + - " │ │ │ └─ columns: [id name gender]\n" + - " │ │ └─ TableAlias(pi)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: person_info\n" + - " │ │ └─ columns: [person_id info_type_id]\n" + - " │ └─ Filter\n" + - " │ ├─ (rt.role = 'actress')\n" + - " │ └─ TableAlias(rt)\n" + - " │ └─ Table\n" + - " │ ├─ name: role_type\n" + - " │ └─ columns: [id role]\n" + - " └─ Filter\n" + - " ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + - " └─ TableAlias(t)\n" + - " └─ Table\n" + - " ├─ name: title\n" + - " └─ columns: [id title production_year]\n" + + " ├─ Filter\n" + + " │ ├─ ((t.production_year >= 2000) AND (t.production_year <= 2010))\n" + + " │ └─ TableAlias(t)\n" + + " │ └─ Table\n" + + " │ ├─ name: title\n" + + " │ └─ columns: [id title production_year]\n" + + " └─ InnerJoin\n" + + " ├─ (rt.id = ci.role_id)\n" + + " ├─ Filter\n" + + " │ ├─ (rt.role = 'actress')\n" + + " │ └─ TableAlias(rt)\n" + + " │ └─ Table\n" + + " │ ├─ name: role_type\n" + + " │ └─ columns: [id role]\n" + + " └─ InnerJoin\n" + + " ├─ ((((n.id = pi.person_id) AND (ci.person_id = pi.person_id)) AND (it3.id = pi.info_type_id)) AND (an.person_id = pi.person_id))\n" + + " ├─ TableAlias(pi)\n" + + " │ └─ Table\n" + + " │ ├─ name: person_info\n" + + " │ └─ columns: [person_id info_type_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((n.id = ci.person_id) AND (n.id = an.person_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((n.gender = 'f') AND n.name LIKE '%An%')\n" + + " │ └─ TableAlias(n)\n" + + " │ └─ Table\n" + + " │ ├─ name: name\n" + + " │ └─ columns: [id name gender]\n" + + " └─ InnerJoin\n" + + " ├─ (((((mc.movie_id = mk.movie_id) AND (mi.movie_id = mk.movie_id)) AND (ci.movie_id = mk.movie_id)) AND (mk.movie_id = cc.movie_id)) AND (k.id = mk.keyword_id))\n" + + " ├─ TableAlias(mk)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_keyword\n" + + " │ └─ columns: [movie_id keyword_id]\n" + + " └─ InnerJoin\n" + + " ├─ ((((mc.movie_id = mi.movie_id) AND (mi.movie_id = ci.movie_id)) AND (mi.movie_id = cc.movie_id)) AND (it.id = mi.info_type_id))\n" + + " ├─ Filter\n" + + " │ ├─ ((NOT(mi.info IS NULL)) AND (mi.info LIKE 'Japan:%200%' OR mi.info LIKE 'USA:%200%'))\n" + + " │ └─ TableAlias(mi)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_info\n" + + " │ └─ columns: [movie_id info_type_id info]\n" + + " └─ InnerJoin\n" + + " ├─ (((mc.movie_id = ci.movie_id) AND (mc.movie_id = cc.movie_id)) AND (cn.id = mc.company_id))\n" + + " ├─ TableAlias(mc)\n" + + " │ └─ Table\n" + + " │ ├─ name: movie_companies\n" + + " │ └─ columns: [movie_id company_id]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (k.keyword = 'computer-animation')\n" + + " │ └─ TableAlias(k)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyword\n" + + " │ └─ columns: [id keyword]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it3.info = 'trivia')\n" + + " │ └─ TableAlias(it3)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (it.info = 'release dates')\n" + + " │ └─ TableAlias(it)\n" + + " │ └─ Table\n" + + " │ ├─ name: info_type\n" + + " │ └─ columns: [id info]\n" + + " └─ CrossJoin\n" + + " ├─ Filter\n" + + " │ ├─ (cn.country_code = '[us]')\n" + + " │ └─ TableAlias(cn)\n" + + " │ └─ Table\n" + + " │ ├─ name: company_name\n" + + " │ └─ columns: [id country_code]\n" + + " └─ InnerJoin\n" + + " ├─ (chn.id = ci.person_role_id)\n" + + " ├─ InnerJoin\n" + + " │ ├─ (cct2.id = cc.status_id)\n" + + " │ ├─ InnerJoin\n" + + " │ │ ├─ (ci.movie_id = cc.movie_id)\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (ci.note HASH IN ('(voice)', '(voice: Japanese version)', '(voice) (uncredited)', '(voice: English version)'))\n" + + " │ │ │ │ └─ TableAlias(ci)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: cast_info\n" + + " │ │ │ │ └─ columns: [person_id movie_id person_role_id note role_id]\n" + + " │ │ │ └─ TableAlias(an)\n" + + " │ │ │ └─ IndexedTableAccess(aka_name)\n" + + " │ │ │ ├─ index: [aka_name.person_id]\n" + + " │ │ │ ├─ columns: [person_id]\n" + + " │ │ │ └─ keys: ci.person_id\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cct1.id = cc.subject_id)\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (cct1.kind = 'cast')\n" + + " │ │ │ └─ TableAlias(cct1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: comp_cast_type\n" + + " │ │ │ └─ columns: [id kind]\n" + + " │ │ └─ TableAlias(cc)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: complete_cast\n" + + " │ │ └─ columns: [movie_id subject_id status_id]\n" + + " │ └─ Filter\n" + + " │ ├─ (cct2.kind = 'complete+verified')\n" + + " │ └─ TableAlias(cct2)\n" + + " │ └─ Table\n" + + " │ ├─ name: comp_cast_type\n" + + " │ └─ columns: [id kind]\n" + + " └─ TableAlias(chn)\n" + + " └─ Table\n" + + " ├─ name: char_name\n" + + " └─ columns: [id name]\n" + "", }, { diff --git a/enginetest/queries/integration_plans.go b/enginetest/queries/integration_plans.go index 76be0579ab..2adc089d03 100644 --- a/enginetest/queries/integration_plans.go +++ b/enginetest/queries/integration_plans.go @@ -1400,281 +1400,262 @@ WHERE ) `, ExpectedPlan: "Project\n" + - " ├─ columns: [ct.id:0!null->id:0, ci.FTQLQ:33!null->VCGT3:0, nd.TW55N:15!null->UWBAI:0, aac.BTXC5:30->TPXBU:0, ct.V5DPX:8!null->V5DPX:0, ct.S3Q3Y:9!null->S3Q3Y:0, ct.ZRV3B:10!null->ZRV3B:0]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ ci.id:32!null\n" + - " │ └─ ct.FZ2R5:1!null\n" + + " ├─ columns: [ct.id:5!null->id:0, ci.FTQLQ:1!null->VCGT3:0, nd.TW55N:20!null->UWBAI:0, aac.BTXC5:35->TPXBU:0, ct.V5DPX:13!null->V5DPX:0, ct.S3Q3Y:14!null->S3Q3Y:0, ct.ZRV3B:15!null->ZRV3B:0]\n" + + " └─ LookupJoin\n" + + " ├─ Or\n" + + " │ ├─ AND\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ ct.OCA7E:11 IS NULL\n" + + " │ │ └─ Or\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [i7hcr.SWCQV:38!null]\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ i7hcr.id:37!null\n" + + " │ │ │ │ │ └─ ct.OCA7E:11\n" + + " │ │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ │ └─ IndexedTableAccess(EPZU6)\n" + + " │ │ │ │ ├─ index: [EPZU6.id]\n" + + " │ │ │ │ ├─ keys: [ct.OCA7E:11]\n" + + " │ │ │ │ ├─ colSet: (38-45)\n" + + " │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: EPZU6\n" + + " │ │ │ │ └─ columns: [id swcqv]\n" + + " │ │ │ └─ 1 (tinyint)\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [nd.id:37!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ nd.TW55N:40!null\n" + + " │ │ │ │ └─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [i7hcr.FVUCX:55!null]\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ i7hcr.id:54!null\n" + + " │ │ │ │ │ └─ ct.OCA7E:11\n" + + " │ │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ │ └─ IndexedTableAccess(EPZU6)\n" + + " │ │ │ │ ├─ index: [EPZU6.id]\n" + + " │ │ │ │ ├─ keys: [ct.OCA7E:11]\n" + + " │ │ │ │ ├─ colSet: (63-70)\n" + + " │ │ │ │ ├─ tableId: 7\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: EPZU6\n" + + " │ │ │ │ └─ columns: [id fvucx]\n" + + " │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ ├─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ │ │ ├─ colSet: (46-62)\n" + + " │ │ │ └─ tableId: 6\n" + + " │ │ └─ ct.LUEVY:7!null\n" + + " │ └─ AND\n" + + " │ ├─ NOT\n" + + " │ │ └─ ct.NRURT:10 IS NULL\n" + + " │ └─ InSubquery\n" + + " │ ├─ left: ct.NRURT:10\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ alias-string: select uct.id as FDL23 from EPZU6 as I7HCR join OUBDL as uct on uct.FTQLQ = I7HCR.TOFPN and uct.ZH72S = I7HCR.SJYN2 and uct.LJLUM = I7HCR.BTXC5 where I7HCR.SWCQV = 0 and I7HCR.id not in (select OCA7E from FLQLP where OCA7E is not null)\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uct.id:45!null->FDL23:0]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [EPZU6.id:37!null, EPZU6.TOFPN:38!null, EPZU6.SJYN2:39!null, EPZU6.BTXC5:40!null, EPZU6.FVUCX:41!null, EPZU6.SWCQV:42!null, EPZU6.YKSSU:43, EPZU6.FHCYT:44, OUBDL.id:45!null, OUBDL.FTQLQ:46, OUBDL.ZH72S:47, OUBDL.SFJ6L:48, OUBDL.V5DPX:49, OUBDL.LJLUM:50, OUBDL.IDPK7:51, OUBDL.NO52D:52, OUBDL.ZRV3B:53, OUBDL.VYO5E:54, OUBDL.YKSSU:55, OUBDL.FHCYT:56, OUBDL.QZ6VT:57]\n" + + " │ └─ Filter\n" + + " │ ├─ flqlp.OCA7E:58 IS NULL\n" + + " │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ ├─ Eq\n" + + " │ │ ├─ i7hcr.id:37!null\n" + + " │ │ └─ flqlp.OCA7E:58\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ uct.ZH72S:47\n" + + " │ │ │ │ └─ i7hcr.SJYN2:39!null\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ uct.LJLUM:50\n" + + " │ │ │ └─ i7hcr.BTXC5:40!null\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ i7hcr.SWCQV:42!null\n" + + " │ │ │ │ └─ 0 (int)\n" + + " │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: EPZU6\n" + + " │ │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + + " │ │ │ ├─ colSet: (71-78)\n" + + " │ │ │ └─ tableId: 8\n" + + " │ │ └─ TableAlias(uct)\n" + + " │ │ └─ IndexedTableAccess(OUBDL)\n" + + " │ │ ├─ index: [OUBDL.FTQLQ]\n" + + " │ │ ├─ keys: [i7hcr.TOFPN:38!null]\n" + + " │ │ ├─ colSet: (79-91)\n" + + " │ │ ├─ tableId: 9\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: OUBDL\n" + + " │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: TUPLE(i7hcr.id:37!null)\n" + + " │ ├─ right-key: TUPLE(flqlp.OCA7E:37)\n" + + " │ └─ IndexedTableAccess(FLQLP)\n" + + " │ ├─ index: [FLQLP.OCA7E]\n" + + " │ ├─ static: [{(NULL, ∞)}]\n" + + " │ ├─ colSet: (92-103)\n" + + " │ ├─ tableId: 10\n" + + " │ └─ Table\n" + + " │ ├─ name: FLQLP\n" + + " │ └─ columns: [oca7e]\n" + " ├─ LookupJoin\n" + - " │ ├─ Or\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ ct.OCA7E:6 IS NULL\n" + - " │ │ │ └─ Or\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [i7hcr.SWCQV:33!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ i7hcr.id:32!null\n" + - " │ │ │ │ │ │ └─ ct.OCA7E:6\n" + - " │ │ │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(EPZU6)\n" + - " │ │ │ │ │ ├─ index: [EPZU6.id]\n" + - " │ │ │ │ │ ├─ keys: [ct.OCA7E:6]\n" + - " │ │ │ │ │ ├─ colSet: (38-45)\n" + - " │ │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: EPZU6\n" + - " │ │ │ │ │ └─ columns: [id swcqv]\n" + - " │ │ │ │ └─ 1 (tinyint)\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ Subquery\n" + - " │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ ├─ alias-string: select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)\n" + - " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [nd.id:32!null]\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ nd.TW55N:35!null\n" + - " │ │ │ │ │ └─ Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [i7hcr.FVUCX:50!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ i7hcr.id:49!null\n" + - " │ │ │ │ │ │ └─ ct.OCA7E:6\n" + - " │ │ │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(EPZU6)\n" + - " │ │ │ │ │ ├─ index: [EPZU6.id]\n" + - " │ │ │ │ │ ├─ keys: [ct.OCA7E:6]\n" + - " │ │ │ │ │ ├─ colSet: (63-70)\n" + - " │ │ │ │ │ ├─ tableId: 7\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: EPZU6\n" + - " │ │ │ │ │ └─ columns: [id fvucx]\n" + - " │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ ├─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ │ │ │ ├─ colSet: (46-62)\n" + - " │ │ │ │ └─ tableId: 6\n" + - " │ │ │ └─ ct.LUEVY:2!null\n" + - " │ │ └─ AND\n" + - " │ │ ├─ NOT\n" + - " │ │ │ └─ ct.NRURT:5 IS NULL\n" + - " │ │ └─ InSubquery\n" + - " │ │ ├─ left: ct.NRURT:5\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select uct.id as FDL23 from EPZU6 as I7HCR join OUBDL as uct on uct.FTQLQ = I7HCR.TOFPN and uct.ZH72S = I7HCR.SJYN2 and uct.LJLUM = I7HCR.BTXC5 where I7HCR.SWCQV = 0 and I7HCR.id not in (select OCA7E from FLQLP where OCA7E is not null)\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [uct.id:40!null->FDL23:0]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [EPZU6.id:32!null, EPZU6.TOFPN:33!null, EPZU6.SJYN2:34!null, EPZU6.BTXC5:35!null, EPZU6.FVUCX:36!null, EPZU6.SWCQV:37!null, EPZU6.YKSSU:38, EPZU6.FHCYT:39, OUBDL.id:40!null, OUBDL.FTQLQ:41, OUBDL.ZH72S:42, OUBDL.SFJ6L:43, OUBDL.V5DPX:44, OUBDL.LJLUM:45, OUBDL.IDPK7:46, OUBDL.NO52D:47, OUBDL.ZRV3B:48, OUBDL.VYO5E:49, OUBDL.YKSSU:50, OUBDL.FHCYT:51, OUBDL.QZ6VT:52]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ flqlp.OCA7E:53 IS NULL\n" + - " │ │ └─ LeftOuterHashJoinExcludingNulls\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ i7hcr.id:32!null\n" + - " │ │ │ └─ flqlp.OCA7E:53\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ uct.ZH72S:42\n" + - " │ │ │ │ │ └─ i7hcr.SJYN2:34!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ uct.LJLUM:45\n" + - " │ │ │ │ └─ i7hcr.BTXC5:35!null\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ i7hcr.SWCQV:37!null\n" + - " │ │ │ │ │ └─ 0 (int)\n" + - " │ │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: EPZU6\n" + - " │ │ │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + - " │ │ │ │ ├─ colSet: (71-78)\n" + - " │ │ │ │ └─ tableId: 8\n" + - " │ │ │ └─ TableAlias(uct)\n" + - " │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + - " │ │ │ ├─ keys: [i7hcr.TOFPN:33!null]\n" + - " │ │ │ ├─ colSet: (79-91)\n" + - " │ │ │ ├─ tableId: 9\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: OUBDL\n" + - " │ │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(i7hcr.id:32!null)\n" + - " │ │ ├─ right-key: TUPLE(flqlp.OCA7E:32)\n" + - " │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ ├─ index: [FLQLP.OCA7E]\n" + - " │ │ ├─ static: [{(NULL, ∞)}]\n" + - " │ │ ├─ colSet: (92-103)\n" + - " │ │ ├─ tableId: 10\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: FLQLP\n" + - " │ │ └─ columns: [oca7e]\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ ct.LUEVY:2!null\n" + - " │ │ │ └─ nd.id:12!null\n" + - " │ │ ├─ TableAlias(ct)\n" + - " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-12)\n" + - " │ │ │ ├─ tableId: 1\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ TableAlias(ci)\n" + + " │ │ │ └─ ProcessTable\n" + " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: FLQLP\n" + - " │ │ │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-34)\n" + - " │ │ ├─ tableId: 3\n" + + " │ │ │ ├─ name: JDLNA\n" + + " │ │ │ └─ columns: [id ftqlq fwwiq o3qxw fhcyt]\n" + + " │ │ └─ TableAlias(ct)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.FZ2R5]\n" + + " │ │ ├─ keys: [ci.id:0!null]\n" + + " │ │ ├─ colSet: (1-12)\n" + + " │ │ ├─ tableId: 1\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ └─ TableAlias(aac)\n" + - " │ └─ IndexedTableAccess(TPXBU)\n" + - " │ ├─ index: [TPXBU.id]\n" + - " │ ├─ keys: [ct.M22QN:3!null]\n" + - " │ ├─ colSet: (35-37)\n" + - " │ ├─ tableId: 4\n" + + " │ │ ├─ name: FLQLP\n" + + " │ │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ keys: [ct.LUEVY:7!null]\n" + + " │ ├─ colSet: (18-34)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + - " │ ├─ name: TPXBU\n" + - " │ └─ columns: [id btxc5 fhcyt]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(ct.FZ2R5:1!null)\n" + - " ├─ right-key: TUPLE(ci.id:0!null)\n" + - " └─ TableAlias(ci)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: JDLNA\n" + - " └─ columns: [id ftqlq fwwiq o3qxw fhcyt]\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " ├─ keys: [ct.M22QN:8!null]\n" + + " ├─ colSet: (35-37)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: TPXBU\n" + + " └─ columns: [id btxc5 fhcyt]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [ct.id as id, ci.FTQLQ as VCGT3, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, ct.V5DPX as V5DPX, ct.S3Q3Y as S3Q3Y, ct.ZRV3B as ZRV3B]\n" + - " └─ HashJoin (estimated cost=16273.620 rows=14781)\n" + - " ├─ (ci.id = ct.FZ2R5)\n" + - " ├─ LookupJoin (estimated cost=48777.300 rows=14781)\n" + - " │ ├─ (((NOT(ct.OCA7E IS NULL)) AND ((Subquery(select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)) = ct.LUEVY))))) OR ((NOT(ct.NRURT IS NULL)) AND InSubquery\n" + - " │ │ ├─ left: ct.NRURT\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [uct.id as FDL23]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [EPZU6.id, EPZU6.TOFPN, EPZU6.SJYN2, EPZU6.BTXC5, EPZU6.FVUCX, EPZU6.SWCQV, EPZU6.YKSSU, EPZU6.FHCYT, OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.SFJ6L, OUBDL.V5DPX, OUBDL.LJLUM, OUBDL.IDPK7, OUBDL.NO52D, OUBDL.ZRV3B, OUBDL.VYO5E, OUBDL.YKSSU, OUBDL.FHCYT, OUBDL.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ flqlp.OCA7E IS NULL\n" + - " │ │ └─ LeftOuterHashJoinExcludingNulls\n" + - " │ │ ├─ (i7hcr.id = flqlp.OCA7E)\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ ((uct.ZH72S = i7hcr.SJYN2) AND (uct.LJLUM = i7hcr.BTXC5))\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ (i7hcr.SWCQV = 0)\n" + - " │ │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ └─ name: EPZU6\n" + - " │ │ │ └─ TableAlias(uct)\n" + - " │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + - " │ │ │ └─ keys: i7hcr.TOFPN\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (i7hcr.id)\n" + - " │ │ ├─ right-key: (flqlp.OCA7E)\n" + - " │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ ├─ index: [FLQLP.OCA7E]\n" + - " │ │ ├─ filters: [{(NULL, ∞)}]\n" + - " │ │ └─ columns: [oca7e]\n" + - " │ │ ))\n" + - " │ ├─ MergeJoin (estimated cost=18957.040 rows=14781)\n" + - " │ │ ├─ cmp: (ct.LUEVY = nd.id)\n" + - " │ │ ├─ TableAlias(ct)\n" + - " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ TableAlias(aac)\n" + - " │ └─ IndexedTableAccess(TPXBU)\n" + - " │ ├─ index: [TPXBU.id]\n" + - " │ └─ keys: ct.M22QN\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ct.FZ2R5)\n" + - " ├─ right-key: (ci.id)\n" + - " └─ TableAlias(ci)\n" + - " └─ Table\n" + - " └─ name: JDLNA\n" + + " └─ LookupJoin (estimated cost=1643.400 rows=498)\n" + + " ├─ (((NOT(ct.OCA7E IS NULL)) AND ((Subquery(select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)) = ct.LUEVY))))) OR ((NOT(ct.NRURT IS NULL)) AND InSubquery\n" + + " │ ├─ left: ct.NRURT\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uct.id as FDL23]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [EPZU6.id, EPZU6.TOFPN, EPZU6.SJYN2, EPZU6.BTXC5, EPZU6.FVUCX, EPZU6.SWCQV, EPZU6.YKSSU, EPZU6.FHCYT, OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.SFJ6L, OUBDL.V5DPX, OUBDL.LJLUM, OUBDL.IDPK7, OUBDL.NO52D, OUBDL.ZRV3B, OUBDL.VYO5E, OUBDL.YKSSU, OUBDL.FHCYT, OUBDL.QZ6VT]\n" + + " │ └─ Filter\n" + + " │ ├─ flqlp.OCA7E IS NULL\n" + + " │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ ├─ (i7hcr.id = flqlp.OCA7E)\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ ((uct.ZH72S = i7hcr.SJYN2) AND (uct.LJLUM = i7hcr.BTXC5))\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (i7hcr.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: EPZU6\n" + + " │ │ └─ TableAlias(uct)\n" + + " │ │ └─ IndexedTableAccess(OUBDL)\n" + + " │ │ ├─ index: [OUBDL.FTQLQ]\n" + + " │ │ └─ keys: i7hcr.TOFPN\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (i7hcr.id)\n" + + " │ ├─ right-key: (flqlp.OCA7E)\n" + + " │ └─ IndexedTableAccess(FLQLP)\n" + + " │ ├─ index: [FLQLP.OCA7E]\n" + + " │ ├─ filters: [{(NULL, ∞)}]\n" + + " │ └─ columns: [oca7e]\n" + + " │ ))\n" + + " ├─ LookupJoin (estimated cost=1643.400 rows=498)\n" + + " │ ├─ LookupJoin (estimated cost=1565.100 rows=498)\n" + + " │ │ ├─ TableAlias(ci)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: JDLNA\n" + + " │ │ └─ TableAlias(ct)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.FZ2R5]\n" + + " │ │ └─ keys: ci.id\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ └─ keys: ct.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " └─ keys: ct.M22QN\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [ct.id as id, ci.FTQLQ as VCGT3, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, ct.V5DPX as V5DPX, ct.S3Q3Y as S3Q3Y, ct.ZRV3B as ZRV3B]\n" + - " └─ HashJoin (estimated cost=16273.620 rows=14781) (actual rows=0 loops=1)\n" + - " ├─ (ci.id = ct.FZ2R5)\n" + - " ├─ LookupJoin (estimated cost=48777.300 rows=14781) (actual rows=0 loops=1)\n" + - " │ ├─ (((NOT(ct.OCA7E IS NULL)) AND ((Subquery(select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)) = ct.LUEVY))))) OR ((NOT(ct.NRURT IS NULL)) AND InSubquery\n" + - " │ │ ├─ left: ct.NRURT\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [uct.id as FDL23]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [EPZU6.id, EPZU6.TOFPN, EPZU6.SJYN2, EPZU6.BTXC5, EPZU6.FVUCX, EPZU6.SWCQV, EPZU6.YKSSU, EPZU6.FHCYT, OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.SFJ6L, OUBDL.V5DPX, OUBDL.LJLUM, OUBDL.IDPK7, OUBDL.NO52D, OUBDL.ZRV3B, OUBDL.VYO5E, OUBDL.YKSSU, OUBDL.FHCYT, OUBDL.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ flqlp.OCA7E IS NULL\n" + - " │ │ └─ LeftOuterHashJoinExcludingNulls\n" + - " │ │ ├─ (i7hcr.id = flqlp.OCA7E)\n" + - " │ │ ├─ LookupJoin\n" + - " │ │ │ ├─ ((uct.ZH72S = i7hcr.SJYN2) AND (uct.LJLUM = i7hcr.BTXC5))\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ (i7hcr.SWCQV = 0)\n" + - " │ │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ └─ name: EPZU6\n" + - " │ │ │ └─ TableAlias(uct)\n" + - " │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + - " │ │ │ └─ keys: i7hcr.TOFPN\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (i7hcr.id)\n" + - " │ │ ├─ right-key: (flqlp.OCA7E)\n" + - " │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ ├─ index: [FLQLP.OCA7E]\n" + - " │ │ ├─ filters: [{(NULL, ∞)}]\n" + - " │ │ └─ columns: [oca7e]\n" + - " │ │ ))\n" + - " │ ├─ MergeJoin (estimated cost=18957.040 rows=14781) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (ct.LUEVY = nd.id)\n" + - " │ │ ├─ TableAlias(ct)\n" + - " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ TableAlias(aac)\n" + - " │ └─ IndexedTableAccess(TPXBU)\n" + - " │ ├─ index: [TPXBU.id]\n" + - " │ └─ keys: ct.M22QN\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ct.FZ2R5)\n" + - " ├─ right-key: (ci.id)\n" + - " └─ TableAlias(ci)\n" + - " └─ Table\n" + - " └─ name: JDLNA\n" + + " └─ LookupJoin (estimated cost=1643.400 rows=498) (actual rows=0 loops=1)\n" + + " ├─ (((NOT(ct.OCA7E IS NULL)) AND ((Subquery(select I7HCR.SWCQV from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select I7HCR.FVUCX from EPZU6 as I7HCR where I7HCR.id = ct.OCA7E)) = ct.LUEVY))))) OR ((NOT(ct.NRURT IS NULL)) AND InSubquery\n" + + " │ ├─ left: ct.NRURT\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uct.id as FDL23]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [EPZU6.id, EPZU6.TOFPN, EPZU6.SJYN2, EPZU6.BTXC5, EPZU6.FVUCX, EPZU6.SWCQV, EPZU6.YKSSU, EPZU6.FHCYT, OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.SFJ6L, OUBDL.V5DPX, OUBDL.LJLUM, OUBDL.IDPK7, OUBDL.NO52D, OUBDL.ZRV3B, OUBDL.VYO5E, OUBDL.YKSSU, OUBDL.FHCYT, OUBDL.QZ6VT]\n" + + " │ └─ Filter\n" + + " │ ├─ flqlp.OCA7E IS NULL\n" + + " │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ ├─ (i7hcr.id = flqlp.OCA7E)\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ ((uct.ZH72S = i7hcr.SJYN2) AND (uct.LJLUM = i7hcr.BTXC5))\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (i7hcr.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: EPZU6\n" + + " │ │ └─ TableAlias(uct)\n" + + " │ │ └─ IndexedTableAccess(OUBDL)\n" + + " │ │ ├─ index: [OUBDL.FTQLQ]\n" + + " │ │ └─ keys: i7hcr.TOFPN\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (i7hcr.id)\n" + + " │ ├─ right-key: (flqlp.OCA7E)\n" + + " │ └─ IndexedTableAccess(FLQLP)\n" + + " │ ├─ index: [FLQLP.OCA7E]\n" + + " │ ├─ filters: [{(NULL, ∞)}]\n" + + " │ └─ columns: [oca7e]\n" + + " │ ))\n" + + " ├─ LookupJoin (estimated cost=1643.400 rows=498) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=1565.100 rows=498) (actual rows=0 loops=1)\n" + + " │ │ ├─ TableAlias(ci)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: JDLNA\n" + + " │ │ └─ TableAlias(ct)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.FZ2R5]\n" + + " │ │ └─ keys: ci.id\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ └─ keys: ct.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " └─ keys: ct.M22QN\n" + "", }, { @@ -1722,13 +1703,10 @@ WHERE " │ └─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [ylksy.id:0!null->FDL23:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ ci.FTQLQ:6!null\n" + - " │ │ └─ ylksy.FTQLQ:1\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ Project\n" + - " │ │ │ ├─ columns: [OUBDL.id:1!null, OUBDL.FTQLQ:2, OUBDL.ZH72S:3, OUBDL.LJLUM:4, E2I7U.ZH72S:0]\n" + + " │ │ │ ├─ columns: [OUBDL.id:1!null, OUBDL.FTQLQ:2, OUBDL.ZH72S:3, OUBDL.LJLUM:4, JDLNA.FTQLQ:0!null]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ flqlp.NRURT:5 IS NULL\n" + " │ │ │ └─ LeftOuterHashJoinExcludingNulls\n" + @@ -1736,19 +1714,19 @@ WHERE " │ │ │ │ ├─ ylksy.id:1!null\n" + " │ │ │ │ └─ flqlp.NRURT:5\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ TableAlias(nd)\n" + + " │ │ │ │ ├─ TableAlias(ci)\n" + " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ ├─ columns: [zh72s]\n" + - " │ │ │ │ │ ├─ colSet: (19-35)\n" + - " │ │ │ │ │ └─ tableId: 3\n" + + " │ │ │ │ │ ├─ name: JDLNA\n" + + " │ │ │ │ │ ├─ columns: [ftqlq]\n" + + " │ │ │ │ │ ├─ colSet: (14-18)\n" + + " │ │ │ │ │ └─ tableId: 2\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ └─ ylksy.LJLUM LIKE '%|%'\n" + " │ │ │ │ └─ TableAlias(ylksy)\n" + " │ │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ │ ├─ index: [OUBDL.ZH72S]\n" + - " │ │ │ │ ├─ keys: [nd.ZH72S:0]\n" + + " │ │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + + " │ │ │ │ ├─ keys: [ci.FTQLQ:0!null]\n" + " │ │ │ │ ├─ colSet: (1-13)\n" + " │ │ │ │ ├─ tableId: 1\n" + " │ │ │ │ └─ Table\n" + @@ -1774,15 +1752,15 @@ WHERE " │ │ └─ Table\n" + " │ │ ├─ name: TPXBU\n" + " │ │ └─ columns: [btxc5]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(ylksy.FTQLQ:1)\n" + - " │ ├─ right-key: TUPLE(ci.FTQLQ:0!null)\n" + - " │ └─ TableAlias(ci)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ ├─ keys: [ylksy.ZH72S:2]\n" + + " │ ├─ colSet: (19-35)\n" + + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ ├─ columns: [ftqlq]\n" + - " │ ├─ colSet: (14-18)\n" + - " │ └─ tableId: 2\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [zh72s]\n" + " └─ TableAlias(uct)\n" + " └─ IndexedTableAccess(OUBDL)\n" + " ├─ index: [OUBDL.id]\n" + @@ -1804,27 +1782,26 @@ WHERE " │ └─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [ylksy.id as FDL23]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (ci.FTQLQ = ylksy.FTQLQ)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ Project\n" + - " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, E2I7U.ZH72S]\n" + + " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, JDLNA.FTQLQ]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ flqlp.NRURT IS NULL\n" + " │ │ │ └─ LeftOuterHashJoinExcludingNulls\n" + " │ │ │ ├─ (ylksy.id = flqlp.NRURT)\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ TableAlias(nd)\n" + + " │ │ │ │ ├─ TableAlias(ci)\n" + " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [zh72s]\n" + + " │ │ │ │ │ ├─ name: JDLNA\n" + + " │ │ │ │ │ └─ columns: [ftqlq]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (NOT(ylksy.LJLUM LIKE '%|%'))\n" + " │ │ │ │ └─ TableAlias(ylksy)\n" + " │ │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ │ ├─ index: [OUBDL.ZH72S]\n" + + " │ │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + " │ │ │ │ ├─ columns: [id ftqlq zh72s ljlum]\n" + - " │ │ │ │ └─ keys: nd.ZH72S\n" + + " │ │ │ │ └─ keys: ci.FTQLQ\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ylksy.id)\n" + " │ │ │ ├─ right-key: (flqlp.NRURT)\n" + @@ -1837,13 +1814,11 @@ WHERE " │ │ ├─ index: [TPXBU.BTXC5]\n" + " │ │ ├─ columns: [btxc5]\n" + " │ │ └─ keys: ylksy.LJLUM\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ylksy.FTQLQ)\n" + - " │ ├─ right-key: (ci.FTQLQ)\n" + - " │ └─ TableAlias(ci)\n" + - " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ └─ columns: [ftqlq]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ ├─ columns: [zh72s]\n" + + " │ └─ keys: ylksy.ZH72S\n" + " └─ TableAlias(uct)\n" + " └─ IndexedTableAccess(OUBDL)\n" + " ├─ index: [OUBDL.id]\n" + @@ -1861,27 +1836,26 @@ WHERE " │ └─ Distinct\n" + " │ └─ Project\n" + " │ ├─ columns: [ylksy.id as FDL23]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (ci.FTQLQ = ylksy.FTQLQ)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ Project\n" + - " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, E2I7U.ZH72S]\n" + + " │ │ │ ├─ columns: [OUBDL.id, OUBDL.FTQLQ, OUBDL.ZH72S, OUBDL.LJLUM, JDLNA.FTQLQ]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ flqlp.NRURT IS NULL\n" + " │ │ │ └─ LeftOuterHashJoinExcludingNulls\n" + " │ │ │ ├─ (ylksy.id = flqlp.NRURT)\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ TableAlias(nd)\n" + + " │ │ │ │ ├─ TableAlias(ci)\n" + " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [zh72s]\n" + + " │ │ │ │ │ ├─ name: JDLNA\n" + + " │ │ │ │ │ └─ columns: [ftqlq]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (NOT(ylksy.LJLUM LIKE '%|%'))\n" + " │ │ │ │ └─ TableAlias(ylksy)\n" + " │ │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ │ ├─ index: [OUBDL.ZH72S]\n" + + " │ │ │ │ ├─ index: [OUBDL.FTQLQ]\n" + " │ │ │ │ ├─ columns: [id ftqlq zh72s ljlum]\n" + - " │ │ │ │ └─ keys: nd.ZH72S\n" + + " │ │ │ │ └─ keys: ci.FTQLQ\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ylksy.id)\n" + " │ │ │ ├─ right-key: (flqlp.NRURT)\n" + @@ -1894,13 +1868,11 @@ WHERE " │ │ ├─ index: [TPXBU.BTXC5]\n" + " │ │ ├─ columns: [btxc5]\n" + " │ │ └─ keys: ylksy.LJLUM\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ylksy.FTQLQ)\n" + - " │ ├─ right-key: (ci.FTQLQ)\n" + - " │ └─ TableAlias(ci)\n" + - " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ └─ columns: [ftqlq]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ ├─ columns: [zh72s]\n" + + " │ └─ keys: ylksy.ZH72S\n" + " └─ TableAlias(uct)\n" + " └─ IndexedTableAccess(OUBDL)\n" + " ├─ index: [OUBDL.id]\n" + @@ -1940,149 +1912,122 @@ WHERE TVTJS.SWCQV = 1 `, ExpectedPlan: "Project\n" + - " ├─ columns: [ct.id:0!null->id:0, ci.FTQLQ:13!null->VCGT3:0, nd.TW55N:9!null->UWBAI:0, aac.BTXC5:11->TPXBU:0, ct.V5DPX:5!null->V5DPX:0, ct.S3Q3Y:6!null->S3Q3Y:0, ct.ZRV3B:7!null->ZRV3B:0]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ tvtjs.id:14!null\n" + - " │ └─ ct.XMM6Q:4\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ ci.id:12!null\n" + - " │ │ └─ ct.FZ2R5:1!null\n" + + " ├─ columns: [ct.id:2!null->id:0, ci.FTQLQ:11!null->VCGT3:0, nd.TW55N:13!null->UWBAI:0, aac.BTXC5:15->TPXBU:0, ct.V5DPX:7!null->V5DPX:0, ct.S3Q3Y:8!null->S3Q3Y:0, ct.ZRV3B:9!null->ZRV3B:0]\n" + + " └─ LookupJoin\n" + + " ├─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ MergeJoin\n" + - " │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ ├─ ct.LUEVY:2!null\n" + - " │ │ │ │ └─ nd.id:8!null\n" + - " │ │ │ ├─ TableAlias(ct)\n" + - " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (1-12)\n" + - " │ │ │ │ ├─ tableId: 1\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: FLQLP\n" + - " │ │ │ │ └─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + - " │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (31-47)\n" + - " │ │ │ ├─ tableId: 4\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ tvtjs.SWCQV:1!null\n" + + " │ │ │ │ │ └─ 1 (int)\n" + + " │ │ │ │ └─ TableAlias(tvtjs)\n" + + " │ │ │ │ └─ ProcessTable\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: HU5A5\n" + + " │ │ │ │ └─ columns: [id swcqv]\n" + + " │ │ │ └─ TableAlias(ct)\n" + + " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ │ ├─ index: [FLQLP.XMM6Q]\n" + + " │ │ │ ├─ keys: [tvtjs.id:0!null]\n" + + " │ │ │ ├─ colSet: (1-12)\n" + + " │ │ │ ├─ tableId: 1\n" + " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: E2I7U\n" + - " │ │ │ └─ columns: [id tw55n]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ ├─ keys: [ct.M22QN:3!null]\n" + - " │ │ ├─ colSet: (48-50)\n" + - " │ │ ├─ tableId: 5\n" + + " │ │ │ ├─ name: FLQLP\n" + + " │ │ │ └─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + + " │ │ └─ TableAlias(ci)\n" + + " │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ ├─ index: [JDLNA.id]\n" + + " │ │ ├─ keys: [ct.FZ2R5:3!null]\n" + + " │ │ ├─ colSet: (26-30)\n" + + " │ │ ├─ tableId: 3\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(ct.FZ2R5:1!null)\n" + - " │ ├─ right-key: TUPLE(ci.id:0!null)\n" + - " │ └─ TableAlias(ci)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(ct.XMM6Q:4)\n" + - " ├─ right-key: TUPLE(tvtjs.id:0!null)\n" + - " └─ Filter\n" + - " ├─ Eq\n" + - " │ ├─ tvtjs.SWCQV:1!null\n" + - " │ └─ 1 (int)\n" + - " └─ TableAlias(tvtjs)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: HU5A5\n" + - " └─ columns: [id swcqv]\n" + + " │ │ ├─ name: JDLNA\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ keys: [ct.LUEVY:4!null]\n" + + " │ ├─ colSet: (31-47)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id tw55n]\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " ├─ keys: [ct.M22QN:5!null]\n" + + " ├─ colSet: (48-50)\n" + + " ├─ tableId: 5\n" + + " └─ Table\n" + + " ├─ name: TPXBU\n" + + " └─ columns: [id btxc5]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [ct.id as id, ci.FTQLQ as VCGT3, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, ct.V5DPX as V5DPX, ct.S3Q3Y as S3Q3Y, ct.ZRV3B as ZRV3B]\n" + - " └─ HashJoin (estimated cost=15160.620 rows=14781)\n" + - " ├─ (tvtjs.id = ct.XMM6Q)\n" + - " ├─ HashJoin (estimated cost=16273.620 rows=14781)\n" + - " │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ ├─ LookupJoin (estimated cost=48777.300 rows=14781)\n" + - " │ │ ├─ MergeJoin (estimated cost=18957.040 rows=14781)\n" + - " │ │ │ ├─ cmp: (ct.LUEVY = nd.id)\n" + - " │ │ │ ├─ TableAlias(ct)\n" + - " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + - " │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.id]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id tw55n]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ ├─ columns: [id btxc5]\n" + - " │ │ └─ keys: ct.M22QN\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ct.FZ2R5)\n" + - " │ ├─ right-key: (ci.id)\n" + - " │ └─ TableAlias(ci)\n" + - " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ct.XMM6Q)\n" + - " ├─ right-key: (tvtjs.id)\n" + - " └─ Filter\n" + - " ├─ (tvtjs.SWCQV = 1)\n" + - " └─ TableAlias(tvtjs)\n" + - " └─ Table\n" + - " ├─ name: HU5A5\n" + - " └─ columns: [id swcqv]\n" + + " └─ LookupJoin (estimated cost=112.200 rows=34)\n" + + " ├─ LookupJoin (estimated cost=112.200 rows=34)\n" + + " │ ├─ LookupJoin (estimated cost=112.200 rows=34)\n" + + " │ │ ├─ LookupJoin (estimated cost=126.900 rows=34)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (tvtjs.SWCQV = 1)\n" + + " │ │ │ │ └─ TableAlias(tvtjs)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: HU5A5\n" + + " │ │ │ │ └─ columns: [id swcqv]\n" + + " │ │ │ └─ TableAlias(ct)\n" + + " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ │ ├─ index: [FLQLP.XMM6Q]\n" + + " │ │ │ ├─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + + " │ │ │ └─ keys: tvtjs.id\n" + + " │ │ └─ TableAlias(ci)\n" + + " │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ ├─ index: [JDLNA.id]\n" + + " │ │ ├─ columns: [id ftqlq]\n" + + " │ │ └─ keys: ct.FZ2R5\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ columns: [id tw55n]\n" + + " │ └─ keys: ct.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " ├─ columns: [id btxc5]\n" + + " └─ keys: ct.M22QN\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [ct.id as id, ci.FTQLQ as VCGT3, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, ct.V5DPX as V5DPX, ct.S3Q3Y as S3Q3Y, ct.ZRV3B as ZRV3B]\n" + - " └─ HashJoin (estimated cost=15160.620 rows=14781) (actual rows=0 loops=1)\n" + - " ├─ (tvtjs.id = ct.XMM6Q)\n" + - " ├─ HashJoin (estimated cost=16273.620 rows=14781) (actual rows=0 loops=1)\n" + - " │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ ├─ LookupJoin (estimated cost=48777.300 rows=14781) (actual rows=0 loops=1)\n" + - " │ │ ├─ MergeJoin (estimated cost=18957.040 rows=14781) (actual rows=0 loops=1)\n" + - " │ │ │ ├─ cmp: (ct.LUEVY = nd.id)\n" + - " │ │ │ ├─ TableAlias(ct)\n" + - " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + - " │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.id]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id tw55n]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ ├─ columns: [id btxc5]\n" + - " │ │ └─ keys: ct.M22QN\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ct.FZ2R5)\n" + - " │ ├─ right-key: (ci.id)\n" + - " │ └─ TableAlias(ci)\n" + - " │ └─ Table\n" + - " │ ├─ name: JDLNA\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ct.XMM6Q)\n" + - " ├─ right-key: (tvtjs.id)\n" + - " └─ Filter\n" + - " ├─ (tvtjs.SWCQV = 1)\n" + - " └─ TableAlias(tvtjs)\n" + - " └─ Table\n" + - " ├─ name: HU5A5\n" + - " └─ columns: [id swcqv]\n" + + " └─ LookupJoin (estimated cost=112.200 rows=34) (actual rows=0 loops=1)\n" + + " ├─ LookupJoin (estimated cost=112.200 rows=34) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=112.200 rows=34) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=126.900 rows=34) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (tvtjs.SWCQV = 1)\n" + + " │ │ │ │ └─ TableAlias(tvtjs)\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: HU5A5\n" + + " │ │ │ │ └─ columns: [id swcqv]\n" + + " │ │ │ └─ TableAlias(ct)\n" + + " │ │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ │ ├─ index: [FLQLP.XMM6Q]\n" + + " │ │ │ ├─ columns: [id fz2r5 luevy m22qn xmm6q v5dpx s3q3y zrv3b]\n" + + " │ │ │ └─ keys: tvtjs.id\n" + + " │ │ └─ TableAlias(ci)\n" + + " │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ ├─ index: [JDLNA.id]\n" + + " │ │ ├─ columns: [id ftqlq]\n" + + " │ │ └─ keys: ct.FZ2R5\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ columns: [id tw55n]\n" + + " │ └─ keys: ct.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " ├─ columns: [id btxc5]\n" + + " └─ keys: ct.M22QN\n" + "", }, { @@ -2141,7 +2086,7 @@ WHERE " ├─ columns: [HU5A5.id, HU5A5.TOFPN, HU5A5.I3VTA, HU5A5.SFJ6L, HU5A5.V5DPX, HU5A5.LJLUM, HU5A5.IDPK7, HU5A5.NO52D, HU5A5.ZRV3B, HU5A5.VYO5E, HU5A5.SWCQV, HU5A5.YKSSU, HU5A5.FHCYT]\n" + " └─ Filter\n" + " ├─ flqlp.XMM6Q IS NULL\n" + - " └─ LeftOuterMergeJoin (estimated cost=9561.410 rows=206920)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9561.380 rows=206920)\n" + " ├─ cmp: (hu5a5.id = flqlp.XMM6Q)\n" + " ├─ Filter\n" + " │ ├─ (hu5a5.SWCQV = 0)\n" + @@ -2160,7 +2105,7 @@ WHERE " ├─ columns: [HU5A5.id, HU5A5.TOFPN, HU5A5.I3VTA, HU5A5.SFJ6L, HU5A5.V5DPX, HU5A5.LJLUM, HU5A5.IDPK7, HU5A5.NO52D, HU5A5.ZRV3B, HU5A5.VYO5E, HU5A5.SWCQV, HU5A5.YKSSU, HU5A5.FHCYT]\n" + " └─ Filter\n" + " ├─ flqlp.XMM6Q IS NULL\n" + - " └─ LeftOuterMergeJoin (estimated cost=9561.410 rows=206920) (actual rows=0 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9561.380 rows=206920) (actual rows=0 loops=1)\n" + " ├─ cmp: (hu5a5.id = flqlp.XMM6Q)\n" + " ├─ Filter\n" + " │ ├─ (hu5a5.SWCQV = 0)\n" + @@ -2215,96 +2160,76 @@ WHERE PV6R5.NUMK2 <> 1 `, ExpectedPlan: "Project\n" + - " ├─ columns: [rn.id:0!null->id:0, concat(nsplt.TW55N:16!null,FDNCN (longtext),lqncx.TW55N:14!null)->X37NA:0, concat(xlza5.TW55N:8!null,FDNCN (longtext),afjmd.TW55N:18!null)->THWCS:0, rn.HVHRZ:3!null->HVHRZ:0]\n" + + " ├─ columns: [rn.id:6!null->id:0, concat(nsplt.TW55N:1!null,FDNCN (longtext),lqncx.TW55N:14!null)->X37NA:0, concat(xlza5.TW55N:16!null,FDNCN (longtext),afjmd.TW55N:18!null)->THWCS:0, rn.HVHRZ:9!null->HVHRZ:0]\n" + " └─ LookupJoin\n" + " ├─ Or\n" + " │ ├─ NOT\n" + " │ │ └─ Eq\n" + - " │ │ ├─ pv6r5.FFTBJ:11!null\n" + - " │ │ └─ zyutc.BRQP2:5!null\n" + + " │ │ ├─ pv6r5.FFTBJ:4!null\n" + + " │ │ └─ zyutc.BRQP2:11!null\n" + " │ └─ NOT\n" + " │ └─ Eq\n" + - " │ ├─ pv6r5.NUMK2:12!null\n" + + " │ ├─ pv6r5.NUMK2:5!null\n" + " │ └─ 1 (int)\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rn.WNUNU:1!null\n" + - " │ │ └─ pv6r5.id:9!null\n" + - " │ ├─ HashJoin\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ rn.HHVLX:2!null\n" + - " │ │ │ └─ zyutc.id:4!null\n" + - " │ │ ├─ TableAlias(rn)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: QYWQD\n" + - " │ │ │ └─ columns: [id wnunu hhvlx hvhrz]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(rn.HHVLX:2!null)\n" + - " │ │ ├─ right-key: TUPLE(zyutc.id:0!null)\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ zyutc.BRQP2:5!null\n" + - " │ │ │ └─ xlza5.id:7!null\n" + - " │ │ ├─ TableAlias(zyutc)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (17-26)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(xlza5)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (61-77)\n" + - " │ │ ├─ tableId: 6\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(rn.WNUNU:1!null)\n" + - " │ ├─ right-key: TUPLE(pv6r5.id:0!null)\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ nsplt.id:15!null\n" + - " │ │ └─ pv6r5.BRQP2:10!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ pv6r5.FFTBJ:11!null\n" + - " │ │ │ └─ lqncx.id:13!null\n" + - " │ │ ├─ TableAlias(pv6r5)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (7-16)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(lqncx)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (44-60)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(pv6r5.BRQP2:10!null)\n" + - " │ ├─ right-key: TUPLE(nsplt.id:0!null)\n" + - " │ └─ TableAlias(nsplt)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id tw55n]\n" + + " ├─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ TableAlias(nsplt)\n" + + " │ │ │ │ │ │ └─ ProcessTable\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ │ └─ columns: [id tw55n]\n" + + " │ │ │ │ │ └─ TableAlias(pv6r5)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ keys: [nsplt.id:0!null]\n" + + " │ │ │ │ │ ├─ colSet: (7-16)\n" + + " │ │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: NOXN3\n" + + " │ │ │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ │ └─ TableAlias(rn)\n" + + " │ │ │ │ └─ IndexedTableAccess(QYWQD)\n" + + " │ │ │ │ ├─ index: [QYWQD.WNUNU]\n" + + " │ │ │ │ ├─ keys: [pv6r5.id:2!null]\n" + + " │ │ │ │ ├─ colSet: (1-6)\n" + + " │ │ │ │ ├─ tableId: 1\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: QYWQD\n" + + " │ │ │ │ └─ columns: [id wnunu hhvlx hvhrz]\n" + + " │ │ │ └─ TableAlias(zyutc)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.id]\n" + + " │ │ │ ├─ keys: [rn.HHVLX:8!null]\n" + + " │ │ │ ├─ colSet: (17-26)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id brqp2 fftbj]\n" + + " │ │ └─ TableAlias(lqncx)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.id]\n" + + " │ │ ├─ keys: [pv6r5.FFTBJ:4!null]\n" + + " │ │ ├─ colSet: (44-60)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ └─ TableAlias(xlza5)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ keys: [zyutc.BRQP2:11!null]\n" + + " │ ├─ colSet: (61-77)\n" + + " │ ├─ tableId: 6\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id tw55n]\n" + " └─ TableAlias(afjmd)\n" + " └─ IndexedTableAccess(E2I7U)\n" + " ├─ index: [E2I7U.id]\n" + - " ├─ keys: [zyutc.FFTBJ:6!null]\n" + + " ├─ keys: [zyutc.FFTBJ:12!null]\n" + " ├─ colSet: (78-94)\n" + " ├─ tableId: 7\n" + " └─ Table\n" + @@ -2313,55 +2238,42 @@ WHERE "", ExpectedEstimates: "Project\n" + " ├─ columns: [rn.id as id, concat(nsplt.TW55N,'FDNCN',lqncx.TW55N) as X37NA, concat(xlza5.TW55N,'FDNCN',afjmd.TW55N) as THWCS, rn.HVHRZ as HVHRZ]\n" + - " └─ LookupJoin (estimated cost=233283.600 rows=70692)\n" + + " └─ LookupJoin (estimated cost=15846.600 rows=4802)\n" + " ├─ ((NOT((pv6r5.FFTBJ = zyutc.BRQP2))) OR (NOT((pv6r5.NUMK2 = 1))))\n" + - " ├─ HashJoin (estimated cost=107544.840 rows=70692)\n" + - " │ ├─ (rn.WNUNU = pv6r5.id)\n" + - " │ ├─ HashJoin (estimated cost=107544.840 rows=70692)\n" + - " │ │ ├─ (rn.HHVLX = zyutc.id)\n" + - " │ │ ├─ TableAlias(rn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: QYWQD\n" + - " │ │ │ └─ columns: [id wnunu hhvlx hvhrz]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (rn.HHVLX)\n" + - " │ │ ├─ right-key: (zyutc.id)\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: (zyutc.BRQP2 = xlza5.id)\n" + - " │ │ ├─ TableAlias(zyutc)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(xlza5)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (rn.WNUNU)\n" + - " │ ├─ right-key: (pv6r5.id)\n" + - " │ └─ HashJoin\n" + - " │ ├─ (nsplt.id = pv6r5.BRQP2)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (pv6r5.FFTBJ = lqncx.id)\n" + - " │ │ ├─ TableAlias(pv6r5)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(lqncx)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (pv6r5.BRQP2)\n" + - " │ ├─ right-key: (nsplt.id)\n" + - " │ └─ TableAlias(nsplt)\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id tw55n]\n" + + " ├─ LookupJoin (estimated cost=15846.600 rows=4802)\n" + + " │ ├─ LookupJoin (estimated cost=15846.600 rows=4802)\n" + + " │ │ ├─ LookupJoin (estimated cost=17046.600 rows=4802)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=18627.300 rows=6002)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=14907.300 rows=4802)\n" + + " │ │ │ │ │ ├─ TableAlias(nsplt)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ │ └─ columns: [id tw55n]\n" + + " │ │ │ │ │ └─ TableAlias(pv6r5)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ │ │ └─ keys: nsplt.id\n" + + " │ │ │ │ └─ TableAlias(rn)\n" + + " │ │ │ │ └─ IndexedTableAccess(QYWQD)\n" + + " │ │ │ │ ├─ index: [QYWQD.WNUNU]\n" + + " │ │ │ │ ├─ columns: [id wnunu hhvlx hvhrz]\n" + + " │ │ │ │ └─ keys: pv6r5.id\n" + + " │ │ │ └─ TableAlias(zyutc)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.id]\n" + + " │ │ │ ├─ columns: [id brqp2 fftbj]\n" + + " │ │ │ └─ keys: rn.HHVLX\n" + + " │ │ └─ TableAlias(lqncx)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.id]\n" + + " │ │ ├─ columns: [id tw55n]\n" + + " │ │ └─ keys: pv6r5.FFTBJ\n" + + " │ └─ TableAlias(xlza5)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ columns: [id tw55n]\n" + + " │ └─ keys: zyutc.BRQP2\n" + " └─ TableAlias(afjmd)\n" + " └─ IndexedTableAccess(E2I7U)\n" + " ├─ index: [E2I7U.id]\n" + @@ -2370,55 +2282,42 @@ WHERE "", ExpectedAnalysis: "Project\n" + " ├─ columns: [rn.id as id, concat(nsplt.TW55N,'FDNCN',lqncx.TW55N) as X37NA, concat(xlza5.TW55N,'FDNCN',afjmd.TW55N) as THWCS, rn.HVHRZ as HVHRZ]\n" + - " └─ LookupJoin (estimated cost=233283.600 rows=70692) (actual rows=0 loops=1)\n" + + " └─ LookupJoin (estimated cost=15846.600 rows=4802) (actual rows=0 loops=1)\n" + " ├─ ((NOT((pv6r5.FFTBJ = zyutc.BRQP2))) OR (NOT((pv6r5.NUMK2 = 1))))\n" + - " ├─ HashJoin (estimated cost=107544.840 rows=70692) (actual rows=0 loops=1)\n" + - " │ ├─ (rn.WNUNU = pv6r5.id)\n" + - " │ ├─ HashJoin (estimated cost=107544.840 rows=70692) (actual rows=0 loops=1)\n" + - " │ │ ├─ (rn.HHVLX = zyutc.id)\n" + - " │ │ ├─ TableAlias(rn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: QYWQD\n" + - " │ │ │ └─ columns: [id wnunu hhvlx hvhrz]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (rn.HHVLX)\n" + - " │ │ ├─ right-key: (zyutc.id)\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: (zyutc.BRQP2 = xlza5.id)\n" + - " │ │ ├─ TableAlias(zyutc)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(xlza5)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (rn.WNUNU)\n" + - " │ ├─ right-key: (pv6r5.id)\n" + - " │ └─ HashJoin\n" + - " │ ├─ (nsplt.id = pv6r5.BRQP2)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (pv6r5.FFTBJ = lqncx.id)\n" + - " │ │ ├─ TableAlias(pv6r5)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(lqncx)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (pv6r5.BRQP2)\n" + - " │ ├─ right-key: (nsplt.id)\n" + - " │ └─ TableAlias(nsplt)\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id tw55n]\n" + + " ├─ LookupJoin (estimated cost=15846.600 rows=4802) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=15846.600 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ ├─ LookupJoin (estimated cost=17046.600 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ LookupJoin (estimated cost=18627.300 rows=6002) (actual rows=0 loops=1)\n" + + " │ │ │ │ ├─ LookupJoin (estimated cost=14907.300 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ │ │ │ ├─ TableAlias(nsplt)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ │ └─ columns: [id tw55n]\n" + + " │ │ │ │ │ └─ TableAlias(pv6r5)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ │ │ └─ keys: nsplt.id\n" + + " │ │ │ │ └─ TableAlias(rn)\n" + + " │ │ │ │ └─ IndexedTableAccess(QYWQD)\n" + + " │ │ │ │ ├─ index: [QYWQD.WNUNU]\n" + + " │ │ │ │ ├─ columns: [id wnunu hhvlx hvhrz]\n" + + " │ │ │ │ └─ keys: pv6r5.id\n" + + " │ │ │ └─ TableAlias(zyutc)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.id]\n" + + " │ │ │ ├─ columns: [id brqp2 fftbj]\n" + + " │ │ │ └─ keys: rn.HHVLX\n" + + " │ │ └─ TableAlias(lqncx)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.id]\n" + + " │ │ ├─ columns: [id tw55n]\n" + + " │ │ └─ keys: pv6r5.FFTBJ\n" + + " │ └─ TableAlias(xlza5)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ columns: [id tw55n]\n" + + " │ └─ keys: zyutc.BRQP2\n" + " └─ TableAlias(afjmd)\n" + " └─ IndexedTableAccess(E2I7U)\n" + " ├─ index: [E2I7U.id]\n" + @@ -2468,232 +2367,221 @@ WHERE rn.WNUNU IS NULL AND rn.HHVLX IS NULL `, ExpectedPlan: "Project\n" + - " ├─ columns: [sn.id:5!null->DRIWM:0, concat(oe56m.TW55N:10!null,FDNCN (longtext),cgfrz.TW55N:12!null)->GRVSE:0, skpm6.id:0!null->JIEVY:0, concat(v5say.TW55N:14!null,FDNCN (longtext),fqthf.TW55N:4!null)->ENCM3:0, 1 (decimal(2,1))->OHD3R:99]\n" + - " └─ LeftOuterLookupJoin\n" + - " ├─ Eq\n" + - " │ ├─ rn.HHVLX:16!null\n" + - " │ └─ skpm6.id:0!null\n" + - " ├─ HashJoin\n" + + " ├─ columns: [sn.id:0!null->DRIWM:0, concat(oe56m.TW55N:5!null,FDNCN (longtext),cgfrz.TW55N:14!null)->GRVSE:0, skpm6.id:8!null->JIEVY:0, concat(v5say.TW55N:16!null,FDNCN (longtext),fqthf.TW55N:7!null)->ENCM3:0, 1 (decimal(2,1))->OHD3R:99]\n" + + " └─ HashJoin\n" + + " ├─ AND\n" + " │ ├─ AND\n" + " │ │ ├─ AND\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ skpm6.BRQP2:1!null\n" + - " │ │ │ │ └─ sn.FFTBJ:7!null\n" + + " │ │ │ │ ├─ cgfrz.id:13!null\n" + + " │ │ │ │ └─ sn.FFTBJ:2!null\n" + " │ │ │ └─ Eq\n" + - " │ │ │ ├─ v5say.id:13!null\n" + - " │ │ │ └─ skpm6.BRQP2:1!null\n" + + " │ │ │ ├─ v5say.id:15!null\n" + + " │ │ │ └─ skpm6.BRQP2:9!null\n" + " │ │ └─ Eq\n" + - " │ │ ├─ skpm6.BRQP2:1!null\n" + - " │ │ └─ cgfrz.id:11!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ skpm6.FFTBJ:2!null\n" + - " │ │ │ └─ fqthf.id:3!null\n" + - " │ │ ├─ TableAlias(skpm6)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (11-20)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(fqthf)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (78-94)\n" + - " │ │ ├─ tableId: 7\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(skpm6.BRQP2:1!null, skpm6.BRQP2:1!null, skpm6.BRQP2:1!null)\n" + - " │ ├─ right-key: TUPLE(sn.FFTBJ:2!null, v5say.id:8!null, cgfrz.id:6!null)\n" + - " │ └─ HashJoin\n" + - " │ ├─ AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cgfrz.id:11!null\n" + - " │ │ │ └─ sn.FFTBJ:7!null\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ sn.FFTBJ:7!null\n" + - " │ │ └─ v5say.id:13!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ sn.BRQP2:6!null\n" + - " │ │ │ └─ oe56m.id:9!null\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ sn.NUMK2:3!null\n" + - " │ │ │ │ └─ 1 (int)\n" + - " │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-10)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(oe56m)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (27-43)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(sn.FFTBJ:7!null, sn.FFTBJ:7!null)\n" + - " │ ├─ right-key: TUPLE(cgfrz.id:0!null, v5say.id:2!null)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ cgfrz.id:11!null\n" + - " │ │ └─ v5say.id:13!null\n" + - " │ ├─ TableAlias(cgfrz)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (44-60)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ TableAlias(v5say)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (61-77)\n" + - " │ ├─ tableId: 6\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ TableAlias(rn)\n" + - " └─ IndexedTableAccess(QYWQD)\n" + - " ├─ index: [QYWQD.WNUNU]\n" + - " ├─ keys: [sn.id:5!null]\n" + - " ├─ colSet: (21-26)\n" + - " ├─ tableId: 3\n" + - " └─ Table\n" + - " ├─ name: QYWQD\n" + - " └─ columns: [wnunu hhvlx]\n" + + " │ │ ├─ sn.FFTBJ:2!null\n" + + " │ │ └─ v5say.id:15!null\n" + + " │ └─ Eq\n" + + " │ ├─ skpm6.BRQP2:9!null\n" + + " │ └─ cgfrz.id:13!null\n" + + " ├─ LeftOuterLookupJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ rn.HHVLX:12!null\n" + + " │ │ └─ skpm6.id:8!null\n" + + " │ ├─ HashJoin\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ skpm6.BRQP2:9!null\n" + + " │ │ │ └─ sn.FFTBJ:2!null\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ sn.BRQP2:1!null\n" + + " │ │ │ │ └─ oe56m.id:4!null\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ sn.NUMK2:3!null\n" + + " │ │ │ │ │ └─ 1 (int)\n" + + " │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (1-10)\n" + + " │ │ │ │ ├─ tableId: 1\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: NOXN3\n" + + " │ │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ └─ TableAlias(oe56m)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (27-43)\n" + + " │ │ │ ├─ tableId: 4\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ HashLookup\n" + + " │ │ ├─ left-key: TUPLE(sn.FFTBJ:2!null)\n" + + " │ │ ├─ right-key: TUPLE(skpm6.BRQP2:3!null)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ TableAlias(fqthf)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ TableAlias(skpm6)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + + " │ │ ├─ keys: [fqthf.id:6!null]\n" + + " │ │ ├─ colSet: (11-20)\n" + + " │ │ ├─ tableId: 2\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: NOXN3\n" + + " │ │ └─ columns: [id brqp2 fftbj]\n" + + " │ └─ TableAlias(rn)\n" + + " │ └─ IndexedTableAccess(QYWQD)\n" + + " │ ├─ index: [QYWQD.WNUNU]\n" + + " │ ├─ keys: [sn.id:0!null]\n" + + " │ ├─ colSet: (21-26)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Table\n" + + " │ ├─ name: QYWQD\n" + + " │ └─ columns: [wnunu hhvlx]\n" + + " └─ HashLookup\n" + + " ├─ left-key: TUPLE(sn.FFTBJ:2!null, skpm6.BRQP2:9!null, sn.FFTBJ:2!null, skpm6.BRQP2:9!null)\n" + + " ├─ right-key: TUPLE(cgfrz.id:0!null, v5say.id:2!null, v5say.id:2!null, cgfrz.id:0!null)\n" + + " └─ MergeJoin\n" + + " ├─ cmp: Eq\n" + + " │ ├─ cgfrz.id:13!null\n" + + " │ └─ v5say.id:15!null\n" + + " ├─ TableAlias(cgfrz)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ colSet: (44-60)\n" + + " │ ├─ tableId: 5\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id tw55n]\n" + + " └─ TableAlias(v5say)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ static: [{[NULL, ∞)}]\n" + + " ├─ colSet: (61-77)\n" + + " ├─ tableId: 6\n" + + " └─ Table\n" + + " ├─ name: E2I7U\n" + + " └─ columns: [id tw55n]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [sn.id as DRIWM, concat(oe56m.TW55N,'FDNCN',cgfrz.TW55N) as GRVSE, skpm6.id as JIEVY, concat(v5say.TW55N,'FDNCN',fqthf.TW55N) as ENCM3, 1.0 as OHD3R]\n" + - " └─ LeftOuterLookupJoin (estimated cost=48654.100 rows=15688)\n" + - " ├─ (rn.HHVLX = skpm6.id)\n" + - " ├─ HashJoin (estimated cost=42179.640 rows=12551)\n" + - " │ ├─ (((skpm6.BRQP2 = sn.FFTBJ) AND (v5say.id = skpm6.BRQP2)) AND (skpm6.BRQP2 = cgfrz.id))\n" + - " │ ├─ MergeJoin (estimated cost=15929.680 rows=11813)\n" + - " │ │ ├─ cmp: (skpm6.FFTBJ = fqthf.id)\n" + - " │ │ ├─ TableAlias(skpm6)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(fqthf)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (skpm6.BRQP2, skpm6.BRQP2, skpm6.BRQP2)\n" + - " │ ├─ right-key: (sn.FFTBJ, v5say.id, cgfrz.id)\n" + - " │ └─ HashJoin\n" + - " │ ├─ ((cgfrz.id = sn.FFTBJ) AND (sn.FFTBJ = v5say.id))\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (sn.NUMK2 = 1)\n" + - " │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(oe56m)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (sn.FFTBJ, sn.FFTBJ)\n" + - " │ ├─ right-key: (cgfrz.id, v5say.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (cgfrz.id = v5say.id)\n" + - " │ ├─ TableAlias(cgfrz)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ TableAlias(v5say)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ TableAlias(rn)\n" + - " └─ IndexedTableAccess(QYWQD)\n" + - " ├─ index: [QYWQD.WNUNU]\n" + - " ├─ columns: [wnunu hhvlx]\n" + - " └─ keys: sn.id\n" + + " └─ HashJoin (estimated cost=16424.040 rows=4802)\n" + + " ├─ ((((cgfrz.id = sn.FFTBJ) AND (v5say.id = skpm6.BRQP2)) AND (sn.FFTBJ = v5say.id)) AND (skpm6.BRQP2 = cgfrz.id))\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802)\n" + + " │ ├─ (rn.HHVLX = skpm6.id)\n" + + " │ ├─ HashJoin (estimated cost=19304.040 rows=4802)\n" + + " │ │ ├─ (skpm6.BRQP2 = sn.FFTBJ)\n" + + " │ │ ├─ MergeJoin (estimated cost=14069.850 rows=4802)\n" + + " │ │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (sn.NUMK2 = 1)\n" + + " │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ └─ TableAlias(oe56m)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ HashLookup\n" + + " │ │ ├─ left-key: (sn.FFTBJ)\n" + + " │ │ ├─ right-key: (skpm6.BRQP2)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ TableAlias(fqthf)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ TableAlias(skpm6)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + + " │ │ ├─ columns: [id brqp2 fftbj]\n" + + " │ │ └─ keys: fqthf.id\n" + + " │ └─ TableAlias(rn)\n" + + " │ └─ IndexedTableAccess(QYWQD)\n" + + " │ ├─ index: [QYWQD.WNUNU]\n" + + " │ ├─ columns: [wnunu hhvlx]\n" + + " │ └─ keys: sn.id\n" + + " └─ HashLookup\n" + + " ├─ left-key: (sn.FFTBJ, skpm6.BRQP2, sn.FFTBJ, skpm6.BRQP2)\n" + + " ├─ right-key: (cgfrz.id, v5say.id, v5say.id, cgfrz.id)\n" + + " └─ MergeJoin\n" + + " ├─ cmp: (cgfrz.id = v5say.id)\n" + + " ├─ TableAlias(cgfrz)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id tw55n]\n" + + " └─ TableAlias(v5say)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + + " └─ columns: [id tw55n]\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [sn.id as DRIWM, concat(oe56m.TW55N,'FDNCN',cgfrz.TW55N) as GRVSE, skpm6.id as JIEVY, concat(v5say.TW55N,'FDNCN',fqthf.TW55N) as ENCM3, 1.0 as OHD3R]\n" + - " └─ LeftOuterLookupJoin (estimated cost=48654.100 rows=15688) (actual rows=0 loops=1)\n" + - " ├─ (rn.HHVLX = skpm6.id)\n" + - " ├─ HashJoin (estimated cost=42179.640 rows=12551) (actual rows=0 loops=1)\n" + - " │ ├─ (((skpm6.BRQP2 = sn.FFTBJ) AND (v5say.id = skpm6.BRQP2)) AND (skpm6.BRQP2 = cgfrz.id))\n" + - " │ ├─ MergeJoin (estimated cost=15929.680 rows=11813) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (skpm6.FFTBJ = fqthf.id)\n" + - " │ │ ├─ TableAlias(skpm6)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj]\n" + - " │ │ └─ TableAlias(fqthf)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (skpm6.BRQP2, skpm6.BRQP2, skpm6.BRQP2)\n" + - " │ ├─ right-key: (sn.FFTBJ, v5say.id, cgfrz.id)\n" + - " │ └─ HashJoin\n" + - " │ ├─ ((cgfrz.id = sn.FFTBJ) AND (sn.FFTBJ = v5say.id))\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (sn.NUMK2 = 1)\n" + - " │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + - " │ │ └─ TableAlias(oe56m)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (sn.FFTBJ, sn.FFTBJ)\n" + - " │ ├─ right-key: (cgfrz.id, v5say.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (cgfrz.id = v5say.id)\n" + - " │ ├─ TableAlias(cgfrz)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.id]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ └─ TableAlias(v5say)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ TableAlias(rn)\n" + - " └─ IndexedTableAccess(QYWQD)\n" + - " ├─ index: [QYWQD.WNUNU]\n" + - " ├─ columns: [wnunu hhvlx]\n" + - " └─ keys: sn.id\n" + + " └─ HashJoin (estimated cost=16424.040 rows=4802) (actual rows=0 loops=1)\n" + + " ├─ ((((cgfrz.id = sn.FFTBJ) AND (v5say.id = skpm6.BRQP2)) AND (sn.FFTBJ = v5say.id)) AND (skpm6.BRQP2 = cgfrz.id))\n" + + " ├─ LeftOuterLookupJoin (estimated cost=15867.300 rows=4802) (actual rows=0 loops=1)\n" + + " │ ├─ (rn.HHVLX = skpm6.id)\n" + + " │ ├─ HashJoin (estimated cost=19304.040 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ ├─ (skpm6.BRQP2 = sn.FFTBJ)\n" + + " │ │ ├─ MergeJoin (estimated cost=14069.850 rows=4802) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ cmp: (sn.BRQP2 = oe56m.id)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (sn.NUMK2 = 1)\n" + + " │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id brqp2 fftbj numk2]\n" + + " │ │ │ └─ TableAlias(oe56m)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ HashLookup\n" + + " │ │ ├─ left-key: (sn.FFTBJ)\n" + + " │ │ ├─ right-key: (skpm6.BRQP2)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ TableAlias(fqthf)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [id tw55n]\n" + + " │ │ └─ TableAlias(skpm6)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + + " │ │ ├─ columns: [id brqp2 fftbj]\n" + + " │ │ └─ keys: fqthf.id\n" + + " │ └─ TableAlias(rn)\n" + + " │ └─ IndexedTableAccess(QYWQD)\n" + + " │ ├─ index: [QYWQD.WNUNU]\n" + + " │ ├─ columns: [wnunu hhvlx]\n" + + " │ └─ keys: sn.id\n" + + " └─ HashLookup\n" + + " ├─ left-key: (sn.FFTBJ, skpm6.BRQP2, sn.FFTBJ, skpm6.BRQP2)\n" + + " ├─ right-key: (cgfrz.id, v5say.id, v5say.id, cgfrz.id)\n" + + " └─ MergeJoin\n" + + " ├─ cmp: (cgfrz.id = v5say.id)\n" + + " ├─ TableAlias(cgfrz)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id tw55n]\n" + + " └─ TableAlias(v5say)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + + " └─ columns: [id tw55n]\n" + "", }, { @@ -2853,7 +2741,7 @@ WHERE " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L]\n" + " │ └─ Filter\n" + " │ ├─ we72e.SSHPJ IS NULL\n" + - " │ └─ LeftOuterLookupJoin (estimated cost=405.900 rows=124)\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=330.000 rows=100)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: s7byt\n" + " │ │ ├─ outerVisibility: true\n" + @@ -2918,7 +2806,7 @@ WHERE " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L]\n" + " │ └─ Filter\n" + " │ ├─ we72e.SSHPJ IS NULL\n" + - " │ └─ LeftOuterLookupJoin (estimated cost=405.900 rows=124)\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=330.000 rows=100)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: s7byt\n" + " │ │ ├─ outerVisibility: true\n" + @@ -3234,133 +3122,114 @@ WHERE ExpectedPlan: "Distinct\n" + " └─ Project\n" + " ├─ columns: [ufc.id:0!null, ufc.T4IBQ:1, ufc.ZH72S:2, ufc.AMYXQ:3, ufc.KTNZ2:4, ufc.HIID2:5, ufc.DN3OQ:6, ufc.VVKNB:7, ufc.SH7TP:8, ufc.SRZZO:9, ufc.QZ6VT:10]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ nd.ZH72S:48\n" + - " │ └─ ufc.ZH72S:2\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ cla.FTQLQ:12!null\n" + - " │ │ └─ ufc.T4IBQ:1\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id:0!null, SISUT.T4IBQ:1, SISUT.ZH72S:2, SISUT.AMYXQ:3, SISUT.KTNZ2:4, SISUT.HIID2:5, SISUT.DN3OQ:6, SISUT.VVKNB:7, SISUT.SH7TP:8, SISUT.SRZZO:9, SISUT.QZ6VT:10]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5:11 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ ufc.id:0!null\n" + - " │ │ │ └─ amyxq.KKGN5:11\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-11)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SISUT\n" + - " │ │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5:7]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (59-66)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: AMYXQ\n" + - " │ │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(ufc.T4IBQ:1)\n" + - " │ ├─ right-key: TUPLE(cla.FTQLQ:1!null)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(ufc.ZH72S:2)\n" + - " ├─ right-key: TUPLE(nd.ZH72S:7)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " ├─ static: [{(NULL, ∞)}]\n" + - " ├─ colSet: (12-28)\n" + - " ├─ tableId: 2\n" + - " └─ Table\n" + - " ├─ name: E2I7U\n" + - " └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id:30!null, SISUT.T4IBQ:31, SISUT.ZH72S:32, SISUT.AMYXQ:33, SISUT.KTNZ2:34, SISUT.HIID2:35, SISUT.DN3OQ:36, SISUT.VVKNB:37, SISUT.SH7TP:38, SISUT.SRZZO:39, SISUT.QZ6VT:40, E2I7U.id:41!null, E2I7U.DKCAJ:42!null, E2I7U.KNG7T:43, E2I7U.TW55N:44!null, E2I7U.QRQXW:45!null, E2I7U.ECXAJ:46!null, E2I7U.FGG57:47, E2I7U.ZH72S:48, E2I7U.FSK67:49!null, E2I7U.XQDYT:50!null, E2I7U.TCE7A:51, E2I7U.IWV2H:52, E2I7U.HPCMS:53!null, E2I7U.N5CC2:54, E2I7U.FHCYT:55, E2I7U.ETAQ7:56, E2I7U.A75X7:57, YK2GW.id:0!null, YK2GW.FTQLQ:1!null, YK2GW.TUXML:2, YK2GW.PAEF5:3, YK2GW.RUCY4:4, YK2GW.TPNJ6:5!null, YK2GW.LBL53:6, YK2GW.NB3QS:7, YK2GW.EO7IV:8, YK2GW.MUHJF:9, YK2GW.FM34L:10, YK2GW.TY5RF:11, YK2GW.ZHTLH:12, YK2GW.NPB7W:13, YK2GW.SX3HH:14, YK2GW.ISBNF:15, YK2GW.YA7YB:16, YK2GW.C5YKB:17, YK2GW.QK7KT:18, YK2GW.FFGE6:19, YK2GW.FIIGJ:20, YK2GW.SH3NC:21, YK2GW.NTENA:22, YK2GW.M4AUB:23, YK2GW.X5AIR:24, YK2GW.SAB6M:25, YK2GW.G5QI5:26, YK2GW.ZVQVD:27, YK2GW.YKSSU:28, YK2GW.FHCYT:29]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5:58 IS NULL\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ HashJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ nd.ZH72S:48\n" + + " │ │ └─ ufc.ZH72S:32\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ ├─ keys: [cla.FTQLQ:1!null]\n" + + " │ │ ├─ colSet: (1-11)\n" + + " │ │ ├─ tableId: 1\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SISUT\n" + + " │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: TUPLE(ufc.ZH72S:32)\n" + + " │ ├─ right-key: TUPLE(nd.ZH72S:7)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ ├─ static: [{(NULL, ∞)}]\n" + + " │ ├─ colSet: (12-28)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5:7]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " ├─ keys: [ufc.id:30!null]\n" + + " ├─ colSet: (59-66)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: AMYXQ\n" + + " └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + "", ExpectedEstimates: "Distinct\n" + " └─ Project\n" + " ├─ columns: [ufc.id, ufc.T4IBQ, ufc.ZH72S, ufc.AMYXQ, ufc.KTNZ2, ufc.HIID2, ufc.DN3OQ, ufc.VVKNB, ufc.SH7TP, ufc.SRZZO, ufc.QZ6VT]\n" + - " └─ HashJoin (estimated cost=102841528.680 rows=9769906324)\n" + - " ├─ (nd.ZH72S = ufc.ZH72S)\n" + - " ├─ HashJoin (estimated cost=5195054.880 rows=5085844)\n" + - " │ ├─ (cla.FTQLQ = ufc.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=109840579.580 rows=5983347)\n" + - " │ │ ├─ cmp: (ufc.id = amyxq.KKGN5)\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ufc.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ufc.ZH72S)\n" + - " ├─ right-key: (nd.ZH72S)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT, E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5 IS NULL\n" + + " └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902)\n" + + " ├─ HashJoin (estimated cost=8947.440 rows=3122)\n" + + " │ ├─ (nd.ZH72S = ufc.ZH72S)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (ufc.ZH72S)\n" + + " │ ├─ right-key: (nd.ZH72S)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " └─ keys: ufc.id\n" + "", ExpectedAnalysis: "Distinct\n" + " └─ Project\n" + " ├─ columns: [ufc.id, ufc.T4IBQ, ufc.ZH72S, ufc.AMYXQ, ufc.KTNZ2, ufc.HIID2, ufc.DN3OQ, ufc.VVKNB, ufc.SH7TP, ufc.SRZZO, ufc.QZ6VT]\n" + - " └─ HashJoin (estimated cost=102841528.680 rows=9769906324) (actual rows=0 loops=1)\n" + - " ├─ (nd.ZH72S = ufc.ZH72S)\n" + - " ├─ HashJoin (estimated cost=5195054.880 rows=5085844) (actual rows=0 loops=1)\n" + - " │ ├─ (cla.FTQLQ = ufc.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=109840579.580 rows=5983347) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (ufc.id = amyxq.KKGN5)\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ufc.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ufc.ZH72S)\n" + - " ├─ right-key: (nd.ZH72S)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT, E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5 IS NULL\n" + + " └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902) (actual rows=0 loops=1)\n" + + " ├─ HashJoin (estimated cost=8947.440 rows=3122) (actual rows=0 loops=1)\n" + + " │ ├─ (nd.ZH72S = ufc.ZH72S)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122) (actual rows=0 loops=1)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (ufc.ZH72S)\n" + + " │ ├─ right-key: (nd.ZH72S)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " └─ keys: ufc.id\n" + "", }, { @@ -3379,139 +3248,120 @@ WHERE cla.FTQLQ = ufc.T4IBQ WHERE nd.ZH72S IS NOT NULL - AND - ufc.id NOT IN (SELECT KKGN5 FROM AMYXQ) - `, - ExpectedPlan: "Distinct\n" + - " └─ Project\n" + - " ├─ columns: [ufc.id:0!null, ufc.T4IBQ:1, ufc.ZH72S:2, ufc.AMYXQ:3, ufc.KTNZ2:4, ufc.HIID2:5, ufc.DN3OQ:6, ufc.VVKNB:7, ufc.SH7TP:8, ufc.SRZZO:9, ufc.QZ6VT:10]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ nd.ZH72S:48\n" + - " │ └─ ufc.ZH72S:2\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ cla.FTQLQ:12!null\n" + - " │ │ └─ ufc.T4IBQ:1\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id:0!null, SISUT.T4IBQ:1, SISUT.ZH72S:2, SISUT.AMYXQ:3, SISUT.KTNZ2:4, SISUT.HIID2:5, SISUT.DN3OQ:6, SISUT.VVKNB:7, SISUT.SH7TP:8, SISUT.SRZZO:9, SISUT.QZ6VT:10]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5:11 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ ufc.id:0!null\n" + - " │ │ │ └─ amyxq.KKGN5:11\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-11)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SISUT\n" + - " │ │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5:7]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (59-66)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: AMYXQ\n" + - " │ │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(ufc.T4IBQ:1)\n" + - " │ ├─ right-key: TUPLE(cla.FTQLQ:1!null)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(ufc.ZH72S:2)\n" + - " ├─ right-key: TUPLE(nd.ZH72S:7)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " ├─ static: [{(NULL, ∞)}]\n" + - " ├─ colSet: (12-28)\n" + - " ├─ tableId: 2\n" + - " └─ Table\n" + - " ├─ name: E2I7U\n" + - " └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + AND + ufc.id NOT IN (SELECT KKGN5 FROM AMYXQ) + `, + ExpectedPlan: "Distinct\n" + + " └─ Project\n" + + " ├─ columns: [ufc.id:0!null, ufc.T4IBQ:1, ufc.ZH72S:2, ufc.AMYXQ:3, ufc.KTNZ2:4, ufc.HIID2:5, ufc.DN3OQ:6, ufc.VVKNB:7, ufc.SH7TP:8, ufc.SRZZO:9, ufc.QZ6VT:10]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id:30!null, SISUT.T4IBQ:31, SISUT.ZH72S:32, SISUT.AMYXQ:33, SISUT.KTNZ2:34, SISUT.HIID2:35, SISUT.DN3OQ:36, SISUT.VVKNB:37, SISUT.SH7TP:38, SISUT.SRZZO:39, SISUT.QZ6VT:40, E2I7U.id:41!null, E2I7U.DKCAJ:42!null, E2I7U.KNG7T:43, E2I7U.TW55N:44!null, E2I7U.QRQXW:45!null, E2I7U.ECXAJ:46!null, E2I7U.FGG57:47, E2I7U.ZH72S:48, E2I7U.FSK67:49!null, E2I7U.XQDYT:50!null, E2I7U.TCE7A:51, E2I7U.IWV2H:52, E2I7U.HPCMS:53!null, E2I7U.N5CC2:54, E2I7U.FHCYT:55, E2I7U.ETAQ7:56, E2I7U.A75X7:57, YK2GW.id:0!null, YK2GW.FTQLQ:1!null, YK2GW.TUXML:2, YK2GW.PAEF5:3, YK2GW.RUCY4:4, YK2GW.TPNJ6:5!null, YK2GW.LBL53:6, YK2GW.NB3QS:7, YK2GW.EO7IV:8, YK2GW.MUHJF:9, YK2GW.FM34L:10, YK2GW.TY5RF:11, YK2GW.ZHTLH:12, YK2GW.NPB7W:13, YK2GW.SX3HH:14, YK2GW.ISBNF:15, YK2GW.YA7YB:16, YK2GW.C5YKB:17, YK2GW.QK7KT:18, YK2GW.FFGE6:19, YK2GW.FIIGJ:20, YK2GW.SH3NC:21, YK2GW.NTENA:22, YK2GW.M4AUB:23, YK2GW.X5AIR:24, YK2GW.SAB6M:25, YK2GW.G5QI5:26, YK2GW.ZVQVD:27, YK2GW.YKSSU:28, YK2GW.FHCYT:29]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5:58 IS NULL\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ HashJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ nd.ZH72S:48\n" + + " │ │ └─ ufc.ZH72S:32\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ ├─ keys: [cla.FTQLQ:1!null]\n" + + " │ │ ├─ colSet: (1-11)\n" + + " │ │ ├─ tableId: 1\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SISUT\n" + + " │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: TUPLE(ufc.ZH72S:32)\n" + + " │ ├─ right-key: TUPLE(nd.ZH72S:7)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ ├─ static: [{(NULL, ∞)}]\n" + + " │ ├─ colSet: (12-28)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5:7]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " ├─ keys: [ufc.id:30!null]\n" + + " ├─ colSet: (59-66)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: AMYXQ\n" + + " └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + "", ExpectedEstimates: "Distinct\n" + " └─ Project\n" + " ├─ columns: [ufc.id, ufc.T4IBQ, ufc.ZH72S, ufc.AMYXQ, ufc.KTNZ2, ufc.HIID2, ufc.DN3OQ, ufc.VVKNB, ufc.SH7TP, ufc.SRZZO, ufc.QZ6VT]\n" + - " └─ HashJoin (estimated cost=102841528.680 rows=9769906324)\n" + - " ├─ (nd.ZH72S = ufc.ZH72S)\n" + - " ├─ HashJoin (estimated cost=5195054.880 rows=5085844)\n" + - " │ ├─ (cla.FTQLQ = ufc.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=109840579.580 rows=5983347)\n" + - " │ │ ├─ cmp: (ufc.id = amyxq.KKGN5)\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ufc.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ufc.ZH72S)\n" + - " ├─ right-key: (nd.ZH72S)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT, E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5 IS NULL\n" + + " └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902)\n" + + " ├─ HashJoin (estimated cost=8947.440 rows=3122)\n" + + " │ ├─ (nd.ZH72S = ufc.ZH72S)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (ufc.ZH72S)\n" + + " │ ├─ right-key: (nd.ZH72S)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " └─ keys: ufc.id\n" + "", ExpectedAnalysis: "Distinct\n" + " └─ Project\n" + " ├─ columns: [ufc.id, ufc.T4IBQ, ufc.ZH72S, ufc.AMYXQ, ufc.KTNZ2, ufc.HIID2, ufc.DN3OQ, ufc.VVKNB, ufc.SH7TP, ufc.SRZZO, ufc.QZ6VT]\n" + - " └─ HashJoin (estimated cost=102841528.680 rows=9769906324) (actual rows=0 loops=1)\n" + - " ├─ (nd.ZH72S = ufc.ZH72S)\n" + - " ├─ HashJoin (estimated cost=5195054.880 rows=5085844) (actual rows=0 loops=1)\n" + - " │ ├─ (cla.FTQLQ = ufc.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ amyxq.KKGN5 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=109840579.580 rows=5983347) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (ufc.id = amyxq.KKGN5)\n" + - " │ │ ├─ TableAlias(ufc)\n" + - " │ │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ │ ├─ index: [SISUT.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [amyxq.KKGN5]\n" + - " │ │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ │ ├─ index: [AMYXQ.KKGN5]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (ufc.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ufc.ZH72S)\n" + - " ├─ right-key: (nd.ZH72S)\n" + - " └─ TableAlias(nd)\n" + - " └─ IndexedTableAccess(E2I7U)\n" + - " ├─ index: [E2I7U.ZH72S]\n" + - " └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [SISUT.id, SISUT.T4IBQ, SISUT.ZH72S, SISUT.AMYXQ, SISUT.KTNZ2, SISUT.HIID2, SISUT.DN3OQ, SISUT.VVKNB, SISUT.SH7TP, SISUT.SRZZO, SISUT.QZ6VT, E2I7U.id, E2I7U.DKCAJ, E2I7U.KNG7T, E2I7U.TW55N, E2I7U.QRQXW, E2I7U.ECXAJ, E2I7U.FGG57, E2I7U.ZH72S, E2I7U.FSK67, E2I7U.XQDYT, E2I7U.TCE7A, E2I7U.IWV2H, E2I7U.HPCMS, E2I7U.N5CC2, E2I7U.FHCYT, E2I7U.ETAQ7, E2I7U.A75X7, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " └─ Filter\n" + + " ├─ amyxq.KKGN5 IS NULL\n" + + " └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902) (actual rows=0 loops=1)\n" + + " ├─ HashJoin (estimated cost=8947.440 rows=3122) (actual rows=0 loops=1)\n" + + " │ ├─ (nd.ZH72S = ufc.ZH72S)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122) (actual rows=0 loops=1)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (ufc.ZH72S)\n" + + " │ ├─ right-key: (nd.ZH72S)\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.ZH72S]\n" + + " │ └─ filters: [{(NULL, ∞)}]\n" + + " └─ Project\n" + + " ├─ columns: [amyxq.KKGN5]\n" + + " └─ IndexedTableAccess(AMYXQ)\n" + + " ├─ index: [AMYXQ.KKGN5]\n" + + " └─ keys: ufc.id\n" + "", }, { @@ -3668,313 +3518,286 @@ WHERE ) `, ExpectedPlan: "Project\n" + - " ├─ columns: [mf.id:0!null->id:0, cla.FTQLQ:42!null->T4IBQ:0, nd.TW55N:23!null->UWBAI:0, aac.BTXC5:18->TPXBU:0, mf.FSDY2:10!null->FSDY2:0]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ bs.id:37!null\n" + - " │ └─ mf.GXLUB:1!null\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ nd.id:20!null\n" + - " │ │ └─ mf.LUEVY:2!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ mf.M22QN:3!null\n" + - " │ │ │ └─ aac.id:17!null\n" + - " │ │ ├─ sel: Or\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ └─ mf.QQV4M:15 IS NULL\n" + - " │ │ │ │ └─ Or\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ Subquery\n" + - " │ │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ │ ├─ alias-string: select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M\n" + - " │ │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ │ ├─ columns: [tj5d2.SWCQV:21!null]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ ├─ tj5d2.id:20!null\n" + - " │ │ │ │ │ │ │ └─ mf.QQV4M:15\n" + - " │ │ │ │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(SZW6V)\n" + - " │ │ │ │ │ │ ├─ index: [SZW6V.id]\n" + - " │ │ │ │ │ │ ├─ keys: [mf.QQV4M:15]\n" + - " │ │ │ │ │ │ ├─ colSet: (72-79)\n" + - " │ │ │ │ │ │ ├─ tableId: 6\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: SZW6V\n" + - " │ │ │ │ │ │ └─ columns: [id swcqv]\n" + - " │ │ │ │ │ └─ 1 (tinyint)\n" + - " │ │ │ │ └─ NOT\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [nd.id:20!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nd.TW55N:23!null\n" + - " │ │ │ │ │ │ └─ Subquery\n" + - " │ │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ │ ├─ alias-string: select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M\n" + - " │ │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ │ ├─ columns: [tj5d2.H4DMT:38!null]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ ├─ tj5d2.id:37!null\n" + - " │ │ │ │ │ │ │ └─ mf.QQV4M:15\n" + - " │ │ │ │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(SZW6V)\n" + - " │ │ │ │ │ │ ├─ index: [SZW6V.id]\n" + - " │ │ │ │ │ │ ├─ keys: [mf.QQV4M:15]\n" + - " │ │ │ │ │ │ ├─ colSet: (97-104)\n" + - " │ │ │ │ │ │ ├─ tableId: 8\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: SZW6V\n" + - " │ │ │ │ │ │ └─ columns: [id h4dmt]\n" + - " │ │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ ├─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ │ │ │ │ ├─ colSet: (80-96)\n" + - " │ │ │ │ │ └─ tableId: 7\n" + - " │ │ │ │ └─ mf.LUEVY:2!null\n" + - " │ │ │ └─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ mf.TEUJA:14 IS NULL\n" + - " │ │ │ └─ InSubquery\n" + - " │ │ │ ├─ left: mf.TEUJA:14\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ ├─ alias-string: select umf.id as ORB3K from SZW6V as TJ5D2 join NZKPM as umf on umf.T4IBQ = TJ5D2.T4IBQ and umf.FGG57 = TJ5D2.V7UFH and umf.SYPKF = TJ5D2.SYPKF where TJ5D2.SWCQV = 0 and TJ5D2.id not in (select QQV4M from HGMQ6 where QQV4M is not null)\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [umf.id:28!null->ORB3K:0]\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ umf.FGG57:30\n" + - " │ │ │ │ │ └─ tj5d2.V7UFH:22!null\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ umf.SYPKF:36\n" + - " │ │ │ │ └─ tj5d2.SYPKF:23!null\n" + - " │ │ │ ├─ Project\n" + - " │ │ │ │ ├─ columns: [SZW6V.id:20!null, SZW6V.T4IBQ:21!null, SZW6V.V7UFH:22!null, SZW6V.SYPKF:23!null, SZW6V.H4DMT:24!null, SZW6V.SWCQV:25!null, SZW6V.YKSSU:26, SZW6V.FHCYT:27]\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ hgmq6.QQV4M:28 IS NULL\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ tj5d2.SWCQV:25!null\n" + - " │ │ │ │ │ │ └─ 0 (int)\n" + - " │ │ │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: SZW6V\n" + - " │ │ │ │ │ ├─ columns: [id t4ibq v7ufh sypkf h4dmt swcqv ykssu fhcyt]\n" + - " │ │ │ │ │ ├─ colSet: (105-112)\n" + - " │ │ │ │ │ └─ tableId: 9\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ └─ hgmq6.QQV4M:20 IS NULL\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.QQV4M]\n" + - " │ │ │ │ ├─ keys: [tj5d2.id:20!null]\n" + - " │ │ │ │ ├─ colSet: (138-154)\n" + - " │ │ │ │ ├─ tableId: 11\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ └─ columns: [qqv4m]\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.T4IBQ]\n" + - " │ │ │ ├─ keys: [tj5d2.T4IBQ:21!null]\n" + - " │ │ │ ├─ colSet: (113-137)\n" + - " │ │ │ ├─ tableId: 10\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NZKPM\n" + - " │ │ │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + - " │ │ ├─ TableAlias(mf)\n" + - " │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ ├─ index: [HGMQ6.M22QN]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-17)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (69-71)\n" + - " │ │ ├─ tableId: 5\n" + + " ├─ columns: [mf.id:34!null->id:0, cla.FTQLQ:5!null->T4IBQ:0, nd.TW55N:54!null->UWBAI:0, aac.BTXC5:69->TPXBU:0, mf.FSDY2:44!null->FSDY2:0]\n" + + " └─ LookupJoin\n" + + " ├─ Or\n" + + " │ ├─ AND\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ mf.QQV4M:49 IS NULL\n" + + " │ │ └─ Or\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [tj5d2.SWCQV:72!null]\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ tj5d2.id:71!null\n" + + " │ │ │ │ │ └─ mf.QQV4M:49\n" + + " │ │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ │ └─ IndexedTableAccess(SZW6V)\n" + + " │ │ │ │ ├─ index: [SZW6V.id]\n" + + " │ │ │ │ ├─ keys: [mf.QQV4M:49]\n" + + " │ │ │ │ ├─ colSet: (72-79)\n" + + " │ │ │ │ ├─ tableId: 6\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: SZW6V\n" + + " │ │ │ │ └─ columns: [id swcqv]\n" + + " │ │ │ └─ 1 (tinyint)\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [nd.id:71!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ nd.TW55N:74!null\n" + + " │ │ │ │ └─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [tj5d2.H4DMT:89!null]\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ tj5d2.id:88!null\n" + + " │ │ │ │ │ └─ mf.QQV4M:49\n" + + " │ │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ │ └─ IndexedTableAccess(SZW6V)\n" + + " │ │ │ │ ├─ index: [SZW6V.id]\n" + + " │ │ │ │ ├─ keys: [mf.QQV4M:49]\n" + + " │ │ │ │ ├─ colSet: (97-104)\n" + + " │ │ │ │ ├─ tableId: 8\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: SZW6V\n" + + " │ │ │ │ └─ columns: [id h4dmt]\n" + + " │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ ├─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ │ │ ├─ colSet: (80-96)\n" + + " │ │ │ └─ tableId: 7\n" + + " │ │ └─ mf.LUEVY:36!null\n" + + " │ └─ AND\n" + + " │ ├─ NOT\n" + + " │ │ └─ mf.TEUJA:48 IS NULL\n" + + " │ └─ InSubquery\n" + + " │ ├─ left: mf.TEUJA:48\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ alias-string: select umf.id as ORB3K from SZW6V as TJ5D2 join NZKPM as umf on umf.T4IBQ = TJ5D2.T4IBQ and umf.FGG57 = TJ5D2.V7UFH and umf.SYPKF = TJ5D2.SYPKF where TJ5D2.SWCQV = 0 and TJ5D2.id not in (select QQV4M from HGMQ6 where QQV4M is not null)\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.id:79!null->ORB3K:0]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ umf.FGG57:81\n" + + " │ │ │ └─ tj5d2.V7UFH:73!null\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.SYPKF:87\n" + + " │ │ └─ tj5d2.SYPKF:74!null\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [SZW6V.id:71!null, SZW6V.T4IBQ:72!null, SZW6V.V7UFH:73!null, SZW6V.SYPKF:74!null, SZW6V.H4DMT:75!null, SZW6V.SWCQV:76!null, SZW6V.YKSSU:77, SZW6V.FHCYT:78]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ hgmq6.QQV4M:79 IS NULL\n" + + " │ │ └─ LeftOuterLookupJoin\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ tj5d2.SWCQV:76!null\n" + + " │ │ │ │ └─ 0 (int)\n" + + " │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SZW6V\n" + + " │ │ │ ├─ columns: [id t4ibq v7ufh sypkf h4dmt swcqv ykssu fhcyt]\n" + + " │ │ │ ├─ colSet: (105-112)\n" + + " │ │ │ └─ tableId: 9\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ hgmq6.QQV4M:71 IS NULL\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.QQV4M]\n" + + " │ │ ├─ keys: [tj5d2.id:71!null]\n" + + " │ │ ├─ colSet: (138-154)\n" + + " │ │ ├─ tableId: 11\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: HGMQ6\n" + + " │ │ └─ columns: [qqv4m]\n" + + " │ └─ TableAlias(umf)\n" + + " │ └─ IndexedTableAccess(NZKPM)\n" + + " │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ ├─ keys: [tj5d2.T4IBQ:72!null]\n" + + " │ ├─ colSet: (113-137)\n" + + " │ ├─ tableId: 10\n" + + " │ └─ Table\n" + + " │ ├─ name: NZKPM\n" + + " │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + + " ├─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ bs.IXUXU:2\n" + + " │ │ │ │ └─ cla.id:4!null\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (18-21)\n" + + " │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ └─ columns: [id nfryn ixuxu fhcyt]\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (22-51)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:0!null]\n" + + " │ │ ├─ colSet: (1-17)\n" + + " │ │ ├─ tableId: 1\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5 fhcyt]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(mf.LUEVY:2!null)\n" + - " │ ├─ right-key: TUPLE(nd.id:0!null)\n" + - " │ └─ TableAlias(nd)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(mf.GXLUB:1!null)\n" + - " ├─ right-key: TUPLE(bs.id:0!null)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ bs.IXUXU:39\n" + - " │ └─ cla.id:41!null\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (18-21)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: THNTS\n" + - " │ └─ columns: [id nfryn ixuxu fhcyt]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (22-51)\n" + - " ├─ tableId: 3\n" + - " └─ Table\n" + - " ├─ name: YK2GW\n" + - " └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ │ ├─ name: HGMQ6\n" + + " │ │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ keys: [mf.LUEVY:36!null]\n" + + " │ ├─ colSet: (52-68)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " ├─ keys: [mf.M22QN:37!null]\n" + + " ├─ colSet: (69-71)\n" + + " ├─ tableId: 5\n" + + " └─ Table\n" + + " ├─ name: TPXBU\n" + + " └─ columns: [id btxc5 fhcyt]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [mf.id as id, cla.FTQLQ as T4IBQ, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, mf.FSDY2 as FSDY2]\n" + - " └─ HashJoin (estimated cost=529702.380 rows=511969)\n" + - " ├─ (bs.id = mf.GXLUB)\n" + - " ├─ HashJoin (estimated cost=533734.380 rows=511969)\n" + - " │ ├─ (nd.id = mf.LUEVY)\n" + - " │ ├─ MergeJoin (estimated cost=647314.050 rows=511969)\n" + - " │ │ ├─ cmp: (mf.M22QN = aac.id)\n" + - " │ │ ├─ sel: (((NOT(mf.QQV4M IS NULL)) AND ((Subquery(select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)) = mf.LUEVY))))) OR ((NOT(mf.TEUJA IS NULL)) AND InSubquery\n" + - " │ │ │ ├─ left: mf.TEUJA\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [umf.id as ORB3K]\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ ((umf.FGG57 = tj5d2.V7UFH) AND (umf.SYPKF = tj5d2.SYPKF))\n" + - " │ │ │ ├─ Project\n" + - " │ │ │ │ ├─ columns: [SZW6V.id, SZW6V.T4IBQ, SZW6V.V7UFH, SZW6V.SYPKF, SZW6V.H4DMT, SZW6V.SWCQV, SZW6V.YKSSU, SZW6V.FHCYT]\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ hgmq6.QQV4M IS NULL\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (tj5d2.SWCQV = 0)\n" + - " │ │ │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ └─ name: SZW6V\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ (NOT(hgmq6.QQV4M IS NULL))\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.QQV4M]\n" + - " │ │ │ │ ├─ columns: [qqv4m]\n" + - " │ │ │ │ └─ keys: tj5d2.id\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.T4IBQ]\n" + - " │ │ │ └─ keys: tj5d2.T4IBQ\n" + - " │ │ │ ))\n" + - " │ │ ├─ TableAlias(mf)\n" + - " │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ ├─ index: [HGMQ6.M22QN]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.LUEVY)\n" + - " │ ├─ right-key: (nd.id)\n" + - " │ └─ TableAlias(nd)\n" + - " │ └─ Table\n" + - " │ └─ name: E2I7U\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (bs.IXUXU = cla.id)\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ └─ filters: [{[NULL, ∞)}]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " └─ filters: [{[NULL, ∞)}]\n" + + " └─ LookupJoin (estimated cost=10302.600 rows=3122)\n" + + " ├─ (((NOT(mf.QQV4M IS NULL)) AND ((Subquery(select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)) = mf.LUEVY))))) OR ((NOT(mf.TEUJA IS NULL)) AND InSubquery\n" + + " │ ├─ left: mf.TEUJA\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.id as ORB3K]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ ((umf.FGG57 = tj5d2.V7UFH) AND (umf.SYPKF = tj5d2.SYPKF))\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [SZW6V.id, SZW6V.T4IBQ, SZW6V.V7UFH, SZW6V.SYPKF, SZW6V.H4DMT, SZW6V.SWCQV, SZW6V.YKSSU, SZW6V.FHCYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ hgmq6.QQV4M IS NULL\n" + + " │ │ └─ LeftOuterLookupJoin\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (tj5d2.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: SZW6V\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (NOT(hgmq6.QQV4M IS NULL))\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.QQV4M]\n" + + " │ │ ├─ columns: [qqv4m]\n" + + " │ │ └─ keys: tj5d2.id\n" + + " │ └─ TableAlias(umf)\n" + + " │ └─ IndexedTableAccess(NZKPM)\n" + + " │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ └─ keys: tj5d2.T4IBQ\n" + + " │ ))\n" + + " ├─ LookupJoin (estimated cost=10302.600 rows=3122)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122)\n" + + " │ │ ├─ MergeJoin (estimated cost=5070.940 rows=2498)\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ └─ keys: mf.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " └─ keys: mf.M22QN\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [mf.id as id, cla.FTQLQ as T4IBQ, nd.TW55N as UWBAI, aac.BTXC5 as TPXBU, mf.FSDY2 as FSDY2]\n" + - " └─ HashJoin (estimated cost=529702.380 rows=511969) (actual rows=0 loops=1)\n" + - " ├─ (bs.id = mf.GXLUB)\n" + - " ├─ HashJoin (estimated cost=533734.380 rows=511969) (actual rows=0 loops=1)\n" + - " │ ├─ (nd.id = mf.LUEVY)\n" + - " │ ├─ MergeJoin (estimated cost=647314.050 rows=511969) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (mf.M22QN = aac.id)\n" + - " │ │ ├─ sel: (((NOT(mf.QQV4M IS NULL)) AND ((Subquery(select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)) = mf.LUEVY))))) OR ((NOT(mf.TEUJA IS NULL)) AND InSubquery\n" + - " │ │ │ ├─ left: mf.TEUJA\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [umf.id as ORB3K]\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ ((umf.FGG57 = tj5d2.V7UFH) AND (umf.SYPKF = tj5d2.SYPKF))\n" + - " │ │ │ ├─ Project\n" + - " │ │ │ │ ├─ columns: [SZW6V.id, SZW6V.T4IBQ, SZW6V.V7UFH, SZW6V.SYPKF, SZW6V.H4DMT, SZW6V.SWCQV, SZW6V.YKSSU, SZW6V.FHCYT]\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ hgmq6.QQV4M IS NULL\n" + - " │ │ │ │ └─ LeftOuterLookupJoin\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (tj5d2.SWCQV = 0)\n" + - " │ │ │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ └─ name: SZW6V\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ (NOT(hgmq6.QQV4M IS NULL))\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.QQV4M]\n" + - " │ │ │ │ ├─ columns: [qqv4m]\n" + - " │ │ │ │ └─ keys: tj5d2.id\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.T4IBQ]\n" + - " │ │ │ └─ keys: tj5d2.T4IBQ\n" + - " │ │ │ ))\n" + - " │ │ ├─ TableAlias(mf)\n" + - " │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ ├─ index: [HGMQ6.M22QN]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.id]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.LUEVY)\n" + - " │ ├─ right-key: (nd.id)\n" + - " │ └─ TableAlias(nd)\n" + - " │ └─ Table\n" + - " │ └─ name: E2I7U\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (bs.IXUXU = cla.id)\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ └─ filters: [{[NULL, ∞)}]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " └─ filters: [{[NULL, ∞)}]\n" + + " └─ LookupJoin (estimated cost=10302.600 rows=3122) (actual rows=0 loops=1)\n" + + " ├─ (((NOT(mf.QQV4M IS NULL)) AND ((Subquery(select TJ5D2.SWCQV from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M) = 1) OR (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select TJ5D2.H4DMT from SZW6V as TJ5D2 where TJ5D2.id = mf.QQV4M)) = mf.LUEVY))))) OR ((NOT(mf.TEUJA IS NULL)) AND InSubquery\n" + + " │ ├─ left: mf.TEUJA\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.id as ORB3K]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ ((umf.FGG57 = tj5d2.V7UFH) AND (umf.SYPKF = tj5d2.SYPKF))\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [SZW6V.id, SZW6V.T4IBQ, SZW6V.V7UFH, SZW6V.SYPKF, SZW6V.H4DMT, SZW6V.SWCQV, SZW6V.YKSSU, SZW6V.FHCYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ hgmq6.QQV4M IS NULL\n" + + " │ │ └─ LeftOuterLookupJoin\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (tj5d2.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: SZW6V\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (NOT(hgmq6.QQV4M IS NULL))\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.QQV4M]\n" + + " │ │ ├─ columns: [qqv4m]\n" + + " │ │ └─ keys: tj5d2.id\n" + + " │ └─ TableAlias(umf)\n" + + " │ └─ IndexedTableAccess(NZKPM)\n" + + " │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ └─ keys: tj5d2.T4IBQ\n" + + " │ ))\n" + + " ├─ LookupJoin (estimated cost=10302.600 rows=3122) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122) (actual rows=0 loops=1)\n" + + " │ │ ├─ MergeJoin (estimated cost=5070.940 rows=2498) (actual rows=0 loops=1)\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ └─ keys: mf.LUEVY\n" + + " └─ TableAlias(aac)\n" + + " └─ IndexedTableAccess(TPXBU)\n" + + " ├─ index: [TPXBU.id]\n" + + " └─ keys: mf.M22QN\n" + "", }, { @@ -4004,50 +3827,41 @@ WHERE " ├─ Eq\n" + " │ ├─ nd.FGG57:61\n" + " │ └─ umf.FGG57:2\n" + - " ├─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ cla.FTQLQ:26!null\n" + - " │ │ └─ umf.T4IBQ:1\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [NZKPM.id:0!null, NZKPM.T4IBQ:1, NZKPM.FGG57:2, NZKPM.SSHPJ:3, NZKPM.NLA6O:4, NZKPM.SFJ6L:5, NZKPM.TJPT7:6, NZKPM.ARN5P:7, NZKPM.SYPKF:8, NZKPM.IVFMK:9, NZKPM.IDE43:10, NZKPM.AZ6SP:11, NZKPM.FSDY2:12, NZKPM.XOSD4:13, NZKPM.HMW4H:14, NZKPM.S76OM:15, NZKPM.vaf:16, NZKPM.ZROH6:17, NZKPM.QCGTS:18, NZKPM.LNFM6:19, NZKPM.TVAWL:20, NZKPM.HDLCL:21, NZKPM.BHHW6:22, NZKPM.FHCYT:23, NZKPM.QZ6VT:24]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ hgmq6.TEUJA:25 IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ umf.id:0!null\n" + - " │ │ │ └─ hgmq6.TEUJA:25\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ umf.ARN5P:7\n" + - " │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (1-25)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NZKPM\n" + - " │ │ │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.TEUJA:14]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.TEUJA]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (73-89)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: HGMQ6\n" + - " │ │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(umf.T4IBQ:1)\n" + - " │ ├─ right-key: TUPLE(cla.FTQLQ:1!null)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " ├─ Project\n" + + " │ ├─ columns: [NZKPM.id:30!null, NZKPM.T4IBQ:31, NZKPM.FGG57:32, NZKPM.SSHPJ:33, NZKPM.NLA6O:34, NZKPM.SFJ6L:35, NZKPM.TJPT7:36, NZKPM.ARN5P:37, NZKPM.SYPKF:38, NZKPM.IVFMK:39, NZKPM.IDE43:40, NZKPM.AZ6SP:41, NZKPM.FSDY2:42, NZKPM.XOSD4:43, NZKPM.HMW4H:44, NZKPM.S76OM:45, NZKPM.vaf:46, NZKPM.ZROH6:47, NZKPM.QCGTS:48, NZKPM.LNFM6:49, NZKPM.TVAWL:50, NZKPM.HDLCL:51, NZKPM.BHHW6:52, NZKPM.FHCYT:53, NZKPM.QZ6VT:54, YK2GW.id:0!null, YK2GW.FTQLQ:1!null, YK2GW.TUXML:2, YK2GW.PAEF5:3, YK2GW.RUCY4:4, YK2GW.TPNJ6:5!null, YK2GW.LBL53:6, YK2GW.NB3QS:7, YK2GW.EO7IV:8, YK2GW.MUHJF:9, YK2GW.FM34L:10, YK2GW.TY5RF:11, YK2GW.ZHTLH:12, YK2GW.NPB7W:13, YK2GW.SX3HH:14, YK2GW.ISBNF:15, YK2GW.YA7YB:16, YK2GW.C5YKB:17, YK2GW.QK7KT:18, YK2GW.FFGE6:19, YK2GW.FIIGJ:20, YK2GW.SH3NC:21, YK2GW.NTENA:22, YK2GW.M4AUB:23, YK2GW.X5AIR:24, YK2GW.SAB6M:25, YK2GW.G5QI5:26, YK2GW.ZVQVD:27, YK2GW.YKSSU:28, YK2GW.FHCYT:29]\n" + + " │ └─ Filter\n" + + " │ ├─ hgmq6.TEUJA:55 IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ NOT\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ umf.ARN5P:7\n" + + " │ │ │ └─ N/A (longtext)\n" + + " │ │ └─ TableAlias(umf)\n" + + " │ │ └─ IndexedTableAccess(NZKPM)\n" + + " │ │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ │ ├─ keys: [cla.FTQLQ:1!null]\n" + + " │ │ ├─ colSet: (1-25)\n" + + " │ │ ├─ tableId: 1\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: NZKPM\n" + + " │ │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [hgmq6.TEUJA:14]\n" + + " │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ ├─ index: [HGMQ6.TEUJA]\n" + + " │ ├─ keys: [umf.id:30!null]\n" + + " │ ├─ colSet: (73-89)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: HGMQ6\n" + + " │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(umf.FGG57:2)\n" + " ├─ right-key: TUPLE(nd.FGG57:6)\n" + @@ -4063,33 +3877,28 @@ WHERE "", ExpectedEstimates: "Project\n" + " ├─ columns: [umf.id, umf.T4IBQ, umf.FGG57, umf.SSHPJ, umf.NLA6O, umf.SFJ6L, umf.TJPT7, umf.ARN5P, umf.SYPKF, umf.IVFMK, umf.IDE43, umf.AZ6SP, umf.FSDY2, umf.XOSD4, umf.HMW4H, umf.S76OM, umf.vaf, umf.ZROH6, umf.QCGTS, umf.LNFM6, umf.TVAWL, umf.HDLCL, umf.BHHW6, umf.FHCYT, umf.QZ6VT]\n" + - " └─ HashJoin (estimated cost=560608.320 rows=543966)\n" + + " └─ HashJoin (estimated cost=8947.440 rows=3122)\n" + " ├─ (nd.FGG57 = umf.FGG57)\n" + - " ├─ HashJoin (estimated cost=562339.320 rows=543966)\n" + - " │ ├─ (cla.FTQLQ = umf.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [NZKPM.id, NZKPM.T4IBQ, NZKPM.FGG57, NZKPM.SSHPJ, NZKPM.NLA6O, NZKPM.SFJ6L, NZKPM.TJPT7, NZKPM.ARN5P, NZKPM.SYPKF, NZKPM.IVFMK, NZKPM.IDE43, NZKPM.AZ6SP, NZKPM.FSDY2, NZKPM.XOSD4, NZKPM.HMW4H, NZKPM.S76OM, NZKPM.vaf, NZKPM.ZROH6, NZKPM.QCGTS, NZKPM.LNFM6, NZKPM.TVAWL, NZKPM.HDLCL, NZKPM.BHHW6, NZKPM.FHCYT, NZKPM.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ hgmq6.TEUJA IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=16645873.910 rows=639961)\n" + - " │ │ ├─ cmp: (umf.id = hgmq6.TEUJA)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (NOT((umf.ARN5P = 'N/A')))\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.TEUJA]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.TEUJA]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (umf.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + + " ├─ Project\n" + + " │ ├─ columns: [NZKPM.id, NZKPM.T4IBQ, NZKPM.FGG57, NZKPM.SSHPJ, NZKPM.NLA6O, NZKPM.SFJ6L, NZKPM.TJPT7, NZKPM.ARN5P, NZKPM.SYPKF, NZKPM.IVFMK, NZKPM.IDE43, NZKPM.AZ6SP, NZKPM.FSDY2, NZKPM.XOSD4, NZKPM.HMW4H, NZKPM.S76OM, NZKPM.vaf, NZKPM.ZROH6, NZKPM.QCGTS, NZKPM.LNFM6, NZKPM.TVAWL, NZKPM.HDLCL, NZKPM.BHHW6, NZKPM.FHCYT, NZKPM.QZ6VT, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " │ └─ Filter\n" + + " │ ├─ hgmq6.TEUJA IS NULL\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (NOT((umf.ARN5P = 'N/A')))\n" + + " │ │ └─ TableAlias(umf)\n" + + " │ │ └─ IndexedTableAccess(NZKPM)\n" + + " │ │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ Project\n" + + " │ ├─ columns: [hgmq6.TEUJA]\n" + + " │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ ├─ index: [HGMQ6.TEUJA]\n" + + " │ └─ keys: umf.id\n" + " └─ HashLookup\n" + " ├─ left-key: (umf.FGG57)\n" + " ├─ right-key: (nd.FGG57)\n" + @@ -4100,33 +3909,28 @@ WHERE "", ExpectedAnalysis: "Project\n" + " ├─ columns: [umf.id, umf.T4IBQ, umf.FGG57, umf.SSHPJ, umf.NLA6O, umf.SFJ6L, umf.TJPT7, umf.ARN5P, umf.SYPKF, umf.IVFMK, umf.IDE43, umf.AZ6SP, umf.FSDY2, umf.XOSD4, umf.HMW4H, umf.S76OM, umf.vaf, umf.ZROH6, umf.QCGTS, umf.LNFM6, umf.TVAWL, umf.HDLCL, umf.BHHW6, umf.FHCYT, umf.QZ6VT]\n" + - " └─ HashJoin (estimated cost=560608.320 rows=543966) (actual rows=0 loops=1)\n" + + " └─ HashJoin (estimated cost=8947.440 rows=3122) (actual rows=0 loops=1)\n" + " ├─ (nd.FGG57 = umf.FGG57)\n" + - " ├─ HashJoin (estimated cost=562339.320 rows=543966) (actual rows=0 loops=1)\n" + - " │ ├─ (cla.FTQLQ = umf.T4IBQ)\n" + - " │ ├─ Project\n" + - " │ │ ├─ columns: [NZKPM.id, NZKPM.T4IBQ, NZKPM.FGG57, NZKPM.SSHPJ, NZKPM.NLA6O, NZKPM.SFJ6L, NZKPM.TJPT7, NZKPM.ARN5P, NZKPM.SYPKF, NZKPM.IVFMK, NZKPM.IDE43, NZKPM.AZ6SP, NZKPM.FSDY2, NZKPM.XOSD4, NZKPM.HMW4H, NZKPM.S76OM, NZKPM.vaf, NZKPM.ZROH6, NZKPM.QCGTS, NZKPM.LNFM6, NZKPM.TVAWL, NZKPM.HDLCL, NZKPM.BHHW6, NZKPM.FHCYT, NZKPM.QZ6VT]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ hgmq6.TEUJA IS NULL\n" + - " │ │ └─ LeftOuterMergeJoin (estimated cost=16645873.910 rows=639961) (actual rows=0 loops=1)\n" + - " │ │ ├─ cmp: (umf.id = hgmq6.TEUJA)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (NOT((umf.ARN5P = 'N/A')))\n" + - " │ │ │ └─ TableAlias(umf)\n" + - " │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ ├─ index: [NZKPM.id]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.TEUJA]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.TEUJA]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (umf.T4IBQ)\n" + - " │ ├─ right-key: (cla.FTQLQ)\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ Table\n" + - " │ └─ name: YK2GW\n" + + " ├─ Project\n" + + " │ ├─ columns: [NZKPM.id, NZKPM.T4IBQ, NZKPM.FGG57, NZKPM.SSHPJ, NZKPM.NLA6O, NZKPM.SFJ6L, NZKPM.TJPT7, NZKPM.ARN5P, NZKPM.SYPKF, NZKPM.IVFMK, NZKPM.IDE43, NZKPM.AZ6SP, NZKPM.FSDY2, NZKPM.XOSD4, NZKPM.HMW4H, NZKPM.S76OM, NZKPM.vaf, NZKPM.ZROH6, NZKPM.QCGTS, NZKPM.LNFM6, NZKPM.TVAWL, NZKPM.HDLCL, NZKPM.BHHW6, NZKPM.FHCYT, NZKPM.QZ6VT, YK2GW.id, YK2GW.FTQLQ, YK2GW.TUXML, YK2GW.PAEF5, YK2GW.RUCY4, YK2GW.TPNJ6, YK2GW.LBL53, YK2GW.NB3QS, YK2GW.EO7IV, YK2GW.MUHJF, YK2GW.FM34L, YK2GW.TY5RF, YK2GW.ZHTLH, YK2GW.NPB7W, YK2GW.SX3HH, YK2GW.ISBNF, YK2GW.YA7YB, YK2GW.C5YKB, YK2GW.QK7KT, YK2GW.FFGE6, YK2GW.FIIGJ, YK2GW.SH3NC, YK2GW.NTENA, YK2GW.M4AUB, YK2GW.X5AIR, YK2GW.SAB6M, YK2GW.G5QI5, YK2GW.ZVQVD, YK2GW.YKSSU, YK2GW.FHCYT]\n" + + " │ └─ Filter\n" + + " │ ├─ hgmq6.TEUJA IS NULL\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=12117.300 rows=3902) (actual rows=0 loops=1)\n" + + " │ ├─ LookupJoin (estimated cost=9699.300 rows=3122) (actual rows=0 loops=1)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: YK2GW\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (NOT((umf.ARN5P = 'N/A')))\n" + + " │ │ └─ TableAlias(umf)\n" + + " │ │ └─ IndexedTableAccess(NZKPM)\n" + + " │ │ ├─ index: [NZKPM.T4IBQ]\n" + + " │ │ └─ keys: cla.FTQLQ\n" + + " │ └─ Project\n" + + " │ ├─ columns: [hgmq6.TEUJA]\n" + + " │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ ├─ index: [HGMQ6.TEUJA]\n" + + " │ └─ keys: umf.id\n" + " └─ HashLookup\n" + " ├─ left-key: (umf.FGG57)\n" + " ├─ right-key: (nd.FGG57)\n" + @@ -4511,59 +4315,50 @@ WHERE " │ │ ├─ colSet: (192-197)\n" + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [sn.id:0!null->BDNYB:0, ci.FTQLQ:23!null->TOFPN:0, ct.M22QN:13!null->M22QN:0, cec.ADURZ:26!null->ADURZ:0, cec.NO52D:25!null->NO52D:0, ct.S3Q3Y:19!null->IDPK7:0]\n" + - " │ │ └─ HashJoin\n" + + " │ │ ├─ columns: [sn.id:17!null->BDNYB:0, ci.FTQLQ:16!null->TOFPN:0, ct.M22QN:6!null->M22QN:0, cec.ADURZ:2!null->ADURZ:0, cec.NO52D:1!null->NO52D:0, ct.S3Q3Y:12!null->IDPK7:0]\n" + + " │ │ └─ LookupJoin\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cec.id:24!null\n" + - " │ │ │ └─ ct.OVE3E:14!null\n" + + " │ │ │ ├─ ct.M22QN:6!null\n" + + " │ │ │ └─ Subquery\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ alias-string: select aac.id from TPXBU as aac where BTXC5 = 'WT'\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [aac.id:27!null]\n" + + " │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ │ ├─ static: [{[WT, WT]}]\n" + + " │ │ │ ├─ colSet: (172-174)\n" + + " │ │ │ ├─ tableId: 16\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: TPXBU\n" + + " │ │ │ └─ columns: [id btxc5]\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ ci.id:22!null\n" + - " │ │ │ │ └─ ct.FZ2R5:11!null\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ ├─ sn.BRQP2:1!null\n" + - " │ │ │ │ │ └─ ct.LUEVY:12!null\n" + - " │ │ │ │ ├─ sel: Eq\n" + - " │ │ │ │ │ ├─ ct.M22QN:13!null\n" + - " │ │ │ │ │ └─ Subquery\n" + - " │ │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ │ ├─ alias-string: select aac.id from TPXBU as aac where BTXC5 = 'WT'\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [aac.id:22!null]\n" + - " │ │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ │ │ │ ├─ static: [{[WT, WT]}]\n" + - " │ │ │ │ │ ├─ colSet: (172-174)\n" + - " │ │ │ │ │ ├─ tableId: 16\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: TPXBU\n" + - " │ │ │ │ │ └─ columns: [id btxc5]\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (150-159)\n" + - " │ │ │ │ │ ├─ tableId: 14\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ └─ columns: [id brqp2 fftbj a7xo2 kbo7r ecdkm numk2 letoe ykssu fhcyt]\n" + + " │ │ │ │ ├─ ci.id:15!null\n" + + " │ │ │ │ └─ ct.FZ2R5:4!null\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ ├─ columns: [id no52d adurz]\n" + + " │ │ │ │ │ ├─ colSet: (180-185)\n" + + " │ │ │ │ │ └─ tableId: 18\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ ct.ZRV3B:10!null\n" + " │ │ │ │ │ └─ = (longtext)\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ ├─ keys: [cec.id:0!null]\n" + " │ │ │ │ ├─ colSet: (160-171)\n" + " │ │ │ │ ├─ tableId: 15\n" + " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: FLQLP\n" + " │ │ │ │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(ct.FZ2R5:11!null)\n" + + " │ │ │ ├─ left-key: TUPLE(ct.FZ2R5:4!null)\n" + " │ │ │ ├─ right-key: TUPLE(ci.id:0!null)\n" + " │ │ │ └─ TableAlias(ci)\n" + " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + @@ -4574,15 +4369,15 @@ WHERE " │ │ │ └─ Table\n" + " │ │ │ ├─ name: JDLNA\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(ct.OVE3E:14!null)\n" + - " │ │ ├─ right-key: TUPLE(cec.id:0!null)\n" + - " │ │ └─ TableAlias(cec)\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ keys: [ct.LUEVY:5!null]\n" + + " │ │ ├─ colSet: (150-159)\n" + + " │ │ ├─ tableId: 14\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ ├─ columns: [id no52d adurz]\n" + - " │ │ ├─ colSet: (180-185)\n" + - " │ │ └─ tableId: 18\n" + + " │ │ ├─ name: NOXN3\n" + + " │ │ └─ columns: [id brqp2 fftbj a7xo2 kbo7r ecdkm numk2 letoe ykssu fhcyt]\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -4768,23 +4563,21 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (cec.id = ct.OVE3E)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (sn.BRQP2 = ct.LUEVY)\n" + - " │ │ │ │ ├─ sel: (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ └─ columns: [id no52d adurz]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (ct.ZRV3B = '=')\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ └─ keys: cec.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ct.FZ2R5)\n" + " │ │ │ ├─ right-key: (ci.id)\n" + @@ -4793,13 +4586,10 @@ WHERE " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (ct.OVE3E)\n" + - " │ │ ├─ right-key: (cec.id)\n" + - " │ │ └─ TableAlias(cec)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d adurz]\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ └─ keys: ct.LUEVY\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -4978,23 +4768,21 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (cec.id = ct.OVE3E)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (sn.BRQP2 = ct.LUEVY)\n" + - " │ │ │ │ ├─ sel: (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ └─ columns: [id no52d adurz]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (ct.ZRV3B = '=')\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ └─ keys: cec.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ct.FZ2R5)\n" + " │ │ │ ├─ right-key: (ci.id)\n" + @@ -5003,13 +4791,10 @@ WHERE " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (ct.OVE3E)\n" + - " │ │ ├─ right-key: (cec.id)\n" + - " │ │ └─ TableAlias(cec)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d adurz]\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ └─ keys: ct.LUEVY\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -5368,59 +5153,50 @@ WHERE " │ │ ├─ colSet: (192-197)\n" + " │ │ ├─ tableId: 19\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [sn.id:0!null->BDNYB:0, ci.FTQLQ:23!null->TOFPN:0, ct.M22QN:13!null->M22QN:0, cec.ADURZ:26!null->ADURZ:0, cec.NO52D:25!null->NO52D:0, ct.S3Q3Y:19!null->IDPK7:0]\n" + - " │ │ └─ HashJoin\n" + + " │ │ ├─ columns: [sn.id:17!null->BDNYB:0, ci.FTQLQ:16!null->TOFPN:0, ct.M22QN:6!null->M22QN:0, cec.ADURZ:2!null->ADURZ:0, cec.NO52D:1!null->NO52D:0, ct.S3Q3Y:12!null->IDPK7:0]\n" + + " │ │ └─ LookupJoin\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cec.id:24!null\n" + - " │ │ │ └─ ct.OVE3E:14!null\n" + + " │ │ │ ├─ ct.M22QN:6!null\n" + + " │ │ │ └─ Subquery\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ alias-string: select aac.id from TPXBU as aac where BTXC5 = 'WT'\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [aac.id:27!null]\n" + + " │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ │ ├─ static: [{[WT, WT]}]\n" + + " │ │ │ ├─ colSet: (172-174)\n" + + " │ │ │ ├─ tableId: 16\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: TPXBU\n" + + " │ │ │ └─ columns: [id btxc5]\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ ci.id:22!null\n" + - " │ │ │ │ └─ ct.FZ2R5:11!null\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ ├─ sn.BRQP2:1!null\n" + - " │ │ │ │ │ └─ ct.LUEVY:12!null\n" + - " │ │ │ │ ├─ sel: Eq\n" + - " │ │ │ │ │ ├─ ct.M22QN:13!null\n" + - " │ │ │ │ │ └─ Subquery\n" + - " │ │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ │ ├─ alias-string: select aac.id from TPXBU as aac where BTXC5 = 'WT'\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [aac.id:22!null]\n" + - " │ │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ │ │ │ ├─ static: [{[WT, WT]}]\n" + - " │ │ │ │ │ ├─ colSet: (172-174)\n" + - " │ │ │ │ │ ├─ tableId: 16\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: TPXBU\n" + - " │ │ │ │ │ └─ columns: [id btxc5]\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (150-159)\n" + - " │ │ │ │ │ ├─ tableId: 14\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ └─ columns: [id brqp2 fftbj a7xo2 kbo7r ecdkm numk2 letoe ykssu fhcyt]\n" + + " │ │ │ │ ├─ ci.id:15!null\n" + + " │ │ │ │ └─ ct.FZ2R5:4!null\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ ├─ columns: [id no52d adurz]\n" + + " │ │ │ │ │ ├─ colSet: (180-185)\n" + + " │ │ │ │ │ └─ tableId: 18\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ ct.ZRV3B:10!null\n" + " │ │ │ │ │ └─ = (longtext)\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ ├─ keys: [cec.id:0!null]\n" + " │ │ │ │ ├─ colSet: (160-171)\n" + " │ │ │ │ ├─ tableId: 15\n" + " │ │ │ │ └─ Table\n" + " │ │ │ │ ├─ name: FLQLP\n" + " │ │ │ │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(ct.FZ2R5:11!null)\n" + + " │ │ │ ├─ left-key: TUPLE(ct.FZ2R5:4!null)\n" + " │ │ │ ├─ right-key: TUPLE(ci.id:0!null)\n" + " │ │ │ └─ TableAlias(ci)\n" + " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + @@ -5431,15 +5207,15 @@ WHERE " │ │ │ └─ Table\n" + " │ │ │ ├─ name: JDLNA\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(ct.OVE3E:14!null)\n" + - " │ │ ├─ right-key: TUPLE(cec.id:0!null)\n" + - " │ │ └─ TableAlias(cec)\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ keys: [ct.LUEVY:5!null]\n" + + " │ │ ├─ colSet: (150-159)\n" + + " │ │ ├─ tableId: 14\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ ├─ columns: [id no52d adurz]\n" + - " │ │ ├─ colSet: (180-185)\n" + - " │ │ └─ tableId: 18\n" + + " │ │ ├─ name: NOXN3\n" + + " │ │ └─ columns: [id brqp2 fftbj a7xo2 kbo7r ecdkm numk2 letoe ykssu fhcyt]\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -5618,23 +5394,21 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (cec.id = ct.OVE3E)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (sn.BRQP2 = ct.LUEVY)\n" + - " │ │ │ │ ├─ sel: (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ └─ columns: [id no52d adurz]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (ct.ZRV3B = '=')\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ └─ keys: cec.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ct.FZ2R5)\n" + " │ │ │ ├─ right-key: (ci.id)\n" + @@ -5643,13 +5417,10 @@ WHERE " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (ct.OVE3E)\n" + - " │ │ ├─ right-key: (cec.id)\n" + - " │ │ └─ TableAlias(cec)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d adurz]\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ └─ keys: ct.LUEVY\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -5821,23 +5592,21 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [sn.id as BDNYB, ci.FTQLQ as TOFPN, ct.M22QN as M22QN, cec.ADURZ as ADURZ, cec.NO52D as NO52D, ct.S3Q3Y as IDPK7]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (cec.id = ct.OVE3E)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + " │ │ ├─ HashJoin\n" + " │ │ │ ├─ (ci.id = ct.FZ2R5)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (sn.BRQP2 = ct.LUEVY)\n" + - " │ │ │ │ ├─ sel: (ct.M22QN = Subquery(select aac.id from TPXBU as aac where BTXC5 = 'WT'))\n" + - " │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(cec)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: SFEGG\n" + + " │ │ │ │ │ └─ columns: [id no52d adurz]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ (ct.ZRV3B = '=')\n" + " │ │ │ │ └─ TableAlias(ct)\n" + " │ │ │ │ └─ IndexedTableAccess(FLQLP)\n" + - " │ │ │ │ ├─ index: [FLQLP.LUEVY]\n" + - " │ │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ index: [FLQLP.OVE3E]\n" + + " │ │ │ │ └─ keys: cec.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (ct.FZ2R5)\n" + " │ │ │ ├─ right-key: (ci.id)\n" + @@ -5846,13 +5615,10 @@ WHERE " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (ct.OVE3E)\n" + - " │ │ ├─ right-key: (cec.id)\n" + - " │ │ └─ TableAlias(cec)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d adurz]\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ └─ keys: ct.LUEVY\n" + " │ └─ TableAlias(sn)\n" + " │ └─ IndexedTableAccess(NOXN3)\n" + " │ ├─ index: [NOXN3.id]\n" + @@ -6171,45 +5937,36 @@ WHERE " ├─ columns: [row_number() over ( order by sn.id asc):0!null, s7egw.TW55N:1!null, tymvl.TW55N:2!null, sn.NUMK2:3!null, sn.LETOE:4!null, sn.id:5!null, (row_number() over ( order by sn.id asc):0!null - 1 (tinyint))->M6T2N:0, s7egw.TW55N:1!null->FJVD7:0, tymvl.TW55N:2!null->KBXXJ:0, sn.id:5!null->XLFIA:0]\n" + " └─ Window\n" + " ├─ row_number() over ( order by sn.id ASC)\n" + - " ├─ s7egw.TW55N:6!null\n" + + " ├─ s7egw.TW55N:1!null\n" + " ├─ tymvl.TW55N:8!null\n" + - " ├─ sn.NUMK2:3!null\n" + - " ├─ sn.LETOE:4!null\n" + - " ├─ sn.id:0!null\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ sn.FFTBJ:2!null\n" + - " │ └─ tymvl.id:7!null\n" + - " ├─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ sn.BRQP2:1!null\n" + - " │ │ └─ s7egw.id:5!null\n" + - " │ ├─ TableAlias(sn)\n" + - " │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (1-10)\n" + - " │ │ ├─ tableId: 1\n" + + " ├─ sn.NUMK2:5!null\n" + + " ├─ sn.LETOE:6!null\n" + + " ├─ sn.id:2!null\n" + + " └─ LookupJoin\n" + + " ├─ LookupJoin\n" + + " │ ├─ TableAlias(s7egw)\n" + + " │ │ └─ ProcessTable\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: NOXN3\n" + - " │ │ └─ columns: [id brqp2 fftbj numk2 letoe]\n" + - " │ └─ TableAlias(s7egw)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (11-27)\n" + - " │ ├─ tableId: 2\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ keys: [s7egw.id:0!null]\n" + + " │ ├─ colSet: (1-10)\n" + + " │ ├─ tableId: 1\n" + " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(sn.FFTBJ:2!null)\n" + - " ├─ right-key: TUPLE(tymvl.id:0!null)\n" + - " └─ TableAlias(tymvl)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: E2I7U\n" + - " └─ columns: [id tw55n]\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id brqp2 fftbj numk2 letoe]\n" + + " └─ TableAlias(tymvl)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ keys: [sn.FFTBJ:4!null]\n" + + " ├─ colSet: (28-44)\n" + + " ├─ tableId: 3\n" + + " └─ Table\n" + + " ├─ name: E2I7U\n" + + " └─ columns: [id tw55n]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [(row_number() over ( order by sn.id asc) - 1) as M6T2N, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, sn.NUMK2, sn.LETOE, sn.id as XLFIA]\n" + @@ -6217,27 +5974,22 @@ WHERE " └─ Project\n" + " ├─ columns: [row_number() over ( order by sn.id asc), s7egw.TW55N, tymvl.TW55N, sn.NUMK2, sn.LETOE, sn.id, (row_number() over ( order by sn.id asc) - 1) as M6T2N, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, sn.id as XLFIA]\n" + " └─ Window(row_number() over ( order by sn.id ASC), s7egw.TW55N, tymvl.TW55N, sn.NUMK2, sn.LETOE, sn.id)\n" + - " └─ HashJoin\n" + - " ├─ (sn.FFTBJ = tymvl.id)\n" + - " ├─ MergeJoin\n" + - " │ ├─ cmp: (sn.BRQP2 = s7egw.id)\n" + - " │ ├─ TableAlias(sn)\n" + - " │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id brqp2 fftbj numk2 letoe]\n" + - " │ └─ TableAlias(s7egw)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sn.FFTBJ)\n" + - " ├─ right-key: (tymvl.id)\n" + - " └─ TableAlias(tymvl)\n" + - " └─ Table\n" + - " ├─ name: E2I7U\n" + - " └─ columns: [id tw55n]\n" + + " └─ LookupJoin\n" + + " ├─ LookupJoin\n" + + " │ ├─ TableAlias(s7egw)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2 fftbj numk2 letoe]\n" + + " │ └─ keys: s7egw.id\n" + + " └─ TableAlias(tymvl)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ columns: [id tw55n]\n" + + " └─ keys: sn.FFTBJ\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [(row_number() over ( order by sn.id asc) - 1) as M6T2N, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, sn.NUMK2, sn.LETOE, sn.id as XLFIA]\n" + @@ -6245,27 +5997,22 @@ WHERE " └─ Project\n" + " ├─ columns: [row_number() over ( order by sn.id asc), s7egw.TW55N, tymvl.TW55N, sn.NUMK2, sn.LETOE, sn.id, (row_number() over ( order by sn.id asc) - 1) as M6T2N, s7egw.TW55N as FJVD7, tymvl.TW55N as KBXXJ, sn.id as XLFIA]\n" + " └─ Window(row_number() over ( order by sn.id ASC), s7egw.TW55N, tymvl.TW55N, sn.NUMK2, sn.LETOE, sn.id)\n" + - " └─ HashJoin\n" + - " ├─ (sn.FFTBJ = tymvl.id)\n" + - " ├─ MergeJoin\n" + - " │ ├─ cmp: (sn.BRQP2 = s7egw.id)\n" + - " │ ├─ TableAlias(sn)\n" + - " │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id brqp2 fftbj numk2 letoe]\n" + - " │ └─ TableAlias(s7egw)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id tw55n]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sn.FFTBJ)\n" + - " ├─ right-key: (tymvl.id)\n" + - " └─ TableAlias(tymvl)\n" + - " └─ Table\n" + - " ├─ name: E2I7U\n" + - " └─ columns: [id tw55n]\n" + + " └─ LookupJoin\n" + + " ├─ LookupJoin\n" + + " │ ├─ TableAlias(s7egw)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2 fftbj numk2 letoe]\n" + + " │ └─ keys: s7egw.id\n" + + " └─ TableAlias(tymvl)\n" + + " └─ IndexedTableAccess(E2I7U)\n" + + " ├─ index: [E2I7U.id]\n" + + " ├─ columns: [id tw55n]\n" + + " └─ keys: sn.FFTBJ\n" + "", }, { @@ -6887,15 +6634,12 @@ WHERE " ├─ colSet: (201-207)\n" + " ├─ tableId: 23\n" + " └─ Project\n" + - " ├─ columns: [bs.T4IBQ:1!null->T4IBQ:0, pa.DZLIM:6!null->ECUWU:0, pga.DZLIM:12!null->GSTQA:0, pog.B5OUF:10, fc.OZTQF:20!null, f26zw.YHYLK:24, nd.TW55N:16!null->TW55N:0]\n" + + " ├─ columns: [bs.T4IBQ:1!null->T4IBQ:0, pa.DZLIM:3!null->ECUWU:0, pga.DZLIM:12!null->GSTQA:0, pog.B5OUF:10, fc.OZTQF:20!null, f26zw.YHYLK:24, nd.TW55N:16!null->TW55N:0]\n" + " └─ Filter\n" + " ├─ Eq\n" + - " │ ├─ ms.D237E:4!null\n" + + " │ ├─ ms.D237E:6!null\n" + " │ └─ 1 (int)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ Eq\n" + - " │ ├─ nd.HPCMS:17!null\n" + - " │ └─ nma.id:25!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ AND\n" + " │ │ ├─ Eq\n" + @@ -6907,7 +6651,7 @@ WHERE " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ LeftOuterHashJoin\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ ms.GXLUB:2!null\n" + + " │ │ │ │ ├─ ms.GXLUB:4!null\n" + " │ │ │ │ └─ bs.id:0!null\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + @@ -6944,54 +6688,48 @@ WHERE " │ │ │ │ └─ columns: [id ftqlq]\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: TUPLE(bs.id:0!null)\n" + - " │ │ │ ├─ right-key: TUPLE(ms.GXLUB:0!null)\n" + + " │ │ │ ├─ right-key: TUPLE(ms.GXLUB:2!null)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ pog.XVSBH:9\n" + - " │ │ │ │ │ │ └─ pga.id:11!null\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ ├─ ms.CH3FR:3!null\n" + - " │ │ │ │ │ │ │ │ └─ pa.id:5!null\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (1-5)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 1\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: SZQWJ\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (6-8)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ │ ├─ pa.id:2!null\n" + + " │ │ │ │ │ │ │ └─ pog.CH3FR:8!null\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (6-8)\n" + + " │ │ │ │ │ │ │ │ └─ tableId: 2\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ keys: [pa.id:2!null]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (1-5)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 1\n" + " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: XOAOP\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ keys: [pa.id:5!null]\n" + - " │ │ │ │ │ │ ├─ colSet: (9-12)\n" + - " │ │ │ │ │ │ ├─ tableId: 3\n" + + " │ │ │ │ │ │ │ ├─ name: SZQWJ\n" + + " │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: TUPLE(pa.id:2!null)\n" + + " │ │ │ │ │ │ ├─ right-key: TUPLE(pog.CH3FR:1!null)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + " │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ ├─ name: NPCYY\n" + - " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(pog.XVSBH:9)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(pga.id:0!null)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ │ ├─ colSet: (9-12)\n" + + " │ │ │ │ │ │ └─ tableId: 3\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ keys: [pog.XVSBH:9]\n" + + " │ │ │ │ │ ├─ colSet: (13-15)\n" + + " │ │ │ │ │ ├─ tableId: 4\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ ├─ columns: [id dzlim]\n" + - " │ │ │ │ │ ├─ colSet: (13-15)\n" + - " │ │ │ │ │ └─ tableId: 4\n" + + " │ │ │ │ │ └─ columns: [id dzlim]\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -7101,10 +6839,7 @@ WHERE " │ │ ├─ iq.IDWIO:4!null\n" + " │ │ └─ TSG (longtext)\n" + " │ │ THEN 0 (tinyint) ELSE NULL (null) END->YHYLK:0]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ w2mao.YH4XB:6!null\n" + - " │ │ └─ vc.id:7!null\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -7117,37 +6852,20 @@ WHERE " │ │ │ ├─ columns: [cla.FTQLQ:1!null->T4IBQ:0, sn.BRQP2:12!null, mf.id:4!null->Z7CP5:0, mf.FSDY2:7!null, nma.DZLIM:11!null->IDWIO:0]\n" + " │ │ │ └─ HashJoin\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ mf.GXLUB:5!null\n" + - " │ │ │ │ └─ bs.id:2!null\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ ├─ cla.id:0!null\n" + - " │ │ │ │ │ └─ bs.IXUXU:3\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (105-134)\n" + - " │ │ │ │ │ ├─ tableId: 13\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: YK2GW\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (101-104)\n" + - " │ │ │ │ ├─ tableId: 12\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: THNTS\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ ├─ bs.IXUXU:3\n" + + " │ │ │ │ └─ cla.id:0!null\n" + + " │ │ │ ├─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ │ ├─ static: [{[SQ1, SQ1]}]\n" + + " │ │ │ │ ├─ colSet: (105-134)\n" + + " │ │ │ │ ├─ tableId: 13\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: YK2GW\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(bs.id:2!null)\n" + - " │ │ │ ├─ right-key: TUPLE(mf.GXLUB:1!null)\n" + + " │ │ │ ├─ left-key: TUPLE(cla.id:0!null)\n" + + " │ │ │ ├─ right-key: TUPLE(bs.IXUXU:1)\n" + " │ │ │ └─ HashJoin\n" + " │ │ │ ├─ AND\n" + " │ │ │ │ ├─ Eq\n" + @@ -7156,33 +6874,37 @@ WHERE " │ │ │ │ └─ Eq\n" + " │ │ │ │ ├─ mf.LUEVY:6!null\n" + " │ │ │ │ └─ sn.BRQP2:12!null\n" + - " │ │ │ ├─ TableAlias(mf)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + - " │ │ │ │ ├─ colSet: (84-100)\n" + - " │ │ │ │ └─ tableId: 11\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ │ ├─ colSet: (101-104)\n" + + " │ │ │ │ │ └─ tableId: 12\n" + + " │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ ├─ keys: [bs.id:2!null]\n" + + " │ │ │ │ ├─ colSet: (84-100)\n" + + " │ │ │ │ ├─ tableId: 11\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: HGMQ6\n" + + " │ │ │ │ └─ columns: [id gxlub luevy fsdy2]\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: TUPLE(mf.LUEVY:6!null, mf.LUEVY:6!null)\n" + " │ │ │ ├─ right-key: TUPLE(nd.id:0!null, sn.BRQP2:4!null)\n" + " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ ├─ nd.HPCMS:9!null\n" + - " │ │ │ │ │ └─ nma.id:10!null\n" + + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ ├─ columns: [id hpcms]\n" + " │ │ │ │ │ ├─ colSet: (135-151)\n" + - " │ │ │ │ │ ├─ tableId: 14\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [id hpcms]\n" + + " │ │ │ │ │ └─ tableId: 14\n" + " │ │ │ │ └─ TableAlias(nma)\n" + " │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + " │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ keys: [nd.HPCMS:9!null]\n" + " │ │ │ │ ├─ colSet: (152-154)\n" + " │ │ │ │ ├─ tableId: 15\n" + " │ │ │ │ └─ Table\n" + @@ -7206,24 +6928,24 @@ WHERE " │ │ └─ Table\n" + " │ │ ├─ name: SEQS3\n" + " │ │ └─ columns: [z7cp5 yh4xb]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(w2mao.YH4XB:6!null)\n" + - " │ ├─ right-key: TUPLE(vc.id:0!null)\n" + - " │ └─ TableAlias(vc)\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ keys: [w2mao.YH4XB:6!null]\n" + + " │ ├─ colSet: (176-181)\n" + + " │ ├─ tableId: 19\n" + " │ └─ Table\n" + " │ ├─ name: D34QP\n" + - " │ ├─ columns: [id znp4p]\n" + - " │ ├─ colSet: (176-181)\n" + - " │ └─ tableId: 19\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(nd.HPCMS:17!null)\n" + - " ├─ right-key: TUPLE(nma.id:0!null)\n" + - " └─ TableAlias(nma)\n" + + " │ └─ columns: [id znp4p]\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ keys: [nd.HPCMS:17!null]\n" + + " ├─ colSet: (187-189)\n" + + " ├─ tableId: 21\n" + " └─ Table\n" + " ├─ name: TNMXI\n" + - " ├─ columns: [id]\n" + - " ├─ colSet: (187-189)\n" + - " └─ tableId: 21\n" + + " └─ columns: [id]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + @@ -7257,8 +6979,7 @@ WHERE " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (nd.HPCMS = nma.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + " │ ├─ LeftOuterLookupJoin\n" + @@ -7288,33 +7009,31 @@ WHERE " │ │ │ ├─ right-key: (ms.GXLUB)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ │ └─ keys: pa.id\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (pog.XVSBH)\n" + - " │ │ │ │ │ ├─ right-key: (pga.id)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ (pa.id = pog.CH3FR)\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ │ └─ keys: pa.id\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: (pa.id)\n" + + " │ │ │ │ │ │ ├─ right-key: (pog.CH3FR)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: NPCYY\n" + + " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ └─ keys: pog.XVSBH\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -7341,8 +7060,7 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [iq.T4IBQ, iq.BRQP2, iq.Z7CP5, CASE WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'KAOAS')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'OG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'TSG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'W6W24')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'OG')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'TSG')) THEN 0 ELSE NULL END as YHYLK]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ (w2mao.YH4XB = vc.id)\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -7352,46 +7070,41 @@ WHERE " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ ├─ (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (bs.id)\n" + - " │ │ │ ├─ right-key: (mf.GXLUB)\n" + + " │ │ │ ├─ left-key: (cla.id)\n" + + " │ │ │ ├─ right-key: (bs.IXUXU)\n" + " │ │ │ └─ HashJoin\n" + " │ │ │ ├─ ((mf.LUEVY = nd.id) AND (mf.LUEVY = sn.BRQP2))\n" + - " │ │ │ ├─ TableAlias(mf)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ └─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ │ └─ keys: bs.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (mf.LUEVY, mf.LUEVY)\n" + " │ │ │ ├─ right-key: (nd.id, sn.BRQP2)\n" + " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (nd.HPCMS = nma.id)\n" + + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + " │ │ │ │ │ └─ columns: [id hpcms]\n" + " │ │ │ │ └─ TableAlias(nma)\n" + " │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + " │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ └─ keys: nd.HPCMS\n" + " │ │ │ └─ TableAlias(sn)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + @@ -7402,20 +7115,16 @@ WHERE " │ │ ├─ index: [SEQS3.Z7CP5]\n" + " │ │ ├─ columns: [z7cp5 yh4xb]\n" + " │ │ └─ keys: iq.Z7CP5\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ ├─ right-key: (vc.id)\n" + - " │ └─ TableAlias(vc)\n" + - " │ └─ Table\n" + - " │ ├─ name: D34QP\n" + - " │ └─ columns: [id znp4p]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (nd.HPCMS)\n" + - " ├─ right-key: (nma.id)\n" + - " └─ TableAlias(nma)\n" + - " └─ Table\n" + - " ├─ name: TNMXI\n" + - " └─ columns: [id]\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ columns: [id znp4p]\n" + + " │ └─ keys: w2mao.YH4XB\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ columns: [id]\n" + + " └─ keys: nd.HPCMS\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + @@ -7449,8 +7158,7 @@ WHERE " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (nd.HPCMS = nma.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + " │ ├─ LeftOuterLookupJoin\n" + @@ -7480,33 +7188,31 @@ WHERE " │ │ │ ├─ right-key: (ms.GXLUB)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ │ └─ keys: pa.id\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (pog.XVSBH)\n" + - " │ │ │ │ │ ├─ right-key: (pga.id)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ (pa.id = pog.CH3FR)\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ │ └─ keys: pa.id\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: (pa.id)\n" + + " │ │ │ │ │ │ ├─ right-key: (pog.CH3FR)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: NPCYY\n" + + " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ └─ keys: pog.XVSBH\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -7533,8 +7239,7 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [iq.T4IBQ, iq.BRQP2, iq.Z7CP5, CASE WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'KAOAS')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'OG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'TSG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'W6W24')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'OG')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'TSG')) THEN 0 ELSE NULL END as YHYLK]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ (w2mao.YH4XB = vc.id)\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -7544,46 +7249,41 @@ WHERE " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + " │ │ │ └─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ ├─ (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (bs.id)\n" + - " │ │ │ ├─ right-key: (mf.GXLUB)\n" + + " │ │ │ ├─ left-key: (cla.id)\n" + + " │ │ │ ├─ right-key: (bs.IXUXU)\n" + " │ │ │ └─ HashJoin\n" + " │ │ │ ├─ ((mf.LUEVY = nd.id) AND (mf.LUEVY = sn.BRQP2))\n" + - " │ │ │ ├─ TableAlias(mf)\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ └─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ │ └─ keys: bs.id\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: (mf.LUEVY, mf.LUEVY)\n" + " │ │ │ ├─ right-key: (nd.id, sn.BRQP2)\n" + " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (nd.HPCMS = nma.id)\n" + + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + " │ │ │ │ │ └─ columns: [id hpcms]\n" + " │ │ │ │ └─ TableAlias(nma)\n" + " │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + " │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ └─ keys: nd.HPCMS\n" + " │ │ │ └─ TableAlias(sn)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + @@ -7594,20 +7294,16 @@ WHERE " │ │ ├─ index: [SEQS3.Z7CP5]\n" + " │ │ ├─ columns: [z7cp5 yh4xb]\n" + " │ │ └─ keys: iq.Z7CP5\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ ├─ right-key: (vc.id)\n" + - " │ └─ TableAlias(vc)\n" + - " │ └─ Table\n" + - " │ ├─ name: D34QP\n" + - " │ └─ columns: [id znp4p]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (nd.HPCMS)\n" + - " ├─ right-key: (nma.id)\n" + - " └─ TableAlias(nma)\n" + - " └─ Table\n" + - " ├─ name: TNMXI\n" + - " └─ columns: [id]\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ columns: [id znp4p]\n" + + " │ └─ keys: w2mao.YH4XB\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ columns: [id]\n" + + " └─ keys: nd.HPCMS\n" + "", }, { @@ -7765,15 +7461,12 @@ WHERE " ├─ colSet: (201-207)\n" + " ├─ tableId: 23\n" + " └─ Project\n" + - " ├─ columns: [bs.T4IBQ:1!null->T4IBQ:0, pa.DZLIM:6!null->ECUWU:0, pga.DZLIM:12!null->GSTQA:0, pog.B5OUF:10, fc.OZTQF:20!null, f26zw.YHYLK:24, nd.TW55N:16!null->TW55N:0]\n" + + " ├─ columns: [bs.T4IBQ:1!null->T4IBQ:0, pa.DZLIM:3!null->ECUWU:0, pga.DZLIM:12!null->GSTQA:0, pog.B5OUF:10, fc.OZTQF:20!null, f26zw.YHYLK:24, nd.TW55N:16!null->TW55N:0]\n" + " └─ Filter\n" + " ├─ Eq\n" + - " │ ├─ ms.D237E:4!null\n" + + " │ ├─ ms.D237E:6!null\n" + " │ └─ 1 (int)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ Eq\n" + - " │ ├─ nd.HPCMS:17!null\n" + - " │ └─ nma.id:25!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ AND\n" + " │ │ ├─ Eq\n" + @@ -7785,7 +7478,7 @@ WHERE " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ LeftOuterHashJoin\n" + " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ ms.GXLUB:2!null\n" + + " │ │ │ │ ├─ ms.GXLUB:4!null\n" + " │ │ │ │ └─ bs.id:0!null\n" + " │ │ │ ├─ SubqueryAlias\n" + " │ │ │ │ ├─ name: bs\n" + @@ -7822,54 +7515,48 @@ WHERE " │ │ │ │ └─ columns: [id ftqlq]\n" + " │ │ │ └─ HashLookup\n" + " │ │ │ ├─ left-key: TUPLE(bs.id:0!null)\n" + - " │ │ │ ├─ right-key: TUPLE(ms.GXLUB:0!null)\n" + + " │ │ │ ├─ right-key: TUPLE(ms.GXLUB:2!null)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ pog.XVSBH:9\n" + - " │ │ │ │ │ │ └─ pga.id:11!null\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ ├─ ms.CH3FR:3!null\n" + - " │ │ │ │ │ │ │ │ └─ pa.id:5!null\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (1-5)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 1\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: SZQWJ\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (6-8)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ │ ├─ pa.id:2!null\n" + + " │ │ │ │ │ │ │ └─ pog.CH3FR:8!null\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (6-8)\n" + + " │ │ │ │ │ │ │ │ └─ tableId: 2\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ keys: [pa.id:2!null]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (1-5)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 1\n" + " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: XOAOP\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ keys: [pa.id:5!null]\n" + - " │ │ │ │ │ │ ├─ colSet: (9-12)\n" + - " │ │ │ │ │ │ ├─ tableId: 3\n" + + " │ │ │ │ │ │ │ ├─ name: SZQWJ\n" + + " │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: TUPLE(pa.id:2!null)\n" + + " │ │ │ │ │ │ ├─ right-key: TUPLE(pog.CH3FR:1!null)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + " │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ ├─ name: NPCYY\n" + - " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(pog.XVSBH:9)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(pga.id:0!null)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ │ ├─ colSet: (9-12)\n" + + " │ │ │ │ │ │ └─ tableId: 3\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ keys: [pog.XVSBH:9]\n" + + " │ │ │ │ │ ├─ colSet: (13-15)\n" + + " │ │ │ │ │ ├─ tableId: 4\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ ├─ columns: [id dzlim]\n" + - " │ │ │ │ │ ├─ colSet: (13-15)\n" + - " │ │ │ │ │ └─ tableId: 4\n" + + " │ │ │ │ │ └─ columns: [id dzlim]\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -7979,10 +7666,7 @@ WHERE " │ │ ├─ iq.IDWIO:4!null\n" + " │ │ └─ TSG (longtext)\n" + " │ │ THEN 0 (tinyint) ELSE NULL (null) END->YHYLK:0]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ w2mao.YH4XB:6!null\n" + - " │ │ └─ vc.id:7!null\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -7992,88 +7676,67 @@ WHERE " │ │ │ ├─ colSet: (168-172)\n" + " │ │ │ ├─ tableId: 17\n" + " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [cla.FTQLQ:12!null->T4IBQ:0, sn.BRQP2:0!null, mf.id:5!null->Z7CP5:0, mf.FSDY2:8!null, nma.DZLIM:4!null->IDWIO:0]\n" + - " │ │ │ └─ HashJoin\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ mf.GXLUB:6!null\n" + - " │ │ │ │ └─ bs.id:9!null\n" + + " │ │ │ ├─ columns: [cla.FTQLQ:11!null->T4IBQ:0, sn.BRQP2:12!null, mf.id:4!null->Z7CP5:0, mf.FSDY2:7!null, nma.DZLIM:1!null->IDWIO:0]\n" + + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ mf.LUEVY:7!null\n" + - " │ │ │ │ │ └─ sn.BRQP2:0!null\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ sn.BRQP2:0!null\n" + - " │ │ │ │ │ │ └─ nd.id:1!null\n" + - " │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ ├─ columns: [brqp2]\n" + - " │ │ │ │ │ │ ├─ colSet: (155-164)\n" + - " │ │ │ │ │ │ └─ tableId: 16\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(sn.BRQP2:0!null)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(nd.id:0!null)\n" + - " │ │ │ │ │ └─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ ├─ nd.HPCMS:2!null\n" + - " │ │ │ │ │ │ └─ nma.id:3!null\n" + - " │ │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (135-151)\n" + - " │ │ │ │ │ │ ├─ tableId: 14\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ │ └─ columns: [id hpcms]\n" + - " │ │ │ │ │ └─ TableAlias(nma)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + - " │ │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (152-154)\n" + - " │ │ │ │ │ ├─ tableId: 15\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: TNMXI\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ ├─ keys: [nd.id:1!null]\n" + - " │ │ │ │ ├─ colSet: (84-100)\n" + - " │ │ │ │ ├─ tableId: 11\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ └─ columns: [id gxlub luevy fsdy2]\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(mf.GXLUB:6!null)\n" + - " │ │ │ ├─ right-key: TUPLE(bs.id:0!null)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ ├─ bs.IXUXU:10\n" + - " │ │ │ │ └─ cla.id:11!null\n" + - " │ │ │ ├─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (101-104)\n" + - " │ │ │ │ ├─ tableId: 12\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: THNTS\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ HashIn\n" + - " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (105-134)\n" + - " │ │ │ ├─ tableId: 13\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: YK2GW\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(nma)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: TNMXI\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (152-154)\n" + + " │ │ │ │ │ │ │ │ └─ tableId: 15\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + + " │ │ │ │ │ │ │ ├─ keys: [nma.id:0!null]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (135-151)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 14\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ │ │ └─ columns: [id hpcms]\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ │ │ │ │ ├─ keys: [nd.id:2!null]\n" + + " │ │ │ │ │ │ ├─ colSet: (84-100)\n" + + " │ │ │ │ │ │ ├─ tableId: 11\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: HGMQ6\n" + + " │ │ │ │ │ │ └─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ │ ├─ keys: [mf.GXLUB:5!null]\n" + + " │ │ │ │ │ ├─ colSet: (101-104)\n" + + " │ │ │ │ │ ├─ tableId: 12\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ keys: [bs.IXUXU:9]\n" + + " │ │ │ │ ├─ colSet: (105-134)\n" + + " │ │ │ │ ├─ tableId: 13\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: YK2GW\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ keys: [nd.id:2!null]\n" + + " │ │ │ ├─ colSet: (155-164)\n" + + " │ │ │ ├─ tableId: 16\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [brqp2]\n" + " │ │ └─ TableAlias(w2mao)\n" + " │ │ └─ IndexedTableAccess(SEQS3)\n" + " │ │ ├─ index: [SEQS3.Z7CP5]\n" + @@ -8083,24 +7746,24 @@ WHERE " │ │ └─ Table\n" + " │ │ ├─ name: SEQS3\n" + " │ │ └─ columns: [z7cp5 yh4xb]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(w2mao.YH4XB:6!null)\n" + - " │ ├─ right-key: TUPLE(vc.id:0!null)\n" + - " │ └─ TableAlias(vc)\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ keys: [w2mao.YH4XB:6!null]\n" + + " │ ├─ colSet: (176-181)\n" + + " │ ├─ tableId: 19\n" + " │ └─ Table\n" + " │ ├─ name: D34QP\n" + - " │ ├─ columns: [id znp4p]\n" + - " │ ├─ colSet: (176-181)\n" + - " │ └─ tableId: 19\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(nd.HPCMS:17!null)\n" + - " ├─ right-key: TUPLE(nma.id:0!null)\n" + - " └─ TableAlias(nma)\n" + + " │ └─ columns: [id znp4p]\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ keys: [nd.HPCMS:17!null]\n" + + " ├─ colSet: (187-189)\n" + + " ├─ tableId: 21\n" + " └─ Table\n" + " ├─ name: TNMXI\n" + - " ├─ columns: [id]\n" + - " ├─ colSet: (187-189)\n" + - " └─ tableId: 21\n" + + " └─ columns: [id]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + @@ -8134,8 +7797,7 @@ WHERE " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (nd.HPCMS = nma.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + " │ ├─ LeftOuterLookupJoin\n" + @@ -8165,33 +7827,31 @@ WHERE " │ │ │ ├─ right-key: (ms.GXLUB)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ │ └─ keys: pa.id\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (pog.XVSBH)\n" + - " │ │ │ │ │ ├─ right-key: (pga.id)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ (pa.id = pog.CH3FR)\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ │ └─ keys: pa.id\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: (pa.id)\n" + + " │ │ │ │ │ │ ├─ right-key: (pog.CH3FR)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: NPCYY\n" + + " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ └─ keys: pog.XVSBH\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -8218,8 +7878,7 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [iq.T4IBQ, iq.BRQP2, iq.Z7CP5, CASE WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'KAOAS')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'OG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'TSG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'W6W24')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'OG')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'TSG')) THEN 0 ELSE NULL END as YHYLK]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ (w2mao.YH4XB = vc.id)\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -8228,72 +7887,57 @@ WHERE " │ │ │ ├─ cacheable: true\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + - " │ │ │ └─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ (mf.LUEVY = sn.BRQP2)\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (sn.BRQP2 = nd.id)\n" + - " │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ └─ columns: [brqp2]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (sn.BRQP2)\n" + - " │ │ │ │ │ ├─ right-key: (nd.id)\n" + - " │ │ │ │ │ └─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: (nd.HPCMS = nma.id)\n" + - " │ │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id hpcms]\n" + - " │ │ │ │ │ └─ TableAlias(nma)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + - " │ │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + - " │ │ │ │ └─ keys: nd.id\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (mf.GXLUB)\n" + - " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ │ │ ├─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(nma)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: TNMXI\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id hpcms]\n" + + " │ │ │ │ │ │ │ └─ keys: nma.id\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ │ │ │ └─ keys: nd.id\n" + + " │ │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ │ └─ keys: mf.GXLUB\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ columns: [id ftqlq]\n" + + " │ │ │ │ └─ keys: bs.IXUXU\n" + + " │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [brqp2]\n" + + " │ │ │ └─ keys: nd.id\n" + " │ │ └─ TableAlias(w2mao)\n" + " │ │ └─ IndexedTableAccess(SEQS3)\n" + " │ │ ├─ index: [SEQS3.Z7CP5]\n" + " │ │ ├─ columns: [z7cp5 yh4xb]\n" + " │ │ └─ keys: iq.Z7CP5\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ ├─ right-key: (vc.id)\n" + - " │ └─ TableAlias(vc)\n" + - " │ └─ Table\n" + - " │ ├─ name: D34QP\n" + - " │ └─ columns: [id znp4p]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (nd.HPCMS)\n" + - " ├─ right-key: (nma.id)\n" + - " └─ TableAlias(nma)\n" + - " └─ Table\n" + - " ├─ name: TNMXI\n" + - " └─ columns: [id]\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ columns: [id znp4p]\n" + + " │ └─ keys: w2mao.YH4XB\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ columns: [id]\n" + + " └─ keys: nd.HPCMS\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [xprw6.T4IBQ as T4IBQ, xprw6.ECUWU as ECUWU, sum(xprw6.b5ouf) as B5OUF, sum(xprw6.sp4si) as SP4SI]\n" + @@ -8327,8 +7971,7 @@ WHERE " ├─ columns: [bs.T4IBQ as T4IBQ, pa.DZLIM as ECUWU, pga.DZLIM as GSTQA, pog.B5OUF, fc.OZTQF, f26zw.YHYLK, nd.TW55N as TW55N]\n" + " └─ Filter\n" + " ├─ (ms.D237E = 1)\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (nd.HPCMS = nma.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterHashJoin\n" + " │ ├─ ((f26zw.T4IBQ = bs.T4IBQ) AND (f26zw.BRQP2 = nd.id))\n" + " │ ├─ LeftOuterLookupJoin\n" + @@ -8358,33 +8001,31 @@ WHERE " │ │ │ ├─ right-key: (ms.GXLUB)\n" + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (pog.XVSBH = pga.id)\n" + - " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ms.CH3FR = pa.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ms)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [gxlub ch3fr d237e]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(pa)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ │ │ │ │ │ ├─ index: [XOAOP.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ │ │ └─ TableAlias(pog)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(NPCYY)\n" + - " │ │ │ │ │ │ ├─ index: [NPCYY.CH3FR]\n" + - " │ │ │ │ │ │ ├─ columns: [id ch3fr xvsbh b5ouf]\n" + - " │ │ │ │ │ │ └─ keys: pa.id\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (pog.XVSBH)\n" + - " │ │ │ │ │ ├─ right-key: (pga.id)\n" + - " │ │ │ │ │ └─ TableAlias(pga)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: PG27A\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + + " │ │ │ │ │ │ ├─ (pa.id = pog.CH3FR)\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(pa)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: XOAOP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ms)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SZQWJ)\n" + + " │ │ │ │ │ │ │ ├─ index: [SZQWJ.CH3FR]\n" + + " │ │ │ │ │ │ │ ├─ columns: [gxlub ch3fr d237e]\n" + + " │ │ │ │ │ │ │ └─ keys: pa.id\n" + + " │ │ │ │ │ │ └─ HashLookup\n" + + " │ │ │ │ │ │ ├─ left-key: (pa.id)\n" + + " │ │ │ │ │ │ ├─ right-key: (pog.CH3FR)\n" + + " │ │ │ │ │ │ └─ TableAlias(pog)\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: NPCYY\n" + + " │ │ │ │ │ │ └─ columns: [id ch3fr xvsbh b5ouf]\n" + + " │ │ │ │ │ └─ TableAlias(pga)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(PG27A)\n" + + " │ │ │ │ │ ├─ index: [PG27A.id]\n" + + " │ │ │ │ │ ├─ columns: [id dzlim]\n" + + " │ │ │ │ │ └─ keys: pog.XVSBH\n" + " │ │ │ │ └─ TableAlias(gz7z4)\n" + " │ │ │ │ └─ IndexedTableAccess(FEIOE)\n" + " │ │ │ │ ├─ index: [FEIOE.GMSGA]\n" + @@ -8411,8 +8052,7 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [iq.T4IBQ, iq.BRQP2, iq.Z7CP5, CASE WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'KAOAS')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'OG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (vc.ZNP4P = 'L5Q44')) AND (iq.IDWIO = 'TSG')) THEN 0 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'W6W24')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'OG')) THEN 1 WHEN (((iq.FSDY2 IN ('SRARY', 'UBQWG')) AND (NOT((vc.ZNP4P = 'L5Q44')))) AND (iq.IDWIO = 'TSG')) THEN 0 ELSE NULL END as YHYLK]\n" + - " │ └─ LeftOuterHashJoin\n" + - " │ ├─ (w2mao.YH4XB = vc.id)\n" + + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ LeftOuterLookupJoin\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: iq\n" + @@ -8421,72 +8061,57 @@ WHERE " │ │ │ ├─ cacheable: true\n" + " │ │ │ └─ Project\n" + " │ │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.BRQP2, mf.id as Z7CP5, mf.FSDY2, nma.DZLIM as IDWIO]\n" + - " │ │ │ └─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + + " │ │ │ └─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ (mf.LUEVY = sn.BRQP2)\n" + - " │ │ │ │ ├─ HashJoin\n" + - " │ │ │ │ │ ├─ (sn.BRQP2 = nd.id)\n" + - " │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ └─ columns: [brqp2]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (sn.BRQP2)\n" + - " │ │ │ │ │ ├─ right-key: (nd.id)\n" + - " │ │ │ │ │ └─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: (nd.HPCMS = nma.id)\n" + - " │ │ │ │ │ ├─ TableAlias(nd)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id hpcms]\n" + - " │ │ │ │ │ └─ TableAlias(nma)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(TNMXI)\n" + - " │ │ │ │ │ ├─ index: [TNMXI.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id dzlim]\n" + - " │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + - " │ │ │ │ └─ keys: nd.id\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (mf.GXLUB)\n" + - " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ │ │ ├─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(nma)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: TNMXI\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id dzlim]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ │ │ ├─ index: [E2I7U.HPCMS]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id hpcms]\n" + + " │ │ │ │ │ │ │ └─ keys: nma.id\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy fsdy2]\n" + + " │ │ │ │ │ │ └─ keys: nd.id\n" + + " │ │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ │ └─ keys: mf.GXLUB\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ columns: [id ftqlq]\n" + + " │ │ │ │ └─ keys: bs.IXUXU\n" + + " │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [brqp2]\n" + + " │ │ │ └─ keys: nd.id\n" + " │ │ └─ TableAlias(w2mao)\n" + " │ │ └─ IndexedTableAccess(SEQS3)\n" + " │ │ ├─ index: [SEQS3.Z7CP5]\n" + " │ │ ├─ columns: [z7cp5 yh4xb]\n" + " │ │ └─ keys: iq.Z7CP5\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ ├─ right-key: (vc.id)\n" + - " │ └─ TableAlias(vc)\n" + - " │ └─ Table\n" + - " │ ├─ name: D34QP\n" + - " │ └─ columns: [id znp4p]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (nd.HPCMS)\n" + - " ├─ right-key: (nma.id)\n" + - " └─ TableAlias(nma)\n" + - " └─ Table\n" + - " ├─ name: TNMXI\n" + - " └─ columns: [id]\n" + + " │ └─ TableAlias(vc)\n" + + " │ └─ IndexedTableAccess(D34QP)\n" + + " │ ├─ index: [D34QP.id]\n" + + " │ ├─ columns: [id znp4p]\n" + + " │ └─ keys: w2mao.YH4XB\n" + + " └─ TableAlias(nma)\n" + + " └─ IndexedTableAccess(TNMXI)\n" + + " ├─ index: [TNMXI.id]\n" + + " ├─ columns: [id]\n" + + " └─ keys: nd.HPCMS\n" + "", }, { @@ -9083,96 +8708,80 @@ WHERE " │ │ │ THEN 1 (tinyint) ELSE 0 (tinyint) END->SNY4H:0]\n" + " │ │ └─ HashJoin\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ vc.id:18!null\n" + - " │ │ │ └─ w2mao.YH4XB:17!null\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ mf.GXLUB:5!null\n" + - " │ │ │ │ └─ bs.id:2!null\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ ├─ cla.id:0!null\n" + - " │ │ │ │ │ └─ bs.IXUXU:3\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (1-30)\n" + - " │ │ │ │ │ ├─ tableId: 1\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: YK2GW\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (31-34)\n" + - " │ │ │ │ ├─ tableId: 2\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: THNTS\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(bs.id:2!null)\n" + - " │ │ │ ├─ right-key: TUPLE(mf.GXLUB:1!null)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ ├─ mf.LUEVY:6!null\n" + - " │ │ │ │ │ │ └─ sn.BRQP2:13!null\n" + - " │ │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ │ │ ├─ mf.FSDY2:4!null\n" + - " │ │ │ │ │ │ │ └─ TUPLE(SRARY (longtext), UBQWG (longtext))\n" + - " │ │ │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (35-51)\n" + - " │ │ │ │ │ │ ├─ tableId: 3\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: HGMQ6\n" + - " │ │ │ │ │ │ └─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ ├─ colSet: (52-61)\n" + - " │ │ │ │ │ ├─ tableId: 4\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ └─ columns: [id brqp2]\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ keys: [mf.M22QN:7!null]\n" + - " │ │ │ │ ├─ colSet: (62-64)\n" + - " │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: TPXBU\n" + - " │ │ │ │ └─ columns: [id btxc5]\n" + - " │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ ├─ keys: [mf.id:4!null]\n" + - " │ │ │ ├─ colSet: (65-67)\n" + - " │ │ │ ├─ tableId: 6\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SEQS3\n" + - " │ │ │ └─ columns: [z7cp5 yh4xb]\n" + + " │ │ │ ├─ bs.IXUXU:3\n" + + " │ │ │ └─ cla.id:0!null\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ ├─ static: [{[SQ1, SQ1]}]\n" + + " │ │ │ ├─ colSet: (1-30)\n" + + " │ │ │ ├─ tableId: 1\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(w2mao.YH4XB:17!null)\n" + - " │ │ ├─ right-key: TUPLE(vc.id:0!null)\n" + - " │ │ └─ TableAlias(vc)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ ├─ columns: [id znp4p]\n" + - " │ │ ├─ colSet: (68-73)\n" + - " │ │ └─ tableId: 7\n" + + " │ │ ├─ left-key: TUPLE(cla.id:0!null)\n" + + " │ │ ├─ right-key: TUPLE(bs.IXUXU:1)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (31-34)\n" + + " │ │ │ │ │ │ │ └─ tableId: 2\n" + + " │ │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ │ │ ├─ mf.FSDY2:4!null\n" + + " │ │ │ │ │ │ │ └─ TUPLE(SRARY (longtext), UBQWG (longtext))\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ │ │ ├─ keys: [bs.id:2!null]\n" + + " │ │ │ │ │ │ ├─ colSet: (35-51)\n" + + " │ │ │ │ │ │ ├─ tableId: 3\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: HGMQ6\n" + + " │ │ │ │ │ │ └─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + + " │ │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ keys: [mf.LUEVY:6!null]\n" + + " │ │ │ │ │ ├─ colSet: (52-61)\n" + + " │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: NOXN3\n" + + " │ │ │ │ │ └─ columns: [id brqp2]\n" + + " │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ ├─ keys: [mf.M22QN:7!null]\n" + + " │ │ │ │ ├─ colSet: (62-64)\n" + + " │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: TPXBU\n" + + " │ │ │ │ └─ columns: [id btxc5]\n" + + " │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + + " │ │ │ ├─ keys: [mf.id:4!null]\n" + + " │ │ │ ├─ colSet: (65-67)\n" + + " │ │ │ ├─ tableId: 6\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SEQS3\n" + + " │ │ │ └─ columns: [z7cp5 yh4xb]\n" + + " │ │ └─ TableAlias(vc)\n" + + " │ │ └─ IndexedTableAccess(D34QP)\n" + + " │ │ ├─ index: [D34QP.id]\n" + + " │ │ ├─ keys: [w2mao.YH4XB:17!null]\n" + + " │ │ ├─ colSet: (68-73)\n" + + " │ │ ├─ tableId: 7\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: D34QP\n" + + " │ │ └─ columns: [id znp4p]\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: TUPLE(oxxei.BDNYB:1!null)\n" + " │ ├─ right-key: TUPLE(e52ap.BDNYB:1!null)\n" + @@ -9265,59 +8874,51 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + " │ │ └─ HashJoin\n" + - " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (bs.id)\n" + - " │ │ │ ├─ right-key: (mf.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + - " │ │ │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id brqp2]\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ columns: [id btxc5]\n" + - " │ │ │ │ └─ keys: mf.M22QN\n" + - " │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + - " │ │ │ └─ keys: mf.id\n" + + " │ │ ├─ (bs.IXUXU = cla.id)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ │ ├─ right-key: (vc.id)\n" + - " │ │ └─ TableAlias(vc)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ └─ columns: [id znp4p]\n" + + " │ │ ├─ left-key: (cla.id)\n" + + " │ │ ├─ right-key: (bs.IXUXU)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + + " │ │ │ │ │ │ └─ keys: bs.id\n" + + " │ │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ │ │ └─ keys: mf.LUEVY\n" + + " │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ ├─ columns: [id btxc5]\n" + + " │ │ │ │ └─ keys: mf.M22QN\n" + + " │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + + " │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + + " │ │ │ └─ keys: mf.id\n" + + " │ │ └─ TableAlias(vc)\n" + + " │ │ └─ IndexedTableAccess(D34QP)\n" + + " │ │ ├─ index: [D34QP.id]\n" + + " │ │ ├─ columns: [id znp4p]\n" + + " │ │ └─ keys: w2mao.YH4XB\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: (oxxei.BDNYB)\n" + " │ ├─ right-key: (e52ap.BDNYB)\n" + @@ -9382,59 +8983,51 @@ WHERE " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + " │ │ └─ HashJoin\n" + - " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + - " │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (bs.id)\n" + - " │ │ │ ├─ right-key: (mf.GXLUB)\n" + - " │ │ │ └─ LookupJoin\n" + - " │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ │ │ │ │ ├─ Filter\n" + - " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + - " │ │ │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ └─ columns: [id brqp2]\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ columns: [id btxc5]\n" + - " │ │ │ │ └─ keys: mf.M22QN\n" + - " │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + - " │ │ │ └─ keys: mf.id\n" + + " │ │ ├─ (bs.IXUXU = cla.id)\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ │ ├─ filters: [{[SQ1, SQ1]}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ │ ├─ right-key: (vc.id)\n" + - " │ │ └─ TableAlias(vc)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ └─ columns: [id znp4p]\n" + + " │ │ ├─ left-key: (cla.id)\n" + + " │ │ ├─ right-key: (bs.IXUXU)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + + " │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + + " │ │ │ │ │ │ └─ keys: bs.id\n" + + " │ │ │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ │ │ └─ keys: mf.LUEVY\n" + + " │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ ├─ columns: [id btxc5]\n" + + " │ │ │ │ └─ keys: mf.M22QN\n" + + " │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + + " │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + + " │ │ │ └─ keys: mf.id\n" + + " │ │ └─ TableAlias(vc)\n" + + " │ │ └─ IndexedTableAccess(D34QP)\n" + + " │ │ ├─ index: [D34QP.id]\n" + + " │ │ ├─ columns: [id znp4p]\n" + + " │ │ └─ keys: w2mao.YH4XB\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: (oxxei.BDNYB)\n" + " │ ├─ right-key: (e52ap.BDNYB)\n" + @@ -9570,100 +9163,88 @@ WHERE " │ │ ├─ colSet: (126-132)\n" + " │ │ ├─ tableId: 15\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [cla.FTQLQ:15!null->T4IBQ:0, sn.id:0!null->BDNYB:0, aac.BTXC5:13->BTXC5:0, mf.id:2!null->Z7CP5:0, CASE WHEN NOT\n" + - " │ │ │ └─ mf.LT7K6:7 IS NULL\n" + - " │ │ │ THEN mf.LT7K6:7 ELSE mf.SPPYD:8 END->vaf:0, CASE WHEN NOT\n" + - " │ │ │ └─ mf.QCGTS:9 IS NULL\n" + - " │ │ │ THEN mf.QCGTS:9 ELSE 0.5 (decimal(2,1)) END->QCGTS:0, CASE WHEN Eq\n" + - " │ │ │ ├─ vc.ZNP4P:19!null\n" + + " │ │ ├─ columns: [cla.FTQLQ:17!null->T4IBQ:0, sn.id:18!null->BDNYB:0, aac.BTXC5:13->BTXC5:0, mf.id:4!null->Z7CP5:0, CASE WHEN NOT\n" + + " │ │ │ └─ mf.LT7K6:9 IS NULL\n" + + " │ │ │ THEN mf.LT7K6:9 ELSE mf.SPPYD:10 END->vaf:0, CASE WHEN NOT\n" + + " │ │ │ └─ mf.QCGTS:11 IS NULL\n" + + " │ │ │ THEN mf.QCGTS:11 ELSE 0.5 (decimal(2,1)) END->QCGTS:0, CASE WHEN Eq\n" + + " │ │ │ ├─ vc.ZNP4P:1!null\n" + " │ │ │ └─ L5Q44 (longtext)\n" + " │ │ │ THEN 1 (tinyint) ELSE 0 (tinyint) END->SNY4H:0]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ vc.id:18!null\n" + - " │ │ │ └─ w2mao.YH4XB:11!null\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ mf.GXLUB:3!null\n" + - " │ │ │ │ └─ bs.id:16!null\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ LookupJoin\n" + " │ │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ │ ├─ columns: [id brqp2]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (52-61)\n" + - " │ │ │ │ │ │ │ └─ tableId: 4\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(vc)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: D34QP\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [id znp4p]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (68-73)\n" + + " │ │ │ │ │ │ │ │ └─ tableId: 7\n" + + " │ │ │ │ │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ │ │ │ │ ├─ index: [SEQS3.YH4XB]\n" + + " │ │ │ │ │ │ │ ├─ keys: [vc.id:0!null]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (65-67)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 6\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: SEQS3\n" + + " │ │ │ │ │ │ │ └─ columns: [z7cp5 yh4xb]\n" + " │ │ │ │ │ │ └─ Filter\n" + " │ │ │ │ │ │ ├─ HashIn\n" + " │ │ │ │ │ │ │ ├─ mf.FSDY2:4!null\n" + " │ │ │ │ │ │ │ └─ TUPLE(SRARY (longtext), UBQWG (longtext))\n" + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ │ │ ├─ keys: [sn.BRQP2:1!null]\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.id]\n" + + " │ │ │ │ │ │ ├─ keys: [w2mao.Z7CP5:2!null]\n" + " │ │ │ │ │ │ ├─ colSet: (35-51)\n" + " │ │ │ │ │ │ ├─ tableId: 3\n" + " │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ ├─ name: HGMQ6\n" + " │ │ │ │ │ │ └─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ │ │ ├─ keys: [mf.id:2!null]\n" + - " │ │ │ │ │ ├─ colSet: (65-67)\n" + - " │ │ │ │ │ ├─ tableId: 6\n" + + " │ │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ │ ├─ keys: [mf.M22QN:7!null]\n" + + " │ │ │ │ │ ├─ colSet: (62-64)\n" + + " │ │ │ │ │ ├─ tableId: 5\n" + " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: SEQS3\n" + - " │ │ │ │ │ └─ columns: [z7cp5 yh4xb]\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ keys: [mf.M22QN:5!null]\n" + - " │ │ │ │ ├─ colSet: (62-64)\n" + - " │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ │ ├─ name: TPXBU\n" + + " │ │ │ │ │ └─ columns: [id btxc5]\n" + + " │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ ├─ keys: [mf.GXLUB:5!null]\n" + + " │ │ │ │ ├─ colSet: (31-34)\n" + + " │ │ │ │ ├─ tableId: 2\n" + " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: TPXBU\n" + - " │ │ │ │ └─ columns: [id btxc5]\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: TUPLE(mf.GXLUB:3!null)\n" + - " │ │ │ ├─ right-key: TUPLE(bs.id:2!null)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ ├─ cla.id:14!null\n" + - " │ │ │ │ └─ bs.IXUXU:17\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ HashIn\n" + - " │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (1-30)\n" + - " │ │ │ │ ├─ tableId: 1\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: YK2GW\n" + - " │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (31-34)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: TUPLE(w2mao.YH4XB:11!null)\n" + - " │ │ ├─ right-key: TUPLE(vc.id:0!null)\n" + - " │ │ └─ TableAlias(vc)\n" + + " │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ HashIn\n" + + " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ keys: [bs.IXUXU:15]\n" + + " │ │ │ ├─ colSet: (1-30)\n" + + " │ │ │ ├─ tableId: 1\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ keys: [mf.LUEVY:6!null]\n" + + " │ │ ├─ colSet: (52-61)\n" + + " │ │ ├─ tableId: 4\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ ├─ columns: [id znp4p]\n" + - " │ │ ├─ colSet: (68-73)\n" + - " │ │ └─ tableId: 7\n" + + " │ │ ├─ name: NOXN3\n" + + " │ │ └─ columns: [id brqp2]\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: TUPLE(oxxei.BDNYB:1!null)\n" + " │ ├─ right-key: TUPLE(e52ap.BDNYB:1!null)\n" + @@ -9755,58 +9336,50 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ LookupJoin\n" + " │ │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ │ └─ columns: [id brqp2]\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(vc)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: D34QP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id znp4p]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ │ │ │ │ ├─ index: [SEQS3.YH4XB]\n" + + " │ │ │ │ │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + + " │ │ │ │ │ │ │ └─ keys: vc.id\n" + " │ │ │ │ │ │ └─ Filter\n" + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ │ │ │ │ ├─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ │ └─ keys: sn.BRQP2\n" + - " │ │ │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + - " │ │ │ │ │ └─ keys: mf.id\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ columns: [id btxc5]\n" + - " │ │ │ │ └─ keys: mf.M22QN\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (mf.GXLUB)\n" + - " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ │ ├─ right-key: (vc.id)\n" + - " │ │ └─ TableAlias(vc)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ └─ columns: [id znp4p]\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.id]\n" + + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + + " │ │ │ │ │ │ └─ keys: w2mao.Z7CP5\n" + + " │ │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ │ ├─ columns: [id btxc5]\n" + + " │ │ │ │ │ └─ keys: mf.M22QN\n" + + " │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ └─ keys: mf.GXLUB\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ columns: [id ftqlq]\n" + + " │ │ │ └─ keys: bs.IXUXU\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ columns: [id brqp2]\n" + + " │ │ └─ keys: mf.LUEVY\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: (oxxei.BDNYB)\n" + " │ ├─ right-key: (e52ap.BDNYB)\n" + @@ -9870,58 +9443,50 @@ WHERE " │ │ ├─ cacheable: true\n" + " │ │ └─ Project\n" + " │ │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, aac.BTXC5 as BTXC5, mf.id as Z7CP5, CASE WHEN (NOT(mf.LT7K6 IS NULL)) THEN mf.LT7K6 ELSE mf.SPPYD END as vaf, CASE WHEN (NOT(mf.QCGTS IS NULL)) THEN mf.QCGTS ELSE 0.5 END as QCGTS, CASE WHEN (vc.ZNP4P = 'L5Q44') THEN 1 ELSE 0 END as SNY4H]\n" + - " │ │ └─ HashJoin\n" + - " │ │ ├─ (vc.id = w2mao.YH4XB)\n" + - " │ │ ├─ HashJoin\n" + - " │ │ │ ├─ (mf.GXLUB = bs.id)\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ LookupJoin\n" + " │ │ │ │ ├─ LookupJoin\n" + " │ │ │ │ │ ├─ LookupJoin\n" + - " │ │ │ │ │ │ ├─ TableAlias(sn)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: NOXN3\n" + - " │ │ │ │ │ │ │ └─ columns: [id brqp2]\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(vc)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: D34QP\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id znp4p]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(w2mao)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + + " │ │ │ │ │ │ │ ├─ index: [SEQS3.YH4XB]\n" + + " │ │ │ │ │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + + " │ │ │ │ │ │ │ └─ keys: vc.id\n" + " │ │ │ │ │ │ └─ Filter\n" + " │ │ │ │ │ │ ├─ (mf.FSDY2 HASH IN ('SRARY', 'UBQWG'))\n" + " │ │ │ │ │ │ └─ TableAlias(mf)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ │ │ │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ │ │ │ │ ├─ index: [HGMQ6.id]\n" + " │ │ │ │ │ │ ├─ columns: [id gxlub luevy m22qn fsdy2 lt7k6 sppyd qcgts]\n" + - " │ │ │ │ │ │ └─ keys: sn.BRQP2\n" + - " │ │ │ │ │ └─ TableAlias(w2mao)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(SEQS3)\n" + - " │ │ │ │ │ ├─ index: [SEQS3.Z7CP5]\n" + - " │ │ │ │ │ ├─ columns: [z7cp5 yh4xb]\n" + - " │ │ │ │ │ └─ keys: mf.id\n" + - " │ │ │ │ └─ TableAlias(aac)\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.id]\n" + - " │ │ │ │ ├─ columns: [id btxc5]\n" + - " │ │ │ │ └─ keys: mf.M22QN\n" + - " │ │ │ └─ HashLookup\n" + - " │ │ │ ├─ left-key: (mf.GXLUB)\n" + - " │ │ │ ├─ right-key: (bs.id)\n" + - " │ │ │ └─ MergeJoin\n" + - " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ │ ├─ Filter\n" + - " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ └─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ HashLookup\n" + - " │ │ ├─ left-key: (w2mao.YH4XB)\n" + - " │ │ ├─ right-key: (vc.id)\n" + - " │ │ └─ TableAlias(vc)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: D34QP\n" + - " │ │ └─ columns: [id znp4p]\n" + + " │ │ │ │ │ │ └─ keys: w2mao.Z7CP5\n" + + " │ │ │ │ │ └─ TableAlias(aac)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ │ ├─ index: [TPXBU.id]\n" + + " │ │ │ │ │ ├─ columns: [id btxc5]\n" + + " │ │ │ │ │ └─ keys: mf.M22QN\n" + + " │ │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.id]\n" + + " │ │ │ │ ├─ columns: [id ixuxu]\n" + + " │ │ │ │ └─ keys: mf.GXLUB\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ columns: [id ftqlq]\n" + + " │ │ │ └─ keys: bs.IXUXU\n" + + " │ │ └─ TableAlias(sn)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ columns: [id brqp2]\n" + + " │ │ └─ keys: mf.LUEVY\n" + " │ └─ HashLookup\n" + " │ ├─ left-key: (oxxei.BDNYB)\n" + " │ ├─ right-key: (e52ap.BDNYB)\n" + @@ -10401,19 +9966,19 @@ WHERE " │ │ │ │ │ └─ NOT\n" + " │ │ │ │ │ └─ TDEIU:10!null IS NULL\n" + " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:2!null->M22QN:0, g3yxs.GE5EL:8, g3yxs.F7A4Q:9, g3yxs.ESFVY:6!null, CASE WHEN IN\n" + - " │ │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ ├─ columns: [ism.FV24E:5!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:7!null->M22QN:0, g3yxs.GE5EL:3, g3yxs.F7A4Q:4, g3yxs.ESFVY:1!null, CASE WHEN IN\n" + + " │ │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ │ └─ right: TUPLE(FO422 (longtext), SJ53H (longtext))\n" + " │ │ │ │ │ THEN 0 (tinyint) WHEN IN\n" + - " │ │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ │ └─ right: TUPLE(DCV4Z (longtext), UOSM4 (longtext), FUGIP (longtext), H5MCC (longtext), YKEQE (longtext), D3AKL (longtext))\n" + " │ │ │ │ │ THEN 1 (tinyint) WHEN IN\n" + - " │ │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ │ └─ right: TUPLE(QJEXM (longtext), J6S7P (longtext), VT7FI (longtext))\n" + " │ │ │ │ │ THEN 2 (tinyint) WHEN IN\n" + - " │ │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ │ └─ right: TUPLE(Y62X7 (longtext))\n" + - " │ │ │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:7!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + + " │ │ │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:2!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ Or\n" + " │ │ │ │ │ ├─ NOT\n" + @@ -10423,51 +9988,42 @@ WHERE " │ │ │ │ └─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ yvhjz.BRQP2:19!null\n" + - " │ │ │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ │ │ └─ ism.UJ6XY:6!null\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ │ ├─ yqif4.BRQP2:16!null\n" + - " │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ │ │ └─ ism.FV24E:5!null\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ │ │ ├─ cpmfe.id:12!null\n" + - " │ │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ nhmxw.id:10!null\n" + - " │ │ │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + - " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ │ │ │ └─ ism.FV24E:5!null\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ ├─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ keys: [ism.PRUV2:9]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -10480,7 +10036,7 @@ WHERE " │ │ │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ │ │ ├─ keys: [ism.UJ6XY:6!null]\n" + " │ │ │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ │ │ ├─ tableId: 8\n" + " │ │ │ │ │ └─ Table\n" + @@ -10489,7 +10045,7 @@ WHERE " │ │ │ │ └─ TableAlias(yvhjz)\n" + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ │ │ ├─ keys: [ism.FV24E:5!null]\n" + " │ │ │ │ ├─ colSet: (69-78)\n" + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Table\n" + @@ -10516,19 +10072,19 @@ WHERE " │ │ │ │ └─ NOT\n" + " │ │ │ │ └─ TDEIU:10!null IS NULL\n" + " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:2!null->M22QN:0, g3yxs.GE5EL:8, g3yxs.F7A4Q:9, g3yxs.ESFVY:6!null, CASE WHEN IN\n" + - " │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ ├─ columns: [ism.FV24E:5!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:7!null->M22QN:0, g3yxs.GE5EL:3, g3yxs.F7A4Q:4, g3yxs.ESFVY:1!null, CASE WHEN IN\n" + + " │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ └─ right: TUPLE(FO422 (longtext), SJ53H (longtext))\n" + " │ │ │ │ THEN 0 (tinyint) WHEN IN\n" + - " │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ └─ right: TUPLE(DCV4Z (longtext), UOSM4 (longtext), FUGIP (longtext), H5MCC (longtext), YKEQE (longtext), D3AKL (longtext))\n" + " │ │ │ │ THEN 1 (tinyint) WHEN IN\n" + - " │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ └─ right: TUPLE(QJEXM (longtext), J6S7P (longtext), VT7FI (longtext))\n" + " │ │ │ │ THEN 2 (tinyint) WHEN IN\n" + - " │ │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ │ └─ right: TUPLE(Y62X7 (longtext))\n" + - " │ │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:7!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + + " │ │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:2!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + " │ │ │ └─ Filter\n" + " │ │ │ ├─ Or\n" + " │ │ │ │ ├─ NOT\n" + @@ -10538,51 +10094,42 @@ WHERE " │ │ │ └─ LeftOuterLookupJoin\n" + " │ │ │ ├─ Eq\n" + " │ │ │ │ ├─ yvhjz.BRQP2:19!null\n" + - " │ │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ │ └─ ism.UJ6XY:6!null\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ yqif4.BRQP2:16!null\n" + - " │ │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ │ └─ ism.FV24E:5!null\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ │ ├─ cpmfe.id:12!null\n" + - " │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ ├─ nhmxw.id:10!null\n" + - " │ │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ │ │ └─ ism.FV24E:5!null\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 4\n" + " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ ├─ keys: [ism.PRUV2:9]\n" + + " │ │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -10595,7 +10142,7 @@ WHERE " │ │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ │ ├─ keys: [ism.UJ6XY:6!null]\n" + " │ │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ │ ├─ tableId: 8\n" + " │ │ │ │ └─ Table\n" + @@ -10604,7 +10151,7 @@ WHERE " │ │ │ └─ TableAlias(yvhjz)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ │ ├─ keys: [ism.FV24E:5!null]\n" + " │ │ │ ├─ colSet: (69-78)\n" + " │ │ │ ├─ tableId: 9\n" + " │ │ │ └─ Table\n" + @@ -10634,19 +10181,19 @@ WHERE " │ │ │ └─ NOT\n" + " │ │ │ └─ TDEIU:10!null IS NULL\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:2!null->M22QN:0, g3yxs.GE5EL:8, g3yxs.F7A4Q:9, g3yxs.ESFVY:6!null, CASE WHEN IN\n" + - " │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ ├─ columns: [ism.FV24E:5!null->FJDP5:0, cpmfe.id:12!null->BJUF2:0, cpmfe.TW55N:13!null->PSMU6:0, ism.M22QN:7!null->M22QN:0, g3yxs.GE5EL:3, g3yxs.F7A4Q:4, g3yxs.ESFVY:1!null, CASE WHEN IN\n" + + " │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ └─ right: TUPLE(FO422 (longtext), SJ53H (longtext))\n" + " │ │ │ THEN 0 (tinyint) WHEN IN\n" + - " │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ └─ right: TUPLE(DCV4Z (longtext), UOSM4 (longtext), FUGIP (longtext), H5MCC (longtext), YKEQE (longtext), D3AKL (longtext))\n" + " │ │ │ THEN 1 (tinyint) WHEN IN\n" + - " │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ └─ right: TUPLE(QJEXM (longtext), J6S7P (longtext), VT7FI (longtext))\n" + " │ │ │ THEN 2 (tinyint) WHEN IN\n" + - " │ │ │ ├─ left: g3yxs.SL76B:7!null\n" + + " │ │ │ ├─ left: g3yxs.SL76B:2!null\n" + " │ │ │ └─ right: TUPLE(Y62X7 (longtext))\n" + - " │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:7!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + + " │ │ │ THEN 3 (tinyint) END->CC4AX:0, g3yxs.SL76B:2!null->SL76B:0, yqif4.id:15!null->QNI57:0, yvhjz.id:18!null->TDEIU:0]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Or\n" + " │ │ │ ├─ NOT\n" + @@ -10656,51 +10203,42 @@ WHERE " │ │ └─ LeftOuterLookupJoin\n" + " │ │ ├─ Eq\n" + " │ │ │ ├─ yvhjz.BRQP2:19!null\n" + - " │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ └─ ism.UJ6XY:6!null\n" + " │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ ├─ Eq\n" + " │ │ │ │ ├─ yqif4.BRQP2:16!null\n" + - " │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ └─ ism.FV24E:5!null\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ ├─ cpmfe.id:12!null\n" + - " │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nhmxw.id:10!null\n" + - " │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 4\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ │ └─ ism.FV24E:5!null\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ ├─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ ├─ tableId: 4\n" + " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ keys: [ism.PRUV2:9]\n" + + " │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -10713,7 +10251,7 @@ WHERE " │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ ├─ keys: [ism.UJ6XY:6!null]\n" + " │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ ├─ tableId: 8\n" + " │ │ │ └─ Table\n" + @@ -10722,7 +10260,7 @@ WHERE " │ │ └─ TableAlias(yvhjz)\n" + " │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ ├─ keys: [ism.FV24E:5!null]\n" + " │ │ ├─ colSet: (69-78)\n" + " │ │ ├─ tableId: 9\n" + " │ │ └─ Table\n" + @@ -10745,46 +10283,43 @@ WHERE " ├─ colSet: (246-248)\n" + " ├─ tableId: 24\n" + " └─ Project\n" + - " ├─ columns: [cla.FTQLQ:4!null, mf.LUEVY:1!null, mf.M22QN:2!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ bs.id:5!null\n" + - " │ └─ mf.GXLUB:0!null\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ ├─ columns: [gxlub luevy m22qn]\n" + - " │ ├─ colSet: (229-245)\n" + - " │ └─ tableId: 23\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(mf.GXLUB:0!null)\n" + - " ├─ right-key: TUPLE(bs.id:2!null)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ cla.id:3!null\n" + - " │ └─ bs.IXUXU:6\n" + - " ├─ Filter\n" + - " │ ├─ HashIn\n" + - " │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (195-224)\n" + - " │ ├─ tableId: 21\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ TableAlias(bs)\n" + - " └─ IndexedTableAccess(THNTS)\n" + - " ├─ index: [THNTS.IXUXU]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (225-228)\n" + - " ├─ tableId: 22\n" + - " └─ Table\n" + - " ├─ name: THNTS\n" + - " └─ columns: [id ixuxu]\n" + + " ├─ columns: [cla.FTQLQ:1!null, mf.LUEVY:5!null, mf.M22QN:6!null]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: Eq\n" + + " │ │ ├─ cla.id:0!null\n" + + " │ │ └─ bs.IXUXU:3\n" + + " │ ├─ Filter\n" + + " │ │ ├─ HashIn\n" + + " │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (195-224)\n" + + " │ │ ├─ tableId: 21\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(bs)\n" + + " │ └─ IndexedTableAccess(THNTS)\n" + + " │ ├─ index: [THNTS.IXUXU]\n" + + " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ colSet: (225-228)\n" + + " │ ├─ tableId: 22\n" + + " │ └─ Table\n" + + " │ ├─ name: THNTS\n" + + " │ └─ columns: [id ixuxu]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ keys: [bs.id:2!null]\n" + + " ├─ colSet: (229-245)\n" + + " ├─ tableId: 23\n" + + " └─ Table\n" + + " ├─ name: HGMQ6\n" + + " └─ columns: [gxlub luevy m22qn]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + @@ -10867,27 +10402,22 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -10924,27 +10454,22 @@ WHERE " │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -10981,27 +10506,22 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -11031,29 +10551,26 @@ WHERE " ├─ cacheable: true\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ, mf.LUEVY, mf.M22QN]\n" + - " └─ HashJoin\n" + - " ├─ (bs.id = mf.GXLUB)\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [gxlub luevy m22qn]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (cla.id = bs.IXUXU)\n" + - " ├─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ TableAlias(bs)\n" + - " └─ IndexedTableAccess(THNTS)\n" + - " ├─ index: [THNTS.IXUXU]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ixuxu]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ ├─ Filter\n" + + " │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(bs)\n" + + " │ └─ IndexedTableAccess(THNTS)\n" + + " │ ├─ index: [THNTS.IXUXU]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id ixuxu]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ columns: [gxlub luevy m22qn]\n" + + " └─ keys: bs.id\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [mf.FTQLQ as T4IBQ, CASE WHEN (NOT(mjr3d.QNI57 IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.QNI57) WHEN (NOT(mjr3d.TDEIU IS NULL)) THEN Subquery(select ei.M6T2N from FZFVD as ei where ei.id = MJR3D.TDEIU) END as M6T2N, mjr3d.GE5EL as GE5EL, mjr3d.F7A4Q as F7A4Q, mjr3d.CC4AX as CC4AX, mjr3d.SL76B as SL76B, aac.BTXC5 as YEBDJ, mjr3d.PSMU6]\n" + @@ -11136,27 +10653,22 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -11193,27 +10705,22 @@ WHERE " │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -11250,27 +10757,22 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy sl76b ge5el f7a4q]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -11300,29 +10802,26 @@ WHERE " ├─ cacheable: true\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ, mf.LUEVY, mf.M22QN]\n" + - " └─ HashJoin\n" + - " ├─ (bs.id = mf.GXLUB)\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [gxlub luevy m22qn]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (cla.id = bs.IXUXU)\n" + - " ├─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + - " └─ TableAlias(bs)\n" + - " └─ IndexedTableAccess(THNTS)\n" + - " ├─ index: [THNTS.IXUXU]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ixuxu]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ ├─ Filter\n" + + " │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(bs)\n" + + " │ └─ IndexedTableAccess(THNTS)\n" + + " │ ├─ index: [THNTS.IXUXU]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id ixuxu]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ columns: [gxlub luevy m22qn]\n" + + " └─ keys: bs.id\n" + "", }, { @@ -11736,7 +11235,7 @@ WHERE " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:2!null->M22QN:0, g3yxs.TUV25:7->TUV25:0, g3yxs.ESFVY:6!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + + " │ │ │ │ ├─ columns: [ism.FV24E:3!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:5!null->M22QN:0, g3yxs.TUV25:2->TUV25:0, g3yxs.ESFVY:1!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ Or\n" + " │ │ │ │ │ ├─ NOT\n" + @@ -11746,54 +11245,45 @@ WHERE " │ │ │ │ └─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ yvhjz.BRQP2:16!null\n" + - " │ │ │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ │ │ └─ ism.UJ6XY:4!null\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ │ ├─ yqif4.BRQP2:13!null\n" + - " │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ │ │ └─ ism.FV24E:3!null\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ │ │ ├─ cpmfe.id:10!null\n" + - " │ │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ nhmxw.id:8!null\n" + - " │ │ │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ │ └─ ism.FV24E:3!null\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ NOT\n" + + " │ │ │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ ├─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ keys: [ism.PRUV2:7]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -11806,7 +11296,7 @@ WHERE " │ │ │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ │ │ ├─ keys: [ism.UJ6XY:4!null]\n" + " │ │ │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ │ │ ├─ tableId: 8\n" + " │ │ │ │ │ └─ Table\n" + @@ -11815,7 +11305,7 @@ WHERE " │ │ │ │ └─ TableAlias(yvhjz)\n" + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ │ │ ├─ keys: [ism.FV24E:3!null]\n" + " │ │ │ │ ├─ colSet: (69-78)\n" + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Table\n" + @@ -11859,61 +11349,52 @@ WHERE " │ ├─ tableId: 17\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ:1!null->T4IBQ:0, sn.id:7!null->BDNYB:0, mf.M22QN:6!null->M22QN:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ bs.id:2!null\n" + - " │ │ └─ mf.GXLUB:4!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ cla.id:0!null\n" + - " │ │ │ └─ bs.IXUXU:3\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ HashIn\n" + - " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ cla.id:0!null\n" + + " │ │ │ │ └─ bs.IXUXU:3\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (114-143)\n" + + " │ │ │ │ ├─ tableId: 14\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: YK2GW\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (114-143)\n" + - " │ │ │ ├─ tableId: 14\n" + + " │ │ │ ├─ colSet: (110-113)\n" + + " │ │ │ ├─ tableId: 13\n" + " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: YK2GW\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (110-113)\n" + - " │ │ ├─ tableId: 13\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:2!null]\n" + + " │ │ ├─ colSet: (93-109)\n" + + " │ │ ├─ tableId: 12\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(bs.id:2!null)\n" + - " │ ├─ right-key: TUPLE(mf.GXLUB:0!null)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ mf.LUEVY:5!null\n" + - " │ │ └─ sn.BRQP2:8!null\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (93-109)\n" + - " │ │ ├─ tableId: 12\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: HGMQ6\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (144-153)\n" + - " │ ├─ tableId: 15\n" + - " │ └─ Table\n" + - " │ ├─ name: NOXN3\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ ├─ name: HGMQ6\n" + + " │ │ └─ columns: [gxlub luevy m22qn]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ keys: [mf.LUEVY:5!null]\n" + + " │ ├─ colSet: (144-153)\n" + + " │ ├─ tableId: 15\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id brqp2]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(TUPLE(fs.T4IBQ:0!null, fs.M6T2N:1, fs.BTXC5:2, fs.TUV25:3))\n" + " ├─ right-key: TUPLE(TUPLE(zmspr.T4IBQ:0!null, zmspr.M6T2N:1, zmspr.BTXC5:2, zmspr.TUV25:3))\n" + @@ -11948,61 +11429,52 @@ WHERE " │ ├─ tableId: 32\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ:1!null->T4IBQ:0, sn.id:7!null->BDNYB:0, mf.M22QN:6!null->M22QN:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ bs.id:2!null\n" + - " │ │ └─ mf.GXLUB:4!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ cla.id:0!null\n" + - " │ │ │ └─ bs.IXUXU:3\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ HashIn\n" + - " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ cla.id:0!null\n" + + " │ │ │ │ └─ bs.IXUXU:3\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ HashIn\n" + + " │ │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (114-143)\n" + + " │ │ │ │ ├─ tableId: 14\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: YK2GW\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (114-143)\n" + - " │ │ │ ├─ tableId: 14\n" + + " │ │ │ ├─ colSet: (110-113)\n" + + " │ │ │ ├─ tableId: 13\n" + " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: YK2GW\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (110-113)\n" + - " │ │ ├─ tableId: 13\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:2!null]\n" + + " │ │ ├─ colSet: (93-109)\n" + + " │ │ ├─ tableId: 12\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(bs.id:2!null)\n" + - " │ ├─ right-key: TUPLE(mf.GXLUB:0!null)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ mf.LUEVY:5!null\n" + - " │ │ └─ sn.BRQP2:8!null\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (93-109)\n" + - " │ │ ├─ tableId: 12\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: HGMQ6\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (144-153)\n" + - " │ ├─ tableId: 15\n" + - " │ └─ Table\n" + - " │ ├─ name: NOXN3\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ ├─ name: HGMQ6\n" + + " │ │ └─ columns: [gxlub luevy m22qn]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ keys: [mf.LUEVY:5!null]\n" + + " │ ├─ colSet: (144-153)\n" + + " │ ├─ tableId: 15\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id brqp2]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(cld.BDNYB:1!null, cld.M22QN:2!null)\n" + " ├─ right-key: TUPLE(p4pjz.LWQ6O:3!null, p4pjz.NTOFG:2!null)\n" + @@ -12229,7 +11701,7 @@ WHERE " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:2!null->M22QN:0, g3yxs.TUV25:7->TUV25:0, g3yxs.ESFVY:6!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + + " │ │ ├─ columns: [ism.FV24E:3!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:5!null->M22QN:0, g3yxs.TUV25:2->TUV25:0, g3yxs.ESFVY:1!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Or\n" + " │ │ │ ├─ NOT\n" + @@ -12239,54 +11711,45 @@ WHERE " │ │ └─ LeftOuterLookupJoin\n" + " │ │ ├─ Eq\n" + " │ │ │ ├─ yvhjz.BRQP2:16!null\n" + - " │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ └─ ism.UJ6XY:4!null\n" + " │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ ├─ Eq\n" + " │ │ │ │ ├─ yqif4.BRQP2:13!null\n" + - " │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ └─ ism.FV24E:3!null\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ ├─ cpmfe.id:10!null\n" + - " │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nhmxw.id:8!null\n" + - " │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ └─ ism.FV24E:3!null\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ NOT\n" + + " │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ ├─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ keys: [ism.PRUV2:7]\n" + + " │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -12299,7 +11762,7 @@ WHERE " │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ ├─ keys: [ism.UJ6XY:4!null]\n" + " │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ ├─ tableId: 8\n" + " │ │ │ └─ Table\n" + @@ -12308,7 +11771,7 @@ WHERE " │ │ └─ TableAlias(yvhjz)\n" + " │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ ├─ keys: [ism.FV24E:3!null]\n" + " │ │ ├─ colSet: (69-78)\n" + " │ │ ├─ tableId: 9\n" + " │ │ └─ Table\n" + @@ -12421,29 +11884,24 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -12485,37 +11943,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (bs.id)\n" + - " │ ├─ right-key: (mf.GXLUB)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: ((fs.T4IBQ, fs.M6T2N, fs.BTXC5, fs.TUV25))\n" + " ├─ right-key: ((zmspr.T4IBQ, zmspr.M6T2N, zmspr.BTXC5, zmspr.TUV25))\n" + @@ -12539,37 +11992,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (bs.id)\n" + - " │ ├─ right-key: (mf.GXLUB)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: (cld.BDNYB, cld.M22QN)\n" + " ├─ right-key: (p4pjz.LWQ6O, p4pjz.NTOFG)\n" + @@ -12641,29 +12089,24 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -12778,29 +12221,24 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -12842,37 +12280,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (bs.id)\n" + - " │ ├─ right-key: (mf.GXLUB)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: ((fs.T4IBQ, fs.M6T2N, fs.BTXC5, fs.TUV25))\n" + " ├─ right-key: ((zmspr.T4IBQ, zmspr.M6T2N, zmspr.BTXC5, zmspr.TUV25))\n" + @@ -12896,37 +12329,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ │ │ └─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (cla.id = bs.IXUXU)\n" + + " │ │ │ ├─ Filter\n" + + " │ │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ └─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (bs.id)\n" + - " │ ├─ right-key: (mf.GXLUB)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (mf.LUEVY = sn.BRQP2)\n" + - " │ ├─ TableAlias(mf)\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ TableAlias(sn)\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.BRQP2]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id brqp2]\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(mf)\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: (cld.BDNYB, cld.M22QN)\n" + " ├─ right-key: (p4pjz.LWQ6O, p4pjz.NTOFG)\n" + @@ -12998,29 +12426,24 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -13457,7 +12880,7 @@ WHERE " │ │ │ │ ├─ tableId: 18\n" + " │ │ │ │ └─ Distinct\n" + " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:2!null->M22QN:0, g3yxs.TUV25:7->TUV25:0, g3yxs.ESFVY:6!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + + " │ │ │ │ ├─ columns: [ism.FV24E:3!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:5!null->M22QN:0, g3yxs.TUV25:2->TUV25:0, g3yxs.ESFVY:1!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + " │ │ │ │ └─ Filter\n" + " │ │ │ │ ├─ Or\n" + " │ │ │ │ │ ├─ NOT\n" + @@ -13467,54 +12890,45 @@ WHERE " │ │ │ │ └─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ ├─ yvhjz.BRQP2:16!null\n" + - " │ │ │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ │ │ └─ ism.UJ6XY:4!null\n" + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ ├─ Eq\n" + " │ │ │ │ │ │ ├─ yqif4.BRQP2:13!null\n" + - " │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ │ │ └─ ism.FV24E:3!null\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ │ │ ├─ cpmfe.id:10!null\n" + - " │ │ │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ │ ├─ nhmxw.id:8!null\n" + - " │ │ │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ │ └─ ism.FV24E:3!null\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ NOT\n" + + " │ │ │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + " │ │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ ├─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ keys: [ism.PRUV2:7]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -13527,7 +12941,7 @@ WHERE " │ │ │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ │ │ ├─ keys: [ism.UJ6XY:4!null]\n" + " │ │ │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ │ │ ├─ tableId: 8\n" + " │ │ │ │ │ └─ Table\n" + @@ -13536,7 +12950,7 @@ WHERE " │ │ │ │ └─ TableAlias(yvhjz)\n" + " │ │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ │ │ ├─ keys: [ism.FV24E:3!null]\n" + " │ │ │ │ ├─ colSet: (69-78)\n" + " │ │ │ │ ├─ tableId: 9\n" + " │ │ │ │ └─ Table\n" + @@ -13579,56 +12993,53 @@ WHERE " │ ├─ colSet: (232-234)\n" + " │ ├─ tableId: 17\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ:8!null->T4IBQ:0, sn.id:0!null->BDNYB:0, mf.M22QN:4!null->M22QN:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ bs.id:5!null\n" + - " │ │ └─ mf.GXLUB:2!null\n" + + " │ ├─ columns: [cla.FTQLQ:3!null->T4IBQ:0, sn.id:7!null->BDNYB:0, mf.M22QN:6!null->M22QN:0]\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ ├─ columns: [id brqp2]\n" + - " │ │ │ ├─ colSet: (144-153)\n" + - " │ │ │ └─ tableId: 15\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ bs.IXUXU:1\n" + + " │ │ │ │ └─ cla.id:2!null\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (110-113)\n" + + " │ │ │ │ ├─ tableId: 13\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ HashIn\n" + + " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (114-143)\n" + + " │ │ │ ├─ tableId: 14\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ keys: [sn.BRQP2:1!null]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:0!null]\n" + " │ │ ├─ colSet: (93-109)\n" + " │ │ ├─ tableId: 12\n" + " │ │ └─ Table\n" + " │ │ ├─ name: HGMQ6\n" + " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(mf.GXLUB:2!null)\n" + - " │ ├─ right-key: TUPLE(bs.id:0!null)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ bs.IXUXU:6\n" + - " │ │ └─ cla.id:7!null\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (110-113)\n" + - " │ │ ├─ tableId: 13\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ HashIn\n" + - " │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (114-143)\n" + - " │ ├─ tableId: 14\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ keys: [mf.LUEVY:5!null]\n" + + " │ ├─ colSet: (144-153)\n" + + " │ ├─ tableId: 15\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id brqp2]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(TUPLE(fs.T4IBQ:0!null, fs.M6T2N:1, fs.BTXC5:2, fs.TUV25:3))\n" + " ├─ right-key: TUPLE(TUPLE(zmspr.T4IBQ:0!null, zmspr.M6T2N:1, zmspr.BTXC5:2, zmspr.TUV25:3))\n" + @@ -13662,56 +13073,53 @@ WHERE " │ ├─ colSet: (244-246)\n" + " │ ├─ tableId: 32\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ:8!null->T4IBQ:0, sn.id:0!null->BDNYB:0, mf.M22QN:4!null->M22QN:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ bs.id:5!null\n" + - " │ │ └─ mf.GXLUB:2!null\n" + + " │ ├─ columns: [cla.FTQLQ:3!null->T4IBQ:0, sn.id:7!null->BDNYB:0, mf.M22QN:6!null->M22QN:0]\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ ├─ columns: [id brqp2]\n" + - " │ │ │ ├─ colSet: (144-153)\n" + - " │ │ │ └─ tableId: 15\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: Eq\n" + + " │ │ │ │ ├─ bs.IXUXU:1\n" + + " │ │ │ │ └─ cla.id:2!null\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (110-113)\n" + + " │ │ │ │ ├─ tableId: 13\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: THNTS\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ HashIn\n" + + " │ │ │ │ ├─ cla.FTQLQ:1!null\n" + + " │ │ │ │ └─ TUPLE(SQ1 (longtext))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (114-143)\n" + + " │ │ │ ├─ tableId: 14\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + - " │ │ ├─ keys: [sn.BRQP2:1!null]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:0!null]\n" + " │ │ ├─ colSet: (93-109)\n" + " │ │ ├─ tableId: 12\n" + " │ │ └─ Table\n" + " │ │ ├─ name: HGMQ6\n" + " │ │ └─ columns: [gxlub luevy m22qn]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(mf.GXLUB:2!null)\n" + - " │ ├─ right-key: TUPLE(bs.id:0!null)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ bs.IXUXU:6\n" + - " │ │ └─ cla.id:7!null\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (110-113)\n" + - " │ │ ├─ tableId: 13\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ HashIn\n" + - " │ │ ├─ cla.FTQLQ:1!null\n" + - " │ │ └─ TUPLE(SQ1 (longtext))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (114-143)\n" + - " │ ├─ tableId: 14\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ keys: [mf.LUEVY:5!null]\n" + + " │ ├─ colSet: (144-153)\n" + + " │ ├─ tableId: 15\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id brqp2]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(cld.BDNYB:1!null, cld.M22QN:2!null)\n" + " ├─ right-key: TUPLE(p4pjz.LWQ6O:3!null, p4pjz.NTOFG:2!null)\n" + @@ -13938,7 +13346,7 @@ WHERE " │ │ ├─ tableId: 18\n" + " │ │ └─ Distinct\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [ism.FV24E:0!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:2!null->M22QN:0, g3yxs.TUV25:7->TUV25:0, g3yxs.ESFVY:6!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + + " │ │ ├─ columns: [ism.FV24E:3!null->FJDP5:0, cpmfe.id:10!null->BJUF2:0, ism.M22QN:5!null->M22QN:0, g3yxs.TUV25:2->TUV25:0, g3yxs.ESFVY:1!null->ESFVY:0, yqif4.id:12!null->QNI57:0, yvhjz.id:15!null->TDEIU:0]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Or\n" + " │ │ │ ├─ NOT\n" + @@ -13948,54 +13356,45 @@ WHERE " │ │ └─ LeftOuterLookupJoin\n" + " │ │ ├─ Eq\n" + " │ │ │ ├─ yvhjz.BRQP2:16!null\n" + - " │ │ │ └─ ism.UJ6XY:1!null\n" + + " │ │ │ └─ ism.UJ6XY:4!null\n" + " │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ ├─ Eq\n" + " │ │ │ │ ├─ yqif4.BRQP2:13!null\n" + - " │ │ │ │ └─ ism.FV24E:0!null\n" + + " │ │ │ │ └─ ism.FV24E:3!null\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ NOT\n" + " │ │ │ │ │ └─ Eq\n" + " │ │ │ │ │ ├─ cpmfe.id:10!null\n" + - " │ │ │ │ │ └─ ism.FV24E:0!null\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nhmxw.id:8!null\n" + - " │ │ │ │ │ │ └─ ism.PRUV2:4\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: Eq\n" + - " │ │ │ │ │ │ │ ├─ ism.NZ4MQ:3!null\n" + - " │ │ │ │ │ │ │ └─ g3yxs.id:5!null\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (15-23)\n" + - " │ │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ └─ ism.FV24E:3!null\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ NOT\n" + + " │ │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: HDDVB\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ NOT\n" + - " │ │ │ │ │ │ │ └─ g3yxs.TUV25:2 IS NULL\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (24-31)\n" + - " │ │ │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: YYBCX\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: TUPLE(ism.PRUV2:4)\n" + - " │ │ │ │ │ ├─ right-key: TUPLE(nhmxw.id:0!null)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ ├─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (24-31)\n" + + " │ │ │ │ │ │ │ └─ tableId: 5\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ keys: [g3yxs.id:0!null]\n" + + " │ │ │ │ │ │ ├─ colSet: (15-23)\n" + + " │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: HDDVB\n" + + " │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ keys: [ism.PRUV2:7]\n" + + " │ │ │ │ │ ├─ colSet: (32-41)\n" + + " │ │ │ │ │ ├─ tableId: 6\n" + " │ │ │ │ │ └─ Table\n" + " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ ├─ columns: [id nohhr]\n" + - " │ │ │ │ │ ├─ colSet: (32-41)\n" + - " │ │ │ │ │ └─ tableId: 6\n" + + " │ │ │ │ │ └─ columns: [id nohhr]\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -14008,7 +13407,7 @@ WHERE " │ │ │ └─ TableAlias(yqif4)\n" + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ keys: [ism.UJ6XY:1!null]\n" + + " │ │ │ ├─ keys: [ism.UJ6XY:4!null]\n" + " │ │ │ ├─ colSet: (59-68)\n" + " │ │ │ ├─ tableId: 8\n" + " │ │ │ └─ Table\n" + @@ -14017,7 +13416,7 @@ WHERE " │ │ └─ TableAlias(yvhjz)\n" + " │ │ └─ IndexedTableAccess(NOXN3)\n" + " │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ ├─ keys: [ism.FV24E:0!null]\n" + + " │ │ ├─ keys: [ism.FV24E:3!null]\n" + " │ │ ├─ colSet: (69-78)\n" + " │ │ ├─ tableId: 9\n" + " │ │ └─ Table\n" + @@ -14130,29 +13529,24 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -14194,35 +13588,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2]\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + - " │ │ └─ keys: sn.BRQP2\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.GXLUB)\n" + - " │ ├─ right-key: (bs.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: ((fs.T4IBQ, fs.M6T2N, fs.BTXC5, fs.TUV25))\n" + " ├─ right-key: ((zmspr.T4IBQ, zmspr.M6T2N, zmspr.BTXC5, zmspr.TUV25))\n" + @@ -14246,35 +13637,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2]\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + - " │ │ └─ keys: sn.BRQP2\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.GXLUB)\n" + - " │ ├─ right-key: (bs.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: (cld.BDNYB, cld.M22QN)\n" + " ├─ right-key: (p4pjz.LWQ6O, p4pjz.NTOFG)\n" + @@ -14346,29 +13734,24 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -14483,29 +13866,24 @@ WHERE " │ │ │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -14547,35 +13925,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2]\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + - " │ │ └─ keys: sn.BRQP2\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.GXLUB)\n" + - " │ ├─ right-key: (bs.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: ((fs.T4IBQ, fs.M6T2N, fs.BTXC5, fs.TUV25))\n" + " ├─ right-key: ((zmspr.T4IBQ, zmspr.M6T2N, zmspr.BTXC5, zmspr.TUV25))\n" + @@ -14599,35 +13974,32 @@ WHERE " │ ├─ cacheable: true\n" + " │ └─ Project\n" + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sn.id as BDNYB, mf.M22QN as M22QN]\n" + - " │ └─ HashJoin\n" + - " │ ├─ (bs.id = mf.GXLUB)\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(sn)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id brqp2]\n" + + " │ │ ├─ MergeJoin\n" + + " │ │ │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ │ │ ├─ TableAlias(bs)\n" + + " │ │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + + " │ │ │ └─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + " │ │ └─ TableAlias(mf)\n" + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.LUEVY]\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + " │ │ ├─ columns: [gxlub luevy m22qn]\n" + - " │ │ └─ keys: sn.BRQP2\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (mf.GXLUB)\n" + - " │ ├─ right-key: (bs.id)\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ └─ Filter\n" + - " │ ├─ (cla.FTQLQ HASH IN ('SQ1'))\n" + - " │ └─ TableAlias(cla)\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ftqlq]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ TableAlias(sn)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mf.LUEVY\n" + " └─ HashLookup\n" + " ├─ left-key: (cld.BDNYB, cld.M22QN)\n" + " ├─ right-key: (p4pjz.LWQ6O, p4pjz.NTOFG)\n" + @@ -14699,29 +14071,24 @@ WHERE " │ │ │ ├─ (yqif4.BRQP2 = ism.FV24E)\n" + " │ │ │ ├─ LeftOuterLookupJoin\n" + " │ │ │ │ ├─ (NOT((cpmfe.id = ism.FV24E)))\n" + - " │ │ │ │ ├─ LeftOuterHashJoin\n" + - " │ │ │ │ │ ├─ (nhmxw.id = ism.PRUV2)\n" + - " │ │ │ │ │ ├─ MergeJoin\n" + - " │ │ │ │ │ │ ├─ cmp: (ism.NZ4MQ = g3yxs.id)\n" + - " │ │ │ │ │ │ ├─ TableAlias(ism)\n" + - " │ │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + - " │ │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + - " │ │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ │ └─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + - " │ │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + - " │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(YYBCX)\n" + - " │ │ │ │ │ │ ├─ index: [YYBCX.id]\n" + - " │ │ │ │ │ │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + - " │ │ │ │ │ └─ HashLookup\n" + - " │ │ │ │ │ ├─ left-key: (ism.PRUV2)\n" + - " │ │ │ │ │ ├─ right-key: (nhmxw.id)\n" + - " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: WGSDC\n" + - " │ │ │ │ │ └─ columns: [id nohhr]\n" + + " │ │ │ │ ├─ LeftOuterLookupJoin\n" + + " │ │ │ │ │ ├─ LookupJoin\n" + + " │ │ │ │ │ │ ├─ Filter\n" + + " │ │ │ │ │ │ │ ├─ (NOT(g3yxs.TUV25 IS NULL))\n" + + " │ │ │ │ │ │ │ └─ TableAlias(g3yxs)\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YYBCX\n" + + " │ │ │ │ │ │ │ └─ columns: [id esfvy tuv25]\n" + + " │ │ │ │ │ │ └─ TableAlias(ism)\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ │ │ │ │ ├─ index: [HDDVB.NZ4MQ]\n" + + " │ │ │ │ │ │ ├─ columns: [fv24e uj6xy m22qn nz4mq pruv2]\n" + + " │ │ │ │ │ │ └─ keys: g3yxs.id\n" + + " │ │ │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(WGSDC)\n" + + " │ │ │ │ │ ├─ index: [WGSDC.id]\n" + + " │ │ │ │ │ ├─ columns: [id nohhr]\n" + + " │ │ │ │ │ └─ keys: ism.PRUV2\n" + " │ │ │ │ └─ TableAlias(cpmfe)\n" + " │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + " │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + @@ -15353,117 +14720,108 @@ ORDER BY cla.FTQLQ ASC`, ExpectedPlan: "Sort(cla.FTQLQ:0!null ASC nullsFirst)\n" + " └─ Distinct\n" + " └─ Project\n" + - " ├─ columns: [cla.FTQLQ:1!null]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id:1!null, cla.FTQLQ:2!null, cla.TUXML:3, cla.PAEF5:4, cla.RUCY4:5, cla.TPNJ6:6!null, cla.LBL53:7, cla.NB3QS:8, cla.EO7IV:9, cla.MUHJF:10, cla.FM34L:11, cla.TY5RF:12, cla.ZHTLH:13, cla.NPB7W:14, cla.SX3HH:15, cla.ISBNF:16, cla.YA7YB:17, cla.C5YKB:18, cla.QK7KT:19, cla.FFGE6:20, cla.FIIGJ:21, cla.SH3NC:22, cla.NTENA:23, cla.M4AUB:24, cla.X5AIR:25, cla.SAB6M:26, cla.G5QI5:27, cla.ZVQVD:28, cla.YKSSU:29, cla.FHCYT:30]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ cla.id:1!null\n" + - " │ └─ bs.IXUXU:0\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU:2]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ SemiLookupJoin\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id nfryn ixuxu fhcyt]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.GXLUB:1!null]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.GXLUB]\n" + - " │ │ ├─ keys: [bs.id:0!null]\n" + - " │ │ ├─ colSet: (35-51)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: HGMQ6\n" + - " │ │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB:1!null]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ ├─ keys: [bs.id:0!null]\n" + - " │ ├─ colSet: (52-59)\n" + - " │ ├─ tableId: 4\n" + - " │ └─ Table\n" + - " │ ├─ name: AMYXQ\n" + - " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(bs.IXUXU:0)\n" + - " ├─ right-key: TUPLE(cla.id:0!null)\n" + - " └─ TableAlias(cla)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: YK2GW\n" + - " └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " ├─ columns: [cla.FTQLQ:2!null]\n" + + " └─ LookupJoin\n" + + " ├─ Eq\n" + + " │ ├─ cla.id:1!null\n" + + " │ └─ bs.IXUXU:0\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU:2]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ SemiLookupJoin\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id nfryn ixuxu fhcyt]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [hgmq6.GXLUB:1!null]\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ ├─ keys: [bs.id:0!null]\n" + + " │ │ ├─ colSet: (35-51)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: HGMQ6\n" + + " │ │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB:1!null]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ ├─ keys: [bs.id:0!null]\n" + + " │ ├─ colSet: (52-59)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: AMYXQ\n" + + " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " ├─ keys: [bs.IXUXU:0]\n" + + " ├─ colSet: (1-30)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: YK2GW\n" + + " └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + "", ExpectedEstimates: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + - " ├─ (cla.id = bs.IXUXU)\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ SemiLookupJoin\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ └─ name: THNTS\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.GXLUB]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.GXLUB]\n" + - " │ │ └─ keys: bs.id\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ └─ keys: bs.id\n" + - " └─ HashLookup\n" + - " ├─ left-key: (bs.IXUXU)\n" + - " ├─ right-key: (cla.id)\n" + - " └─ TableAlias(cla)\n" + - " └─ Table\n" + - " └─ name: YK2GW\n" + + " └─ LookupJoin\n" + + " ├─ (cla.id = bs.IXUXU)\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ SemiLookupJoin\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: THNTS\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [hgmq6.GXLUB]\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ └─ keys: bs.id\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " └─ keys: bs.IXUXU\n" + "", ExpectedAnalysis: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + - " ├─ (cla.id = bs.IXUXU)\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ SemiLookupJoin\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ └─ name: THNTS\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [hgmq6.GXLUB]\n" + - " │ │ └─ IndexedTableAccess(HGMQ6)\n" + - " │ │ ├─ index: [HGMQ6.GXLUB]\n" + - " │ │ └─ keys: bs.id\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ └─ keys: bs.id\n" + - " └─ HashLookup\n" + - " ├─ left-key: (bs.IXUXU)\n" + - " ├─ right-key: (cla.id)\n" + - " └─ TableAlias(cla)\n" + - " └─ Table\n" + - " └─ name: YK2GW\n" + + " └─ LookupJoin\n" + + " ├─ (cla.id = bs.IXUXU)\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ SemiLookupJoin\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: THNTS\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [hgmq6.GXLUB]\n" + + " │ │ └─ IndexedTableAccess(HGMQ6)\n" + + " │ │ ├─ index: [HGMQ6.GXLUB]\n" + + " │ │ └─ keys: bs.id\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ └─ keys: bs.id\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " └─ keys: bs.IXUXU\n" + "", }, { @@ -15479,93 +14837,85 @@ ORDER BY cla.FTQLQ ASC`, ExpectedPlan: "Sort(cla.FTQLQ:0!null ASC nullsFirst)\n" + " └─ Distinct\n" + " └─ Project\n" + - " ├─ columns: [cla.FTQLQ:4!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ mf.GXLUB:0!null\n" + - " │ └─ bs.id:1!null\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [gxlub]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(mf.GXLUB:0!null)\n" + - " ├─ right-key: TUPLE(bs.id:0!null)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ bs.IXUXU:2\n" + - " │ └─ cla.id:3!null\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (18-21)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: THNTS\n" + - " │ └─ columns: [id ixuxu]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (22-51)\n" + - " ├─ tableId: 3\n" + - " └─ Table\n" + - " ├─ name: YK2GW\n" + - " └─ columns: [id ftqlq]\n" + + " ├─ columns: [cla.FTQLQ:3!null]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: Eq\n" + + " │ │ ├─ bs.IXUXU:1\n" + + " │ │ └─ cla.id:2!null\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-21)\n" + + " │ │ ├─ tableId: 2\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: THNTS\n" + + " │ │ └─ columns: [id ixuxu]\n" + + " │ └─ TableAlias(cla)\n" + + " │ └─ IndexedTableAccess(YK2GW)\n" + + " │ ├─ index: [YK2GW.id]\n" + + " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ colSet: (22-51)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Table\n" + + " │ ├─ name: YK2GW\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ keys: [bs.id:0!null]\n" + + " ├─ colSet: (1-17)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: HGMQ6\n" + + " └─ columns: [gxlub]\n" + "", ExpectedEstimates: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ HashJoin\n" + - " ├─ (mf.GXLUB = bs.id)\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [gxlub]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (bs.IXUXU = cla.id)\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ixuxu]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ftqlq]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ columns: [id ixuxu]\n" + + " │ └─ TableAlias(cla)\n" + + " │ └─ IndexedTableAccess(YK2GW)\n" + + " │ ├─ index: [YK2GW.id]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ columns: [gxlub]\n" + + " └─ keys: bs.id\n" + "", ExpectedAnalysis: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ HashJoin\n" + - " ├─ (mf.GXLUB = bs.id)\n" + - " ├─ TableAlias(mf)\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [gxlub]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (mf.GXLUB)\n" + - " ├─ right-key: (bs.id)\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (bs.IXUXU = cla.id)\n" + - " ├─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [id ixuxu]\n" + - " └─ TableAlias(cla)\n" + - " └─ IndexedTableAccess(YK2GW)\n" + - " ├─ index: [YK2GW.id]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ftqlq]\n" + + " └─ LookupJoin\n" + + " ├─ MergeJoin\n" + + " │ ├─ cmp: (bs.IXUXU = cla.id)\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ columns: [id ixuxu]\n" + + " │ └─ TableAlias(cla)\n" + + " │ └─ IndexedTableAccess(YK2GW)\n" + + " │ ├─ index: [YK2GW.id]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(mf)\n" + + " └─ IndexedTableAccess(HGMQ6)\n" + + " ├─ index: [HGMQ6.GXLUB]\n" + + " ├─ columns: [gxlub]\n" + + " └─ keys: bs.id\n" + "", }, { @@ -15580,94 +14930,85 @@ ORDER BY cla.FTQLQ ASC`, ExpectedPlan: "Sort(cla.FTQLQ:0!null ASC nullsFirst)\n" + " └─ Distinct\n" + " └─ Project\n" + - " ├─ columns: [cla.FTQLQ:1!null]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id:1!null, cla.FTQLQ:2!null, cla.TUXML:3, cla.PAEF5:4, cla.RUCY4:5, cla.TPNJ6:6!null, cla.LBL53:7, cla.NB3QS:8, cla.EO7IV:9, cla.MUHJF:10, cla.FM34L:11, cla.TY5RF:12, cla.ZHTLH:13, cla.NPB7W:14, cla.SX3HH:15, cla.ISBNF:16, cla.YA7YB:17, cla.C5YKB:18, cla.QK7KT:19, cla.FFGE6:20, cla.FIIGJ:21, cla.SH3NC:22, cla.NTENA:23, cla.M4AUB:24, cla.X5AIR:25, cla.SAB6M:26, cla.G5QI5:27, cla.ZVQVD:28, cla.YKSSU:29, cla.FHCYT:30]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ cla.id:1!null\n" + - " │ └─ bs.IXUXU:0\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU:2]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ ProcessTable\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id nfryn ixuxu fhcyt]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB:1!null]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ ├─ keys: [bs.id:0!null]\n" + - " │ ├─ colSet: (35-42)\n" + - " │ ├─ tableId: 3\n" + - " │ └─ Table\n" + - " │ ├─ name: AMYXQ\n" + - " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(bs.IXUXU:0)\n" + - " ├─ right-key: TUPLE(cla.id:0!null)\n" + - " └─ TableAlias(cla)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: YK2GW\n" + - " └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " ├─ columns: [cla.FTQLQ:2!null]\n" + + " └─ LookupJoin\n" + + " ├─ Eq\n" + + " │ ├─ cla.id:1!null\n" + + " │ └─ bs.IXUXU:0\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU:2]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ ProcessTable\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: THNTS\n" + + " │ │ └─ columns: [id nfryn ixuxu fhcyt]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB:1!null]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ ├─ keys: [bs.id:0!null]\n" + + " │ ├─ colSet: (35-42)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Table\n" + + " │ ├─ name: AMYXQ\n" + + " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " ├─ keys: [bs.IXUXU:0]\n" + + " ├─ colSet: (1-30)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: YK2GW\n" + + " └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + "", ExpectedEstimates: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + - " ├─ (cla.id = bs.IXUXU)\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ Table\n" + - " │ │ └─ name: THNTS\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ └─ keys: bs.id\n" + - " └─ HashLookup\n" + - " ├─ left-key: (bs.IXUXU)\n" + - " ├─ right-key: (cla.id)\n" + - " └─ TableAlias(cla)\n" + - " └─ Table\n" + - " └─ name: YK2GW\n" + + " └─ LookupJoin\n" + + " ├─ (cla.id = bs.IXUXU)\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ Table\n" + + " │ │ └─ name: THNTS\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ └─ keys: bs.id\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " └─ keys: bs.IXUXU\n" + "", ExpectedAnalysis: "Sort(cla.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [cla.FTQLQ]\n" + - " └─ Project\n" + - " ├─ columns: [cla.id, cla.FTQLQ, cla.TUXML, cla.PAEF5, cla.RUCY4, cla.TPNJ6, cla.LBL53, cla.NB3QS, cla.EO7IV, cla.MUHJF, cla.FM34L, cla.TY5RF, cla.ZHTLH, cla.NPB7W, cla.SX3HH, cla.ISBNF, cla.YA7YB, cla.C5YKB, cla.QK7KT, cla.FFGE6, cla.FIIGJ, cla.SH3NC, cla.NTENA, cla.M4AUB, cla.X5AIR, cla.SAB6M, cla.G5QI5, cla.ZVQVD, cla.YKSSU, cla.FHCYT]\n" + - " └─ HashJoin\n" + - " ├─ (cla.id = bs.IXUXU)\n" + - " ├─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [bs.IXUXU]\n" + - " │ └─ SemiLookupJoin\n" + - " │ ├─ TableAlias(bs)\n" + - " │ │ └─ Table\n" + - " │ │ └─ name: THNTS\n" + - " │ └─ Project\n" + - " │ ├─ columns: [amyxq.GXLUB]\n" + - " │ └─ IndexedTableAccess(AMYXQ)\n" + - " │ ├─ index: [AMYXQ.GXLUB]\n" + - " │ └─ keys: bs.id\n" + - " └─ HashLookup\n" + - " ├─ left-key: (bs.IXUXU)\n" + - " ├─ right-key: (cla.id)\n" + - " └─ TableAlias(cla)\n" + - " └─ Table\n" + - " └─ name: YK2GW\n" + + " └─ LookupJoin\n" + + " ├─ (cla.id = bs.IXUXU)\n" + + " ├─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [bs.IXUXU]\n" + + " │ └─ SemiLookupJoin\n" + + " │ ├─ TableAlias(bs)\n" + + " │ │ └─ Table\n" + + " │ │ └─ name: THNTS\n" + + " │ └─ Project\n" + + " │ ├─ columns: [amyxq.GXLUB]\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.GXLUB]\n" + + " │ └─ keys: bs.id\n" + + " └─ TableAlias(cla)\n" + + " └─ IndexedTableAccess(YK2GW)\n" + + " ├─ index: [YK2GW.id]\n" + + " └─ keys: bs.IXUXU\n" + "", }, { @@ -15681,63 +15022,52 @@ ORDER BY ci.FTQLQ`, ExpectedPlan: "Sort(ci.FTQLQ:0!null ASC nullsFirst)\n" + " └─ Distinct\n" + " └─ Project\n" + - " ├─ columns: [ci.FTQLQ:2!null]\n" + - " └─ MergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ ct.FZ2R5:0!null\n" + - " │ └─ ci.id:1!null\n" + - " ├─ TableAlias(ct)\n" + - " │ └─ IndexedTableAccess(FLQLP)\n" + - " │ ├─ index: [FLQLP.FZ2R5]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (1-12)\n" + - " │ ├─ tableId: 1\n" + + " ├─ columns: [ci.FTQLQ:1!null]\n" + + " └─ LookupJoin\n" + + " ├─ TableAlias(ci)\n" + + " │ └─ ProcessTable\n" + " │ └─ Table\n" + - " │ ├─ name: FLQLP\n" + - " │ └─ columns: [fz2r5]\n" + - " └─ TableAlias(ci)\n" + - " └─ IndexedTableAccess(JDLNA)\n" + - " ├─ index: [JDLNA.id]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (13-17)\n" + - " ├─ tableId: 2\n" + + " │ ├─ name: JDLNA\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(ct)\n" + + " └─ IndexedTableAccess(FLQLP)\n" + + " ├─ index: [FLQLP.FZ2R5]\n" + + " ├─ keys: [ci.id:0!null]\n" + + " ├─ colSet: (1-12)\n" + + " ├─ tableId: 1\n" + " └─ Table\n" + - " ├─ name: JDLNA\n" + - " └─ columns: [id ftqlq]\n" + + " ├─ name: FLQLP\n" + + " └─ columns: [fz2r5]\n" + "", ExpectedEstimates: "Sort(ci.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ci.FTQLQ]\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (ct.FZ2R5 = ci.id)\n" + - " ├─ TableAlias(ct)\n" + - " │ └─ IndexedTableAccess(FLQLP)\n" + - " │ ├─ index: [FLQLP.FZ2R5]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [fz2r5]\n" + - " └─ TableAlias(ci)\n" + - " └─ IndexedTableAccess(JDLNA)\n" + - " ├─ index: [JDLNA.id]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ftqlq]\n" + + " └─ LookupJoin\n" + + " ├─ TableAlias(ci)\n" + + " │ └─ Table\n" + + " │ ├─ name: JDLNA\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(ct)\n" + + " └─ IndexedTableAccess(FLQLP)\n" + + " ├─ index: [FLQLP.FZ2R5]\n" + + " ├─ columns: [fz2r5]\n" + + " └─ keys: ci.id\n" + "", ExpectedAnalysis: "Sort(ci.FTQLQ ASC)\n" + " └─ Distinct\n" + " └─ Project\n" + " ├─ columns: [ci.FTQLQ]\n" + - " └─ MergeJoin\n" + - " ├─ cmp: (ct.FZ2R5 = ci.id)\n" + - " ├─ TableAlias(ct)\n" + - " │ └─ IndexedTableAccess(FLQLP)\n" + - " │ ├─ index: [FLQLP.FZ2R5]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [fz2r5]\n" + - " └─ TableAlias(ci)\n" + - " └─ IndexedTableAccess(JDLNA)\n" + - " ├─ index: [JDLNA.id]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [id ftqlq]\n" + + " └─ LookupJoin\n" + + " ├─ TableAlias(ci)\n" + + " │ └─ Table\n" + + " │ ├─ name: JDLNA\n" + + " │ └─ columns: [id ftqlq]\n" + + " └─ TableAlias(ct)\n" + + " └─ IndexedTableAccess(FLQLP)\n" + + " ├─ index: [FLQLP.FZ2R5]\n" + + " ├─ columns: [fz2r5]\n" + + " └─ keys: ci.id\n" + "", }, { @@ -15825,10 +15155,7 @@ ORDER BY LUEVY`, " │ ├─ ybbg5.DZLIM:13!null\n" + " │ └─ AX25H (longtext)\n" + " │ THEN r70 (longtext) WHEN ybbg5.DZLIM:13!null IS NULL THEN (longtext) ELSE ybbg5.DZLIM:13!null END->UBUYI:0, ypgda.FUG6J:9->FUG6J:0, ypgda.NF5AM:10->NF5AM:0, ypgda.FRCVC:11!null->FRCVC:0]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ Eq\n" + - " │ ├─ ypgda.I3L5A:8\n" + - " │ └─ ybbg5.id:12!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: ypgda\n" + " │ ├─ outerVisibility: false\n" + @@ -15892,22 +15219,22 @@ ORDER BY LUEVY`, " │ └─ Table\n" + " │ ├─ name: TNMXI\n" + " │ └─ columns: [id dzlim f3yue]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(ypgda.I3L5A:8)\n" + - " ├─ right-key: TUPLE(ybbg5.id:0!null)\n" + - " └─ TableAlias(ybbg5)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: XGSJM\n" + - " └─ columns: [id dzlim f3yue]\n" + + " └─ TableAlias(ybbg5)\n" + + " └─ IndexedTableAccess(XGSJM)\n" + + " ├─ index: [XGSJM.id]\n" + + " ├─ keys: [ypgda.I3L5A:8]\n" + + " ├─ colSet: (53-55)\n" + + " ├─ tableId: 5\n" + + " └─ Table\n" + + " ├─ name: XGSJM\n" + + " └─ columns: [id dzlim f3yue]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + " └─ Sort(LUEVY ASC)\n" + " └─ Project\n" + " ├─ columns: [ypgda.LUEVY, ypgda.TW55N, ypgda.IYDZV, ypgda.QRQXW, ypgda.CAECS, ypgda.CJLLY, ypgda.SHP7H, ypgda.HARAZ, ypgda.I3L5A, ypgda.FUG6J, ypgda.NF5AM, ypgda.FRCVC, ybbg5.id, ybbg5.DZLIM, ybbg5.F3YUE, ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (ypgda.I3L5A = ybbg5.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: ypgda\n" + " │ ├─ outerVisibility: false\n" + @@ -15947,21 +15274,18 @@ ORDER BY LUEVY`, " │ └─ IndexedTableAccess(TNMXI)\n" + " │ ├─ index: [TNMXI.id]\n" + " │ └─ keys: nd.HPCMS\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ypgda.I3L5A)\n" + - " ├─ right-key: (ybbg5.id)\n" + - " └─ TableAlias(ybbg5)\n" + - " └─ Table\n" + - " ├─ name: XGSJM\n" + - " └─ columns: [id dzlim f3yue]\n" + + " └─ TableAlias(ybbg5)\n" + + " └─ IndexedTableAccess(XGSJM)\n" + + " ├─ index: [XGSJM.id]\n" + + " ├─ columns: [id dzlim f3yue]\n" + + " └─ keys: ypgda.I3L5A\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + " └─ Sort(LUEVY ASC)\n" + " └─ Project\n" + " ├─ columns: [ypgda.LUEVY, ypgda.TW55N, ypgda.IYDZV, ypgda.QRQXW, ypgda.CAECS, ypgda.CJLLY, ypgda.SHP7H, ypgda.HARAZ, ypgda.I3L5A, ypgda.FUG6J, ypgda.NF5AM, ypgda.FRCVC, ybbg5.id, ybbg5.DZLIM, ybbg5.F3YUE, ypgda.LUEVY as LUEVY, ypgda.TW55N as TW55N, ypgda.IYDZV as IYDZV, '' as IIISV, ypgda.QRQXW as QRQXW, ypgda.CAECS as CAECS, ypgda.CJLLY as CJLLY, ypgda.SHP7H as SHP7H, ypgda.HARAZ as HARAZ, '' as ECUWU, '' as LDMO7, CASE WHEN (ybbg5.DZLIM = 'HGUEM') THEN 's30' WHEN (ybbg5.DZLIM = 'YUHMV') THEN 'r90' WHEN (ybbg5.DZLIM = 'T3JIU') THEN 'r50' WHEN (ybbg5.DZLIM = 's') THEN 's' WHEN (ybbg5.DZLIM = 'AX25H') THEN 'r70' WHEN ybbg5.DZLIM IS NULL THEN '' ELSE ybbg5.DZLIM END as UBUYI, ypgda.FUG6J as FUG6J, ypgda.NF5AM as NF5AM, ypgda.FRCVC as FRCVC]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ (ypgda.I3L5A = ybbg5.id)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: ypgda\n" + " │ ├─ outerVisibility: false\n" + @@ -16001,13 +15325,11 @@ ORDER BY LUEVY`, " │ └─ IndexedTableAccess(TNMXI)\n" + " │ ├─ index: [TNMXI.id]\n" + " │ └─ keys: nd.HPCMS\n" + - " └─ HashLookup\n" + - " ├─ left-key: (ypgda.I3L5A)\n" + - " ├─ right-key: (ybbg5.id)\n" + - " └─ TableAlias(ybbg5)\n" + - " └─ Table\n" + - " ├─ name: XGSJM\n" + - " └─ columns: [id dzlim f3yue]\n" + + " └─ TableAlias(ybbg5)\n" + + " └─ IndexedTableAccess(XGSJM)\n" + + " ├─ index: [XGSJM.id]\n" + + " ├─ columns: [id dzlim f3yue]\n" + + " └─ keys: ypgda.I3L5A\n" + "", }, { @@ -17518,23 +16840,16 @@ WHERE " │ │ └─ Table\n" + " │ │ ├─ name: SISUT\n" + " │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ nd.XQDYT:20!null\n" + - " │ │ └─ ybbg5.id:28!null\n" + + " │ └─ LookupJoin\n" + " │ ├─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.XQDYT]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (20-36)\n" + - " │ │ ├─ tableId: 3\n" + + " │ │ └─ ProcessTable\n" + " │ │ └─ Table\n" + " │ │ ├─ name: E2I7U\n" + " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + " │ └─ TableAlias(ybbg5)\n" + " │ └─ IndexedTableAccess(XGSJM)\n" + " │ ├─ index: [XGSJM.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ keys: [nd.XQDYT:20!null]\n" + " │ ├─ colSet: (37-39)\n" + " │ ├─ tableId: 4\n" + " │ └─ Table\n" + @@ -19669,10 +18984,7 @@ WHERE " │ │ ├─ nk7fp.VYO5E:1\n" + " │ │ └─ N/A (longtext)\n" + " │ │ THEN NULL (null) ELSE nk7fp.VYO5E:1 END->VYO5E:0, nt.id:7!null->DKCAJ:0, nt.DZLIM:8!null->F35MI:0]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ nt.id:7!null\n" + - " │ │ └─ nd.DKCAJ:4!null\n" + + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ Or\n" + " │ │ │ ├─ AND\n" + @@ -19747,15 +19059,15 @@ WHERE " │ │ └─ Table\n" + " │ │ ├─ name: E2I7U\n" + " │ │ └─ columns: [dkcaj tw55n zh72s]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(nd.DKCAJ:4!null)\n" + - " │ ├─ right-key: TUPLE(nt.id:0!null)\n" + - " │ └─ TableAlias(nt)\n" + + " │ └─ TableAlias(nt)\n" + + " │ └─ IndexedTableAccess(F35MI)\n" + + " │ ├─ index: [F35MI.id]\n" + + " │ ├─ keys: [nd.DKCAJ:4!null]\n" + + " │ ├─ colSet: (49-51)\n" + + " │ ├─ tableId: 6\n" + " │ └─ Table\n" + " │ ├─ name: F35MI\n" + - " │ ├─ columns: [id dzlim]\n" + - " │ ├─ colSet: (49-51)\n" + - " │ └─ tableId: 6\n" + + " │ └─ columns: [id dzlim]\n" + " └─ BEGIN .. END\n" + " ├─ IF BLOCK\n" + " │ └─ IF(Or\n" + diff --git a/enginetest/queries/query_plans.go b/enginetest/queries/query_plans.go index 91cab5ffea..3f6d00bf9f 100644 --- a/enginetest/queries/query_plans.go +++ b/enginetest/queries/query_plans.go @@ -446,21 +446,15 @@ From xy;`, " │ ├─ columns: [xy.x:3!null, xy.y:4]\n" + " │ └─ Filter\n" + " │ ├─ uv.u:5!null IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ xy.x:3!null\n" + - " │ │ └─ uv.u:5!null\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ ├─ name: xy\n" + + " │ │ ├─ columns: [x y]\n" + " │ │ ├─ colSet: (3,4)\n" + - " │ │ ├─ tableId: 2\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: xy\n" + - " │ │ └─ columns: [x y]\n" + + " │ │ └─ tableId: 2\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ keys: [xy.x:3!null]\n" + " │ ├─ colSet: (5,6)\n" + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + @@ -479,21 +473,15 @@ From xy;`, " │ ├─ columns: [xy.x:2!null, xy.y:3]\n" + " │ └─ Filter\n" + " │ ├─ uv.u:4!null IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ xy.x:2!null\n" + - " │ │ └─ uv.u:4!null\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ ├─ name: xy\n" + + " │ │ ├─ columns: [x y]\n" + " │ │ ├─ colSet: (3,4)\n" + - " │ │ ├─ tableId: 2\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: xy\n" + - " │ │ └─ columns: [x y]\n" + + " │ │ └─ tableId: 2\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ keys: [xy.x:2!null]\n" + " │ ├─ colSet: (5,6)\n" + " │ ├─ tableId: 3\n" + " │ └─ Table\n" + @@ -516,15 +504,13 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (xy.x = uv.u)\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: xy\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y, CASE WHEN xy.x IS NULL THEN 0 WHEN InSubquery\n" + @@ -537,15 +523,13 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (xy.x = uv.u)\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: xy\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -561,15 +545,13 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (xy.x = uv.u)\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: xy\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y, CASE WHEN xy.x IS NULL THEN 0 WHEN InSubquery\n" + @@ -582,15 +564,13 @@ From xy;`, " │ ├─ columns: [xy.x, xy.y]\n" + " │ └─ Filter\n" + " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (xy.x = uv.u)\n" + - " │ ├─ IndexedTableAccess(xy)\n" + - " │ │ ├─ index: [xy.x]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: xy\n" + " │ └─ IndexedTableAccess(uv)\n" + " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -1117,75 +1097,86 @@ WHERE " └─ GroupBy\n" + " ├─ select: COUNTDISTINCT([stock1.s_i_id])\n" + " ├─ group: \n" + - " └─ HashJoin\n" + + " └─ LookupJoin\n" + " ├─ Eq\n" + - " │ ├─ stock1.s_i_id:4!null\n" + - " │ └─ order_line1.ol_i_id:3\n" + - " ├─ IndexedTableAccess(order_line1)\n" + - " │ ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + - " │ ├─ static: [{[5, 5], [2, 2], [2981, 3001), [NULL, ∞)}]\n" + - " │ ├─ colSet: (1-10)\n" + - " │ ├─ tableId: 1\n" + - " │ └─ Table\n" + - " │ ├─ name: order_line1\n" + - " │ └─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(order_line1.ol_i_id:3)\n" + - " ├─ right-key: TUPLE(stock1.s_i_id:0!null)\n" + - " └─ Filter\n" + - " ├─ LessThan\n" + - " │ ├─ stock1.s_quantity:2\n" + - " │ └─ 15 (smallint)\n" + - " └─ IndexedTableAccess(stock1)\n" + - " ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + - " ├─ static: [{[5, 5], [NULL, ∞)}]\n" + - " ├─ colSet: (11-27)\n" + - " ├─ tableId: 2\n" + - " └─ Table\n" + - " ├─ name: stock1\n" + - " └─ columns: [s_i_id s_w_id s_quantity]\n" + + " │ ├─ stock1.s_i_id:0!null\n" + + " │ └─ order_line1.ol_i_id:6\n" + + " ├─ Filter\n" + + " │ ├─ LessThan\n" + + " │ │ ├─ stock1.s_quantity:2\n" + + " │ │ └─ 15 (smallint)\n" + + " │ └─ IndexedTableAccess(stock1)\n" + + " │ ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + + " │ ├─ static: [{[5, 5], [NULL, ∞)}]\n" + + " │ ├─ colSet: (11-27)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: stock1\n" + + " │ └─ columns: [s_i_id s_w_id s_quantity]\n" + + " └─ Filter\n" + + " ├─ AND\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ order_line1.ol_w_id:2!null\n" + + " │ │ │ │ └─ 5 (smallint)\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ order_line1.ol_d_id:1!null\n" + + " │ │ │ └─ 2 (tinyint)\n" + + " │ │ └─ LessThan\n" + + " │ │ ├─ order_line1.ol_o_id:0!null\n" + + " │ │ └─ 3001 (int)\n" + + " │ └─ GreaterThanOrEqual\n" + + " │ ├─ order_line1.ol_o_id:0!null\n" + + " │ └─ 2981 (int)\n" + + " └─ IndexedTableAccess(order_line1)\n" + + " ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + + " ├─ keys: [5 (smallint) 2 (tinyint)]\n" + + " ├─ colSet: (1-10)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: order_line1\n" + + " └─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [countdistinct([stock1.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + " ├─ SelectDeps(COUNTDISTINCT([stock1.s_i_id]))\n" + " ├─ Grouping()\n" + - " └─ HashJoin\n" + + " └─ LookupJoin\n" + " ├─ (stock1.s_i_id = order_line1.ol_i_id)\n" + - " ├─ IndexedTableAccess(order_line1)\n" + - " │ ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + - " │ ├─ filters: [{[5, 5], [2, 2], [2981, 3001), [NULL, ∞)}]\n" + - " │ └─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (order_line1.ol_i_id)\n" + - " ├─ right-key: (stock1.s_i_id)\n" + - " └─ Filter\n" + - " ├─ (stock1.s_quantity < 15)\n" + - " └─ IndexedTableAccess(stock1)\n" + - " ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + - " ├─ filters: [{[5, 5], [NULL, ∞)}]\n" + - " └─ columns: [s_i_id s_w_id s_quantity]\n" + + " ├─ Filter\n" + + " │ ├─ (stock1.s_quantity < 15)\n" + + " │ └─ IndexedTableAccess(stock1)\n" + + " │ ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + + " │ ├─ filters: [{[5, 5], [NULL, ∞)}]\n" + + " │ └─ columns: [s_i_id s_w_id s_quantity]\n" + + " └─ Filter\n" + + " ├─ ((((order_line1.ol_w_id = 5) AND (order_line1.ol_d_id = 2)) AND (order_line1.ol_o_id < 3001)) AND (order_line1.ol_o_id >= 2981))\n" + + " └─ IndexedTableAccess(order_line1)\n" + + " ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + + " ├─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + + " └─ keys: 5, 2\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [countdistinct([stock1.s_i_id]) as COUNT(DISTINCT (s_i_id))]\n" + " └─ GroupBy\n" + " ├─ SelectDeps(COUNTDISTINCT([stock1.s_i_id]))\n" + " ├─ Grouping()\n" + - " └─ HashJoin\n" + + " └─ LookupJoin\n" + " ├─ (stock1.s_i_id = order_line1.ol_i_id)\n" + - " ├─ IndexedTableAccess(order_line1)\n" + - " │ ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + - " │ ├─ filters: [{[5, 5], [2, 2], [2981, 3001), [NULL, ∞)}]\n" + - " │ └─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (order_line1.ol_i_id)\n" + - " ├─ right-key: (stock1.s_i_id)\n" + - " └─ Filter\n" + - " ├─ (stock1.s_quantity < 15)\n" + - " └─ IndexedTableAccess(stock1)\n" + - " ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + - " ├─ filters: [{[5, 5], [NULL, ∞)}]\n" + - " └─ columns: [s_i_id s_w_id s_quantity]\n" + + " ├─ Filter\n" + + " │ ├─ (stock1.s_quantity < 15)\n" + + " │ └─ IndexedTableAccess(stock1)\n" + + " │ ├─ index: [stock1.s_w_id,stock1.s_i_id]\n" + + " │ ├─ filters: [{[5, 5], [NULL, ∞)}]\n" + + " │ └─ columns: [s_i_id s_w_id s_quantity]\n" + + " └─ Filter\n" + + " ├─ ((((order_line1.ol_w_id = 5) AND (order_line1.ol_d_id = 2)) AND (order_line1.ol_o_id < 3001)) AND (order_line1.ol_o_id >= 2981))\n" + + " └─ IndexedTableAccess(order_line1)\n" + + " ├─ index: [order_line1.ol_w_id,order_line1.ol_d_id,order_line1.ol_o_id,order_line1.ol_number]\n" + + " ├─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]\n" + + " └─ keys: 5, 2\n" + "", }, { @@ -2582,10 +2573,7 @@ Select * from ( Query: `select * from uv join (select /*+ JOIN_ORDER(ab, xy) */ * from ab join xy on y = a) r on u = r.a`, ExpectedPlan: "Project\n" + " ├─ columns: [uv.u:4!null, uv.v:5, r.a:0!null, r.b:1, r.x:2!null, r.y:3]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ uv.u:4!null\n" + - " │ └─ r.a:0!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: r\n" + " │ ├─ outerVisibility: false\n" + @@ -2613,18 +2601,18 @@ Select * from ( " │ └─ Table\n" + " │ ├─ name: xy\n" + " │ └─ columns: [x y]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(r.a:0!null)\n" + - " ├─ right-key: TUPLE(uv.u:0!null)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: uv\n" + - " └─ columns: [u v]\n" + + " └─ IndexedTableAccess(uv)\n" + + " ├─ index: [uv.u]\n" + + " ├─ keys: [r.a:0!null]\n" + + " ├─ colSet: (1,2)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: uv\n" + + " └─ columns: [u v]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [uv.u, uv.v, r.a, r.b, r.x, r.y]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100)\n" + - " ├─ (uv.u = r.a)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: r\n" + " │ ├─ outerVisibility: false\n" + @@ -2640,17 +2628,14 @@ Select * from ( " │ ├─ index: [xy.y]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [x y]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (r.a)\n" + - " ├─ right-key: (uv.u)\n" + - " └─ Table\n" + - " ├─ name: uv\n" + - " └─ columns: [u v]\n" + + " └─ IndexedTableAccess(uv)\n" + + " ├─ index: [uv.u]\n" + + " ├─ columns: [u v]\n" + + " └─ keys: r.a\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [uv.u, uv.v, r.a, r.b, r.x, r.y]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100) (actual rows=4 loops=1)\n" + - " ├─ (uv.u = r.a)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5) (actual rows=4 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: r\n" + " │ ├─ outerVisibility: false\n" + @@ -2666,12 +2651,10 @@ Select * from ( " │ ├─ index: [xy.y]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [x y]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (r.a)\n" + - " ├─ right-key: (uv.u)\n" + - " └─ Table\n" + - " ├─ name: uv\n" + - " └─ columns: [u v]\n" + + " └─ IndexedTableAccess(uv)\n" + + " ├─ index: [uv.u]\n" + + " ├─ columns: [u v]\n" + + " └─ keys: r.a\n" + "", }, { @@ -4740,10 +4723,7 @@ Select * from ( Query: `SELECT pk, u, v FROM one_pk JOIN (SELECT count(*) AS u, 123 AS v FROM emptytable) uv WHERE pk = u;`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:2!null, uv.u:0!null, uv.v:1!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ one_pk.pk:2!null\n" + - " │ └─ uv.u:0!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4756,18 +4736,18 @@ Select * from ( " │ └─ Project\n" + " │ ├─ columns: [emptytable.COUNT(1):0!null->COUNT(1):0]\n" + " │ └─ table_count(emptytable) as COUNT(1)\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(uv.u:0!null)\n" + - " ├─ right-key: TUPLE(one_pk.pk:0!null)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [uv.u:0!null]\n" + + " ├─ colSet: (1-6)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, uv.u, uv.v]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100)\n" + - " ├─ (one_pk.pk = uv.u)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4778,17 +4758,14 @@ Select * from ( " │ └─ Project\n" + " │ ├─ columns: [emptytable.COUNT(1) as COUNT(1)]\n" + " │ └─ table_count(emptytable) as COUNT(1)\n" + - " └─ HashLookup\n" + - " ├─ left-key: (uv.u)\n" + - " ├─ right-key: (one_pk.pk)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: uv.u\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, uv.u, uv.v]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100) (actual rows=1 loops=1)\n" + - " ├─ (one_pk.pk = uv.u)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5) (actual rows=1 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4799,22 +4776,17 @@ Select * from ( " │ └─ Project\n" + " │ ├─ columns: [emptytable.COUNT(1) as COUNT(1)]\n" + " │ └─ table_count(emptytable) as COUNT(1)\n" + - " └─ HashLookup\n" + - " ├─ left-key: (uv.u)\n" + - " ├─ right-key: (one_pk.pk)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: uv.u\n" + "", }, { Query: `SELECT pk, u, v FROM one_pk JOIN (SELECT count(*) AS u, 123 AS v FROM mytable WHERE false) uv WHERE pk = u;`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:2!null, uv.u:0!null, uv.v:1!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ one_pk.pk:2!null\n" + - " │ └─ uv.u:0!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4828,18 +4800,18 @@ Select * from ( " │ ├─ select: COUNT(1 (bigint))\n" + " │ ├─ group: \n" + " │ └─ EmptyTable\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(uv.u:0!null)\n" + - " ├─ right-key: TUPLE(one_pk.pk:0!null)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [uv.u:0!null]\n" + + " ├─ colSet: (1-6)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, uv.u, uv.v]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100)\n" + - " ├─ (one_pk.pk = uv.u)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4851,17 +4823,14 @@ Select * from ( " │ ├─ SelectDeps(COUNT(1))\n" + " │ ├─ Grouping()\n" + " │ └─ EmptyTable\n" + - " └─ HashLookup\n" + - " ├─ left-key: (uv.u)\n" + - " ├─ right-key: (one_pk.pk)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: uv.u\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, uv.u, uv.v]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100) (actual rows=1 loops=1)\n" + - " ├─ (one_pk.pk = uv.u)\n" + + " └─ LookupJoin (estimated cost=111.500 rows=5) (actual rows=1 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: uv\n" + " │ ├─ outerVisibility: false\n" + @@ -4873,12 +4842,10 @@ Select * from ( " │ ├─ SelectDeps(COUNT(1))\n" + " │ ├─ Grouping()\n" + " │ └─ EmptyTable\n" + - " └─ HashLookup\n" + - " ├─ left-key: (uv.u)\n" + - " ├─ right-key: (one_pk.pk)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: uv.u\n" + "", }, { @@ -5283,21 +5250,15 @@ inner join xy on a = x;`, " │ ├─ Eq\n" + " │ │ ├─ uv.u:2!null\n" + " │ │ └─ pq.p:4!null\n" + - " │ ├─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ ab.a:0!null\n" + - " │ │ │ └─ uv.u:2!null\n" + - " │ │ ├─ IndexedTableAccess(ab)\n" + - " │ │ │ ├─ index: [ab.a]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ LeftOuterLookupJoin\n" + + " │ │ ├─ Table\n" + + " │ │ │ ├─ name: ab\n" + + " │ │ │ ├─ columns: [a b]\n" + " │ │ │ ├─ colSet: (1,2)\n" + - " │ │ │ ├─ tableId: 1\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: ab\n" + - " │ │ │ └─ columns: [a b]\n" + + " │ │ │ └─ tableId: 1\n" + " │ │ └─ IndexedTableAccess(uv)\n" + " │ │ ├─ index: [uv.u]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ keys: [ab.a:0!null]\n" + " │ │ ├─ colSet: (3,4)\n" + " │ │ ├─ tableId: 2\n" + " │ │ └─ Table\n" + @@ -5327,14 +5288,12 @@ inner join xy on a = x;`, " │ ├─ columns: [ab.a, ab.b, uv.u, uv.v]\n" + " │ └─ SemiJoin\n" + " │ ├─ (uv.u = pq.p)\n" + - " │ ├─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: (ab.a = uv.u)\n" + - " │ │ ├─ IndexedTableAccess(ab)\n" + - " │ │ │ ├─ index: [ab.a]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ ├─ LeftOuterLookupJoin\n" + + " │ │ ├─ Table\n" + + " │ │ │ └─ name: ab\n" + " │ │ └─ IndexedTableAccess(uv)\n" + " │ │ ├─ index: [uv.u]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ keys: ab.a\n" + " │ └─ Table\n" + " │ ├─ name: pq\n" + " │ └─ columns: [p q]\n" + @@ -5353,14 +5312,12 @@ inner join xy on a = x;`, " │ ├─ columns: [ab.a, ab.b, uv.u, uv.v]\n" + " │ └─ SemiJoin\n" + " │ ├─ (uv.u = pq.p)\n" + - " │ ├─ LeftOuterMergeJoin\n" + - " │ │ ├─ cmp: (ab.a = uv.u)\n" + - " │ │ ├─ IndexedTableAccess(ab)\n" + - " │ │ │ ├─ index: [ab.a]\n" + - " │ │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ ├─ LeftOuterLookupJoin\n" + + " │ │ ├─ Table\n" + + " │ │ │ └─ name: ab\n" + " │ │ └─ IndexedTableAccess(uv)\n" + " │ │ ├─ index: [uv.u]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + + " │ │ └─ keys: ab.a\n" + " │ └─ Table\n" + " │ ├─ name: pq\n" + " │ └─ columns: [p q]\n" + @@ -5419,7 +5376,7 @@ where exists "", ExpectedEstimates: "Project\n" + " ├─ columns: [ab.a, ab.b]\n" + - " └─ LookupJoin (estimated cost=16.500 rows=5)\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ (ab.a = uv.u)\n" + " ├─ OrderedDistinct\n" + " │ └─ Project\n" + @@ -5440,7 +5397,7 @@ where exists "", ExpectedAnalysis: "Project\n" + " ├─ columns: [ab.a, ab.b]\n" + - " └─ LookupJoin (estimated cost=16.500 rows=5) (actual rows=4 loops=1)\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ (ab.a = uv.u)\n" + " ├─ OrderedDistinct\n" + " │ └─ Project\n" + @@ -5469,123 +5426,90 @@ select * from ) alias1 where exists (select * from pq where a = p) `, - ExpectedPlan: "Project\n" + - " ├─ columns: [alias1.a:0!null, alias1.b:1]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ alias1.a:0!null\n" + - " │ └─ pq.p:2!null\n" + - " ├─ SubqueryAlias\n" + - " │ ├─ name: alias1\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ ├─ colSet: (5,6)\n" + - " │ ├─ tableId: 3\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ab.a:0!null, ab.b:1]\n" + - " │ └─ Filter\n" + - " │ ├─ uv.u:2!null IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ ab.a:0!null\n" + - " │ │ └─ uv.u:2!null\n" + - " │ ├─ IndexedTableAccess(ab)\n" + - " │ │ ├─ index: [ab.a]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (1,2)\n" + - " │ │ ├─ tableId: 1\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: ab\n" + - " │ │ └─ columns: [a b]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [uv.u:0!null]\n" + - " │ └─ IndexedTableAccess(uv)\n" + - " │ ├─ index: [uv.u]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (3,4)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: uv\n" + - " │ └─ columns: [u v]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(alias1.a:0!null)\n" + - " ├─ right-key: TUPLE(pq.p:0!null)\n" + - " └─ Distinct\n" + - " └─ Project\n" + - " ├─ columns: [pq.p:0!null]\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: pq\n" + - " └─ columns: [p q]\n" + - "", - ExpectedEstimates: "Project\n" + - " ├─ columns: [alias1.a, alias1.b]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100)\n" + - " ├─ (alias1.a = pq.p)\n" + - " ├─ SubqueryAlias\n" + - " │ ├─ name: alias1\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ab.a, ab.b]\n" + - " │ └─ Filter\n" + - " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (ab.a = uv.u)\n" + - " │ ├─ IndexedTableAccess(ab)\n" + - " │ │ ├─ index: [ab.a]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [uv.u]\n" + - " │ └─ IndexedTableAccess(uv)\n" + - " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u v]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (alias1.a)\n" + - " ├─ right-key: (pq.p)\n" + - " └─ Distinct\n" + - " └─ Project\n" + - " ├─ columns: [pq.p]\n" + - " └─ Table\n" + - " ├─ name: pq\n" + - " └─ columns: [p q]\n" + + ExpectedPlan: "SemiLookupJoin\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: alias1\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a:0!null, ab.b:1]\n" + + " │ └─ Filter\n" + + " │ ├─ uv.u:2!null IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ ├─ name: ab\n" + + " │ │ ├─ columns: [a b]\n" + + " │ │ ├─ colSet: (1,2)\n" + + " │ │ └─ tableId: 1\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.u:0!null]\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ keys: [ab.a:0!null]\n" + + " │ ├─ colSet: (3,4)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: uv\n" + + " │ └─ columns: [u v]\n" + + " └─ IndexedTableAccess(pq)\n" + + " ├─ index: [pq.p]\n" + + " ├─ keys: [alias1.a:0!null]\n" + + " ├─ colSet: (7,8)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: pq\n" + + " └─ columns: [p q]\n" + "", - ExpectedAnalysis: "Project\n" + - " ├─ columns: [alias1.a, alias1.b]\n" + - " └─ HashJoin (estimated cost=114.000 rows=100) (actual rows=0 loops=1)\n" + - " ├─ (alias1.a = pq.p)\n" + - " ├─ SubqueryAlias\n" + - " │ ├─ name: alias1\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ab.a, ab.b]\n" + - " │ └─ Filter\n" + - " │ ├─ uv.u IS NULL\n" + - " │ └─ LeftOuterMergeJoin\n" + - " │ ├─ cmp: (ab.a = uv.u)\n" + - " │ ├─ IndexedTableAccess(ab)\n" + - " │ │ ├─ index: [ab.a]\n" + - " │ │ └─ filters: [{[NULL, ∞)}]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [uv.u]\n" + - " │ └─ IndexedTableAccess(uv)\n" + - " │ ├─ index: [uv.u]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [u v]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (alias1.a)\n" + - " ├─ right-key: (pq.p)\n" + - " └─ Distinct\n" + - " └─ Project\n" + - " ├─ columns: [pq.p]\n" + - " └─ Table\n" + - " ├─ name: pq\n" + - " └─ columns: [p q]\n" + + ExpectedEstimates: "SemiLookupJoin (estimated cost=111.500 rows=5)\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: alias1\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a, ab.b]\n" + + " │ └─ Filter\n" + + " │ ├─ uv.u IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: ab\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.u]\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u v]\n" + + " │ └─ keys: ab.a\n" + + " └─ IndexedTableAccess(pq)\n" + + " ├─ index: [pq.p]\n" + + " ├─ columns: [p q]\n" + + " └─ keys: alias1.a\n" + + "", + ExpectedAnalysis: "SemiLookupJoin (estimated cost=111.500 rows=5) (actual rows=0 loops=1)\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: alias1\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a, ab.b]\n" + + " │ └─ Filter\n" + + " │ ├─ uv.u IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: ab\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.u]\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u v]\n" + + " │ └─ keys: ab.a\n" + + " └─ IndexedTableAccess(pq)\n" + + " ├─ index: [pq.p]\n" + + " ├─ columns: [p q]\n" + + " └─ keys: alias1.a\n" + "", }, { @@ -5773,10 +5697,7 @@ inner join pq on true " ├─ Eq\n" + " │ ├─ alias1.a:0!null\n" + " │ └─ uv.u:4!null\n" + - " ├─ LeftOuterHashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ alias1.a:0!null\n" + - " │ │ └─ pq.p:2!null\n" + + " ├─ LeftOuterLookupJoin\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: alias1\n" + " │ │ ├─ outerVisibility: false\n" + @@ -5810,13 +5731,14 @@ inner join pq on true " │ │ └─ Table\n" + " │ │ ├─ name: xy\n" + " │ │ └─ columns: [x y]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(alias1.a:0!null)\n" + - " │ ├─ right-key: TUPLE(pq.p:0!null)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: pq\n" + - " │ └─ columns: [p q]\n" + + " │ └─ IndexedTableAccess(pq)\n" + + " │ ├─ index: [pq.p]\n" + + " │ ├─ keys: [alias1.a:0!null]\n" + + " │ ├─ colSet: (7,8)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: pq\n" + + " │ └─ columns: [p q]\n" + " └─ ProcessTable\n" + " └─ Table\n" + " ├─ name: uv\n" + @@ -5826,8 +5748,7 @@ inner join pq on true " ├─ columns: [alias1.a, alias1.b, pq.p, pq.q]\n" + " └─ SemiJoin (estimated cost=15.100 rows=5)\n" + " ├─ (alias1.a = uv.u)\n" + - " ├─ LeftOuterHashJoin (estimated cost=113.050 rows=5)\n" + - " │ ├─ (alias1.a = pq.p)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=111.500 rows=5)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: alias1\n" + " │ │ ├─ outerVisibility: false\n" + @@ -5848,11 +5769,9 @@ inner join pq on true " │ │ ├─ index: [xy.x]\n" + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + " │ │ └─ columns: [x y]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (alias1.a)\n" + - " │ ├─ right-key: (pq.p)\n" + - " │ └─ Table\n" + - " │ └─ name: pq\n" + + " │ └─ IndexedTableAccess(pq)\n" + + " │ ├─ index: [pq.p]\n" + + " │ └─ keys: alias1.a\n" + " └─ Table\n" + " ├─ name: uv\n" + " └─ columns: [u v]\n" + @@ -5861,8 +5780,7 @@ inner join pq on true " ├─ columns: [alias1.a, alias1.b, pq.p, pq.q]\n" + " └─ SemiJoin (estimated cost=15.100 rows=5) (actual rows=0 loops=1)\n" + " ├─ (alias1.a = uv.u)\n" + - " ├─ LeftOuterHashJoin (estimated cost=113.050 rows=5) (actual rows=0 loops=1)\n" + - " │ ├─ (alias1.a = pq.p)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=111.500 rows=5) (actual rows=0 loops=1)\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: alias1\n" + " │ │ ├─ outerVisibility: false\n" + @@ -5883,11 +5801,9 @@ inner join pq on true " │ │ ├─ index: [xy.x]\n" + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + " │ │ └─ columns: [x y]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (alias1.a)\n" + - " │ ├─ right-key: (pq.p)\n" + - " │ └─ Table\n" + - " │ └─ name: pq\n" + + " │ └─ IndexedTableAccess(pq)\n" + + " │ ├─ index: [pq.p]\n" + + " │ └─ keys: alias1.a\n" + " └─ Table\n" + " ├─ name: uv\n" + " └─ columns: [u v]\n" + @@ -5961,8 +5877,8 @@ inner join pq on true " │ └─ columns: [i s]\n" + " └─ TableAlias(b)\n" + " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i,mytable.s]\n" + - " ├─ static: [{[NULL, ∞), [NULL, ∞)}]\n" + + " ├─ index: [mytable.i]\n" + + " ├─ static: [{[NULL, ∞)}]\n" + " ├─ colSet: (3,4)\n" + " ├─ tableId: 2\n" + " └─ Table\n" + @@ -5975,7 +5891,7 @@ inner join pq on true " ├─ columns: [mytable.i, mytable.s]\n" + " └─ Filter\n" + " ├─ b.i IS NULL\n" + - " └─ LeftOuterMergeJoin (estimated cost=6.120 rows=3)\n" + + " └─ LeftOuterMergeJoin (estimated cost=6.090 rows=3)\n" + " ├─ cmp: (a.i = b.i)\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(mytable)\n" + @@ -5983,8 +5899,8 @@ inner join pq on true " │ └─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " └─ TableAlias(b)\n" + " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i,mytable.s]\n" + - " ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + + " ├─ index: [mytable.i]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + " └─ columns: [i]\n" + "", ExpectedAnalysis: "Project\n" + @@ -5993,7 +5909,7 @@ inner join pq on true " ├─ columns: [mytable.i, mytable.s]\n" + " └─ Filter\n" + " ├─ b.i IS NULL\n" + - " └─ LeftOuterMergeJoin (estimated cost=6.120 rows=3) (actual rows=3 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=6.090 rows=3) (actual rows=3 loops=1)\n" + " ├─ cmp: (a.i = b.i)\n" + " ├─ TableAlias(a)\n" + " │ └─ IndexedTableAccess(mytable)\n" + @@ -6001,8 +5917,8 @@ inner join pq on true " │ └─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " └─ TableAlias(b)\n" + " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i,mytable.s]\n" + - " ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + + " ├─ index: [mytable.i]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + " └─ columns: [i]\n" + "", }, @@ -7255,10 +7171,7 @@ inner join pq on true Query: `SELECT sub.i, sub.i2, sub.s2, ot.i2, ot.s2 FROM (SELECT i, i2, s2 FROM mytable INNER JOIN othertable ON i = i2) sub INNER JOIN othertable ot ON sub.i = ot.i2`, ExpectedPlan: "Project\n" + " ├─ columns: [sub.i:0!null, sub.i2:1!null, sub.s2:2!null, ot.i2:4!null, ot.s2:3!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ sub.i:0!null\n" + - " │ └─ ot.i2:4!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7288,19 +7201,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: othertable\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(sub.i:0!null)\n" + - " ├─ right-key: TUPLE(ot.i2:1!null)\n" + - " └─ TableAlias(ot)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ keys: [sub.i:0!null]\n" + + " ├─ colSet: (8,9)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: othertable\n" + + " └─ columns: [s2 i2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [sub.i, sub.i2, sub.s2, ot.i2, ot.s2]\n" + - " └─ HashJoin (estimated cost=111.000 rows=100)\n" + - " ├─ (sub.i = ot.i2)\n" + + " └─ LookupJoin (estimated cost=106.900 rows=3)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7318,18 +7231,15 @@ inner join pq on true " │ ├─ index: [othertable.i2]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sub.i)\n" + - " ├─ right-key: (ot.i2)\n" + - " └─ TableAlias(ot)\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ columns: [s2 i2]\n" + + " └─ keys: sub.i\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [sub.i, sub.i2, sub.s2, ot.i2, ot.s2]\n" + - " └─ HashJoin (estimated cost=111.000 rows=100) (actual rows=3 loops=1)\n" + - " ├─ (sub.i = ot.i2)\n" + + " └─ LookupJoin (estimated cost=106.900 rows=3) (actual rows=3 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7347,23 +7257,18 @@ inner join pq on true " │ ├─ index: [othertable.i2]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sub.i)\n" + - " ├─ right-key: (ot.i2)\n" + - " └─ TableAlias(ot)\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ columns: [s2 i2]\n" + + " └─ keys: sub.i\n" + "", }, { Query: `SELECT sub.i, sub.i2, sub.s2, ot.i2, ot.s2 FROM othertable ot INNER JOIN (SELECT i, i2, s2 FROM mytable INNER JOIN othertable ON i = i2) sub ON sub.i = ot.i2`, ExpectedPlan: "Project\n" + " ├─ columns: [sub.i:0!null, sub.i2:1!null, sub.s2:2!null, ot.i2:4!null, ot.s2:3!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ sub.i:0!null\n" + - " │ └─ ot.i2:4!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7393,19 +7298,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: othertable\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(sub.i:0!null)\n" + - " ├─ right-key: TUPLE(ot.i2:1!null)\n" + - " └─ TableAlias(ot)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ keys: [sub.i:0!null]\n" + + " ├─ colSet: (1,2)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: othertable\n" + + " └─ columns: [s2 i2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [sub.i, sub.i2, sub.s2, ot.i2, ot.s2]\n" + - " └─ HashJoin (estimated cost=111.000 rows=100)\n" + - " ├─ (sub.i = ot.i2)\n" + + " └─ LookupJoin (estimated cost=106.900 rows=3)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7423,18 +7328,15 @@ inner join pq on true " │ ├─ index: [othertable.i2]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sub.i)\n" + - " ├─ right-key: (ot.i2)\n" + - " └─ TableAlias(ot)\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ columns: [s2 i2]\n" + + " └─ keys: sub.i\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [sub.i, sub.i2, sub.s2, ot.i2, ot.s2]\n" + - " └─ HashJoin (estimated cost=111.000 rows=100) (actual rows=3 loops=1)\n" + - " ├─ (sub.i = ot.i2)\n" + + " └─ LookupJoin (estimated cost=106.900 rows=3) (actual rows=3 loops=1)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7452,13 +7354,11 @@ inner join pq on true " │ ├─ index: [othertable.i2]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (sub.i)\n" + - " ├─ right-key: (ot.i2)\n" + - " └─ TableAlias(ot)\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ columns: [s2 i2]\n" + + " └─ keys: sub.i\n" + "", }, { @@ -7623,7 +7523,7 @@ inner join pq on true " ├─ colSet: (13-18)\n" + " └─ tableId: 3\n" + "", - ExpectedEstimates: "HashJoin (estimated cost=305.040 rows=100)\n" + + ExpectedEstimates: "HashJoin (estimated cost=304.090 rows=5)\n" + " ├─ (i.pk = j.pk)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (i.pk = k.pk)\n" + @@ -7651,7 +7551,7 @@ inner join pq on true " ├─ name: one_pk\n" + " └─ columns: [pk]\n" + "", - ExpectedAnalysis: "HashJoin (estimated cost=305.040 rows=100) (actual rows=4 loops=1)\n" + + ExpectedAnalysis: "HashJoin (estimated cost=304.090 rows=5) (actual rows=4 loops=1)\n" + " ├─ (i.pk = j.pk)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (i.pk = k.pk)\n" + @@ -7726,7 +7626,7 @@ inner join pq on true " ├─ colSet: (13-18)\n" + " └─ tableId: 3\n" + "", - ExpectedEstimates: "HashJoin (estimated cost=305.040 rows=100)\n" + + ExpectedEstimates: "HashJoin (estimated cost=304.090 rows=5)\n" + " ├─ (i.pk = j.pk)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (i.pk = k.pk)\n" + @@ -7754,7 +7654,7 @@ inner join pq on true " ├─ name: one_pk\n" + " └─ columns: [pk]\n" + "", - ExpectedAnalysis: "HashJoin (estimated cost=305.040 rows=100) (actual rows=4 loops=1)\n" + + ExpectedAnalysis: "HashJoin (estimated cost=304.090 rows=5) (actual rows=4 loops=1)\n" + " ├─ (i.pk = j.pk)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (i.pk = k.pk)\n" + @@ -7795,10 +7695,7 @@ inner join pq on true " ├─ columns: [i:0!null, s:1!null]\n" + " └─ Project\n" + " ├─ columns: [(sub.i:0!null + 10 (tinyint))->sub.i + 10:0, ot.s2:3!null]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ sub.i:0!null\n" + - " │ └─ ot.i2:4!null\n" + + " └─ LookupJoin\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sub\n" + " │ ├─ outerVisibility: false\n" + @@ -7828,14 +7725,15 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: othertable\n" + " │ └─ columns: [s2 i2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(sub.i:0!null)\n" + - " ├─ right-key: TUPLE(ot.i2:1!null)\n" + - " └─ TableAlias(ot)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: othertable\n" + - " └─ columns: [s2 i2]\n" + + " └─ TableAlias(ot)\n" + + " └─ IndexedTableAccess(othertable)\n" + + " ├─ index: [othertable.i2]\n" + + " ├─ keys: [sub.i:0!null]\n" + + " ├─ colSet: (3,4)\n" + + " ├─ tableId: 2\n" + + " └─ Table\n" + + " ├─ name: othertable\n" + + " └─ columns: [s2 i2]\n" + "", }, { @@ -11572,42 +11470,41 @@ inner join pq on true Query: `SELECT pk,pk1,pk2 FROM one_pk LEFT JOIN two_pk ON one_pk.pk <=> two_pk.pk1 AND one_pk.pk = two_pk.pk2`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null, two_pk.pk1:1!null, two_pk.pk2:2!null]\n" + - " └─ LeftOuterJoin\n" + - " ├─ AND\n" + - " │ ├─ (one_pk.pk:0!null <=> two_pk.pk1:1!null)\n" + - " │ └─ Eq\n" + - " │ ├─ one_pk.pk:0!null\n" + - " │ └─ two_pk.pk2:2!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ ProcessTable\n" + " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ ProcessTable\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ keys: [one_pk.pk:0!null one_pk.pk:0!null]\n" + + " ├─ colSet: (7-13)\n" + + " ├─ tableId: 2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5)\n" + - " ├─ ((one_pk.pk <=> two_pk.pk1) AND (one_pk.pk = two_pk.pk2))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: one_pk.pk, one_pk.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5) (actual rows=4 loops=1)\n" + - " ├─ ((one_pk.pk <=> two_pk.pk1) AND (one_pk.pk = two_pk.pk2))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: one_pk.pk, one_pk.pk\n" + "", }, { @@ -11638,7 +11535,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk <=> two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -11652,7 +11549,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ sel: (one_pk.pk <=> two_pk.pk2)\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -11669,40 +11566,41 @@ inner join pq on true Query: `SELECT pk,pk1,pk2 FROM one_pk LEFT JOIN two_pk ON one_pk.pk <=> two_pk.pk1 AND one_pk.pk <=> two_pk.pk2`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null, two_pk.pk1:1!null, two_pk.pk2:2!null]\n" + - " └─ LeftOuterJoin\n" + - " ├─ AND\n" + - " │ ├─ (one_pk.pk:0!null <=> two_pk.pk1:1!null)\n" + - " │ └─ (one_pk.pk:0!null <=> two_pk.pk2:2!null)\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ ProcessTable\n" + " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ ProcessTable\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ keys: [one_pk.pk:0!null one_pk.pk:0!null]\n" + + " ├─ colSet: (7-13)\n" + + " ├─ tableId: 2\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5)\n" + - " ├─ ((one_pk.pk <=> two_pk.pk1) AND (one_pk.pk <=> two_pk.pk2))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: one_pk.pk, one_pk.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5) (actual rows=4 loops=1)\n" + - " ├─ ((one_pk.pk <=> two_pk.pk1) AND (one_pk.pk <=> two_pk.pk2))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk]\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: one_pk.pk, one_pk.pk\n" + "", }, { @@ -11711,8 +11609,11 @@ inner join pq on true " ├─ columns: [one_pk.pk:2!null, two_pk.pk1:0!null, two_pk.pk2:1!null]\n" + " └─ LeftOuterMergeJoin\n" + " ├─ cmp: Eq\n" + - " │ ├─ TUPLE(two_pk.pk1:0!null, two_pk.pk2:1!null)\n" + - " │ └─ TUPLE(one_pk.pk:2!null, one_pk.pk:2!null)\n" + + " │ ├─ two_pk.pk1:0!null\n" + + " │ └─ one_pk.pk:2!null\n" + + " ├─ sel: Eq\n" + + " │ ├─ one_pk.pk:2!null\n" + + " │ └─ two_pk.pk2:1!null\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ static: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -11732,8 +11633,9 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5)\n" + - " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4)\n" + + " ├─ cmp: (two_pk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -11745,8 +11647,9 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.150 rows=5) (actual rows=4 loops=1)\n" + - " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + + " ├─ cmp: (two_pk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -12566,14 +12469,7 @@ inner join pq on true LEFT JOIN two_pk tpk2 ON tpk2.pk1=TPK.pk2 AND TPK2.pk2=tpk.pk1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null]\n" + - " └─ LeftOuterJoin\n" + - " ├─ AND\n" + - " │ ├─ Eq\n" + - " │ │ ├─ tpk2.pk1:3!null\n" + - " │ │ └─ tpk.pk2:2!null\n" + - " │ └─ Eq\n" + - " │ ├─ tpk2.pk2:4!null\n" + - " │ └─ tpk.pk1:1!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ MergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ one_pk.pk:0!null\n" + @@ -12599,15 +12495,18 @@ inner join pq on true " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ ProcessTable\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ keys: [tpk.pk2:2!null tpk.pk1:1!null]\n" + + " ├─ colSet: (14-20)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + @@ -12621,14 +12520,14 @@ inner join pq on true " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5) (actual rows=2 loops=1)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4) (actual rows=2 loops=1)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=2 loops=1)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + @@ -12642,9 +12541,10 @@ inner join pq on true " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", }, { @@ -12753,14 +12653,7 @@ inner join pq on true LEFT JOIN two_pk tpk2 ON tpk2.pk1=TPK.pk2 AND TPK2.pk2=tpk.pk1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ AND\n" + - " │ ├─ Eq\n" + - " │ │ ├─ tpk2.pk1:3!null\n" + - " │ │ └─ tpk.pk2:2!null\n" + - " │ └─ Eq\n" + - " │ ├─ tpk2.pk2:4!null\n" + - " │ └─ tpk.pk1:1!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ LeftOuterMergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ one_pk.pk:0!null\n" + @@ -12785,20 +12678,20 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(tpk.pk2:2!null, tpk.pk1:1!null)\n" + - " ├─ right-key: TUPLE(tpk2.pk1:0!null, tpk2.pk2:1!null)\n" + - " └─ TableAlias(tpk2)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ TableAlias(tpk2)\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ keys: [tpk.pk2:2!null tpk.pk1:1!null]\n" + + " ├─ colSet: (14-20)\n" + + " ├─ tableId: 3\n" + + " └─ Table\n" + + " ├─ name: two_pk\n" + + " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + - " ├─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4)\n" + + " ├─ LeftOuterMergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -12810,19 +12703,16 @@ inner join pq on true " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (tpk.pk2, tpk.pk1)\n" + - " ├─ right-key: (tpk2.pk1, tpk2.pk2)\n" + - " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ TableAlias(tpk2)\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5) (actual rows=4 loops=1)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + - " ├─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + + " ├─ LeftOuterMergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -12834,13 +12724,11 @@ inner join pq on true " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (tpk.pk2, tpk.pk1)\n" + - " ├─ right-key: (tpk2.pk1, tpk2.pk2)\n" + - " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ TableAlias(tpk2)\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", }, { @@ -12886,8 +12774,8 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LookupJoin (estimated cost=16.500 rows=5)\n" + - " ├─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + + " ├─ LeftOuterMergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -12907,8 +12795,8 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LookupJoin (estimated cost=16.500 rows=5) (actual rows=2 loops=1)\n" + - " ├─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=4 loops=1)\n" + + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=2 loops=1)\n" + + " ├─ LeftOuterMergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + " │ ├─ IndexedTableAccess(one_pk)\n" + @@ -12933,14 +12821,7 @@ inner join pq on true LEFT JOIN two_pk tpk2 ON tpk2.pk1=TPK.pk2 AND TPK2.pk2=tpk.pk1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null]\n" + - " └─ LeftOuterJoin\n" + - " ├─ AND\n" + - " │ ├─ Eq\n" + - " │ │ ├─ tpk2.pk1:3!null\n" + - " │ │ └─ tpk.pk2:2!null\n" + - " │ └─ Eq\n" + - " │ ├─ tpk2.pk2:4!null\n" + - " │ └─ tpk.pk1:1!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ MergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ one_pk.pk:0!null\n" + @@ -12966,15 +12847,18 @@ inner join pq on true " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ ProcessTable\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ keys: [tpk.pk2:2!null tpk.pk1:1!null]\n" + + " ├─ colSet: (14-20)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: two_pk\n" + " └─ columns: [pk1 pk2]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + @@ -12988,14 +12872,14 @@ inner join pq on true " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterJoin (estimated cost=15.160 rows=5) (actual rows=2 loops=1)\n" + - " ├─ ((tpk2.pk1 = tpk.pk2) AND (tpk2.pk2 = tpk.pk1))\n" + + " └─ LeftOuterLookupJoin (estimated cost=13.200 rows=4) (actual rows=2 loops=1)\n" + " ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=2 loops=1)\n" + " │ ├─ cmp: (one_pk.pk = tpk.pk1)\n" + " │ ├─ sel: (one_pk.pk = tpk.pk2)\n" + @@ -13009,9 +12893,10 @@ inner join pq on true " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + " │ └─ columns: [pk1 pk2]\n" + " └─ TableAlias(tpk2)\n" + - " └─ Table\n" + - " ├─ name: two_pk\n" + - " └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(two_pk)\n" + + " ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " ├─ columns: [pk1 pk2]\n" + + " └─ keys: tpk.pk2, tpk.pk1\n" + "", }, { @@ -13020,7 +12905,7 @@ inner join pq on true RIGHT JOIN two_pk tpk2 ON tpk.pk1=TPk2.pk2 AND tpk.pk2=TPK2.pk1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:4!null]\n" + - " └─ LeftOuterHashJoin\n" + + " └─ LeftOuterJoin\n" + " ├─ AND\n" + " │ ├─ Eq\n" + " │ │ ├─ tpk.pk1:2!null\n" + @@ -13033,76 +12918,72 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(tpk2.pk2:1!null, tpk2.pk1:0!null)\n" + - " ├─ right-key: TUPLE(tpk.pk1:0!null, tpk.pk2:1!null)\n" + - " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ TUPLE(tpk.pk1:2!null, tpk.pk2:3!null)\n" + - " │ └─ TUPLE(one_pk.pk:4!null, one_pk.pk:4!null)\n" + - " ├─ TableAlias(tpk)\n" + - " │ └─ IndexedTableAccess(two_pk)\n" + - " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + - " │ ├─ static: [{[NULL, ∞), [NULL, ∞)}]\n" + - " │ ├─ colSet: (7-13)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: two_pk\n" + - " │ └─ columns: [pk1 pk2]\n" + - " └─ IndexedTableAccess(one_pk)\n" + - " ├─ index: [one_pk.pk]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (1-6)\n" + - " ├─ tableId: 1\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ LeftOuterMergeJoin\n" + + " ├─ cmp: Eq\n" + + " │ ├─ tpk.pk1:2!null\n" + + " │ └─ one_pk.pk:4!null\n" + + " ├─ sel: Eq\n" + + " │ ├─ one_pk.pk:4!null\n" + + " │ └─ tpk.pk2:3!null\n" + + " ├─ TableAlias(tpk)\n" + + " │ └─ IndexedTableAccess(two_pk)\n" + + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " │ ├─ static: [{[NULL, ∞), [NULL, ∞)}]\n" + + " │ ├─ colSet: (7-13)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: two_pk\n" + + " │ └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ static: [{[NULL, ∞)}]\n" + + " ├─ colSet: (1-6)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterHashJoin (estimated cost=19.090 rows=5)\n" + + " └─ LeftOuterJoin (estimated cost=15.160 rows=5)\n" + " ├─ ((tpk.pk1 = tpk2.pk2) AND (tpk.pk2 = tpk2.pk1))\n" + " ├─ TableAlias(tpk2)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (tpk2.pk2, tpk2.pk1)\n" + - " ├─ right-key: (tpk.pk1, tpk.pk2)\n" + - " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: ((tpk.pk1, tpk.pk2) = (one_pk.pk, one_pk.pk))\n" + - " ├─ TableAlias(tpk)\n" + - " │ └─ IndexedTableAccess(two_pk)\n" + - " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + - " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + - " │ └─ columns: [pk1 pk2]\n" + - " └─ IndexedTableAccess(one_pk)\n" + - " ├─ index: [one_pk.pk]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [pk]\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4)\n" + + " ├─ cmp: (tpk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = tpk.pk2)\n" + + " ├─ TableAlias(tpk)\n" + + " │ └─ IndexedTableAccess(two_pk)\n" + + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + + " │ └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + + " └─ columns: [pk]\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk]\n" + - " └─ LeftOuterHashJoin (estimated cost=19.090 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterJoin (estimated cost=15.160 rows=5) (actual rows=4 loops=1)\n" + " ├─ ((tpk.pk1 = tpk2.pk2) AND (tpk.pk2 = tpk2.pk1))\n" + " ├─ TableAlias(tpk2)\n" + " │ └─ Table\n" + " │ ├─ name: two_pk\n" + " │ └─ columns: [pk1 pk2]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (tpk2.pk2, tpk2.pk1)\n" + - " ├─ right-key: (tpk.pk1, tpk.pk2)\n" + - " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: ((tpk.pk1, tpk.pk2) = (one_pk.pk, one_pk.pk))\n" + - " ├─ TableAlias(tpk)\n" + - " │ └─ IndexedTableAccess(two_pk)\n" + - " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + - " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + - " │ └─ columns: [pk1 pk2]\n" + - " └─ IndexedTableAccess(one_pk)\n" + - " ├─ index: [one_pk.pk]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [pk]\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=4)\n" + + " ├─ cmp: (tpk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = tpk.pk2)\n" + + " ├─ TableAlias(tpk)\n" + + " │ └─ IndexedTableAccess(two_pk)\n" + + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + + " │ └─ columns: [pk1 pk2]\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ filters: [{[NULL, ∞)}]\n" + + " └─ columns: [pk]\n" + "", }, { @@ -13185,7 +13066,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.130 rows=5)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13198,7 +13079,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + - " └─ LeftOuterMergeJoin (estimated cost=8.160 rows=5) (actual rows=6 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=8.130 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (one_pk.pk = two_pk.pk1)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13237,7 +13118,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13250,7 +13131,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13289,7 +13170,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -13302,7 +13183,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -13430,7 +13311,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ sel: (NOT(niltable.f IS NULL))\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -13444,7 +13325,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ sel: (NOT(niltable.f IS NULL))\n" + " ├─ IndexedTableAccess(one_pk)\n" + @@ -13487,7 +13368,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ sel: (one_pk.pk > 0)\n" + " ├─ IndexedTableAccess(niltable)\n" + @@ -13501,7 +13382,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ sel: (one_pk.pk > 0)\n" + " ├─ IndexedTableAccess(niltable)\n" + @@ -13546,7 +13427,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (NOT(niltable.f IS NULL))\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13561,7 +13442,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (NOT(niltable.f IS NULL))\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13606,7 +13487,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (niltable.i2 > 1)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13621,7 +13502,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (niltable.i2 > 1)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13666,7 +13547,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (niltable.i > 1)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13681,7 +13562,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (niltable.i > 1)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -13724,7 +13605,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=9.150 rows=3)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.120 rows=3)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ Filter\n" + " │ ├─ (one_pk.c1 > 10)\n" + @@ -13739,7 +13620,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=9.150 rows=3) (actual rows=2 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.120 rows=3) (actual rows=2 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ Filter\n" + " │ ├─ (one_pk.c1 > 10)\n" + @@ -13783,7 +13664,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=9.170 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.140 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ Filter\n" + " │ ├─ (NOT(niltable.f IS NULL))\n" + @@ -13798,7 +13679,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=9.170 rows=5) (actual rows=3 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=9.140 rows=5) (actual rows=3 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ Filter\n" + " │ ├─ (NOT(niltable.f IS NULL))\n" + @@ -13816,25 +13697,18 @@ inner join pq on true Query: `SELECT pk,i,f FROM one_pk LEFT JOIN niltable ON pk=i WHERE pk > 1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null, niltable.i:1!null, niltable.f:2]\n" + - " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ one_pk.pk:0!null\n" + - " │ └─ niltable.i:1!null\n" + - " ├─ Filter\n" + - " │ ├─ GreaterThan\n" + - " │ │ ├─ one_pk.pk:0!null\n" + - " │ │ └─ 1 (smallint)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (1-6)\n" + - " │ ├─ tableId: 1\n" + - " │ └─ Table\n" + - " │ ├─ name: one_pk\n" + - " │ └─ columns: [pk]\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ static: [{(1, ∞)}]\n" + + " │ ├─ colSet: (1-6)\n" + + " │ ├─ tableId: 1\n" + + " │ └─ Table\n" + + " │ ├─ name: one_pk\n" + + " │ └─ columns: [pk]\n" + " └─ IndexedTableAccess(niltable)\n" + " ├─ index: [niltable.i]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + + " ├─ keys: [one_pk.pk:0!null]\n" + " ├─ colSet: (7-10)\n" + " ├─ tableId: 2\n" + " └─ Table\n" + @@ -13843,33 +13717,27 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.190 rows=6)\n" + - " ├─ cmp: (one_pk.pk = niltable.i)\n" + - " ├─ Filter\n" + - " │ ├─ (one_pk.pk > 1)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [pk]\n" + + " └─ LeftOuterLookupJoin (estimated cost=6.600 rows=2)\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{(1, ∞)}]\n" + + " │ └─ columns: [pk]\n" + " └─ IndexedTableAccess(niltable)\n" + " ├─ index: [niltable.i]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [i f]\n" + + " ├─ columns: [i f]\n" + + " └─ keys: one_pk.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.190 rows=6) (actual rows=2 loops=1)\n" + - " ├─ cmp: (one_pk.pk = niltable.i)\n" + - " ├─ Filter\n" + - " │ ├─ (one_pk.pk > 1)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [pk]\n" + + " └─ LeftOuterLookupJoin (estimated cost=6.600 rows=2) (actual rows=2 loops=1)\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{(1, ∞)}]\n" + + " │ └─ columns: [pk]\n" + " └─ IndexedTableAccess(niltable)\n" + " ├─ index: [niltable.i]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [i f]\n" + + " ├─ columns: [i f]\n" + + " └─ keys: one_pk.pk\n" + "", }, { @@ -13953,7 +13821,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (one_pk.pk > 0)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -13968,7 +13836,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (one_pk.pk > 0)\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=6 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.150 rows=5) (actual rows=6 loops=1)\n" + " ├─ cmp: (niltable.i = one_pk.pk)\n" + " ├─ IndexedTableAccess(niltable)\n" + " │ ├─ index: [niltable.i]\n" + @@ -14825,7 +14693,7 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14838,7 +14706,7 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14882,7 +14750,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (NOT(niltable.f IS NULL))\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14897,7 +14765,7 @@ inner join pq on true " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + " └─ Filter\n" + " ├─ (NOT(niltable.f IS NULL))\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.180 rows=5) (actual rows=4 loops=1)\n" + + " └─ LeftOuterMergeJoin (estimated cost=10.140 rows=4) (actual rows=4 loops=1)\n" + " ├─ cmp: (one_pk.pk = niltable.i)\n" + " ├─ IndexedTableAccess(one_pk)\n" + " │ ├─ index: [one_pk.pk]\n" + @@ -14913,60 +14781,50 @@ inner join pq on true Query: `SELECT pk,i,f FROM one_pk LEFT JOIN niltable ON pk=i WHERE pk > 1 ORDER BY 1`, ExpectedPlan: "Project\n" + " ├─ columns: [one_pk.pk:0!null, niltable.i:1!null, niltable.f:2]\n" + - " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: Eq\n" + - " │ ├─ one_pk.pk:0!null\n" + - " │ └─ niltable.i:1!null\n" + - " ├─ Filter\n" + - " │ ├─ GreaterThan\n" + - " │ │ ├─ one_pk.pk:0!null\n" + - " │ │ └─ 1 (smallint)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (1-6)\n" + - " │ ├─ tableId: 1\n" + - " │ └─ Table\n" + - " │ ├─ name: one_pk\n" + - " │ └─ columns: [pk]\n" + - " └─ IndexedTableAccess(niltable)\n" + - " ├─ index: [niltable.i]\n" + - " ├─ static: [{[NULL, ∞)}]\n" + - " ├─ colSet: (7-10)\n" + - " ├─ tableId: 2\n" + - " └─ Table\n" + - " ├─ name: niltable\n" + - " └─ columns: [i f]\n" + + " └─ Sort(one_pk.pk:0!null ASC nullsFirst)\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ static: [{(1, ∞)}]\n" + + " │ ├─ colSet: (1-6)\n" + + " │ ├─ tableId: 1\n" + + " │ └─ Table\n" + + " │ ├─ name: one_pk\n" + + " │ └─ columns: [pk]\n" + + " └─ IndexedTableAccess(niltable)\n" + + " ├─ index: [niltable.i]\n" + + " ├─ keys: [one_pk.pk:0!null]\n" + + " ├─ colSet: (7-10)\n" + + " ├─ tableId: 2\n" + + " └─ Table\n" + + " ├─ name: niltable\n" + + " └─ columns: [i f]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.190 rows=6)\n" + - " ├─ cmp: (one_pk.pk = niltable.i)\n" + - " ├─ Filter\n" + - " │ ├─ (one_pk.pk > 1)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [pk]\n" + - " └─ IndexedTableAccess(niltable)\n" + - " ├─ index: [niltable.i]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [i f]\n" + + " └─ Sort(one_pk.pk ASC)\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{(1, ∞)}]\n" + + " │ └─ columns: [pk]\n" + + " └─ IndexedTableAccess(niltable)\n" + + " ├─ index: [niltable.i]\n" + + " ├─ columns: [i f]\n" + + " └─ keys: one_pk.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [one_pk.pk, niltable.i, niltable.f]\n" + - " └─ LeftOuterMergeJoin (estimated cost=10.190 rows=6) (actual rows=2 loops=1)\n" + - " ├─ cmp: (one_pk.pk = niltable.i)\n" + - " ├─ Filter\n" + - " │ ├─ (one_pk.pk > 1)\n" + - " │ └─ IndexedTableAccess(one_pk)\n" + - " │ ├─ index: [one_pk.pk]\n" + - " │ ├─ filters: [{[NULL, ∞)}]\n" + - " │ └─ columns: [pk]\n" + - " └─ IndexedTableAccess(niltable)\n" + - " ├─ index: [niltable.i]\n" + - " ├─ filters: [{[NULL, ∞)}]\n" + - " └─ columns: [i f]\n" + + " └─ Sort(one_pk.pk ASC)\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{(1, ∞)}]\n" + + " │ └─ columns: [pk]\n" + + " └─ IndexedTableAccess(niltable)\n" + + " ├─ index: [niltable.i]\n" + + " ├─ columns: [i f]\n" + + " └─ keys: one_pk.pk\n" + "", }, { @@ -15471,8 +15329,11 @@ inner join pq on true " └─ Sort(one_pk.pk:2!null ASC nullsFirst, two_pk.pk1:0!null ASC nullsFirst, two_pk.pk2:1!null ASC nullsFirst)\n" + " └─ LeftOuterMergeJoin\n" + " ├─ cmp: Eq\n" + - " │ ├─ TUPLE(two_pk.pk1:0!null, two_pk.pk2:1!null)\n" + - " │ └─ TUPLE(one_pk.pk:2!null, one_pk.pk:2!null)\n" + + " │ ├─ two_pk.pk1:0!null\n" + + " │ └─ one_pk.pk:2!null\n" + + " ├─ sel: Eq\n" + + " │ ├─ one_pk.pk:2!null\n" + + " │ └─ two_pk.pk2:1!null\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ static: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -15494,7 +15355,8 @@ inner join pq on true " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + + " ├─ cmp: (two_pk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -15508,7 +15370,8 @@ inner join pq on true " ├─ columns: [one_pk.pk, two_pk.pk1, two_pk.pk2]\n" + " └─ Sort(one_pk.pk ASC, two_pk.pk1 ASC, two_pk.pk2 ASC)\n" + " └─ LeftOuterMergeJoin\n" + - " ├─ cmp: ((two_pk.pk1, two_pk.pk2) = (one_pk.pk, one_pk.pk))\n" + + " ├─ cmp: (two_pk.pk1 = one_pk.pk)\n" + + " ├─ sel: (one_pk.pk = two_pk.pk2)\n" + " ├─ IndexedTableAccess(two_pk)\n" + " │ ├─ index: [two_pk.pk1,two_pk.pk2]\n" + " │ ├─ filters: [{[NULL, ∞), [NULL, ∞)}]\n" + @@ -16701,14 +16564,10 @@ inner join pq on true Query: `SELECT a.* FROM one_pk a CROSS JOIN one_pk c LEFT JOIN one_pk b ON b.pk = c.pk and b.pk = a.pk`, ExpectedPlan: "Project\n" + " ├─ columns: [a.pk:1!null, a.c1:2, a.c2:3, a.c3:4, a.c4:5, a.c5:6]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ AND\n" + - " │ ├─ Eq\n" + - " │ │ ├─ b.pk:7!null\n" + - " │ │ └─ c.pk:0!null\n" + - " │ └─ Eq\n" + - " │ ├─ b.pk:7!null\n" + - " │ └─ a.pk:1!null\n" + + " └─ LeftOuterLookupJoin\n" + + " ├─ Eq\n" + + " │ ├─ b.pk:7!null\n" + + " │ └─ a.pk:1!null\n" + " ├─ CrossJoin\n" + " │ ├─ TableAlias(c)\n" + " │ │ └─ ProcessTable\n" + @@ -16721,20 +16580,20 @@ inner join pq on true " │ ├─ columns: [pk c1 c2 c3 c4 c5]\n" + " │ ├─ colSet: (1-6)\n" + " │ └─ tableId: 1\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(c.pk:0!null, a.pk:1!null)\n" + - " ├─ right-key: TUPLE(b.pk:0!null, b.pk:0!null)\n" + - " └─ TableAlias(b)\n" + + " └─ TableAlias(b)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [c.pk:0!null]\n" + + " ├─ colSet: (13-18)\n" + + " ├─ tableId: 3\n" + " └─ Table\n" + " ├─ name: one_pk\n" + - " ├─ columns: [pk]\n" + - " ├─ colSet: (13-18)\n" + - " └─ tableId: 3\n" + + " └─ columns: [pk]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [a.pk, a.c1, a.c2, a.c3, a.c4, a.c5]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5)\n" + - " ├─ ((b.pk = c.pk) AND (b.pk = a.pk))\n" + + " └─ LeftOuterLookupJoin (estimated cost=16.500 rows=5)\n" + + " ├─ (b.pk = a.pk)\n" + " ├─ CrossJoin (estimated cost=17.160 rows=5)\n" + " │ ├─ TableAlias(c)\n" + " │ │ └─ Table\n" + @@ -16744,18 +16603,16 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk c1 c2 c3 c4 c5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (c.pk, a.pk)\n" + - " ├─ right-key: (b.pk, b.pk)\n" + - " └─ TableAlias(b)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ TableAlias(b)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: c.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [a.pk, a.c1, a.c2, a.c3, a.c4, a.c5]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5) (actual rows=16 loops=1)\n" + - " ├─ ((b.pk = c.pk) AND (b.pk = a.pk))\n" + + " └─ LeftOuterLookupJoin (estimated cost=16.500 rows=5) (actual rows=16 loops=1)\n" + + " ├─ (b.pk = a.pk)\n" + " ├─ CrossJoin (estimated cost=17.160 rows=5) (actual rows=16 loops=1)\n" + " │ ├─ TableAlias(c)\n" + " │ │ └─ Table\n" + @@ -16765,13 +16622,11 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk c1 c2 c3 c4 c5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (c.pk, a.pk)\n" + - " ├─ right-key: (b.pk, b.pk)\n" + - " └─ TableAlias(b)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ TableAlias(b)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: c.pk\n" + "", }, { @@ -16940,10 +16795,7 @@ inner join pq on true Query: `SELECT a.* FROM one_pk a CROSS JOIN one_pk b INNER JOIN one_pk c ON b.pk = c.pk LEFT JOIN one_pk d ON c.pk = d.pk`, ExpectedPlan: "Project\n" + " ├─ columns: [a.pk:2!null, a.c1:3, a.c2:4, a.c3:5, a.c4:6, a.c5:7]\n" + - " └─ LeftOuterHashJoin\n" + - " ├─ Eq\n" + - " │ ├─ c.pk:1!null\n" + - " │ └─ d.pk:8!null\n" + + " └─ LeftOuterLookupJoin\n" + " ├─ CrossJoin\n" + " │ ├─ MergeJoin\n" + " │ │ ├─ cmp: Eq\n" + @@ -16972,20 +16824,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk c1 c2 c3 c4 c5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(c.pk:1!null)\n" + - " ├─ right-key: TUPLE(d.pk:0!null)\n" + - " └─ TableAlias(d)\n" + + " └─ TableAlias(d)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [c.pk:1!null]\n" + + " ├─ colSet: (19-24)\n" + + " ├─ tableId: 4\n" + " └─ Table\n" + " ├─ name: one_pk\n" + - " ├─ columns: [pk]\n" + - " ├─ colSet: (19-24)\n" + - " └─ tableId: 4\n" + + " └─ columns: [pk]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [a.pk, a.c1, a.c2, a.c3, a.c4, a.c5]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5)\n" + - " ├─ (c.pk = d.pk)\n" + + " └─ LeftOuterLookupJoin (estimated cost=16.500 rows=5)\n" + " ├─ CrossJoin (estimated cost=17.160 rows=5)\n" + " │ ├─ MergeJoin (estimated cost=8.120 rows=4)\n" + " │ │ ├─ cmp: (b.pk = c.pk)\n" + @@ -17003,18 +16854,15 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk c1 c2 c3 c4 c5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (c.pk)\n" + - " ├─ right-key: (d.pk)\n" + - " └─ TableAlias(d)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ TableAlias(d)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: c.pk\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [a.pk, a.c1, a.c2, a.c3, a.c4, a.c5]\n" + - " └─ LeftOuterHashJoin (estimated cost=17.100 rows=5) (actual rows=16 loops=1)\n" + - " ├─ (c.pk = d.pk)\n" + + " └─ LeftOuterLookupJoin (estimated cost=16.500 rows=5) (actual rows=16 loops=1)\n" + " ├─ CrossJoin (estimated cost=17.160 rows=5) (actual rows=16 loops=1)\n" + " │ ├─ MergeJoin (estimated cost=8.120 rows=4) (actual rows=4 loops=1)\n" + " │ │ ├─ cmp: (b.pk = c.pk)\n" + @@ -17032,13 +16880,11 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk\n" + " │ └─ columns: [pk c1 c2 c3 c4 c5]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (c.pk)\n" + - " ├─ right-key: (d.pk)\n" + - " └─ TableAlias(d)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk]\n" + + " └─ TableAlias(d)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk]\n" + + " └─ keys: c.pk\n" + "", }, { @@ -17790,10 +17636,7 @@ inner join pq on true Query: `select i.pk, j.v3, k.c1 from one_pk_two_idx i JOIN one_pk_three_idx j on i.v1 = j.pk JOIN one_pk k on j.v3 = k.pk;`, ExpectedPlan: "Project\n" + " ├─ columns: [i.pk:0!null, j.v3:3, k.c1:5]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ j.v3:3\n" + - " │ └─ k.pk:4!null\n" + + " └─ LookupJoin\n" + " ├─ MergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ i.v1:1\n" + @@ -17816,19 +17659,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(j.v3:3)\n" + - " ├─ right-key: TUPLE(k.pk:0!null)\n" + - " └─ TableAlias(k)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [j.v3:3]\n" + + " ├─ colSet: (8-13)\n" + + " ├─ tableId: 3\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk c1]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -17841,18 +17684,15 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8) (actual rows=7 loops=1)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5) (actual rows=7 loops=1)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8) (actual rows=8 loops=1)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -17865,13 +17705,11 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", }, { @@ -17936,10 +17774,7 @@ inner join pq on true Query: `select i.pk, j.v3, k.c1 from ((one_pk_two_idx i JOIN one_pk_three_idx j on ((i.v1 = j.pk))) JOIN one_pk k on((j.v3 = k.pk)));`, ExpectedPlan: "Project\n" + " ├─ columns: [i.pk:0!null, j.v3:3, k.c1:5]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ j.v3:3\n" + - " │ └─ k.pk:4!null\n" + + " └─ LookupJoin\n" + " ├─ MergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ i.v1:1\n" + @@ -17962,19 +17797,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(j.v3:3)\n" + - " ├─ right-key: TUPLE(k.pk:0!null)\n" + - " └─ TableAlias(k)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [j.v3:3]\n" + + " ├─ colSet: (8-13)\n" + + " ├─ tableId: 3\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk c1]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -17987,18 +17822,15 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8) (actual rows=7 loops=1)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5) (actual rows=7 loops=1)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8) (actual rows=8 loops=1)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -18011,23 +17843,18 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", }, { Query: `select i.pk, j.v3, k.c1 from (one_pk_two_idx i JOIN one_pk_three_idx j on ((i.v1 = j.pk)) JOIN one_pk k on((j.v3 = k.pk)))`, ExpectedPlan: "Project\n" + " ├─ columns: [i.pk:0!null, j.v3:3, k.c1:5]\n" + - " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ j.v3:3\n" + - " │ └─ k.pk:4!null\n" + + " └─ LookupJoin\n" + " ├─ MergeJoin\n" + " │ ├─ cmp: Eq\n" + " │ │ ├─ i.v1:1\n" + @@ -18050,19 +17877,19 @@ inner join pq on true " │ └─ Table\n" + " │ ├─ name: one_pk_three_idx\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: TUPLE(j.v3:3)\n" + - " ├─ right-key: TUPLE(k.pk:0!null)\n" + - " └─ TableAlias(k)\n" + - " └─ ProcessTable\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ keys: [j.v3:3]\n" + + " ├─ colSet: (8-13)\n" + + " ├─ tableId: 3\n" + + " └─ Table\n" + + " ├─ name: one_pk\n" + + " └─ columns: [pk c1]\n" + "", ExpectedEstimates: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -18075,18 +17902,15 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", ExpectedAnalysis: "Project\n" + " ├─ columns: [i.pk, j.v3, k.c1]\n" + - " └─ HashJoin (estimated cost=20.160 rows=8) (actual rows=7 loops=1)\n" + - " ├─ (j.v3 = k.pk)\n" + + " └─ LookupJoin (estimated cost=19.500 rows=5) (actual rows=7 loops=1)\n" + " ├─ MergeJoin (estimated cost=16.240 rows=8) (actual rows=8 loops=1)\n" + " │ ├─ cmp: (i.v1 = j.pk)\n" + " │ ├─ TableAlias(i)\n" + @@ -18099,13 +17923,11 @@ inner join pq on true " │ ├─ index: [one_pk_three_idx.pk]\n" + " │ ├─ filters: [{[NULL, ∞)}]\n" + " │ └─ columns: [pk v3]\n" + - " └─ HashLookup\n" + - " ├─ left-key: (j.v3)\n" + - " ├─ right-key: (k.pk)\n" + - " └─ TableAlias(k)\n" + - " └─ Table\n" + - " ├─ name: one_pk\n" + - " └─ columns: [pk c1]\n" + + " └─ TableAlias(k)\n" + + " └─ IndexedTableAccess(one_pk)\n" + + " ├─ index: [one_pk.pk]\n" + + " ├─ columns: [pk c1]\n" + + " └─ keys: j.v3\n" + "", }, { @@ -18116,10 +17938,7 @@ inner join pq on true " ├─ Eq\n" + " │ ├─ a.pk:2!null\n" + " │ └─ l.v2:7\n" + - " ├─ LeftOuterHashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ a.pk:2!null\n" + - " │ │ └─ i.v1:0\n" + + " ├─ LeftOuterLookupJoin\n" + " │ ├─ MergeJoin\n" + " │ │ ├─ cmp: Eq\n" + " │ │ │ ├─ i.v1:0\n" + @@ -18142,14 +17961,15 @@ inner join pq on true " │ │ └─ Table\n" + " │ │ ├─ name: one_pk_three_idx\n" + " │ │ └─ columns: [pk]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(i.v1:0)\n" + - " │ ├─ right-key: TUPLE(a.pk:0!null)\n" + - " │ └─ TableAlias(a)\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: one_pk_two_idx\n" + - " │ └─ columns: [pk v1 v2]\n" + + " │ └─ TableAlias(a)\n" + + " │ └─ IndexedTableAccess(one_pk_two_idx)\n" + + " │ ├─ index: [one_pk_two_idx.pk]\n" + + " │ ├─ keys: [i.v1:0]\n" + + " │ ├─ colSet: (1-3)\n" + + " │ ├─ tableId: 1\n" + + " │ └─ Table\n" + + " │ ├─ name: one_pk_two_idx\n" + + " │ └─ columns: [pk v1 v2]\n" + " └─ HashLookup\n" + " ├─ left-key: TUPLE(a.pk:2!null)\n" + " ├─ right-key: TUPLE(l.v2:2)\n" + @@ -18178,10 +17998,9 @@ inner join pq on true "", ExpectedEstimates: "Project\n" + " ├─ columns: [a.pk, a.v1, a.v2]\n" + - " └─ LeftOuterHashJoin (estimated cost=34.200 rows=10)\n" + + " └─ LeftOuterHashJoin (estimated cost=32.180 rows=10)\n" + " ├─ (a.pk = l.v2)\n" + - " ├─ LeftOuterHashJoin (estimated cost=32.180 rows=10)\n" + - " │ ├─ (a.pk = i.v1)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=26.400 rows=8)\n" + " │ ├─ MergeJoin (estimated cost=16.240 rows=8)\n" + " │ │ ├─ cmp: (i.v1 = j.pk)\n" + " │ │ ├─ TableAlias(i)\n" + @@ -18194,13 +18013,11 @@ inner join pq on true " │ │ ├─ index: [one_pk_three_idx.pk]\n" + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + " │ │ └─ columns: [pk]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (i.v1)\n" + - " │ ├─ right-key: (a.pk)\n" + - " │ └─ TableAlias(a)\n" + - " │ └─ Table\n" + - " │ ├─ name: one_pk_two_idx\n" + - " │ └─ columns: [pk v1 v2]\n" + + " │ └─ TableAlias(a)\n" + + " │ └─ IndexedTableAccess(one_pk_two_idx)\n" + + " │ ├─ index: [one_pk_two_idx.pk]\n" + + " │ ├─ columns: [pk v1 v2]\n" + + " │ └─ keys: i.v1\n" + " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (l.v2)\n" + @@ -18219,10 +18036,9 @@ inner join pq on true "", ExpectedAnalysis: "Project\n" + " ├─ columns: [a.pk, a.v1, a.v2]\n" + - " └─ LeftOuterHashJoin (estimated cost=34.200 rows=10) (actual rows=11 loops=1)\n" + + " └─ LeftOuterHashJoin (estimated cost=32.180 rows=10) (actual rows=11 loops=1)\n" + " ├─ (a.pk = l.v2)\n" + - " ├─ LeftOuterHashJoin (estimated cost=32.180 rows=10) (actual rows=8 loops=1)\n" + - " │ ├─ (a.pk = i.v1)\n" + + " ├─ LeftOuterLookupJoin (estimated cost=26.400 rows=8) (actual rows=8 loops=1)\n" + " │ ├─ MergeJoin (estimated cost=16.240 rows=8) (actual rows=8 loops=1)\n" + " │ │ ├─ cmp: (i.v1 = j.pk)\n" + " │ │ ├─ TableAlias(i)\n" + @@ -18235,13 +18051,11 @@ inner join pq on true " │ │ ├─ index: [one_pk_three_idx.pk]\n" + " │ │ ├─ filters: [{[NULL, ∞)}]\n" + " │ │ └─ columns: [pk]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (i.v1)\n" + - " │ ├─ right-key: (a.pk)\n" + - " │ └─ TableAlias(a)\n" + - " │ └─ Table\n" + - " │ ├─ name: one_pk_two_idx\n" + - " │ └─ columns: [pk v1 v2]\n" + + " │ └─ TableAlias(a)\n" + + " │ └─ IndexedTableAccess(one_pk_two_idx)\n" + + " │ ├─ index: [one_pk_two_idx.pk]\n" + + " │ ├─ columns: [pk v1 v2]\n" + + " │ └─ keys: i.v1\n" + " └─ HashLookup\n" + " ├─ left-key: (a.pk)\n" + " ├─ right-key: (l.v2)\n" + @@ -21277,60 +21091,61 @@ With c as ( " ├─ colSet: (13)\n" + " ├─ tableId: 8\n" + " └─ Project\n" + - " ├─ columns: [a.s:3!null]\n" + + " ├─ columns: [a.s:5!null]\n" + " └─ HashJoin\n" + - " ├─ Eq\n" + - " │ ├─ b.I:0!null\n" + - " │ └─ e.i:4!null\n" + - " ├─ HashJoin\n" + + " ├─ AND\n" + " │ ├─ Eq\n" + - " │ │ ├─ a.i:2!null\n" + + " │ │ ├─ a.i:4!null\n" + " │ │ └─ b.i:0!null\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: b\n" + - " │ │ ├─ outerVisibility: false\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ colSet: (5,6)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ TableAlias(t2)\n" + - " │ │ └─ IndexedTableAccess(mytable)\n" + - " │ │ ├─ index: [mytable.i]\n" + - " │ │ ├─ static: [{[1, 1]}, {[2, 2]}]\n" + - " │ │ ├─ colSet: (3,4)\n" + - " │ │ ├─ tableId: 2\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: mytable\n" + - " │ │ └─ columns: [i s]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(b.i:0!null)\n" + - " │ ├─ right-key: TUPLE(a.i:0!null)\n" + - " │ └─ TableAlias(a)\n" + + " │ └─ Eq\n" + + " │ ├─ b.I:0!null\n" + + " │ └─ e.i:2!null\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: b\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (5,6)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ TableAlias(t2)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}]\n" + + " │ ├─ colSet: (3,4)\n" + + " │ ├─ tableId: 2\n" + " │ └─ Table\n" + " │ ├─ name: mytable\n" + - " │ ├─ columns: [i s]\n" + - " │ ├─ colSet: (1,2)\n" + - " │ └─ tableId: 1\n" + + " │ └─ columns: [i s]\n" + " └─ HashLookup\n" + - " ├─ left-key: TUPLE(b.I:0!null)\n" + - " ├─ right-key: TUPLE(e.i:0!null)\n" + - " └─ CachedResults\n" + - " └─ SubqueryAlias\n" + - " ├─ name: e\n" + - " ├─ outerVisibility: false\n" + - " ├─ isLateral: false\n" + - " ├─ cacheable: true\n" + - " ├─ colSet: (9,10)\n" + - " ├─ tableId: 5\n" + - " └─ TableAlias(t1)\n" + - " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i]\n" + - " ├─ static: [{[2, 2]}, {[3, 3]}]\n" + - " ├─ colSet: (7,8)\n" + - " ├─ tableId: 4\n" + - " └─ Table\n" + - " ├─ name: mytable\n" + - " └─ columns: [i s]\n" + + " ├─ left-key: TUPLE(b.i:0!null, b.I:0!null)\n" + + " ├─ right-key: TUPLE(a.i:2!null, e.i:0!null)\n" + + " └─ LookupJoin\n" + + " ├─ CachedResults\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: e\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (9,10)\n" + + " │ ├─ tableId: 5\n" + + " │ └─ TableAlias(t1)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ static: [{[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (7,8)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: mytable\n" + + " │ └─ columns: [i s]\n" + + " └─ TableAlias(a)\n" + + " └─ IndexedTableAccess(mytable)\n" + + " ├─ index: [mytable.i]\n" + + " ├─ keys: [e.i:2!null]\n" + + " ├─ colSet: (1,2)\n" + + " ├─ tableId: 1\n" + + " └─ Table\n" + + " ├─ name: mytable\n" + + " └─ columns: [i s]\n" + "", ExpectedEstimates: "SubqueryAlias\n" + " ├─ name: c\n" + @@ -21340,40 +21155,37 @@ With c as ( " └─ Project\n" + " ├─ columns: [a.s]\n" + " └─ HashJoin\n" + - " ├─ (b.I = e.i)\n" + - " ├─ HashJoin\n" + - " │ ├─ (a.i = b.i)\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: b\n" + - " │ │ ├─ outerVisibility: false\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ └─ TableAlias(t2)\n" + - " │ │ └─ IndexedTableAccess(mytable)\n" + - " │ │ ├─ index: [mytable.i]\n" + - " │ │ ├─ filters: [{[1, 1]}, {[2, 2]}]\n" + - " │ │ └─ columns: [i s]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (b.i)\n" + - " │ ├─ right-key: (a.i)\n" + - " │ └─ TableAlias(a)\n" + - " │ └─ Table\n" + - " │ ├─ name: mytable\n" + - " │ └─ columns: [i s]\n" + + " ├─ ((a.i = b.i) AND (b.I = e.i))\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: b\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ TableAlias(t2)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[1, 1]}, {[2, 2]}]\n" + + " │ └─ columns: [i s]\n" + " └─ HashLookup\n" + - " ├─ left-key: (b.I)\n" + - " ├─ right-key: (e.i)\n" + - " └─ CachedResults\n" + - " └─ SubqueryAlias\n" + - " ├─ name: e\n" + - " ├─ outerVisibility: false\n" + - " ├─ isLateral: false\n" + - " ├─ cacheable: true\n" + - " └─ TableAlias(t1)\n" + - " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i]\n" + - " ├─ filters: [{[2, 2]}, {[3, 3]}]\n" + - " └─ columns: [i s]\n" + + " ├─ left-key: (b.i, b.I)\n" + + " ├─ right-key: (a.i, e.i)\n" + + " └─ LookupJoin\n" + + " ├─ CachedResults\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: e\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ TableAlias(t1)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[2, 2]}, {[3, 3]}]\n" + + " │ └─ columns: [i s]\n" + + " └─ TableAlias(a)\n" + + " └─ IndexedTableAccess(mytable)\n" + + " ├─ index: [mytable.i]\n" + + " ├─ columns: [i s]\n" + + " └─ keys: e.i\n" + "", ExpectedAnalysis: "SubqueryAlias\n" + " ├─ name: c\n" + @@ -21383,40 +21195,37 @@ With c as ( " └─ Project\n" + " ├─ columns: [a.s]\n" + " └─ HashJoin\n" + - " ├─ (b.I = e.i)\n" + - " ├─ HashJoin\n" + - " │ ├─ (a.i = b.i)\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: b\n" + - " │ │ ├─ outerVisibility: false\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ └─ TableAlias(t2)\n" + - " │ │ └─ IndexedTableAccess(mytable)\n" + - " │ │ ├─ index: [mytable.i]\n" + - " │ │ ├─ filters: [{[1, 1]}, {[2, 2]}]\n" + - " │ │ └─ columns: [i s]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: (b.i)\n" + - " │ ├─ right-key: (a.i)\n" + - " │ └─ TableAlias(a)\n" + - " │ └─ Table\n" + - " │ ├─ name: mytable\n" + - " │ └─ columns: [i s]\n" + + " ├─ ((a.i = b.i) AND (b.I = e.i))\n" + + " ├─ SubqueryAlias\n" + + " │ ├─ name: b\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ TableAlias(t2)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[1, 1]}, {[2, 2]}]\n" + + " │ └─ columns: [i s]\n" + " └─ HashLookup\n" + - " ├─ left-key: (b.I)\n" + - " ├─ right-key: (e.i)\n" + - " └─ CachedResults\n" + - " └─ SubqueryAlias\n" + - " ├─ name: e\n" + - " ├─ outerVisibility: false\n" + - " ├─ isLateral: false\n" + - " ├─ cacheable: true\n" + - " └─ TableAlias(t1)\n" + - " └─ IndexedTableAccess(mytable)\n" + - " ├─ index: [mytable.i]\n" + - " ├─ filters: [{[2, 2]}, {[3, 3]}]\n" + - " └─ columns: [i s]\n" + + " ├─ left-key: (b.i, b.I)\n" + + " ├─ right-key: (a.i, e.i)\n" + + " └─ LookupJoin\n" + + " ├─ CachedResults\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: e\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ TableAlias(t1)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[2, 2]}, {[3, 3]}]\n" + + " │ └─ columns: [i s]\n" + + " └─ TableAlias(a)\n" + + " └─ IndexedTableAccess(mytable)\n" + + " ├─ index: [mytable.i]\n" + + " ├─ columns: [i s]\n" + + " └─ keys: e.i\n" + "", }, { @@ -24198,7 +24007,7 @@ order by x, y; "", ExpectedEstimates: "Project\n" + " ├─ columns: [sq.k, bigtable.t, bigtable.n, xy.x, xy.y]\n" + - " └─ HashJoin (estimated cost=153.250 rows=125)\n" + + " └─ HashJoin (estimated cost=152.210 rows=21)\n" + " ├─ (bigtable.t = sq.k)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sq\n" + @@ -24225,7 +24034,7 @@ order by x, y; "", ExpectedAnalysis: "Project\n" + " ├─ columns: [sq.k, bigtable.t, bigtable.n, xy.x, xy.y]\n" + - " └─ HashJoin (estimated cost=153.250 rows=125) (actual rows=1 loops=1)\n" + + " └─ HashJoin (estimated cost=152.210 rows=21) (actual rows=1 loops=1)\n" + " ├─ (bigtable.t = sq.k)\n" + " ├─ SubqueryAlias\n" + " │ ├─ name: sq\n" + diff --git a/go.sum b/go.sum index 8b721b8171..dbdcc8859b 100644 --- a/go.sum +++ b/go.sum @@ -18,8 +18,6 @@ github.com/dolthub/jsonpath v0.0.2-0.20240227200619-19675ab05c71 h1:bMGS25NWAGTE github.com/dolthub/jsonpath v0.0.2-0.20240227200619-19675ab05c71/go.mod h1:2/2zjLQ/JOOSbbSboojeg+cAwcRV0fDLzIiWch/lhqI= github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81 h1:7/v8q9XGFa6q5Ap4Z/OhNkAMBaK5YeuEzwJt+NZdhiE= github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81/go.mod h1:siLfyv2c92W1eN/R4QqG/+RjjX5W2+gCTRjZxBjI3TY= -github.com/dolthub/vitess v0.0.0-20250930230441-70c2c6a98e33 h1:ScHTwNbcVC6JH1OSyXzj8S4w67BIpRXwTSjrac3/PSw= -github.com/dolthub/vitess v0.0.0-20250930230441-70c2c6a98e33/go.mod h1:8pvvk5OLaLN9LLxghyczUapn/97l+mBgIb10qC1LG84= github.com/dolthub/vitess v0.0.0-20251031205214-d09b65bd77b0 h1:RXopPQP1bwb5fsnXAC89joqk/3pIgQnQSU8lAHJhue0= github.com/dolthub/vitess v0.0.0-20251031205214-d09b65bd77b0/go.mod h1:FLWqdXsAeeBQyFwDjmBVu0GnbjI2MKeRf3tRVdJEKlI= github.com/dolthub/vitess v0.0.0-20251105091622-b08b393fd9b1 h1:2uiHo4gkf2n/Cw9uCBDkCWj35Vz48Uhif2B9P+DqgCg= diff --git a/sql/func_deps.go b/sql/func_deps.go index 6cf59b7d54..e9feca2b4f 100644 --- a/sql/func_deps.go +++ b/sql/func_deps.go @@ -43,13 +43,17 @@ func (e *EquivSets) Sets() []ColSet { } func (e *EquivSets) String() string { + return e.StringWithLabel("equiv") +} + +func (e *EquivSets) StringWithLabel(label string) string { if e == nil { - return "equiv()" + return fmt.Sprintf("%s()", label) } b := strings.Builder{} sep := "" for i, set := range e.sets { - b.WriteString(fmt.Sprintf("%sequiv%s", sep, set)) + b.WriteString(fmt.Sprintf("%s%s%s", sep, label, set)) if i == 0 { sep = "; " } @@ -102,18 +106,6 @@ func (k *Key) implies(other Key) bool { // a fraction of the total input set. The first key always determines // the entire relation, which seems good enough for many cases. // Maintaining partials sets also requires much less bookkeeping. -// -// TODO: We used to not track dependency sets and only add keys that -// determined the entire relation. One observed downside of that approach -// is that left joins fail to convert equivalencies on the null-extended -// side to lax functional dependencies. For example, in the query below, -// the left join loses (a) == (m) because (m) can now be NULL: -// -// SELECT * from adbcd LEFT_JOIN mnpq WHERE a = m -// -// But we could maintain (m)~~>(n), which higher-level null enforcement -// (ex: GROUPING) can reclaim as equivalence. Although we now track partial -// dependency sets, this may still not be supported. type FuncDepSet struct { // all columns in this relation all ColSet @@ -123,6 +115,8 @@ type FuncDepSet struct { consts ColSet // tracks in-scope equivalent closure equivs *EquivSets + // tracks partial equivalent closure. This is used for left joins, where the right side is null-extended + partialEquivs *EquivSets // keys includes the set of primary and secondary keys // accumulated in the relation. The first key is the best // key we have seen so far, where strict > lax and shorter @@ -213,22 +207,25 @@ func (f *FuncDepSet) String() string { b.WriteString(fmt.Sprintf("%s%s", sep, f.equivs)) sep = "; " } - if len(f.keys) < 2 { - return b.String() + if f.partialEquivs.Len() > 0 { + b.WriteString(fmt.Sprintf("%s%s", sep, f.partialEquivs.StringWithLabel("partialEquiv"))) + sep = "; " } - for _, k := range f.keys[1:] { - var cols string - if k.allCols == f.all { - cols = k.cols.String() - } else { - cols = fmt.Sprintf("%s/%s", k.cols, k.allCols) - } - if k.strict { - b.WriteString(fmt.Sprintf("%sfd%s", sep, cols)) - } else { - b.WriteString(fmt.Sprintf("%slax-fd%s", sep, cols)) + if len(f.keys) >= 2 { + for _, k := range f.keys[1:] { + var cols string + if k.allCols == f.all { + cols = k.cols.String() + } else { + cols = fmt.Sprintf("%s/%s", k.cols, k.allCols) + } + if k.strict { + b.WriteString(fmt.Sprintf("%sfd%s", sep, cols)) + } else { + b.WriteString(fmt.Sprintf("%slax-fd%s", sep, cols)) + } + sep = "; " } - sep = "; " } return b.String() } @@ -238,7 +235,8 @@ func (f *FuncDepSet) Constants() ColSet { } func (f *FuncDepSet) EquivalenceClosure(cols ColSet) ColSet { - for _, set := range f.equivs.Sets() { + equivSets := append(f.equivs.Sets(), f.partialEquivs.Sets()...) + for _, set := range equivSets { if set.Intersects(cols) { cols = cols.Union(set) } @@ -257,9 +255,6 @@ func (f *FuncDepSet) AddConstants(cols ColSet) { func (f *FuncDepSet) AddEquiv(i, j ColumnId) { cols := NewColSet(i, j) - if f.equivs == nil { - f.equivs = &EquivSets{} - } f.AddEquivSet(cols) } @@ -276,6 +271,14 @@ func (f *FuncDepSet) AddEquivSet(cols ColSet) { } } +func (f *FuncDepSet) AddPartialEquiv(i, j ColumnId) { + cols := NewColSet(i, j) + if f.partialEquivs == nil { + f.partialEquivs = &EquivSets{} + } + f.partialEquivs.Add(cols) +} + func (f *FuncDepSet) AddKey(k Key) { switch k.strict { case true: @@ -661,10 +664,17 @@ func NewLeftJoinFDs(left, right *FuncDepSet, filters [][2]ColumnId) *FuncDepSet } ret.AddConstants(leftConst) } - // only left equiv holds + + // add left equivs for _, equiv := range left.equivs.Sets() { ret.AddEquivSet(equiv) } + // add partial equiv filters if right-side column is not nullable + for _, f := range filters { + if right.notNull.Contains(f[0]) || right.notNull.Contains(f[1]) { + ret.AddPartialEquiv(f[0], f[1]) + } + } if leftStrict && leftColsAreInnerJoinKey { strictKey := Key{strict: true, allCols: ret.all, cols: leftKey} @@ -676,10 +686,6 @@ func NewLeftJoinFDs(left, right *FuncDepSet, filters [][2]ColumnId) *FuncDepSet ret.keys = append(ret.keys, jKey) } - // no filter equivs are valid - // TODO if right columns are non-nullable in ON filter, equivs hold - // technically we could do (r)~~>(l), but is this useful? - // right-side keys become lax unless all non-nullable in original for _, key := range rightKeys { if !key.cols.SubsetOf(right.notNull) { diff --git a/sql/func_deps_test.go b/sql/func_deps_test.go index 0e2a05335b..4ea2104922 100644 --- a/sql/func_deps_test.go +++ b/sql/func_deps_test.go @@ -348,7 +348,7 @@ func TestFuncDeps_LeftJoin(t *testing.T) { join := NewLeftJoinFDs(mnpq, abcde, [][2]ColumnId{}) assert.Equal(t, "key(1,6,7); equiv(6,8,9); lax-fd(3)/(1-5)", join.String()) }) - t.Run("join filter equiv", func(t *testing.T) { + t.Run("join filter partial equiv", func(t *testing.T) { // SELECT * FROM abcde RIGHT OUTER JOIN mnpq ON a=m abcde := &FuncDepSet{all: cols(1, 2, 3, 4, 5)} abcde.AddNotNullable(cols(1)) @@ -359,6 +359,19 @@ func TestFuncDeps_LeftJoin(t *testing.T) { mnpq.AddNotNullable(cols(6, 7)) mnpq.AddStrictKey(cols(6, 7)) + join := NewLeftJoinFDs(mnpq, abcde, [][2]ColumnId{{1, 6}}) + assert.Equal(t, "key(6,7); partialEquiv(1,6); fd(1)/(1-5); lax-fd(2,3)/(1-5)", join.String()) + }) + t.Run("join filter no partial equiv", func(t *testing.T) { + // SELECT * FROM abcde RIGHT OUTER JOIN mnpq ON a=m + abcde := &FuncDepSet{all: cols(1, 2, 3, 4, 5)} + abcde.AddStrictKey(cols(1)) + abcde.AddLaxKey(cols(2, 3)) + + mnpq := &FuncDepSet{all: cols(6, 7, 8, 9)} + mnpq.AddNotNullable(cols(6, 7)) + mnpq.AddStrictKey(cols(6, 7)) + join := NewLeftJoinFDs(mnpq, abcde, [][2]ColumnId{{1, 6}}) assert.Equal(t, "key(6,7); fd(1)/(1-5); lax-fd(2,3)/(1-5)", join.String()) }) @@ -374,7 +387,7 @@ func TestFuncDeps_LeftJoin(t *testing.T) { mnpq.AddStrictKey(cols(6, 7)) join := NewLeftJoinFDs(mnpq, abcde, [][2]ColumnId{{1, 6}, {1, 2}}) - assert.Equal(t, "key(6,7); fd(1)/(1-5); lax-fd(2,3)/(1-5)", join.String()) + assert.Equal(t, "key(6,7); partialEquiv(1,2,6); fd(1)/(1-5); lax-fd(2,3)/(1-5)", join.String()) }) t.Run("max1Row left join", func(t *testing.T) { abcde := &FuncDepSet{all: cols(1, 2, 3, 4, 5)} @@ -390,7 +403,7 @@ func TestFuncDeps_LeftJoin(t *testing.T) { mnpq.AddStrictKey(cols(6, 7)) join := NewLeftJoinFDs(mnpq, abcde, [][2]ColumnId{{1, 6}, {1, 2}}) - assert.Equal(t, "key(); constant(1,6,7)", join.String()) + assert.Equal(t, "key(); constant(1,6,7); partialEquiv(1,2,6)", join.String()) }) } diff --git a/sql/memo/coster.go b/sql/memo/coster.go index a313f6aa00..313a9e7e54 100644 --- a/sql/memo/coster.go +++ b/sql/memo/coster.go @@ -243,7 +243,7 @@ func lookupJoinSelectivity(l *IndexScan, joinBase *JoinBase) float64 { return math.Pow(perKeyCostReductionFactor, float64(len(l.Table.Expressions()))) * optimisticJoinSel } -// isInjectiveLookup returns whether every lookup with the given key expressions is guarenteed to return +// isInjectiveLookup returns whether every lookup with the given key expressions is guaranteed to return // at most one row. func isInjectiveLookup(idx *Index, joinBase *JoinBase, keyExprs []sql.Expression, nullMask []bool) bool { if !idx.SqlIdx().IsUnique() { diff --git a/sql/memo/rel_props.go b/sql/memo/rel_props.go index 2601e61f42..3416e94249 100644 --- a/sql/memo/rel_props.go +++ b/sql/memo/rel_props.go @@ -326,6 +326,23 @@ func (m *Memo) CardMemoGroups(ctx *sql.Context, g *ExprGroup) { g.RelProps.SetStats(s) } +func estimatedCardinalityStats(jp *JoinBase) sql.Statistic { + left := jp.Left.RelProps.GetStats() + right := jp.Right.RelProps.GetStats() + + distinct := math.Max(float64(left.DistinctCount()), float64(right.DistinctCount())) + if distinct == 0 { + m := math.Max(float64(left.RowCount()), float64(right.RowCount())) + distinct = m * .80 + } + + // Assume that the smaller set is surjective onto the larger set, and at least one of the sets is uniformly distributed. + // If so, then the odds that a random element of each set matches can be computed as: + selectivity := 1.0 / float64(distinct) + card := uint64(float64(left.RowCount()*right.RowCount()) * selectivity) + return &stats.Statistic{RowCnt: card} +} + func (m *Memo) statsForRel(ctx *sql.Context, rel RelExpr) sql.Statistic { m.Tracer.PushDebugContext("statsForRel") defer m.Tracer.PopDebugContext() @@ -333,13 +350,9 @@ func (m *Memo) statsForRel(ctx *sql.Context, rel RelExpr) sql.Statistic { var stat sql.Statistic switch rel := rel.(type) { case JoinRel: - // different joins use different ways to estimate cardinality of outputs - jp := rel.JoinPrivate() - left := jp.Left.RelProps.GetStats() - right := jp.Right.RelProps.GetStats() - + estimatedCardStats := estimatedCardinalityStats(rel.JoinPrivate()) + smallestLeft := estimatedCardStats var injective bool - var smallestLeft sql.Statistic var mergeStats sql.Statistic var n RelExpr = rel var done bool @@ -348,7 +361,7 @@ func (m *Memo) statsForRel(ctx *sql.Context, rel RelExpr) sql.Statistic { case *LookupJoin: if n.Injective { injective = true - if smallestLeft == nil || n.Left.RelProps.GetStats().RowCount() < smallestLeft.RowCount() { + if n.Left.RelProps.GetStats().RowCount() < smallestLeft.RowCount() { smallestLeft = n.Left.RelProps.GetStats() } } @@ -397,18 +410,7 @@ func (m *Memo) statsForRel(ctx *sql.Context, rel RelExpr) sql.Statistic { return mergeStats } - distinct := math.Max(float64(left.DistinctCount()), float64(right.DistinctCount())) - if distinct == 0 { - m := math.Max(float64(left.RowCount()), float64(right.RowCount())) - distinct = m * .80 - } - - // Assume that the smaller set is surjective onto the larger set, and at least one of the sets is uniformly distributed. - // If so, then the odds that a random element of each set matches can be computed as: - selectivity := 1.0 / float64(distinct) - card := float64(left.RowCount()*right.RowCount()) * selectivity - return &stats.Statistic{RowCnt: uint64(card)} - + return estimatedCardStats case *Max1Row: stat = &stats.Statistic{RowCnt: 1}