currently, we generate all matches in the memory before calling the rule. it takes a lot of memory. we should consider implementing a binding generator to save memory. example: https://github.com/datafusion-contrib/datafusion-dolomite/blob/main/dolomite/src/heuristic/binding.rs
currently, we generate all matches in the memory before calling the rule. it takes a lot of memory. we should consider implementing a binding generator to save memory. example: https://github.com/datafusion-contrib/datafusion-dolomite/blob/main/dolomite/src/heuristic/binding.rs