]> review.fuel-infra Code Review - packages/trusty/mysql-wsrep-5.6.git/blob
d927b4699662216c7d40dd3d4f553d3ca4c8547b
[packages/trusty/mysql-wsrep-5.6.git] /
1 /*
2    Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
3
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; version 2 of the License.
7
8    This program is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11    GNU General Public License for more details.
12
13    You should have received a copy of the GNU General Public License
14    along with this program; if not, write to the Free Software
15    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
16 */
17
18 package com.mysql.clusterj.core.query;
19
20 import com.mysql.clusterj.core.spi.QueryExecutionContext;
21 import com.mysql.clusterj.core.store.IndexScanOperation;
22 import com.mysql.clusterj.core.store.ScanFilter;
23 import com.mysql.clusterj.core.store.ScanOperation;
24
25 public class LessEqualPredicateImpl extends ComparativePredicateImpl {
26
27     public LessEqualPredicateImpl(QueryDomainTypeImpl<?> dobj,
28             PropertyImpl property, ParameterImpl param) {
29         super(dobj, property, param);
30     }
31
32     @Override
33     public void markBoundsForCandidateIndices(QueryExecutionContext context, CandidateIndexImpl[] candidateIndices) {
34         if (param.getParameterValue(context) == null) {
35             // null parameters cannot be used with indexes
36             return;
37         }
38         property.markUpperBound(candidateIndices, this, false);
39     }
40
41     @Override
42     public void operationSetBounds(QueryExecutionContext context, IndexScanOperation op, boolean lastColumn) {
43         property.operationSetBounds(param.getParameterValue(context), IndexScanOperation.BoundType.BoundGE, op);
44     }
45
46     /** Set the condition into the filter.
47      * @param context the query execution context with the parameter values
48      * @param op the operation
49      * @param filter the filter
50      */
51     @Override
52     public void filterCmpValue(QueryExecutionContext context, ScanOperation op, ScanFilter filter) {
53         property.filterCmpValue(param.getParameterValue(context), ScanFilter.BinaryCondition.COND_LE, filter);
54     }
55
56 }