1 package com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition; 2 3 import com.daffodilwoods.database.resource.DException; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 5 import com.daffodilwoods.database.sqlinitiator._Order; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.set. 7 UnionDistinctIterator; 8 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 9 import com.daffodilwoods.daffodildb.server.sql99.common. 10 GeneralPurposeStaticClass; 11 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes; 12 import com.daffodilwoods.daffodildb.utils.GetByteComparator; 13 import com.daffodilwoods.daffodildb.utils.comparator.SuperComparator; 14 import com.daffodilwoods.daffodildb.utils.comparator.CKpjoDpnqbsbups; 15 16 30 31 public class OrFullTextpredicate implements _FullTextPredicate { 32 35 _FullTextPredicate leftPredicate; 36 39 _FullTextPredicate rightPredicate; 40 43 String columnName; 44 private _Order order; 45 46 public OrFullTextpredicate(_FullTextPredicate leftPredicate, 47 _FullTextPredicate rightPredicate) { 48 this.leftPredicate = leftPredicate; 49 this.rightPredicate = rightPredicate; 50 } 51 52 58 public int getType() throws DException { 59 return PredicateConstant.orFullTextPredicate; 60 } 61 62 68 public String getColumn() throws DException { 69 return columnName = leftPredicate.getColumn(); 70 } 71 72 78 public void setColumn(String colName) throws DException { 79 leftPredicate.setColumn(colName); 80 rightPredicate.setColumn(colName); 81 } 82 83 public double getCost() throws DException { 84 return 0.0; 85 } 86 87 public double getCost(Object session) throws DException { 88 return 0.0; 89 } 90 91 99 public _Iterator execute(Object session) throws DException { 100 int[] appropriateDataType = new int[] { 101 Datatypes.LONGSIZE}; 102 _Iterator leftIterator = leftPredicate.executeForSortedResult(session); 103 _Iterator rightIterator = rightPredicate.executeForSortedResult(session); 104 _Reference[] leftReferences = new _Reference[] { 105 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 106 _Reference[] rightReferences = new _Reference[] { 107 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 108 SuperComparator comparator = new CKpjoDpnqbsbups(new SuperComparator[] { 109 GetByteComparator.getComparator(Datatypes.LONG, true, null)}); 110 _Reference[] orderLeftColumnDetails = new _Reference[] { 111 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 112 _Reference[] orderRightColumnDetails = new _Reference[] { 113 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 114 115 return new UnionDistinctIterator(leftIterator, rightIterator,leftReferences, rightReferences,comparator, appropriateDataType,appropriateDataType,orderLeftColumnDetails,orderRightColumnDetails, comparator,comparator); 116 } 117 118 public double getEstimatedRow() throws DException { 119 return 1; 120 } 121 122 public void setOrder(_Order order) throws DException { 123 this.order = order; 124 } 125 126 public _Order getOrder() throws DException { 127 return order; 128 } 129 130 138 public _Iterator executeForSortedResult(Object indexTable) throws DException { 139 return execute(indexTable); 140 } 141 } 142 | Popular Tags |