]> review.fuel-infra Code Review - packages/trusty/mysql-wsrep-5.6.git/blob
197c642282a0eb6c0926759e4796ad2d52f3c31a
[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 GreaterEqualPredicateImpl extends ComparativePredicateImpl {
26
27     public GreaterEqualPredicateImpl(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.markLowerBound(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.BoundLE, 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,
53             ScanOperation op, ScanFilter filter) {
54         property.filterCmpValue(param.getParameterValue(context),
55                 ScanFilter.BinaryCondition.COND_GE, filter);
56     }
57
58 }