[Rt-commit] r11776 - rtir/branches/2.3-EXPERIMENTAL/lib/RT

ruz at bestpractical.com ruz at bestpractical.com
Fri Apr 18 10:08:06 EDT 2008


Author: ruz
Date: Fri Apr 18 10:08:01 2008
New Revision: 11776

Modified:
   rtir/branches/2.3-EXPERIMENTAL/lib/RT/IR.pm

Log:
* add additional boundaries to searches by IP to allow
  optimizers do better guesses

Modified: rtir/branches/2.3-EXPERIMENTAL/lib/RT/IR.pm
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/lib/RT/IR.pm	(original)
+++ rtir/branches/2.3-EXPERIMENTAL/lib/RT/IR.pm	Fri Apr 18 10:08:01 2008
@@ -282,6 +282,17 @@
                 SUBKEY          => $rest{'SUBKEY'}. '.LargeContent',
                 ENTRYAGGREGATOR => 'AND',
             );
+            # as well limit borders so DB optimizers can use better
+            # estimations and scan less rows
+            $tickets->_CustomFieldLimit(
+                $field, '>=', '000.000.000.000', %rest,
+                ENTRYAGGREGATOR => 'AND',
+            );
+            $tickets->_CustomFieldLimit(
+                $field, '<=', '255.255.255.255', %rest,
+                SUBKEY          => $rest{'SUBKEY'}. '.LargeContent',
+                ENTRYAGGREGATOR => 'AND',
+            );
         }
         else { # negative equation
             $tickets->_CustomFieldLimit($field, '>', $end_ip, %rest);
@@ -290,6 +301,9 @@
                 SUBKEY          => $rest{'SUBKEY'}. '.LargeContent',
                 ENTRYAGGREGATOR => 'OR',
             );
+            # TODO: as well limit borders so DB optimizers can use better
+            # estimations and scan less rows, but it's harder to do
+            # as we have OR aggregator
         }
         $tickets->_CloseParen;
         # return right now as we did everything


More information about the Rt-commit mailing list