the second problem resulted from this view being joined with another (minion_spells_denorm_v) that also used minions as a base table. Apparently that confused the planner into thinking it needed to do the cross join.