1 package com.daffodilwoods.daffodildb.server.sql99.fulltext.expression; 2 3 import com.daffodilwoods.database.resource.*; 4 import com.daffodilwoods.daffodildb.server.sql99.token.*; 5 import com.daffodilwoods.daffodildb.server.sql99.expression.expressionprimary. 6 basicidentifierchain; 7 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails; 8 import com.daffodilwoods.daffodildb.server.sql99.expression. 9 booleanvalueexpression.booleanvalueexpression; 10 import com.daffodilwoods.daffodildb.server.sql99.expression. 11 booleanvalueexpression.AbstractBooleanValueExpression; 12 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition. 13 _AllColumnPredicates; 14 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.table. 15 _IndexPredicateInterface; 16 import com.daffodilwoods.database.sqlinitiator._Order; 17 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails; 18 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition. 19 _QualifiedBVE; 20 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition._BVEPlan; 21 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues; 22 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo; 23 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 24 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 25 import java.util.ArrayList ; 26 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValueOperations; 27 import com.daffodilwoods.daffodildb.server.sql99.utils.ByteComparison; 28 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression. 29 AbstractRowValueExpression; 30 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition. 31 BVESingleTablePlan; 32 import com.daffodilwoods.daffodildb.server.sql99.expression. 33 booleanvalueexpression.booleanfactor; 34 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition. 35 BVEPlanMerger; 36 import com.daffodilwoods.daffodildb.server.sql99.expression. 37 booleanvalueexpression.parenthesizedbooleanvalueexpression; 38 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition. 39 _FullTextPredicate; 40 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition. 41 ContainsPredicate; 42 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem. 43 _IndexTableList; 44 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._IndexTable; 45 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dml. 46 _FullTextIndexInformation; 47 import com.daffodilwoods.database.resource.DException; 48 import com.daffodilwoods.daffodildb.server.sql99.expression. 49 booleanvalueexpression.predicates.ExecutionPlanConstants; 50 import com.daffodilwoods.daffodildb.server.sql99.dql.execution. 51 _SingleTableCondition; 52 import com.daffodilwoods.daffodildb.server.serversystem._Server; 53 54 66 public class containsclause 67 extends AbstractBooleanValueExpression 68 implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, 69 booleanvalueexpression, _SingleTableCondition { 70 73 public Srightparen_1874859514 _Srightparen_18748595140; 74 75 78 public searchexpression _searchexpression1; 79 80 84 public Scomma94843605 _Scomma948436052; 85 86 89 public basicidentifierchain _basicidentifierchain3; 90 91 94 public Sleftparen653880241 _Sleftparen6538802414; 95 96 99 public SNONRESERVEDWORD136444255 _SNONRESERVEDWORD1364442555; 100 101 104 public TableDetails tableDetails; 105 106 public Object run(Object object) throws DException { 107 return null; 108 } 109 110 public Object clone() throws CloneNotSupportedException { 111 SNONRESERVEDWORD136444255 sNONRESERVEDWORD1364442557 = ( 112 SNONRESERVEDWORD136444255) _SNONRESERVEDWORD1364442555.clone(); 113 Sleftparen653880241 sleftparen6538802416 = (Sleftparen653880241) 114 _Sleftparen6538802414.clone(); 115 basicidentifierchain Basicidentifierchain5 = (basicidentifierchain) 116 _basicidentifierchain3.clone(); 117 Scomma94843605 scomma948436054 = (Scomma94843605) _Scomma948436052.clone(); 118 searchexpression Searchexpression2 = (searchexpression) _searchexpression1. 119 clone(); 120 Srightparen_1874859514 srightparen_18748595140 = (Srightparen_1874859514) 121 _Srightparen_18748595140.clone(); 122 123 containsclause Containsclause = new containsclause(); 124 Containsclause._SNONRESERVEDWORD1364442555 = sNONRESERVEDWORD1364442557; 125 Containsclause._Sleftparen6538802414 = sleftparen6538802416; 126 Containsclause._basicidentifierchain3 = Basicidentifierchain5; 127 Containsclause._Scomma948436052 = scomma948436054; 128 Containsclause._searchexpression1 = Searchexpression2; 129 Containsclause._Srightparen_18748595140 = srightparen_18748595140; 130 return Containsclause; 131 } 132 133 138 public ColumnDetails[] getColumnDetails() throws DException { 139 columnDetails = _basicidentifierchain3.getColumnDetails(); 140 setFlagForContainClause(columnDetails); 141 return columnDetails; 142 } 143 144 149 private void setFlagForContainClause(ColumnDetails[] columnDetails) { 150 for (int i = 0; i < columnDetails.length; i++) { 151 columnDetails[i].setContainClauseFlag(); 152 } 153 } 154 155 164 public com.daffodilwoods.daffodildb.server.sql99.utils._Reference[] 165 checkSemantic(com.daffodilwoods.daffodildb.server.serversystem. 166 _ServerSession obj) throws DException { 167 168 if (_Server.ISONEDOLLARDB) 169 throw new DException("DSE2054", 170 new Object [] {new String ("Contains Clause")}); 171 175 if (columnDetails[0].getTable() == null) 176 return new _Reference[] { 177 columnDetails[0]}; 178 179 _FullTextIndexInformation[] fullTextIndexInfo = obj.getIndexTable( 180 columnDetails[0].getTable().getQualifiedIdentifier()). 181 getFullTextIndexInformation(); 182 if (fullTextIndexInfo != null) { 183 for (int i = 0; i < fullTextIndexInfo.length; i++) { 184 if (columnDetails[0].getColumn().equalsIgnoreCase(fullTextIndexInfo[i]. 185 getIndexName())) 186 return _searchexpression1.checkSemantic(obj); 187 else { 188 if (fullTextIndexInfo[i].getColumnName().length == 1) { 189 if (columnDetails[0].getColumn().equalsIgnoreCase(fullTextIndexInfo[ 190 i].getColumnName()[0])) 191 return _searchexpression1.checkSemantic(obj); 192 } 193 } 194 } 195 196 throw new DException("DSE6010", null); 197 } 198 throw new DException("DSE0", 199 new Object [] {"FullTextIndex must exist on column--" + 200 columnDetails[0].getColumn()}); 201 } 202 203 public _IndexPredicateInterface getCost(_Order order, String [] queryColumns, 204 Object session, 205 TableDetails tableDetails, 206 ColumnDetails[] aggregateColumns) throws 207 DException { 208 _FullTextPredicate fullTextpredicate = _searchexpression1. 209 getFulltextPredicates(); 210 ContainsPredicate cp = new ContainsPredicate(fullTextpredicate); 211 cp.setColumn(columnDetails[0].getColumn()); 212 return cp; 213 } 214 215 220 public _BVEPlan getExecutionPlan() throws DException { 221 BVESingleTablePlan plan = new BVESingleTablePlan(this, 222 columnDetails[0].getTable()); 223 return plan; 224 } 225 226 230 public AbstractRowValueExpression[] getChilds() { 231 AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] { 232 _basicidentifierchain3}; 233 return childs; 234 } 235 236 241 public ParameterInfo[] getParameterInfo() throws DException { 242 ParameterInfo parameterInfo = new ParameterInfo(); 243 parameterInfo.setName(columnDetails[0].getStringOfColumn()); 244 parameterInfo.setDataType(columnDetails[0].getDatatype()); 245 return new ParameterInfo[] { 246 parameterInfo}; 247 } 248 249 255 public int getConditionType() throws DException { 256 return ExecutionPlanConstants.CONTAINS; 257 } 258 259 public String toString() { 260 StringBuffer sb = new StringBuffer (); 261 sb.append(_SNONRESERVEDWORD1364442555); 262 sb.append(_Sleftparen6538802414); 263 sb.append(_basicidentifierchain3); 264 sb.append(_Scomma948436052); 265 sb.append(_searchexpression1); 266 sb.append(_Srightparen_18748595140); 267 return sb.toString(); 268 } 269 270 public booleanvalueexpression getSingleTableCondition() throws DException { 271 return this; 272 } 273 274 } 275 | Popular Tags |