[open-ils-commits] r16264 - trunk/Open-ILS/src/perlmods/OpenILS/Application/Search (miker)

svn at svn.open-ils.org svn at svn.open-ils.org
Fri Apr 16 20:31:57 EDT 2010


Author: miker
Date: 2010-04-16 20:31:55 -0400 (Fri, 16 Apr 2010)
New Revision: 16264

Modified:
   trunk/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm
Log:
count record and metarecord facets differently

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm	2010-04-17 00:05:46 UTC (rev 16263)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm	2010-04-17 00:31:55 UTC (rev 16264)
@@ -1226,37 +1226,37 @@
     #
     # select  cmf.id,
     #         mfae.value,
-    #         count(distinct mfae.source)
+    #         count(distinct mmrsm.appropriate-id-field )
     #   from  metabib.facet_entry mfae
     #         join config.metabib_field cmf on (mfae.field = cmf.id)
+    #         join metabib.metarecord_sourc_map mmrsm on (mfae.source = mmrsm.source)
     #   where cmf.facet_field
-    #         and mfae.source in IDLIST
+    #         and mmrsm.appropriate-id-field in IDLIST
     #   group by 1,2;
 
-    if ($metabib) {
-        $results = {
-            select => { mmrsm => [ 'source' ] },
-            from   => 'mmrsm',
-            where  => { metarecord => $results }
-        };
-    }
-
+    my $count_field = $metabib ? 'metarecord' : 'source';
     my $facets = $U->cstorereq( "open-ils.cstore.json_query.atomic",
         {   select  => {
                 cmf  => [ 'id' ],
-                mfae => [ 
-                    'value',
-                    {
-                        transform => 'count',
-                        distinct => 1,
-                        column => 'source',
-                        alias => 'count',
-                        aggregate => 1
-                    }
-                ]
+                mfae => [ 'value' ],
+                mmrsm => [{
+                    transform => 'count',
+                    distinct => 1,
+                    column => $count_field,
+                    alias => 'count',
+                    aggregate => 1
+                }]
             },
-            from    => { mfae => 'cmf' },
-            where   => { '+cmf'  => 'facet_field', '+mfae' => { source => { in => $results } } }
+            from    => {
+                mfae => {
+                    cmf   => { field => 'id',     fkey => 'field'  },
+                    mmrsm => { field => 'source', fkey => 'source' }
+                }
+            },
+            where   => {
+                '+cmf'   => 'facet_field',
+                '+mmrsm' => { $count_field => $results }
+            }
         }
     );
 



More information about the open-ils-commits mailing list