@@ -1023,7 +1023,7 @@ explain select * from t1 where a not in (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1
1023
1023
Filter
1024
1024
โโโ output columns: [t1.a (#0), t1.b (#1)]
1025
1025
โโโ filters: [is_true(NOT 3 (#3))]
1026
- โโโ estimated rows: 0 .00
1026
+ โโโ estimated rows: 3 .00
1027
1027
โโโ HashJoin
1028
1028
โโโ output columns: [t1.a (#0), t1.b (#1), marker (#3)]
1029
1029
โโโ join type: LEFT MARK
@@ -1260,23 +1260,23 @@ HashJoin: RIGHT OUTER
1260
1260
query T
1261
1261
explain join SELECT c.customer_name FROM customers c WHERE NOT EXISTS ( SELECT category FROM products WHERE category NOT IN ( SELECT p.category FROM sales s JOIN products p ON s.product_id = p.product_id WHERE s.customer_id = c.customer_id ) ) ORDER BY c.customer_name;
1262
1262
----
1263
- HashJoin: RIGHT MARK
1263
+ HashJoin: LEFT MARK
1264
1264
โโโ Build
1265
- โ โโโ HashJoin: RIGHT MARK
1266
- โ โโโ Build
1267
- โ โ โโโ HashJoin: INNER
1268
- โ โ โโโ Build
1269
- โ โ โ โโโ Scan: default.default.products (#3) (read rows: 10)
1270
- โ โ โโโ Probe
1271
- โ โ โโโ Scan: default.default.sales (#2) (read rows: 500)
1272
- โ โโโ Probe
1273
- โ โโโ HashJoin: CROSS
1274
- โ โโโ Build
1275
- โ โ โโโ Scan: default.default.products (#1) (read rows: 10)
1276
- โ โโโ Probe
1277
- โ โโโ Scan: default.default.customers (#0) (read rows: 100)
1265
+ โ โโโ Scan: default.default.customers (#0) (read rows: 100)
1278
1266
โโโ Probe
1279
- โโโ Scan: default.default.customers (#0) (read rows: 100)
1267
+ โโโ HashJoin: RIGHT MARK
1268
+ โโโ Build
1269
+ โ โโโ HashJoin: INNER
1270
+ โ โโโ Build
1271
+ โ โ โโโ Scan: default.default.products (#3) (read rows: 10)
1272
+ โ โโโ Probe
1273
+ โ โโโ Scan: default.default.sales (#2) (read rows: 500)
1274
+ โโโ Probe
1275
+ โโโ HashJoin: CROSS
1276
+ โโโ Build
1277
+ โ โโโ Scan: default.default.products (#1) (read rows: 10)
1278
+ โโโ Probe
1279
+ โโโ Scan: default.default.customers (#0) (read rows: 100)
1280
1280
1281
1281
statement ok
1282
1282
drop table customers;
@@ -1664,3 +1664,45 @@ Filter
1664
1664
1665
1665
statement ok
1666
1666
DROP TABLE IF EXISTS t;
1667
+
1668
+ query T
1669
+ EXPLAIN SELECT a.number FROM numbers(10) AS a INNER JOIN (SELECT * FROM numbers(10) WHERE NOT number) AS b ON a.number = b.number
1670
+ ----
1671
+ HashJoin
1672
+ โโโ output columns: [a.number (#0)]
1673
+ โโโ join type: INNER
1674
+ โโโ build keys: [numbers.number (#1)]
1675
+ โโโ probe keys: [a.number (#0)]
1676
+ โโโ keys is null equal: [false]
1677
+ โโโ filters: []
1678
+ โโโ build join filters:
1679
+ โ โโโ filter id:0, build key:numbers.number (#1), probe key:a.number (#0), filter type:inlist,min_max
1680
+ โโโ estimated rows: 100.00
1681
+ โโโ Filter(Build)
1682
+ โ โโโ output columns: [numbers.number (#1)]
1683
+ โ โโโ filters: [NOT CAST(numbers.number (#1) AS Boolean)]
1684
+ โ โโโ estimated rows: 10.00
1685
+ โ โโโ TableScan
1686
+ โ โโโ table: default.system.numbers
1687
+ โ โโโ output columns: [number (#1)]
1688
+ โ โโโ read rows: 10
1689
+ โ โโโ read size: < 1 KiB
1690
+ โ โโโ partitions total: 1
1691
+ โ โโโ partitions scanned: 1
1692
+ โ โโโ push downs: [filters: [NOT CAST(numbers.number (#1) AS Boolean)], limit: NONE]
1693
+ โ โโโ estimated rows: 10.00
1694
+ โโโ Filter(Probe)
1695
+ โโโ output columns: [a.number (#0)]
1696
+ โโโ filters: [NOT CAST(a.number (#0) AS Boolean)]
1697
+ โโโ estimated rows: 10.00
1698
+ โโโ TableScan
1699
+ โโโ table: default.system.numbers
1700
+ โโโ output columns: [number (#0)]
1701
+ โโโ read rows: 10
1702
+ โโโ read size: < 1 KiB
1703
+ โโโ partitions total: 1
1704
+ โโโ partitions scanned: 1
1705
+ โโโ push downs: [filters: [NOT CAST(numbers.number (#0) AS Boolean)], limit: NONE]
1706
+ โโโ apply join filters: [#0]
1707
+ โโโ estimated rows: 10.00
1708
+
0 commit comments