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.ExceptAllIterator; 7 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.set.ExceptDistinctIterator; 8 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 9 import com.daffodilwoods.daffodildb.server.sql99.common.GeneralPurposeStaticClass; 10 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes; 11 import com.daffodilwoods.daffodildb.utils.GetByteComparator; 12 import com.daffodilwoods.daffodildb.utils.comparator.SuperComparator; 13 import com.daffodilwoods.daffodildb.utils.comparator.CKpjoDpnqbsbups; 14 15 28 29 public class OptimizedNotPredicate implements _FullTextPredicate{ 30 33 _Word word; 34 38 _FullTextPredicate notPredicate; 39 42 String columnName; 43 private _Order order; 44 45 public OptimizedNotPredicate(_Word word0,_FullTextPredicate notPredicate0 ) { 46 word = word0; 47 notPredicate = notPredicate0; 48 } 49 55 public int getType() throws DException{ 56 return PredicateConstant.optimizedNotPredicate; 57 } 58 64 public String getColumn() throws DException{ 65 return columnName = word.getColumn(); 66 } 67 73 public void setColumn(String colName) throws DException{ 74 word.setColumn(colName); 75 notPredicate.setColumn(colName); 76 } 77 public double getCost() throws DException { 78 return 0.0; 79 } 80 public double getCost(Object session) throws DException { 81 return 0.0; 82 } 83 90 public _Iterator execute(Object session) throws DException { 91 _Iterator iter1 = word.execute(session); 92 _Iterator iter2 = ( (NotFullTextPredicate) notPredicate).getWordIterator(session); 93 _Reference[] leftReferences = new _Reference[] { 94 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 95 _Reference[] rightReferences = new _Reference[] { 96 GeneralPurposeStaticClass.getColumnDetails("documentId")}; 97 SuperComparator comparator = GetByteComparator.getComparator(Datatypes.LONG, true, null); 98 CKpjoDpnqbsbups joinComparator = new CKpjoDpnqbsbups(new SuperComparator[] {comparator}); 99 _Reference[] orderLeftColumnDetails = new _Reference[] {GeneralPurposeStaticClass.getColumnDetails("documentId")}; 100 _Reference[] orderRightColumnDetails = new _Reference[] {GeneralPurposeStaticClass.getColumnDetails("documentId")}; 101 return new ExceptDistinctIterator(iter1, iter2, leftReferences, 102 rightReferences, joinComparator, 103 orderLeftColumnDetails, 104 orderRightColumnDetails, joinComparator, 105 joinComparator); 106 107 } 108 109 110 public double getEstimatedRow() throws DException { 111 return 1; 112 } 113 public void setOrder(_Order order) throws DException { 114 this.order = order; 115 } 116 public _Order getOrder() throws DException { 117 return order; 118 } 119 126 public _Word getWord() throws DException{ 127 return word; 128 } 129 135 public void setWord(_Word word0) throws DException{ 136 word = word0; 137 } 138 139 146 public _Iterator executeForSortedResult(Object indexTable) throws DException{ 147 return execute(indexTable); 148 } 149 } 150 | Popular Tags |