diff --git a/enginetest/queries/integration_plans.go b/enginetest/queries/integration_plans.go index 6cc04f5194..74f6ffb47f 100644 --- a/enginetest/queries/integration_plans.go +++ b/enginetest/queries/integration_plans.go @@ -253,9 +253,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from HDDVB where UJ6XY = nd.id) as WGBRL]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ ├─ index: [HDDVB.UJ6XY]\n" + + " │ │ ├─ columns: [uj6xy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as WGBRL]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from HDDVB where UJ6XY = nd.id) as WGBRL]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ ├─ index: [HDDVB.UJ6XY]\n" + + " │ │ ├─ columns: [uj6xy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as WGBRL]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -291,9 +317,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from HDDVB where UJ6XY = nd.id) as WGBRL]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ ├─ index: [HDDVB.UJ6XY]\n" + + " │ │ ├─ columns: [uj6xy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as WGBRL]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from HDDVB where UJ6XY = nd.id) as WGBRL]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (hddvb.UJ6XY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(HDDVB)\n" + + " │ │ ├─ index: [HDDVB.UJ6XY]\n" + + " │ │ ├─ columns: [uj6xy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as WGBRL]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -538,7 +590,34 @@ WHERE ExpectedEstimates: "Filter\n" + " ├─ (((NOT(ism.PRUV2 IS NULL)) AND ((Subquery(select NHMXW.SWCQV from WGSDC as NHMXW where NHMXW.id = ism.PRUV2) = 1) OR (((NOT(ism.FV24E IS NULL)) AND (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select NHMXW.FZXV5 from WGSDC as NHMXW where NHMXW.id = ism.PRUV2)) = ism.FV24E)))) OR ((NOT(ism.UJ6XY IS NULL)) AND (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select NHMXW.DQYGV from WGSDC as NHMXW where NHMXW.id = ism.PRUV2)) = ism.UJ6XY))))))) OR ((NOT(ism.ETPQV IS NULL)) AND InSubquery\n" + " │ ├─ left: ism.ETPQV\n" + - " │ └─ right: Subquery(select TIZHK.id as FWATE from WGSDC as NHMXW join WRZVO as TIZHK on TIZHK.TVNW2 = NHMXW.NOHHR and TIZHK.ZHITY = NHMXW.AVPYF and TIZHK.SYPKF = NHMXW.SYPKF and TIZHK.IDUT2 = NHMXW.IDUT2 where NHMXW.SWCQV = 0 and NHMXW.id not in (select PRUV2 from HDDVB where PRUV2 is not null))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [tizhk.id as FWATE]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [WGSDC.id, WGSDC.NOHHR, WGSDC.AVPYF, WGSDC.SYPKF, WGSDC.IDUT2, WGSDC.FZXV5, WGSDC.DQYGV, WGSDC.SWCQV, WGSDC.YKSSU, WGSDC.FHCYT, WRZVO.id, WRZVO.TVNW2, WRZVO.ZHITY, WRZVO.SYPKF, WRZVO.IDUT2, WRZVO.O6QJ3, WRZVO.NO2JA, WRZVO.YKSSU, WRZVO.FHCYT, WRZVO.QZ6VT]\n" + + " │ └─ Filter\n" + + " │ ├─ hddvb.PRUV2 IS NULL\n" + + " │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ ├─ (nhmxw.id = hddvb.PRUV2)\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ (((tizhk.TVNW2 = nhmxw.NOHHR) AND (tizhk.ZHITY = nhmxw.AVPYF)) AND (tizhk.IDUT2 = nhmxw.IDUT2))\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (nhmxw.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: WGSDC\n" + + " │ │ └─ TableAlias(tizhk)\n" + + " │ │ └─ IndexedTableAccess(WRZVO)\n" + + " │ │ ├─ index: [WRZVO.SYPKF]\n" + + " │ │ └─ keys: nhmxw.SYPKF\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (nhmxw.id)\n" + + " │ ├─ right-key: (hddvb.PRUV2)\n" + + " │ └─ IndexedTableAccess(HDDVB)\n" + + " │ ├─ index: [HDDVB.PRUV2]\n" + + " │ ├─ filters: [{(NULL, ∞)}]\n" + + " │ └─ columns: [pruv2]\n" + " │ ))\n" + " └─ TableAlias(ism)\n" + " └─ Table\n" + @@ -547,7 +626,34 @@ WHERE ExpectedAnalysis: "Filter\n" + " ├─ (((NOT(ism.PRUV2 IS NULL)) AND ((Subquery(select NHMXW.SWCQV from WGSDC as NHMXW where NHMXW.id = ism.PRUV2) = 1) OR (((NOT(ism.FV24E IS NULL)) AND (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select NHMXW.FZXV5 from WGSDC as NHMXW where NHMXW.id = ism.PRUV2)) = ism.FV24E)))) OR ((NOT(ism.UJ6XY IS NULL)) AND (NOT((Subquery(select nd.id from E2I7U as nd where nd.TW55N = (select NHMXW.DQYGV from WGSDC as NHMXW where NHMXW.id = ism.PRUV2)) = ism.UJ6XY))))))) OR ((NOT(ism.ETPQV IS NULL)) AND InSubquery\n" + " │ ├─ left: ism.ETPQV\n" + - " │ └─ right: Subquery(select TIZHK.id as FWATE from WGSDC as NHMXW join WRZVO as TIZHK on TIZHK.TVNW2 = NHMXW.NOHHR and TIZHK.ZHITY = NHMXW.AVPYF and TIZHK.SYPKF = NHMXW.SYPKF and TIZHK.IDUT2 = NHMXW.IDUT2 where NHMXW.SWCQV = 0 and NHMXW.id not in (select PRUV2 from HDDVB where PRUV2 is not null))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [tizhk.id as FWATE]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [WGSDC.id, WGSDC.NOHHR, WGSDC.AVPYF, WGSDC.SYPKF, WGSDC.IDUT2, WGSDC.FZXV5, WGSDC.DQYGV, WGSDC.SWCQV, WGSDC.YKSSU, WGSDC.FHCYT, WRZVO.id, WRZVO.TVNW2, WRZVO.ZHITY, WRZVO.SYPKF, WRZVO.IDUT2, WRZVO.O6QJ3, WRZVO.NO2JA, WRZVO.YKSSU, WRZVO.FHCYT, WRZVO.QZ6VT]\n" + + " │ └─ Filter\n" + + " │ ├─ hddvb.PRUV2 IS NULL\n" + + " │ └─ LeftOuterHashJoinExcludingNulls\n" + + " │ ├─ (nhmxw.id = hddvb.PRUV2)\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ (((tizhk.TVNW2 = nhmxw.NOHHR) AND (tizhk.ZHITY = nhmxw.AVPYF)) AND (tizhk.IDUT2 = nhmxw.IDUT2))\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ (nhmxw.SWCQV = 0)\n" + + " │ │ │ └─ TableAlias(nhmxw)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ └─ name: WGSDC\n" + + " │ │ └─ TableAlias(tizhk)\n" + + " │ │ └─ IndexedTableAccess(WRZVO)\n" + + " │ │ ├─ index: [WRZVO.SYPKF]\n" + + " │ │ └─ keys: nhmxw.SYPKF\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: (nhmxw.id)\n" + + " │ ├─ right-key: (hddvb.PRUV2)\n" + + " │ └─ IndexedTableAccess(HDDVB)\n" + + " │ ├─ index: [HDDVB.PRUV2]\n" + + " │ ├─ filters: [{(NULL, ∞)}]\n" + + " │ └─ columns: [pruv2]\n" + " │ ))\n" + " └─ TableAlias(ism)\n" + " └─ Table\n" + @@ -1133,9 +1239,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from FLQLP where LUEVY = nd.id) as LEA4J]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as LEA4J]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from FLQLP where LUEVY = nd.id) as LEA4J]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as LEA4J]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -1171,9 +1303,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from FLQLP where LUEVY = nd.id) as LEA4J]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as LEA4J]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from FLQLP where LUEVY = nd.id) as LEA4J]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (flqlp.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(FLQLP)\n" + + " │ │ ├─ index: [FLQLP.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as LEA4J]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -1416,7 +1574,34 @@ WHERE " └─ Filter\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(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" + + " │ └─ 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" + " └─ HashJoin (estimated cost=16273.620 rows=14781)\n" + " ├─ (ci.id = ct.FZ2R5)\n" + @@ -1447,7 +1632,34 @@ WHERE " └─ Filter\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(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" + + " │ └─ 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" + " └─ HashJoin (estimated cost=16273.620 rows=14781) (actual rows=0 loops=1)\n" + " ├─ (ci.id = ct.FZ2R5)\n" + @@ -2636,7 +2848,63 @@ WHERE " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: tdrvg.id\n" + - " │ └─ right: Subquery(select (select id from TDRVG where SSHPJ = S7BYT.SSHPJ order by id asc limit 1) id from (select distinct S5KBM.SSHPJ as SSHPJ, S5KBM.SFJ6L as SFJ6L from TDRVG as S5KBM join E2I7U as nd on nd.FGG57 = S5KBM.FGG57) as S7BYT where S7BYT.SSHPJ not in (select SSHPJ from WE72E))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tdrvg.id]\n" + + " │ │ └─ Sort(tdrvg.id ASC)\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (tdrvg.SSHPJ = s7byt.SSHPJ)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.SSHPJ]\n" + + " │ │ ├─ columns: [id sshpj]\n" + + " │ │ └─ keys: s7byt.SSHPJ\n" + + " │ │ as id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tdrvg.id]\n" + + " │ │ └─ Sort(tdrvg.id ASC)\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (tdrvg.SSHPJ = s7byt.SSHPJ)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.SSHPJ]\n" + + " │ │ ├─ columns: [id sshpj]\n" + + " │ │ └─ keys: s7byt.SSHPJ\n" + + " │ │ as id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L]\n" + + " │ └─ Filter\n" + + " │ ├─ we72e.SSHPJ IS NULL\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=405.900 rows=124)\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: s7byt\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ Distinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [s5kbm.SSHPJ as SSHPJ, s5kbm.SFJ6L as SFJ6L]\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ TableAlias(nd)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [fgg57]\n" + + " │ │ └─ TableAlias(s5kbm)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.FGG57]\n" + + " │ │ ├─ columns: [fgg57 sshpj sfj6l]\n" + + " │ │ └─ keys: nd.FGG57\n" + + " │ └─ IndexedTableAccess(WE72E)\n" + + " │ ├─ index: [WE72E.SSHPJ]\n" + + " │ ├─ columns: [sshpj]\n" + + " │ └─ keys: s7byt.SSHPJ\n" + " └─ Table\n" + " └─ name: TDRVG\n" + "", @@ -2645,7 +2913,63 @@ WHERE " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: tdrvg.id\n" + - " │ └─ right: Subquery(select (select id from TDRVG where SSHPJ = S7BYT.SSHPJ order by id asc limit 1) id from (select distinct S5KBM.SSHPJ as SSHPJ, S5KBM.SFJ6L as SFJ6L from TDRVG as S5KBM join E2I7U as nd on nd.FGG57 = S5KBM.FGG57) as S7BYT where S7BYT.SSHPJ not in (select SSHPJ from WE72E))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tdrvg.id]\n" + + " │ │ └─ Sort(tdrvg.id ASC)\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (tdrvg.SSHPJ = s7byt.SSHPJ)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.SSHPJ]\n" + + " │ │ ├─ columns: [id sshpj]\n" + + " │ │ └─ keys: s7byt.SSHPJ\n" + + " │ │ as id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tdrvg.id]\n" + + " │ │ └─ Sort(tdrvg.id ASC)\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (tdrvg.SSHPJ = s7byt.SSHPJ)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.SSHPJ]\n" + + " │ │ ├─ columns: [id sshpj]\n" + + " │ │ └─ keys: s7byt.SSHPJ\n" + + " │ │ as id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [s7byt.SSHPJ, s7byt.SFJ6L]\n" + + " │ └─ Filter\n" + + " │ ├─ we72e.SSHPJ IS NULL\n" + + " │ └─ LeftOuterLookupJoin (estimated cost=405.900 rows=124)\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: s7byt\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ Distinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [s5kbm.SSHPJ as SSHPJ, s5kbm.SFJ6L as SFJ6L]\n" + + " │ │ └─ LookupJoin\n" + + " │ │ ├─ TableAlias(nd)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [fgg57]\n" + + " │ │ └─ TableAlias(s5kbm)\n" + + " │ │ └─ IndexedTableAccess(TDRVG)\n" + + " │ │ ├─ index: [TDRVG.FGG57]\n" + + " │ │ ├─ columns: [fgg57 sshpj sfj6l]\n" + + " │ │ └─ keys: nd.FGG57\n" + + " │ └─ IndexedTableAccess(WE72E)\n" + + " │ ├─ index: [WE72E.SSHPJ]\n" + + " │ ├─ columns: [sshpj]\n" + + " │ └─ keys: s7byt.SSHPJ\n" + " └─ Table\n" + " └─ name: TDRVG\n" + "", @@ -2813,9 +3137,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from AMYXQ where LUEVY = nd.id) as TJ66D]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as TJ66D]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from AMYXQ where LUEVY = nd.id) as TJ66D]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as TJ66D]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -2851,9 +3201,35 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from AMYXQ where LUEVY = nd.id) as TJ66D]\n" + + " │ ├─ columns: [nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as TJ66D]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery(select COUNT(*) from AMYXQ where LUEVY = nd.id) as TJ66D]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as id, nd.ZH72S as ZH72S, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [count(1) as COUNT(*)]\n" + + " │ │ └─ GroupBy\n" + + " │ │ ├─ SelectDeps(COUNT(1))\n" + + " │ │ ├─ Grouping()\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as TJ66D]\n" + " │ └─ TableAlias(nd)\n" + " │ └─ IndexedTableAccess(E2I7U)\n" + " │ ├─ index: [E2I7U.ZH72S]\n" + @@ -3505,7 +3881,32 @@ WHERE " └─ Filter\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(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" + + " │ └─ 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" + " └─ HashJoin (estimated cost=529702.380 rows=511969)\n" + " ├─ (bs.id = mf.GXLUB)\n" + @@ -3546,7 +3947,32 @@ WHERE " └─ Filter\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(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" + + " │ └─ 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" + " └─ HashJoin (estimated cost=529702.380 rows=511969) (actual rows=0 loops=1)\n" + " ├─ (bs.id = mf.GXLUB)\n" + @@ -4225,9 +4651,31 @@ WHERE " ├─ Project\n" + " │ ├─ columns: [convert(T4IBQ, char) as T4IBQ, DL754, BDNYB, ADURZ, TPXBU, NO52D, IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ LookupJoin\n" + @@ -4316,9 +4764,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: sl3s5\n" + @@ -4389,9 +4859,31 @@ WHERE " ├─ Project\n" + " │ ├─ columns: [convert(T4IBQ, char) as T4IBQ, DL754, BDNYB, ADURZ, TPXBU, NO52D, IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ LookupJoin\n" + @@ -4480,9 +4972,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: sl3s5\n" + @@ -4989,9 +5503,31 @@ WHERE " ├─ Project\n" + " │ ├─ columns: [convert(T4IBQ, char) as T4IBQ, DL754, BDNYB, ADURZ, TPXBU, NO52D, IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ LookupJoin\n" + @@ -5074,9 +5610,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: sl3s5\n" + @@ -5147,9 +5705,31 @@ WHERE " ├─ Project\n" + " │ ├─ columns: [convert(T4IBQ, char) as T4IBQ, DL754, BDNYB, ADURZ, TPXBU, NO52D, IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\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, bs.id, bs.NFRYN, bs.IXUXU, bs.FHCYT, mf.id, mf.GXLUB, mf.LUEVY, mf.M22QN, mf.TJPT7, mf.ARN5P, mf.XOSD4, mf.IDE43, mf.HMW4H, mf.ZBT6R, mf.FSDY2, mf.LT7K6, mf.SPPYD, mf.QCGTS, mf.TEUJA, mf.QQV4M, mf.FHCYT, sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, cla.FTQLQ as T4IBQ, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ LookupJoin\n" + " │ │ ├─ LookupJoin\n" + @@ -5232,9 +5812,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ Project\n" + - " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery(select aac.BTXC5 from TPXBU as aac where aac.id = SL3S5.M22QN) as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + + " │ ├─ columns: [sn.id, sn.BRQP2, sn.FFTBJ, sn.A7XO2, sn.KBO7R, sn.ECDKM, sn.NUMK2, sn.LETOE, sn.YKSSU, sn.FHCYT, sl3s5.BDNYB, sl3s5.TOFPN, sl3s5.M22QN, sl3s5.ADURZ, sl3s5.NO52D, sl3s5.IDPK7, sl3s5.TOFPN as DL754, sn.id as BDNYB, sl3s5.ADURZ as ADURZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.BTXC5]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (aac.id = sl3s5.M22QN)\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.id]\n" + + " │ │ ├─ columns: [id btxc5]\n" + + " │ │ └─ keys: sl3s5.M22QN\n" + + " │ │ as TPXBU, sl3s5.NO52D as NO52D, sl3s5.IDPK7 as IDPK7]\n" + " │ └─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + " │ │ ├─ name: sl3s5\n" + @@ -6021,9 +6623,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery(select nt.DZLIM from F35MI as nt where nt.id = nd.DKCAJ) as SJ5DU]\n" + + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nt.DZLIM]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (nt.id = nd.DKCAJ)\n" + + " │ │ └─ TableAlias(nt)\n" + + " │ │ └─ IndexedTableAccess(F35MI)\n" + + " │ │ ├─ index: [F35MI.id]\n" + + " │ │ ├─ columns: [id dzlim]\n" + + " │ │ └─ keys: nd.DKCAJ\n" + + " │ │ as SJ5DU]\n" + " │ └─ Project\n" + - " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery(select nt.DZLIM from F35MI as nt where nt.id = nd.DKCAJ) as SJ5DU]\n" + + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nt.DZLIM]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (nt.id = nd.DKCAJ)\n" + + " │ │ └─ TableAlias(nt)\n" + + " │ │ └─ IndexedTableAccess(F35MI)\n" + + " │ │ ├─ index: [F35MI.id]\n" + + " │ │ ├─ columns: [id dzlim]\n" + + " │ │ └─ keys: nd.DKCAJ\n" + + " │ │ as SJ5DU]\n" + " │ └─ CrossHashJoin\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + @@ -6068,9 +6692,31 @@ WHERE " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery(select nt.DZLIM from F35MI as nt where nt.id = nd.DKCAJ) as SJ5DU]\n" + + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nt.DZLIM]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (nt.id = nd.DKCAJ)\n" + + " │ │ └─ TableAlias(nt)\n" + + " │ │ └─ IndexedTableAccess(F35MI)\n" + + " │ │ ├─ index: [F35MI.id]\n" + + " │ │ ├─ columns: [id dzlim]\n" + + " │ │ └─ keys: nd.DKCAJ\n" + + " │ │ as SJ5DU]\n" + " │ └─ Project\n" + - " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery(select nt.DZLIM from F35MI as nt where nt.id = nd.DKCAJ) as SJ5DU]\n" + + " │ ├─ columns: [tmdtp.B2TX3, tmdtp.T4IBQ, nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nd.id as YYKXN, nd.TW55N as TW55N, nd.FSK67 as SOWRY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nt.DZLIM]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (nt.id = nd.DKCAJ)\n" + + " │ │ └─ TableAlias(nt)\n" + + " │ │ └─ IndexedTableAccess(F35MI)\n" + + " │ │ ├─ index: [F35MI.id]\n" + + " │ │ ├─ columns: [id dzlim]\n" + + " │ │ └─ keys: nd.DKCAJ\n" + + " │ │ as SJ5DU]\n" + " │ └─ CrossHashJoin\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + @@ -8267,12 +8913,40 @@ WHERE ExpectedEstimates: "Project\n" + " ├─ columns: [CASE WHEN e2i7u.FGG57 IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: e2i7u.id\n" + - " │ └─ right: Subquery(select id from E2I7U where not id in (select LUEVY from AMYXQ))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [e2i7u.id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [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]\n" + + " │ └─ Filter\n" + + " │ ├─ amyxq.LUEVY IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: E2I7U\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ ├─ columns: [luevy]\n" + + " │ └─ keys: e2i7u.id\n" + " │ THEN 1 WHEN (e2i7u.FSK67 = 'z') THEN 2 WHEN (e2i7u.FSK67 = 'CRZ2X') THEN 0 ELSE 3 END as SZ6KK]\n" + " └─ Project\n" + " ├─ columns: [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, CASE WHEN e2i7u.FGG57 IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: e2i7u.id\n" + - " │ └─ right: Subquery(select id from E2I7U where not id in (select LUEVY from AMYXQ))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [e2i7u.id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [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]\n" + + " │ └─ Filter\n" + + " │ ├─ amyxq.LUEVY IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: E2I7U\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ ├─ columns: [luevy]\n" + + " │ └─ keys: e2i7u.id\n" + " │ THEN 1 WHEN (e2i7u.FSK67 = 'z') THEN 2 WHEN (e2i7u.FSK67 = 'CRZ2X') THEN 0 ELSE 3 END as SZ6KK]\n" + " └─ IndexedTableAccess(E2I7U)\n" + " ├─ index: [E2I7U.id]\n" + @@ -8281,12 +8955,40 @@ WHERE ExpectedAnalysis: "Project\n" + " ├─ columns: [CASE WHEN e2i7u.FGG57 IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: e2i7u.id\n" + - " │ └─ right: Subquery(select id from E2I7U where not id in (select LUEVY from AMYXQ))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [e2i7u.id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [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]\n" + + " │ └─ Filter\n" + + " │ ├─ amyxq.LUEVY IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: E2I7U\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ ├─ columns: [luevy]\n" + + " │ └─ keys: e2i7u.id\n" + " │ THEN 1 WHEN (e2i7u.FSK67 = 'z') THEN 2 WHEN (e2i7u.FSK67 = 'CRZ2X') THEN 0 ELSE 3 END as SZ6KK]\n" + " └─ Project\n" + " ├─ columns: [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, CASE WHEN e2i7u.FGG57 IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: e2i7u.id\n" + - " │ └─ right: Subquery(select id from E2I7U where not id in (select LUEVY from AMYXQ))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [e2i7u.id]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [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]\n" + + " │ └─ Filter\n" + + " │ ├─ amyxq.LUEVY IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Table\n" + + " │ │ └─ name: E2I7U\n" + + " │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ ├─ columns: [luevy]\n" + + " │ └─ keys: e2i7u.id\n" + " │ THEN 1 WHEN (e2i7u.FSK67 = 'z') THEN 2 WHEN (e2i7u.FSK67 = 'CRZ2X') THEN 0 ELSE 3 END as SZ6KK]\n" + " └─ IndexedTableAccess(E2I7U)\n" + " ├─ index: [E2I7U.id]\n" + @@ -10099,13 +10801,43 @@ WHERE " │ ├─ LeftOuterJoin (estimated cost=1193112.000 rows=125)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND (NOT(mjr3d.BJUF2 IS NULL))) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ )) OR (((NOT(mjr3d.TDEIU IS NULL)) AND mjr3d.BJUF2 IS NULL) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ )) OR (((NOT(mjr3d.TDEIU IS NULL)) AND (NOT(mjr3d.BJUF2 IS NULL))) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ))\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: mjr3d\n" + @@ -10344,13 +11076,43 @@ WHERE " │ ├─ LeftOuterJoin (estimated cost=1193112.000 rows=125) (actual rows=0 loops=1)\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND (NOT(mjr3d.BJUF2 IS NULL))) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ )) OR (((NOT(mjr3d.TDEIU IS NULL)) AND mjr3d.BJUF2 IS NULL) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ )) OR (((NOT(mjr3d.TDEIU IS NULL)) AND (NOT(mjr3d.BJUF2 IS NULL))) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ))\n" + " │ │ ├─ SubqueryAlias\n" + " │ │ │ ├─ name: mjr3d\n" + @@ -11617,13 +12379,43 @@ WHERE " │ │ └─ LeftOuterJoin\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ SubqueryAlias\n" + @@ -11804,13 +12596,43 @@ WHERE " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [jtehg.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(jtehg)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.FJDP5\n" + " │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " ├─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + @@ -11911,13 +12733,43 @@ WHERE " │ │ └─ LeftOuterJoin\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ SubqueryAlias\n" + @@ -12098,13 +12950,43 @@ WHERE " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [jtehg.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(jtehg)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.FJDP5\n" + " │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " ├─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + @@ -13197,13 +14079,43 @@ WHERE " │ │ └─ LeftOuterJoin\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ SubqueryAlias\n" + @@ -13380,13 +14292,43 @@ WHERE " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [jtehg.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(jtehg)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.FJDP5\n" + " │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " ├─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + @@ -13487,13 +14429,43 @@ WHERE " │ │ └─ LeftOuterJoin\n" + " │ │ ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jtehg.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(jtehg)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.FJDP5\n" + " │ │ │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ │ │ ├─ left: sn.id\n" + - " │ │ │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [xmafz.id]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ │ │ └─ TableAlias(xmafz)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ │ ├─ columns: [id brqp2]\n" + + " │ │ │ └─ keys: mjr3d.BJUF2\n" + " │ │ │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " │ │ ├─ LookupJoin\n" + " │ │ │ ├─ SubqueryAlias\n" + @@ -13670,13 +14642,43 @@ WHERE " └─ LeftOuterJoin\n" + " ├─ ((((((NOT(mjr3d.QNI57 IS NULL)) AND (sn.id = mjr3d.QNI57)) AND mjr3d.BJUF2 IS NULL) OR (((NOT(mjr3d.QNI57 IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select JTEHG.id from NOXN3 as JTEHG where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [jtehg.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (jtehg.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(jtehg)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL)))) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.FJDP5)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.FJDP5)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.FJDP5\n" + " │ ) AND mjr3d.BJUF2 IS NULL)) OR (((NOT(mjr3d.TDEIU IS NULL)) AND InSubquery\n" + " │ ├─ left: sn.id\n" + - " │ └─ right: Subquery(select XMAFZ.id from NOXN3 as XMAFZ where BRQP2 = MJR3D.BJUF2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xmafz.id]\n" + + " │ └─ Filter\n" + + " │ ├─ (xmafz.BRQP2 = mjr3d.BJUF2)\n" + + " │ └─ TableAlias(xmafz)\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.BRQP2]\n" + + " │ ├─ columns: [id brqp2]\n" + + " │ └─ keys: mjr3d.BJUF2\n" + " │ ) AND (NOT(mjr3d.BJUF2 IS NULL))))\n" + " ├─ LookupJoin\n" + " │ ├─ SubqueryAlias\n" + @@ -14932,9 +15934,31 @@ ORDER BY LUEVY`, " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery(select XQDYT from AMYXQ where LUEVY = nd.id limit 1) as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + + " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [amyxq.XQDYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy xqdyt]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nma.id, nma.DZLIM, nma.F3YUE, nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery(select XQDYT from AMYXQ where LUEVY = nd.id limit 1) as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nma.id, nma.DZLIM, nma.F3YUE, nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [amyxq.XQDYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy xqdyt]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + @@ -14964,9 +15988,31 @@ ORDER BY LUEVY`, " │ ├─ isLateral: false\n" + " │ ├─ cacheable: true\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery(select XQDYT from AMYXQ where LUEVY = nd.id limit 1) as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + + " │ ├─ columns: [nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [amyxq.XQDYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy xqdyt]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + " │ └─ Project\n" + - " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nma.id, nma.DZLIM, nma.F3YUE, nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery(select XQDYT from AMYXQ where LUEVY = nd.id limit 1) as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + + " │ ├─ columns: [nd.id, nd.DKCAJ, nd.KNG7T, nd.TW55N, nd.QRQXW, nd.ECXAJ, nd.FGG57, nd.ZH72S, nd.FSK67, nd.XQDYT, nd.TCE7A, nd.IWV2H, nd.HPCMS, nd.N5CC2, nd.FHCYT, nd.ETAQ7, nd.A75X7, nma.id, nma.DZLIM, nma.F3YUE, nd.id as LUEVY, nd.TW55N as TW55N, nd.FGG57 as IYDZV, nd.QRQXW as QRQXW, nd.IWV2H as CAECS, nd.ECXAJ as CJLLY, nma.DZLIM as SHP7H, nd.N5CC2 as HARAZ, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Limit(1)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [amyxq.XQDYT]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (amyxq.LUEVY = nd.id)\n" + + " │ │ └─ IndexedTableAccess(AMYXQ)\n" + + " │ │ ├─ index: [AMYXQ.LUEVY]\n" + + " │ │ ├─ columns: [luevy xqdyt]\n" + + " │ │ └─ keys: nd.id\n" + + " │ │ as I3L5A, nd.ETAQ7 as FUG6J, nd.A75X7 as NF5AM, nd.FSK67 as FRCVC]\n" + " │ └─ LeftOuterLookupJoin\n" + " │ ├─ TableAlias(nd)\n" + " │ │ └─ Table\n" + diff --git a/enginetest/queries/query_plans.go b/enginetest/queries/query_plans.go index 23f2717cf6..0b3675b567 100644 --- a/enginetest/queries/query_plans.go +++ b/enginetest/queries/query_plans.go @@ -145,7 +145,22 @@ offset 1;`, " └─ tableId: 1\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [cte.x, cte.y, Subquery(select SUM(x) from cte) as xy]\n" + + " ├─ columns: [cte.x, cte.y, Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [sum(cte.x) as SUM(x)]\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(SUM(cte.x))\n" + + " │ ├─ Grouping()\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Table\n" + + " │ ├─ name: xy\n" + + " │ └─ columns: [x y]\n" + + " │ as xy]\n" + " └─ SubqueryAlias\n" + " ├─ name: cte\n" + " ├─ outerVisibility: false\n" + @@ -156,7 +171,22 @@ offset 1;`, " └─ columns: [x y]\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [cte.x, cte.y, Subquery(select SUM(x) from cte) as xy]\n" + + " ├─ columns: [cte.x, cte.y, Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [sum(cte.x) as SUM(x)]\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(SUM(cte.x))\n" + + " │ ├─ Grouping()\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Table\n" + + " │ ├─ name: xy\n" + + " │ └─ columns: [x y]\n" + + " │ as xy]\n" + " └─ SubqueryAlias\n" + " ├─ name: cte\n" + " ├─ outerVisibility: false\n" + @@ -232,7 +262,29 @@ offset 1;`, " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.y\n" + - " │ └─ right: Subquery(select xy.x from xy join (select t2.y from xy as t2 where exists (select t3.y from xy as t3 where t3.y = xy.x)) as t1)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ CrossHashJoin (estimated cost=1311.250 rows=125)\n" + + " │ ├─ Table\n" + + " │ │ ├─ name: xy\n" + + " │ │ └─ columns: [x]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: t1\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [t2.y]\n" + + " │ └─ Filter\n" + + " │ ├─ EXISTS Subquery(select t3.y from xy as t3 where t3.y = xy.x)\n" + + " │ └─ TableAlias(t2)\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -241,7 +293,29 @@ offset 1;`, " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.y\n" + - " │ └─ right: Subquery(select xy.x from xy join (select t2.y from xy as t2 where exists (select t3.y from xy as t3 where t3.y = xy.x)) as t1)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ CrossHashJoin (estimated cost=1311.250 rows=125)\n" + + " │ ├─ Table\n" + + " │ │ ├─ name: xy\n" + + " │ │ └─ columns: [x]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: t1\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [t2.y]\n" + + " │ └─ Filter\n" + + " │ ├─ EXISTS Subquery(select t3.y from xy as t3 where t3.y = xy.x)\n" + + " │ └─ TableAlias(t2)\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -524,12 +598,44 @@ From xy;`, ExpectedEstimates: "Project\n" + " ├─ columns: [CASE WHEN xy.x IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select x from xy where not x in (select u from uv))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Project\n" + + " │ ├─ 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" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [u]\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" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select x from xy where not x in (select u from uv))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Project\n" + + " │ ├─ 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" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [u]\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -537,12 +643,44 @@ From xy;`, ExpectedAnalysis: "Project\n" + " ├─ columns: [CASE WHEN xy.x IS NULL THEN 0 WHEN InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select x from xy where not x in (select u from uv))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Project\n" + + " │ ├─ 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" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [u]\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" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select x from xy where not x in (select u from uv))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Project\n" + + " │ ├─ 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" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ filters: [{[NULL, ∞)}]\n" + + " │ └─ columns: [u]\n" + " │ THEN 1 ELSE 2 END as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -945,14 +1083,42 @@ From xy;`, " └─ columns: []\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [Subquery(select count(*) from xy) as (select count(*) from xy), Subquery(select count(*) from uv) as (select count(*) from uv)]\n" + + " ├─ columns: [Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(xy) as COUNT(1)\n" + + " │ as (select count(*) from xy), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(uv) as COUNT(1)\n" + + " │ as (select count(*) from uv)]\n" + " └─ Project\n" + " ├─ columns: [dual.]\n" + " └─ Table\n" + " └─ name: \n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [Subquery(select count(*) from xy) as (select count(*) from xy), Subquery(select count(*) from uv) as (select count(*) from uv)]\n" + + " ├─ columns: [Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(xy) as COUNT(1)\n" + + " │ as (select count(*) from xy), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(uv) as COUNT(1)\n" + + " │ as (select count(*) from uv)]\n" + " └─ Project\n" + " ├─ columns: [dual.]\n" + " └─ Table\n" + @@ -984,13 +1150,41 @@ From xy;`, " └─ table_count(ab) as COUNT(1)\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [Subquery(select count(*) from xy) as (select count(*) from xy), Subquery(select count(*) from uv) as (select count(*) from uv), count(1) as count(*)]\n" + + " ├─ columns: [Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(xy) as COUNT(1)\n" + + " │ as (select count(*) from xy), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(uv) as COUNT(1)\n" + + " │ as (select count(*) from uv), count(1) as count(*)]\n" + " └─ Project\n" + " ├─ columns: [ab.COUNT(1) as COUNT(1)]\n" + " └─ table_count(ab) as COUNT(1)\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [Subquery(select count(*) from xy) as (select count(*) from xy), Subquery(select count(*) from uv) as (select count(*) from uv), count(1) as count(*)]\n" + + " ├─ columns: [Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(xy) as COUNT(1)\n" + + " │ as (select count(*) from xy), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as count(*)]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [uv.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(uv) as COUNT(1)\n" + + " │ as (select count(*) from uv), count(1) as count(*)]\n" + " └─ Project\n" + " ├─ columns: [ab.COUNT(1) as COUNT(1)]\n" + " └─ table_count(ab) as COUNT(1)\n" + @@ -1812,7 +2006,29 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select * from cte where x = 1)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.x = 1)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ RecursiveCTE\n" + + " │ └─ Union distinct\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [1]\n" + + " │ │ └─ Table\n" + + " │ │ └─ name: \n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ RecursiveTable(cte)\n" + + " │ └─ IndexedTableAccess(xy)\n" + + " │ ├─ index: [xy.x]\n" + + " │ ├─ columns: [x]\n" + + " │ └─ keys: cte.s\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -1850,7 +2066,29 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select * from cte where x = 1)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.x = 1)\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: cte\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ RecursiveCTE\n" + + " │ └─ Union distinct\n" + + " │ ├─ Project\n" + + " │ │ ├─ columns: [1]\n" + + " │ │ └─ Table\n" + + " │ │ └─ name: \n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ RecursiveTable(cte)\n" + + " │ └─ IndexedTableAccess(xy)\n" + + " │ ├─ index: [xy.x]\n" + + " │ ├─ columns: [x]\n" + + " │ └─ keys: cte.s\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -2294,7 +2532,26 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select (select u from uv where u = sq.p) from (select p from pq) as sq)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.u = sq.p)\n" + + " │ │ └─ IndexedTableAccess(uv)\n" + + " │ │ ├─ index: [uv.u]\n" + + " │ │ ├─ columns: [u]\n" + + " │ │ └─ keys: sq.p\n" + + " │ │ as (select u from uv where u = sq.p)]\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: sq\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Table\n" + + " │ ├─ name: pq\n" + + " │ └─ columns: [p]\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -2303,7 +2560,26 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: xy.x\n" + - " │ └─ right: Subquery(select (select u from uv where u = sq.p) from (select p from pq) as sq)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.u = sq.p)\n" + + " │ │ └─ IndexedTableAccess(uv)\n" + + " │ │ ├─ index: [uv.u]\n" + + " │ │ ├─ columns: [u]\n" + + " │ │ └─ keys: sq.p\n" + + " │ │ as (select u from uv where u = sq.p)]\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: sq\n" + + " │ ├─ outerVisibility: true\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Table\n" + + " │ ├─ name: pq\n" + + " │ └─ columns: [p]\n" + " └─ Table\n" + " └─ name: xy\n" + "", @@ -2823,14 +3099,46 @@ Select * from ( ExpectedEstimates: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.a\n" + - " │ └─ right: Subquery(select x from xy where x in (select u from uv where u = a))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.x\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.u = ab.a)\n" + + " │ │ └─ IndexedTableAccess(uv)\n" + + " │ │ ├─ index: [uv.u]\n" + + " │ │ ├─ columns: [u]\n" + + " │ │ └─ keys: ab.a\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", ExpectedAnalysis: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.a\n" + - " │ └─ right: Subquery(select x from xy where x in (select u from uv where u = a))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.x]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.x\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.u = ab.a)\n" + + " │ │ └─ IndexedTableAccess(uv)\n" + + " │ │ ├─ index: [uv.u]\n" + + " │ │ ├─ columns: [u]\n" + + " │ │ └─ keys: ab.a\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", @@ -2873,14 +3181,44 @@ Select * from ( ExpectedEstimates: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.a\n" + - " │ └─ right: Subquery(select y from xy where y in (select v from uv where v = a))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.y]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.y\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.v = ab.a)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [v]\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", ExpectedAnalysis: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.a\n" + - " │ └─ right: Subquery(select y from xy where y in (select v from uv where v = a))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.y]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.y\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.v = ab.a)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [v]\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", @@ -2923,14 +3261,44 @@ Select * from ( ExpectedEstimates: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.b\n" + - " │ └─ right: Subquery(select y from xy where y in (select v from uv where v = b))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.y]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.y\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.v = ab.b)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [v]\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", ExpectedAnalysis: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: ab.b\n" + - " │ └─ right: Subquery(select y from xy where y in (select v from uv where v = b))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [xy.y]\n" + + " │ └─ Filter\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: xy.y\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ (uv.v = ab.b)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [v]\n" + + " │ └─ Table\n" + + " │ └─ name: xy\n" + " └─ Table\n" + " └─ name: ab\n" + "", @@ -3071,9 +3439,29 @@ Select * from ( " └─ columns: [x y]\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 from uv where y = 1 and u = x) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ ((xy.y = 1) AND (uv.u = xy.x))\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 from uv where y = 1 and u = x) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ ((xy.y = 1) AND (uv.u = xy.x))\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + + " │ as is_one]\n" + " └─ Sort(xy.y ASC)\n" + " └─ LookupJoin\n" + " ├─ Table\n" + @@ -3083,9 +3471,29 @@ Select * from ( " └─ keys: uv.v\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 from uv where y = 1 and u = x) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ ((xy.y = 1) AND (uv.u = xy.x))\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 from uv where y = 1 and u = x) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ ((xy.y = 1) AND (uv.u = xy.x))\n" + + " │ └─ IndexedTableAccess(uv)\n" + + " │ ├─ index: [uv.u]\n" + + " │ ├─ columns: [u]\n" + + " │ └─ keys: xy.x\n" + + " │ as is_one]\n" + " └─ Sort(xy.y ASC)\n" + " └─ LookupJoin\n" + " ├─ Table\n" + @@ -3159,9 +3567,25 @@ Select * from ( " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ LookupJoin\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -3176,9 +3600,25 @@ Select * from ( " ├─ isLateral: false\n" + " ├─ cacheable: true\n" + " └─ Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ LookupJoin\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -3236,9 +3676,25 @@ Select * from ( " └─ columns: [x y]\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ LookupJoin (estimated cost=13.200 rows=4)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -3247,9 +3703,25 @@ Select * from ( " └─ keys: uv.v\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [xy.y, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.y, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ Project\n" + - " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery(select 1 where y = 1) as is_one]\n" + + " ├─ columns: [xy.x, xy.y, uv.u, uv.v, Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [1]\n" + + " │ └─ Filter\n" + + " │ ├─ (xy.y = 1)\n" + + " │ └─ Table\n" + + " │ └─ name: \n" + + " │ as is_one]\n" + " └─ LookupJoin (estimated cost=13.200 rows=4) (actual rows=4 loops=1)\n" + " ├─ Table\n" + " │ └─ name: uv\n" + @@ -4055,12 +4527,40 @@ Select * from ( ExpectedEstimates: "Project\n" + " ├─ columns: [xy.x, InSubquery\n" + " │ ├─ left: 1\n" + - " │ └─ right: Subquery(select a from ab where exists (select * from uv where a = u))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a]\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4)\n" + + " │ ├─ (ab.a = uv.u)\n" + + " │ ├─ OrderedDistinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [uv.u]\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [u v]\n" + + " │ └─ IndexedTableAccess(ab)\n" + + " │ ├─ index: [ab.a]\n" + + " │ └─ keys: uv.u\n" + " │ as s]\n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y, InSubquery\n" + " │ ├─ left: 1\n" + - " │ └─ right: Subquery(select a from ab where exists (select * from uv where a = u))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a]\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4)\n" + + " │ ├─ (ab.a = uv.u)\n" + + " │ ├─ OrderedDistinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [uv.u]\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [u v]\n" + + " │ └─ IndexedTableAccess(ab)\n" + + " │ ├─ index: [ab.a]\n" + + " │ └─ keys: uv.u\n" + " │ as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -4068,12 +4568,40 @@ Select * from ( ExpectedAnalysis: "Project\n" + " ├─ columns: [xy.x, InSubquery\n" + " │ ├─ left: 1\n" + - " │ └─ right: Subquery(select a from ab where exists (select * from uv where a = u))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a]\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4)\n" + + " │ ├─ (ab.a = uv.u)\n" + + " │ ├─ OrderedDistinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [uv.u]\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [u v]\n" + + " │ └─ IndexedTableAccess(ab)\n" + + " │ ├─ index: [ab.a]\n" + + " │ └─ keys: uv.u\n" + " │ as s]\n" + " └─ Project\n" + " ├─ columns: [xy.x, xy.y, InSubquery\n" + " │ ├─ left: 1\n" + - " │ └─ right: Subquery(select a from ab where exists (select * from uv where a = u))\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ab.a]\n" + + " │ └─ LookupJoin (estimated cost=13.200 rows=4)\n" + + " │ ├─ (ab.a = uv.u)\n" + + " │ ├─ OrderedDistinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [uv.u]\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: uv\n" + + " │ │ └─ columns: [u v]\n" + + " │ └─ IndexedTableAccess(ab)\n" + + " │ ├─ index: [ab.a]\n" + + " │ └─ keys: uv.u\n" + " │ as s]\n" + " └─ Table\n" + " └─ name: xy\n" + @@ -4276,7 +4804,7 @@ Select * from ( { Query: `SELECT count(*), i, concat(i, i), 123, 'abc', concat('abc', 'def') FROM emptytable;`, ExpectedPlan: "Project\n" + - " ├─ columns: [count(1):0!null->count(*):0, emptytable.i:1!null, concat(emptytable.i:1!null,emptytable.i:1!null)->concat(i, i):0, 123 (tinyint), abc (longtext), concat('abc','def')->concat('abc', 'def')]\n" + + " ├─ columns: [count(1):0!null->count(*):0, emptytable.i:1!null, concat(emptytable.i:1!null,emptytable.i:1!null)->concat(i, i):0, 123 (tinyint), abc (longtext), concat(abc (longtext),def (longtext))->concat('abc', 'def')]\n" + " └─ GroupBy\n" + " ├─ select: COUNT(1 (bigint)), emptytable.i:0!null\n" + " ├─ group: \n" + @@ -4307,7 +4835,7 @@ Select * from ( { Query: `SELECT count(*), i, concat(i, i), 123, 'abc', concat('abc', 'def') FROM mytable where false;`, ExpectedPlan: "Project\n" + - " ├─ columns: [count(1):0!null->count(*):0, mytable.i:1!null, concat(mytable.i:1!null,mytable.i:1!null)->concat(i, i):0, 123 (tinyint), abc (longtext), concat('abc','def')->concat('abc', 'def')]\n" + + " ├─ columns: [count(1):0!null->count(*):0, mytable.i:1!null, concat(mytable.i:1!null,mytable.i:1!null)->concat(i, i):0, 123 (tinyint), abc (longtext), concat(abc (longtext),def (longtext))->concat('abc', 'def')]\n" + " └─ GroupBy\n" + " ├─ select: COUNT(1 (bigint)), mytable.i:0!null\n" + " ├─ group: \n" + @@ -4569,7 +5097,13 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: (one_pk.pk, 123)\n" + - " │ └─ right: Subquery(select count(*) u, 123 v from emptytable)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as u, 123 as v]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [emptytable.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(emptytable) as COUNT(1)\n" + " └─ Table\n" + " └─ name: one_pk\n" + "", @@ -4578,7 +5112,13 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: (one_pk.pk, 123)\n" + - " │ └─ right: Subquery(select count(*) u, 123 v from emptytable)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as u, 123 as v]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [emptytable.COUNT(1) as COUNT(1)]\n" + + " │ └─ table_count(emptytable) as COUNT(1)\n" + " └─ Table\n" + " └─ name: one_pk\n" + "", @@ -4609,7 +5149,14 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: (one_pk.pk, 123)\n" + - " │ └─ right: Subquery(select count(*) u, 123 v from mytable where false)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as u, 123 as v]\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(COUNT(1))\n" + + " │ ├─ Grouping()\n" + + " │ └─ EmptyTable\n" + " └─ Table\n" + " └─ name: one_pk\n" + "", @@ -4618,7 +5165,14 @@ Select * from ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: (one_pk.pk, 123)\n" + - " │ └─ right: Subquery(select count(*) u, 123 v from mytable where false)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Project\n" + + " │ ├─ columns: [count(1) as u, 123 as v]\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(COUNT(1))\n" + + " │ ├─ Grouping()\n" + + " │ └─ EmptyTable\n" + " └─ Table\n" + " └─ name: one_pk\n" + "", @@ -4717,7 +5271,16 @@ Select * from ( " └─ columns: []\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [count(1) as count(*), Subquery(select i from mytable where i = 1 group by i) as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + + " ├─ columns: [count(1) as count(*), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(mytable.i)\n" + + " │ ├─ Grouping(mytable.i)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[1, 1]}]\n" + + " │ └─ columns: [i]\n" + + " │ as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + " └─ GroupBy\n" + " ├─ SelectDeps(COUNT(1))\n" + " ├─ Grouping()\n" + @@ -4725,7 +5288,16 @@ Select * from ( " └─ name: \n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [count(1) as count(*), Subquery(select i from mytable where i = 1 group by i) as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + + " ├─ columns: [count(1) as count(*), Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ GroupBy\n" + + " │ ├─ SelectDeps(mytable.i)\n" + + " │ ├─ Grouping(mytable.i)\n" + + " │ └─ IndexedTableAccess(mytable)\n" + + " │ ├─ index: [mytable.i]\n" + + " │ ├─ filters: [{[1, 1]}]\n" + + " │ └─ columns: [i]\n" + + " │ as (SELECT i FROM mytable WHERE i = 1 group by i)]\n" + " └─ GroupBy\n" + " ├─ SelectDeps(COUNT(1))\n" + " ├─ Grouping()\n" + @@ -10984,14 +11556,28 @@ inner join pq on true ExpectedEstimates: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: mytable.i\n" + - " │ └─ right: Subquery(select i2 from othertable where mytable.i = othertable.i2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Filter\n" + + " │ ├─ (mytable.i = othertable.i2)\n" + + " │ └─ IndexedTableAccess(othertable)\n" + + " │ ├─ index: [othertable.i2]\n" + + " │ ├─ columns: [i2]\n" + + " │ └─ keys: mytable.i\n" + " └─ Table\n" + " └─ name: mytable\n" + "", ExpectedAnalysis: "Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: mytable.i\n" + - " │ └─ right: Subquery(select i2 from othertable where mytable.i = othertable.i2)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Filter\n" + + " │ ├─ (mytable.i = othertable.i2)\n" + + " │ └─ IndexedTableAccess(othertable)\n" + + " │ ├─ index: [othertable.i2]\n" + + " │ ├─ columns: [i2]\n" + + " │ └─ keys: mytable.i\n" + " └─ Table\n" + " └─ name: mytable\n" + "", @@ -15997,7 +16583,14 @@ inner join pq on true " └─ columns: [pk c1 c2 c3 c4 c5]\n" + "", ExpectedEstimates: "Project\n" + - " ├─ columns: [t1.pk, t2.pk2, Subquery(select pk from one_pk where pk = 1 limit 1) as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + + " ├─ columns: [t1.pk, t2.pk2, Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Limit(1)\n" + + " │ └─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{[1, 1]}]\n" + + " │ └─ columns: [pk]\n" + + " │ as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + " └─ CrossJoin\n" + " ├─ Filter\n" + @@ -16011,7 +16604,14 @@ inner join pq on true " └─ filters: [{[1, 1]}]\n" + "", ExpectedAnalysis: "Project\n" + - " ├─ columns: [t1.pk, t2.pk2, Subquery(select pk from one_pk where pk = 1 limit 1) as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + + " ├─ columns: [t1.pk, t2.pk2, Subquery\n" + + " │ ├─ cacheable: true\n" + + " │ └─ Limit(1)\n" + + " │ └─ IndexedTableAccess(one_pk)\n" + + " │ ├─ index: [one_pk.pk]\n" + + " │ ├─ filters: [{[1, 1]}]\n" + + " │ └─ columns: [pk]\n" + + " │ as (SELECT pk from one_pk where pk = 1 limit 1)]\n" + " └─ Sort(t1.pk ASC, t2.pk2 ASC)\n" + " └─ CrossJoin\n" + " ├─ Filter\n" + @@ -22145,7 +22745,44 @@ WHERE keyless.c0 IN ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery(with recursive cte (depth, i, j) as (select 0, T1.c0, T1.c1 from keyless as T1 where T1.c0 = 0 union all select cte.depth + 1, cte.i, T2.c1 + 1 from cte, keyless as T2 where cte.depth = T2.c0) select U0.c0 from keyless as U0, cte where cte.j = keyless.c0)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ Filter\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ └─ CrossHashJoin\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + " └─ Table\n" + " └─ name: keyless\n" + "", @@ -22157,7 +22794,44 @@ WHERE keyless.c0 IN ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery(with recursive cte (depth, i, j) as (select 0, T1.c0, T1.c1 from keyless as T1 where T1.c0 = 0 union all select cte.depth + 1, cte.i, T2.c1 + 1 from cte, keyless as T2 where cte.depth = T2.c0) select U0.c0 from keyless as U0, cte where cte.j = keyless.c0)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ Filter\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ └─ CrossHashJoin\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + " └─ Table\n" + " └─ name: keyless\n" + "", @@ -22257,7 +22931,44 @@ WHERE keyless.c0 IN ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery(with recursive cte (depth, i, j) as (select 0, T1.c0, T1.c1 from keyless as T1 where T1.c0 = 0 union all select cte.depth + 1, cte.i, T2.c1 + 1 from cte, keyless as T2 where cte.depth = T2.c0) select U0.c0 from cte, keyless as U0 where cte.j = keyless.c0)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ Filter\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ └─ CrossHashJoin\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + " └─ Table\n" + " └─ name: keyless\n" + "", @@ -22269,7 +22980,44 @@ WHERE keyless.c0 IN ( " └─ Filter\n" + " ├─ InSubquery\n" + " │ ├─ left: keyless.c0\n" + - " │ └─ right: Subquery(with recursive cte (depth, i, j) as (select 0, T1.c0, T1.c1 from keyless as T1 where T1.c0 = 0 union all select cte.depth + 1, cte.i, T2.c1 + 1 from cte, keyless as T2 where cte.depth = T2.c0) select U0.c0 from cte, keyless as U0 where cte.j = keyless.c0)\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ └─ Project\n" + + " │ ├─ columns: [u0.c0]\n" + + " │ └─ Filter\n" + + " │ ├─ (cte.j = keyless.c0)\n" + + " │ └─ CrossHashJoin\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: cte\n" + + " │ │ ├─ outerVisibility: true\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ └─ RecursiveCTE\n" + + " │ │ └─ Union all\n" + + " │ │ ├─ Project\n" + + " │ │ │ ├─ columns: [0, t1.c0, t1.c1]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ (t1.c0 = 0)\n" + + " │ │ │ └─ TableAlias(t1)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [(cte.depth + 1) as cte.depth + 1, cte.i, (t2.c1 + 1) as T2.c1 + 1]\n" + + " │ │ └─ InnerJoin\n" + + " │ │ ├─ (cte.depth = t2.c0)\n" + + " │ │ ├─ TableAlias(t2)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: keyless\n" + + " │ │ │ └─ columns: [c0 c1]\n" + + " │ │ └─ RecursiveTable(cte)\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: ()\n" + + " │ ├─ right-key: ()\n" + + " │ └─ TableAlias(u0)\n" + + " │ └─ Table\n" + + " │ ├─ name: keyless\n" + + " │ └─ columns: [c0]\n" + " └─ Table\n" + " └─ name: keyless\n" + "", diff --git a/sql/expression/alias.go b/sql/expression/alias.go index 2a66e7332e..ea587555c9 100644 --- a/sql/expression/alias.go +++ b/sql/expression/alias.go @@ -131,16 +131,28 @@ func (e *Alias) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) { return e.Child.Eval(ctx, row) } +// Describe implements the sql.Describable interface +func (e *Alias) Describe(options sql.DescribeOptions) string { + if options.Debug { + if e.unreferencable { + return fmt.Sprintf("%s->%s", sql.Describe(e.Child, options), e.name) + } else { + return fmt.Sprintf("%s->%s:%d", sql.Describe(e.Child, options), e.name, e.id) + } + } + return fmt.Sprintf("%s as %s", sql.Describe(e.Child, options), e.name) +} + func (e *Alias) String() string { - return fmt.Sprintf("%s as %s", e.Child, e.name) + return e.Describe(sql.DescribeOptions{ + Debug: false, + }) } func (e *Alias) DebugString() string { - if e.unreferencable { - return fmt.Sprintf("%s->%s", e.Child, e.name) - } else { - return fmt.Sprintf("%s->%s:%d", sql.DebugString(e.Child), e.name, e.id) - } + return e.Describe(sql.DescribeOptions{ + Debug: true, + }) } // WithChildren implements the Expression interface. diff --git a/sql/plan/subquery.go b/sql/plan/subquery.go index 7e55d7f771..1bf976e1e7 100644 --- a/sql/plan/subquery.go +++ b/sql/plan/subquery.go @@ -501,22 +501,37 @@ func (s *Subquery) IsNullable() bool { return true } -func (s *Subquery) String() string { - return fmt.Sprintf("Subquery(%s)", s.QueryString) -} - -func (s *Subquery) DebugString() string { +// Describe implements the sql.Describable interface +func (s *Subquery) Describe(options sql.DescribeOptions) string { pr := sql.NewTreePrinter() _ = pr.WriteNode("Subquery") - children := []string{ - fmt.Sprintf("cacheable: %t", s.canCacheResults()), - fmt.Sprintf("alias-string: %s", s.QueryString), - sql.DebugString(s.Query), + var children []string + if options.Debug { + children = []string{ + fmt.Sprintf("cacheable: %t", s.canCacheResults()), + fmt.Sprintf("alias-string: %s", s.QueryString), + sql.Describe(s.Query, options), + } + } else { + children = []string{ + fmt.Sprintf("cacheable: %t", s.canCacheResults()), + sql.Describe(s.Query, options), + } } _ = pr.WriteChildren(children...) return pr.String() } +func (s *Subquery) String() string { + return fmt.Sprintf("Subquery(%s)", s.QueryString) +} + +func (s *Subquery) DebugString() string { + return s.Describe(sql.DescribeOptions{ + Debug: true, + }) +} + // Resolved implements the Expression interface. func (s *Subquery) Resolved() bool { return s.Query.Resolved() diff --git a/sql/planbuilder/parse_test.go b/sql/planbuilder/parse_test.go index 41919debd5..299232be2c 100644 --- a/sql/planbuilder/parse_test.go +++ b/sql/planbuilder/parse_test.go @@ -60,7 +60,7 @@ Project │ ├─ cacheable: true │ ├─ alias-string: select SUM(x) from cte │ └─ Project - │ ├─ columns: [sum(cte.x)->SUM(x)] + │ ├─ columns: [sum(cte.x):13!null->SUM(x)] │ └─ GroupBy │ ├─ select: SUM(cte.x:10!null) │ ├─ group: @@ -84,7 +84,7 @@ Project │ ├─ cacheable: true │ ├─ alias-string: select SUM(x) from cte │ └─ Project - │ ├─ columns: [sum(cte.x)->SUM(x)] + │ ├─ columns: [sum(cte.x):13!null->SUM(x)] │ └─ GroupBy │ ├─ select: SUM(cte.x:10!null) │ ├─ group: @@ -339,7 +339,7 @@ update histogram xy.(x,y) using {"statistic":{"avg_size":0,"buckets":[],"column Query: "SELECT b.y as s1, a.y as s2, first_value(a.z) over (partition by a.y) from xy a join xy b on a.y = b.y", ExpectedPlan: ` Project - ├─ columns: [b.y:5!null->s1:7, a.y:2!null->s2:8, first_value(a.z) over ( partition by a.y rows between unbounded preceding and unbounded following)->first_value(a.z) over (partition by a.y)] + ├─ columns: [b.y:5!null->s1:7, a.y:2!null->s2:8, first_value(a.z) over ( partition by a.y rows between unbounded preceding and unbounded following):9!null->first_value(a.z) over (partition by a.y)] └─ Window ├─ first_value(a.z) over ( partition by a.y ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) ├─ b.y:5!null @@ -657,7 +657,7 @@ SubqueryAlias Query: "select x, sum(y) from xy group by x order by x - count(y)", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, sum(xy.y)->sum(y)] + ├─ columns: [xy.x:1!null, sum(xy.y):4!null->sum(y)] └─ Sort((xy.x:1!null - count(xy.y):5!null) ASC nullsFirst) └─ GroupBy ├─ select: COUNT(xy.y:2!null), SUM(xy.y:2!null), xy.x:1!null @@ -673,7 +673,7 @@ Project Query: "select sum(x) from xy group by x order by y", ExpectedPlan: ` Project - ├─ columns: [sum(xy.x)->sum(x)] + ├─ columns: [sum(xy.x):4!null->sum(x)] └─ Sort(xy.y:2!null ASC nullsFirst) └─ GroupBy ├─ select: SUM(xy.x:1!null), xy.y:2!null @@ -689,7 +689,7 @@ Project Query: "SELECT y, count(x) FROM xy GROUP BY y ORDER BY count(x) DESC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, count(xy.x)->count(x)] + ├─ columns: [xy.y:2!null, count(xy.x):4!null->count(x)] └─ Sort(count(xy.x):4!null DESC nullsFirst) └─ GroupBy ├─ select: COUNT(xy.x:1!null), xy.y:2!null @@ -705,7 +705,7 @@ Project Query: "select count(x) from xy", ExpectedPlan: ` Project - ├─ columns: [count(xy.x)->count(x)] + ├─ columns: [count(xy.x):4!null->count(x)] └─ GroupBy ├─ select: COUNT(xy.x:1!null) ├─ group: @@ -720,7 +720,7 @@ Project Query: "SELECT y, count(x) FROM xy GROUP BY y ORDER BY y DESC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, count(xy.x)->count(x)] + ├─ columns: [xy.y:2!null, count(xy.x):4!null->count(x)] └─ Sort(xy.y:2!null DESC nullsFirst) └─ GroupBy ├─ select: COUNT(xy.x:1!null), xy.y:2!null @@ -736,7 +736,7 @@ Project Query: "SELECT y, count(x) FROM xy GROUP BY y ORDER BY y", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, count(xy.x)->count(x)] + ├─ columns: [xy.y:2!null, count(xy.x):4!null->count(x)] └─ Sort(xy.y:2!null ASC nullsFirst) └─ GroupBy ├─ select: COUNT(xy.x:1!null), xy.y:2!null @@ -795,7 +795,7 @@ Project Query: "select count(*) from (select count(*) from xy) dt", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*)] + ├─ columns: [count(1):6!null->count(*)] └─ GroupBy ├─ select: COUNT(1 (bigint)) ├─ group: @@ -807,7 +807,7 @@ Project ├─ colSet: (5) ├─ tableId: 2 └─ Project - ├─ columns: [count(1)->count(*)] + ├─ columns: [count(1):4!null->count(*)] └─ GroupBy ├─ select: COUNT(1 (bigint)) ├─ group: @@ -844,7 +844,7 @@ SubqueryAlias Query: "SELECT count(*), x+y AS r FROM xy GROUP BY x, y", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*), (xy.x:1!null + xy.y:2!null)->r:5] + ├─ columns: [count(1):4!null->count(*), (xy.x:1!null + xy.y:2!null)->r:5] └─ GroupBy ├─ select: COUNT(1 (bigint)), xy.x:1!null, xy.y:2!null ├─ group: xy.x:1!null, xy.y:2!null @@ -859,7 +859,7 @@ Project Query: "SELECT count(*), x+y AS r FROM xy GROUP BY x+y", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*), (xy.x:1!null + xy.y:2!null)->r:5] + ├─ columns: [count(1):4!null->count(*), (xy.x:1!null + xy.y:2!null)->r:5] └─ GroupBy ├─ select: COUNT(1 (bigint)), xy.x:1!null, xy.y:2!null ├─ group: (xy.x:1!null + xy.y:2!null) @@ -874,7 +874,7 @@ Project Query: "SELECT count(*) FROM xy GROUP BY 1+2", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*)] + ├─ columns: [count(1):4!null->count(*)] └─ GroupBy ├─ select: COUNT(1 (bigint)) ├─ group: (1 (tinyint) + 2 (tinyint)) @@ -889,7 +889,7 @@ Project Query: "SELECT count(*), upper(x) FROM xy GROUP BY upper(x)", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*), upper(xy.x)->upper(x)] + ├─ columns: [count(1):4!null->count(*), upper(xy.x)->upper(x)] └─ GroupBy ├─ select: COUNT(1 (bigint)), xy.x:1!null ├─ group: upper(xy.x) @@ -904,7 +904,7 @@ Project Query: "SELECT y, count(*), z FROM xy GROUP BY 1, 3", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, count(1)->count(*), xy.z:3!null] + ├─ columns: [xy.y:2!null, count(1):4!null->count(*), xy.z:3!null] └─ GroupBy ├─ select: COUNT(1 (bigint)), xy.y:2!null, xy.z:3!null ├─ group: xy.y:2!null, xy.z:3!null @@ -919,7 +919,7 @@ Project Query: "SELECT x, sum(x) FROM xy group by 1 having avg(x) > 1 order by 1", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, sum(xy.x)->sum(x)] + ├─ columns: [xy.x:1!null, sum(xy.x):4!null->sum(x)] └─ Sort(xy.x:1!null ASC nullsFirst) └─ Having ├─ GreaterThan @@ -939,7 +939,7 @@ Project Query: "SELECT y, SUM(x) FROM xy GROUP BY y ORDER BY SUM(x) + 1 ASC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, sum(xy.x)->SUM(x)] + ├─ columns: [xy.y:2!null, sum(xy.x):4!null->SUM(x)] └─ Sort((sum(xy.x):4!null + 1 (tinyint)) ASC nullsFirst) └─ GroupBy ├─ select: SUM(xy.x:1!null), xy.y:2!null @@ -955,7 +955,7 @@ Project Query: "SELECT y, SUM(x) FROM xy GROUP BY y ORDER BY COUNT(*) ASC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, sum(xy.x)->SUM(x)] + ├─ columns: [xy.y:2!null, sum(xy.x):4!null->SUM(x)] └─ Sort(count(1):5!null ASC nullsFirst) └─ GroupBy ├─ select: COUNT(1 (bigint)), SUM(xy.x:1!null), xy.y:2!null @@ -971,7 +971,7 @@ Project Query: "SELECT y, SUM(x) FROM xy GROUP BY y ORDER BY SUM(x) % 2, SUM(x), AVG(x) ASC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, sum(xy.x)->SUM(x)] + ├─ columns: [xy.y:2!null, sum(xy.x):4!null->SUM(x)] └─ Sort((sum(xy.x):4!null % 2 (tinyint)) ASC nullsFirst, sum(xy.x):4!null ASC nullsFirst, avg(xy.x):7 ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), SUM(xy.x:1!null), xy.y:2!null @@ -987,7 +987,7 @@ Project Query: "SELECT y, SUM(x) FROM xy GROUP BY y ORDER BY AVG(x) ASC", ExpectedPlan: ` Project - ├─ columns: [xy.y:2!null, sum(xy.x)->SUM(x)] + ├─ columns: [xy.y:2!null, sum(xy.x):4!null->SUM(x)] └─ Sort(avg(xy.x):5 ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), SUM(xy.x:1!null), xy.y:2!null @@ -1003,8 +1003,8 @@ Project Query: "SELECT x, sum(x) FROM xy group by 1 having avg(x) > 1 order by 2", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, sum(xy.x)->sum(x)] - └─ Sort(sum(xy.x)->sum(x) ASC nullsFirst) + ├─ columns: [xy.x:1!null, sum(xy.x):4!null->sum(x)] + └─ Sort(sum(xy.x):4!null->sum(x) ASC nullsFirst) └─ Having ├─ GreaterThan │ ├─ avg(xy.x):5 @@ -1023,7 +1023,7 @@ Project Query: "SELECT x, sum(y * z) FROM xy group by x having sum(y * z) > 1", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, sum((xy.y * xy.z))->sum(y * z)] + ├─ columns: [xy.x:1!null, sum((xy.y * xy.z)):4!null->sum(y * z)] └─ Having ├─ GreaterThan │ ├─ sum((xy.y * xy.z)):4!null @@ -1042,7 +1042,21 @@ Project Query: "select (select u from uv where x = u) from xy group by (select u from uv where x = u), x;", ExpectedPlan: ` Project - ├─ columns: [Subquery(select u from uv where x = u)->(select u from uv where x = u)] + ├─ columns: [Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select u from uv where x = u + │ └─ Project + │ ├─ columns: [uv.u:4!null] + │ └─ Filter + │ ├─ Eq + │ │ ├─ xy.x:1!null + │ │ └─ uv.u:4!null + │ └─ Table + │ ├─ name: uv + │ ├─ columns: [u v w] + │ ├─ colSet: (4-6) + │ └─ tableId: 2 + │ ->(select u from uv where x = u)] └─ GroupBy ├─ select: ├─ group: Subquery @@ -1143,7 +1157,28 @@ Project Query: "SELECT (SELECT dt.z FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt) FROM xy;", ExpectedPlan: ` Project - ├─ columns: [Subquery(select dt.z from (select uv.u as z from uv where uv.v = xy.y) as dt)->(SELECT dt.z FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt)] + ├─ columns: [Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select dt.z from (select uv.u as z from uv where uv.v = xy.y) as dt + │ └─ SubqueryAlias + │ ├─ name: dt + │ ├─ outerVisibility: false + │ ├─ isLateral: false + │ ├─ cacheable: false + │ ├─ colSet: (8) + │ ├─ tableId: 3 + │ └─ Project + │ ├─ columns: [uv.u:4!null->z:7] + │ └─ Filter + │ ├─ Eq + │ │ ├─ uv.v:5!null + │ │ └─ xy.y:2!null + │ └─ Table + │ ├─ name: uv + │ ├─ columns: [u v w] + │ ├─ colSet: (4-6) + │ └─ tableId: 2 + │ ->(SELECT dt.z FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt)] └─ Table ├─ name: xy ├─ columns: [x y z] @@ -1155,7 +1190,33 @@ Project Query: "SELECT (SELECT max(dt.z) FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt) FROM xy;", ExpectedPlan: ` Project - ├─ columns: [Subquery(select max(dt.z) from (select uv.u as z from uv where uv.v = xy.y) as dt)->(SELECT max(dt.z) FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt)] + ├─ columns: [Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select max(dt.z) from (select uv.u as z from uv where uv.v = xy.y) as dt + │ └─ Project + │ ├─ columns: [max(dt.z):9!null] + │ └─ GroupBy + │ ├─ select: MAX(dt.z:8!null) + │ ├─ group: + │ └─ SubqueryAlias + │ ├─ name: dt + │ ├─ outerVisibility: false + │ ├─ isLateral: false + │ ├─ cacheable: false + │ ├─ colSet: (8) + │ ├─ tableId: 3 + │ └─ Project + │ ├─ columns: [uv.u:4!null->z:7] + │ └─ Filter + │ ├─ Eq + │ │ ├─ uv.v:5!null + │ │ └─ xy.y:2!null + │ └─ Table + │ ├─ name: uv + │ ├─ columns: [u v w] + │ ├─ colSet: (4-6) + │ └─ tableId: 2 + │ ->(SELECT max(dt.z) FROM (SELECT uv.u AS z FROM uv WHERE uv.v = xy.y) dt)] └─ Table ├─ name: xy ├─ columns: [x y z] @@ -1167,7 +1228,33 @@ Project Query: "SELECT xy.*, (SELECT max(dt.u) FROM (SELECT uv.u AS u FROM uv WHERE uv.v = xy.y) dt) FROM xy;", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null, Subquery(select max(dt.u) from (select uv.u as u from uv where uv.v = xy.y) as dt)->(SELECT max(dt.u) FROM (SELECT uv.u AS u FROM uv WHERE uv.v = xy.y) dt)] + ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null, Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select max(dt.u) from (select uv.u as u from uv where uv.v = xy.y) as dt + │ └─ Project + │ ├─ columns: [max(dt.u):9!null] + │ └─ GroupBy + │ ├─ select: MAX(dt.u:8!null) + │ ├─ group: + │ └─ SubqueryAlias + │ ├─ name: dt + │ ├─ outerVisibility: false + │ ├─ isLateral: false + │ ├─ cacheable: false + │ ├─ colSet: (8) + │ ├─ tableId: 3 + │ └─ Project + │ ├─ columns: [uv.u:4!null->u:7] + │ └─ Filter + │ ├─ Eq + │ │ ├─ uv.v:5!null + │ │ └─ xy.y:2!null + │ └─ Table + │ ├─ name: uv + │ ├─ columns: [u v w] + │ ├─ colSet: (4-6) + │ └─ tableId: 2 + │ ->(SELECT max(dt.u) FROM (SELECT uv.u AS u FROM uv WHERE uv.v = xy.y) dt)] └─ Table ├─ name: xy ├─ columns: [x y z] @@ -1282,7 +1369,7 @@ Project from xy`, ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, (xy.x * xy.y)->x*y, row_number() over ( partition by xy.x rows between unbounded preceding and unbounded following):4!null->row_num1:5, sum + ├─ columns: [xy.x:1!null, (xy.x:1!null * xy.y:2!null)->x*y, row_number() over ( partition by xy.x rows between unbounded preceding and unbounded following):4!null->row_num1:5, sum │ ├─ over ( partition by xy.y order by xy.x asc) │ └─ xy.x │ :6!null->sum:7] @@ -1365,7 +1452,7 @@ Project Query: "select x, row_number() over (w3) from xy window w1 as (w2), w2 as (), w3 as (w1)", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, row_number() over ( rows between unbounded preceding and unbounded following)->row_number() over (w3)] + ├─ columns: [xy.x:1!null, row_number() over ( rows between unbounded preceding and unbounded following):4!null->row_number() over (w3)] └─ Window ├─ row_number() over ( ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) ├─ xy.x:1!null @@ -1380,7 +1467,7 @@ Project Query: "SELECT x, first_value(z) over (partition by y) FROM xy order by x*y,x", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, first_value(xy.z) over ( partition by xy.y rows between unbounded preceding and unbounded following)->first_value(z) over (partition by y)] + ├─ columns: [xy.x:1!null, first_value(xy.z) over ( partition by xy.y rows between unbounded preceding and unbounded following):4!null->first_value(z) over (partition by y)] └─ Sort((xy.x:1!null * xy.y:2!null) ASC nullsFirst, xy.x:1!null ASC nullsFirst) └─ Window ├─ first_value(xy.z) over ( partition by xy.y ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) @@ -1397,7 +1484,7 @@ Project Query: "SELECT x, avg(x) FROM xy group by x order by sum(x)", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, avg(xy.x)->avg(x)] + ├─ columns: [xy.x:1!null, avg(xy.x):4->avg(x)] └─ Sort(sum(xy.x):5!null ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), SUM(xy.x:1!null), xy.x:1!null @@ -1413,7 +1500,7 @@ Project Query: "SELECT x, avg(x) FROM xy group by x order by avg(x)", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, avg(xy.x)->avg(x)] + ├─ columns: [xy.x:1!null, avg(xy.x):4->avg(x)] └─ Sort(avg(xy.x):4 ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), xy.x:1!null @@ -1429,7 +1516,7 @@ Project Query: "SELECT x, avg(x) FROM xy group by x order by avg(y)", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, avg(xy.x)->avg(x)] + ├─ columns: [xy.x:1!null, avg(xy.x):4->avg(x)] └─ Sort(avg(xy.y):5 ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), AVG(xy.y:2!null), xy.x:1!null @@ -1445,7 +1532,7 @@ Project Query: "SELECT x, avg(x) FROM xy group by x order by avg(y)+y", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, avg(xy.x)->avg(x)] + ├─ columns: [xy.x:1!null, avg(xy.x):4->avg(x)] └─ Sort((avg(xy.y):5 + xy.y:2!null) ASC nullsFirst) └─ GroupBy ├─ select: AVG(xy.x:1!null), AVG(xy.y:2!null), xy.x:1!null, xy.y:2!null @@ -1461,7 +1548,7 @@ Project Query: "SELECT x, lead(x) over (partition by y order by x) FROM xy order by x;", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null, lead(xy.x, 1) over ( partition by xy.y order by xy.x asc)->lead(x) over (partition by y order by x)] + ├─ columns: [xy.x:1!null, lead(xy.x, 1) over ( partition by xy.y order by xy.x asc):4->lead(x) over (partition by y order by x)] └─ Sort(xy.x:1!null ASC nullsFirst) └─ Window ├─ lead(xy.x, 1) over ( partition by xy.y order by xy.x ASC) @@ -1477,7 +1564,11 @@ Project Query: "SELECT CAST(10.56789 as CHAR(3));", ExpectedPlan: ` Project - ├─ columns: [convert(10.56789, char(3))->CAST(10.56789 as CHAR(3))] + ├─ columns: [convert + │ ├─ type: char + │ ├─ typeLength: 3 + │ └─ 10.56789 (decimal(7,5)) + │ ->CAST(10.56789 as CHAR(3))] └─ Table ├─ name: ├─ columns: [] @@ -1514,7 +1605,7 @@ Project ├─ columns: [xy.x:1!null, count │ ├─ over ( order by xy.y asc) │ └─ 1 - │ ->count(*) over (order by y)] + │ :4!null->count(*) over (order by y)] └─ Sort(xy.x:1!null ASC nullsFirst) └─ Window ├─ COUNT @@ -1719,7 +1810,24 @@ Project Query: "SELECT x as alias1, (SELECT alias1+1 group by alias1 having alias1 > 0) FROM xy where x > 1;", ExpectedPlan: ` Project - ├─ columns: [xy.x:1!null->alias1:4, Subquery(select alias1 + 1 group by alias1 having alias1 > 0)->(SELECT alias1+1 group by alias1 having alias1 > 0)] + ├─ columns: [xy.x:1!null->alias1:4, Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select alias1 + 1 group by alias1 having alias1 > 0 + │ └─ Project + │ ├─ columns: [(alias1:4!null + 1 (tinyint))->alias1+1] + │ └─ Having + │ ├─ GreaterThan + │ │ ├─ alias1:4!null + │ │ └─ 0 (bigint) + │ └─ GroupBy + │ ├─ select: alias1:4!null + │ ├─ group: xy.x:1!null->alias1:4 + │ └─ Table + │ ├─ name: + │ ├─ columns: [] + │ ├─ colSet: () + │ └─ tableId: 0 + │ ->(SELECT alias1+1 group by alias1 having alias1 > 0)] └─ Project ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null, xy.x:1!null->alias1:4] └─ Filter @@ -1737,7 +1845,7 @@ Project Query: "select count(*) from xy group by x having count(*) < x", ExpectedPlan: ` Project - ├─ columns: [count(1)->count(*)] + ├─ columns: [count(1):4!null->count(*)] └─ Having ├─ LessThan │ ├─ count(1):4!null @@ -1786,7 +1894,17 @@ Project Query: "select x+1 as x, (select x) from xy;", ExpectedPlan: ` Project - ├─ columns: [(xy.x:1!null + 1 (tinyint))->x:4, Subquery(select x)->(select x)] + ├─ columns: [(xy.x:1!null + 1 (tinyint))->x:4, Subquery + │ ├─ cacheable: false + │ ├─ alias-string: select x + │ └─ Project + │ ├─ columns: [xy.x:1!null] + │ └─ Table + │ ├─ name: + │ ├─ columns: [] + │ ├─ colSet: () + │ └─ tableId: 0 + │ ->(select x)] └─ Project ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null, (xy.x:1!null + 1 (tinyint))->x:4] └─ Table @@ -1806,7 +1924,7 @@ Project ORDER BY COUNT(*) ASC, fi`, ExpectedPlan: ` Project - ├─ columns: [t.fi:5!null, count(1)->COUNT(*)] + ├─ columns: [t.fi:5!null, count(1):6!null->COUNT(*)] └─ Sort(count(1):6!null ASC nullsFirst, t.fi:5!null ASC nullsFirst) └─ GroupBy ├─ select: COUNT(1 (bigint)), t.fi:5!null @@ -1856,7 +1974,7 @@ Project ├─ columns: [sum │ ├─ over ( partition by xy.z order by xy.x asc rows between unbounded preceding and unbounded following) │ └─ xy.y - │ ->sum(y) over w] + │ :4!null->sum(y) over w] └─ Sort(xy.x:1!null ASC nullsFirst) └─ Window ├─ SUM @@ -1908,7 +2026,7 @@ Project Query: "SELECT max(x), (select max(dt.a) from (SELECT x as a) as dt(a)) as a1 from xy group by a1;", ExpectedPlan: ` Project - ├─ columns: [max(xy.x)->max(x), Subquery + ├─ columns: [max(xy.x):4!null->max(x), Subquery │ ├─ cacheable: false │ ├─ alias-string: select max(dt.a) from (select x as a) as dt (a) │ └─ Project @@ -2489,7 +2607,7 @@ Project Query: "select icu_version();", ExpectedPlan: ` Project - ├─ columns: ['73.1'->icu_version()] + ├─ columns: [73.1 (varchar(4))->icu_version()] └─ Table ├─ name: ├─ columns: []