cache join associations and join base on the stack

No reason to decompose the join objects on every iteration