mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Adds a few unbinds to prevent bad joins from occurring. Firstly, we never want to join `StepSummary::step` with `TypeTracker::append` on `summary` as the first join, as the resulting relation is absolutely massive. So we decouple the two occurrences of `summary` by unbinding each of them. Secondly, in some cases the node we're stepping to (`nodeTo` for type trackers, `nodeFrom` for type backtrackers) will get joined eagerly with the typetracker one is defining, and again this produces an uncomfortably large intermediate join. A bit of unbinding prevents this as well.