Keep standard INNER joins above possible OUTERs
authorMike Rylander <mrylander@gmail.com>
Thu, 12 Sep 2013 17:26:21 +0000 (13:26 -0400)
committerBen Shum <bshum@biblio.org>
Sat, 15 Feb 2014 00:38:35 +0000 (19:38 -0500)
We always join metabib.record_attr, and we always use an INNER join
to the core table, so keep that join first.  Likewise with the join
to biblio.record_entry.  Dynamic joins may be OUTER, though, and while
join reordering in Postgres is smart, let's not give it the chance to
fail.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm

index 3a7f367..7d0aae0 100644 (file)
@@ -802,9 +802,9 @@ SELECT  $key AS id,
         $rank AS rank, 
         FIRST(mrd.attrs->'date1') AS tie_break
   FROM  metabib.metarecord_source_map m
-        $$flat_plan{from}
         $mra_join
         $bre_join
+        $$flat_plan{from}
   WHERE 1=1
         $flat_where
   GROUP BY 1