[Xapian-tickets] [Xapian] #224: Supply and optimise more OP_VALUE_ comparison operators

Xapian nobody at xapian.org
Thu Apr 24 03:20:05 BST 2008


#224: Supply and optimise more OP_VALUE_ comparison operators
---------------------+------------------------------------------------------
 Reporter:  richard  |        Owner:  olly    
     Type:  defect   |       Status:  new     
 Priority:  low      |    Milestone:          
Component:  Matcher  |      Version:  SVN HEAD
 Severity:  minor    |   Resolution:          
 Keywords:           |    Blockedby:          
 Platform:  All      |     Blocking:          
---------------------+------------------------------------------------------
Changes (by olly):

  * owner:  newbugs => olly
  * status:  assigned => new


Old description:

> We currently supply OP_VALUE_GE and OP_VALUE_LE.  It might be useful to
> also
> supply OP_VALUE_GT and OP_VALUE_LT, and possibly OP_VALUE_EQ.
>
> Also, we currently supply a range operator which can be represented in
> terms of
> two comparison operators: ie, OP_VALUE_RANGE(1, a, b) is equivalent to:
> (OP_VALUE_GE(1, a) AND OP_VALUE_LE(1, b)).  It would be nice to teach the
> query
> optimiser about this equivalence, so that a range specified as two
> comparison
> operators would be transformed into an efficient single
> ValueRangePostList
> internally, instead of the combination of two Value*Cmp*PostLists.  Also,
> the
> ValueRangePostList could be made more flexible by adding flags to tell it
> whether each end of the range is inclusive or not, to allow other
> combinations
> of comparison operator to be represented as ranges.

New description:

 We currently supply OP_VALUE_GE and OP_VALUE_LE.  It might be useful to
 also
 supply OP_VALUE_GT and OP_VALUE_LT, and possibly OP_VALUE_EQ.

 Also, we currently supply a range operator which can be represented in
 terms of
 two comparison operators: ie, OP_VALUE_RANGE(1, a, b) is equivalent to:
 (OP_VALUE_GE(1, a) AND OP_VALUE_LE(1, b)).  It would be nice to teach the
 query
 optimiser about this equivalence, so that a range specified as two
 comparison
 operators would be transformed into an efficient single ValueRangePostList
 internally, instead of the combination of two Value*Cmp*PostLists.  Also,
 the
 ValueRangePostList could be made more flexible by adding flags to tell it
 whether each end of the range is inclusive or not, to allow other
 combinations
 of comparison operator to be represented as ranges.

--

-- 
Ticket URL: <http://trac.xapian.org/ticket/224#comment:4>
Xapian <http://trac.xapian.org>
Xapian



More information about the Xapian-tickets mailing list