Skip to content

Commit 56a7931

Browse files
committed
add size estimation to TD. eggcc-extraction 100% slower
1 parent 94dba6c commit 56a7931

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

  • core-relations/src/free_join

core-relations/src/free_join/plan.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ fn next_var_to_eliminate(
425425
) -> Option<IndexSet<Variable>> {
426426
let (_var, subquery_vars) = vars
427427
.iter()
428-
.map(|(var, _vinfo)| {
428+
.map(|(var, vinfo)| {
429429
let subquery_vars = atoms
430430
.iter()
431431
// every atom that contains this variable
@@ -435,14 +435,14 @@ fn next_var_to_eliminate(
435435

436436
// Optimization: use functional dependencies to find all variables inferred by the
437437
// current neightborhood.
438-
let subquery_vars = fun_deps.closure(subquery_vars);
439-
// let subquery_vars:DenseIdMap<_, ()> = subquery_vars.map(|v| (v, ())).collect();
438+
// let subquery_vars = fun_deps.closure(subquery_vars);
439+
let subquery_vars:DenseIdMap<_, ()> = subquery_vars.map(|v| (v, ())).collect();
440440

441441
let occ = atoms
442442
.iter()
443443
.filter(|(_, atom)| atom.vars().any(|v| subquery_vars.contains_key(v)))
444444
.count();
445-
let inv_selectivity = _vinfo
445+
let size_estimation = vinfo
446446
.occurrences
447447
.iter()
448448
.filter_map(|occ| {
@@ -457,13 +457,13 @@ fn next_var_to_eliminate(
457457
Some(col_est.col_uniqueness(table, col))
458458
})
459459
.fold(ColUniqueness::default(), |a, b| a.join(&b));
460-
// ((occ, inv_selectivity), var, subquery_vars)
461-
(occ, var, subquery_vars)
460+
((occ, size_estimation), var, subquery_vars)
461+
// (occ, var, subquery_vars)
462462
})
463463
.min_by_key(|a| a.0)
464464
.map(|a| (a.1, a.2))?;
465465
Some(IndexSet::from_iter(
466-
subquery_vars.into_iter().map(|(var, _)| var),
466+
fun_deps.closure(subquery_vars.iter().map(|(var, _)| var)).into_iter().map(|(var, _)| var),
467467
))
468468
}
469469

0 commit comments

Comments
 (0)