in modules/spark-ext/spark/src/main/scala/org/apache/ignite/spark/impl/optimization/StringExpressions.scala [27:95]
def apply(expr: Expression, checkChild: (Expression) ⇒ Boolean): Boolean = expr match {
case Ascii(child) ⇒
checkChild(child)
case Length(child) ⇒
checkChild(child)
case Concat(children) ⇒
children.forall(checkChild)
case ConcatWs(children) ⇒
children.forall(checkChild)
case StringInstr(str, substr) ⇒
checkChild(str) && checkChild(substr)
case Lower(child) ⇒
checkChild(child)
case Upper(child) ⇒
checkChild(child)
case StringLocate(substr, str, start) ⇒
checkChild(substr) && checkChild(str) && checkChild(start)
case StringLPad(str, len, pad) ⇒
checkChild(str) && checkChild(len) && checkChild(pad)
case StringRPad(str, len, pad) ⇒
checkChild(str) && checkChild(len) && checkChild(pad)
case StringTrimLeft(child, None) ⇒
checkChild(child)
case StringTrimRight(child, None) ⇒
checkChild(child)
case StringTrim(child, None) ⇒
checkChild(child)
case StringTrimLeft(child, Some(trimStr)) ⇒
checkChild(child) && checkChild(trimStr)
case StringTrimRight(child, Some(trimStr)) ⇒
checkChild(child) && checkChild(trimStr)
case StringTrim(child, Some(trimStr)) ⇒
checkChild(child) && checkChild(trimStr)
case RegExpReplace(subject, regexp, rep, pos) ⇒
checkChild(subject) && checkChild(regexp) && checkChild(rep) && checkChild(pos)
case StringRepeat(str, times) ⇒
checkChild(str) && checkChild(times)
case SoundEx(child) ⇒
checkChild(child)
case StringSpace(child) ⇒
checkChild(child)
case Substring(str, pos, len) ⇒
checkChild(str) && checkChild(pos) && checkChild(len)
case StringTranslate(str, strMatch, strReplace) ⇒
checkChild(str) && checkChild(strMatch) && checkChild(strReplace)
case _ ⇒ false
}