in connectors/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala [252:297]
private def transformFilter(node: Filter): FilterOperator = {
var operator: FilterOperator = null
node match {
case node: Not =>
operator = new FilterOperator(SQLConstant.KW_NOT)
operator.addChildOPerator(transformFilter(node.child))
operator
case node: And =>
operator = new FilterOperator(SQLConstant.KW_AND)
operator.addChildOPerator(transformFilter(node.left))
operator.addChildOPerator(transformFilter(node.right))
operator
case node: Or =>
operator = new FilterOperator(SQLConstant.KW_OR)
operator.addChildOPerator(transformFilter(node.left))
operator.addChildOPerator(transformFilter(node.right))
operator
case node: EqualTo =>
operator = new BasicOperator(SQLConstant.EQUAL, node.attribute, node.value.toString)
operator
case node: LessThan =>
operator = new BasicOperator(SQLConstant.LESSTHAN, node.attribute, node.value.toString)
operator
case node: LessThanOrEqual =>
operator = new BasicOperator(SQLConstant.LESSTHANOREQUALTO, node.attribute,
node.value.toString)
operator
case node: GreaterThan =>
operator = new BasicOperator(SQLConstant.GREATERTHAN, node.attribute, node.value.toString)
operator
case node: GreaterThanOrEqual =>
operator = new BasicOperator(SQLConstant.GREATERTHANOREQUALTO, node.attribute,
node.value.toString)
operator
case _ =>
throw new Exception("unsupported filter:" + node.toString)
}
}