| 1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates; 2 3 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.*; 4 import com.daffodilwoods.daffodildb.utils.*; 5 import com.daffodilwoods.daffodildb.utils.field.*; 6 import com.daffodilwoods.database.resource.*; 7 8 16 17 public class EscapeSpecialComparator extends EscapeComparator { 18 19 public EscapeSpecialComparator(SRESERVEDWORD1206543922escapecharacter escpaeCharacter0, Object object0, boolean firstClob, boolean secondClob, boolean thirdClob) { 20 super(escpaeCharacter0, object0, firstClob, secondClob, thirdClob); 21 } 22 23 public int compare(_DComparator leftMatchValue, _DComparator rightPattern) throws DException { 24 FieldBase escape = ( (FieldBase[]) escpaeCharacter.run(object))[0]; 25 byte[] matchValue = firstClob ? ( (DClobUpdatable) leftMatchValue).getBytes() 26 : ( (FieldBase) leftMatchValue).getBufferRange().getBytes(); 27 byte[] matchPattern = secondClob ? ( (DClobUpdatable) rightPattern).getBytes() 28 : ( (FieldBase) rightPattern).getBufferRange().getBytes(); 29 byte[] escapeArray = thirdClob ? ( (DClobUpdatable) escape).getBytes() 30 : escape.getBufferRange().getBytes(); 31 if (escapeArray.length != 1) { 32 throw new DException("DSE0", new Object [] {"Invalid escape character '" + new String (escapeArray) + "' was specified in a LIKE predicate."}); 33 } 34 escapeByte = escapeArray[0]; 35 return compareEscapeLike(matchValue, matchPattern); 36 } 37 38 } 39 | Popular Tags |