Simon Riggs <simon(at)2ndQuadrant(dot)com> writes:
> In some cases, we have SQL being submitted that has superfluous
> self-joins. An example would be
> select count(*)
> from foo1 a, foo1 b
> where a.c1 = b.c1 /* PK join */
> and a.c2 = 5
> and b.c2 = 10;
> You may well ask who would be stupid enough to write SQL like that. The
> answer is of course that it is automatically generated by an ORM.
Seems like the right answer is "fix the damn ORM". It's hard to believe
this sort of case comes up often enough to justify the cycles that would
be expended (on *every* join query) to try to recognize it.
regards, tom lane