Stop SQL::Abstract::Pg->select mutating its inputs on non-inner joins, by copying the input and shifting that. The current code shifts its inputs for non-inner join, removing the join-type modifier, which creates a fiendishly hard to track bug. Basically, this doesn't work:
Summary
Stop
SQL::Abstract::Pg->select
mutating its inputs on non-inner joins, by copying the input andshift
ing that. The current codeshift
s its inputs for non-inner join, removing the join-type modifier, which creates a fiendishly hard to track bug. Basically, this doesn't work:Motivation
Subtly mutating function inputs leads to hard-to-track bugs
References
Sorry, none. Hopefully this summary plus the test modification (which now fails without the module change) makes clear the problem.