private def toWhere()

in atlas-postgres/src/main/scala/com/netflix/atlas/postgres/SqlUtils.scala [222:239]


  private def toWhere(columns: List[String], query: Query): String = {
    query match {
      case Query.True              => "TRUE"
      case Query.False             => "FALSE"
      case Query.And(q1, q2)       => s"(${toWhere(columns, q1)}) and (${toWhere(columns, q2)})"
      case Query.Or(q1, q2)        => s"(${toWhere(columns, q1)}) or (${toWhere(columns, q2)})"
      case Query.Not(q)            => s"not (${toWhere(columns, q)})"
      case Query.HasKey(k)         => s"${formatColumn(columns, k)} is not null"
      case Query.Equal(k, v)       => s"${formatColumn(columns, k)} = '${escapeLiteral(v)}'"
      case Query.GreaterThan(k, v) => s"${formatColumn(columns, k)} > '${escapeLiteral(v)}'"
      case Query.GreaterThanEqual(k, v) => s"${formatColumn(columns, k)} >= '${escapeLiteral(v)}'"
      case Query.LessThan(k, v)         => s"${formatColumn(columns, k)} < '${escapeLiteral(v)}'"
      case Query.LessThanEqual(k, v)    => s"${formatColumn(columns, k)} <= '${escapeLiteral(v)}'"
      case r: Query.Regex               => toRegexCondition(columns, r.k, r.pattern)
      case r: Query.RegexIgnoreCase     => toRegexIgnoreCaseCondition(columns, r.k, r.pattern)
      case Query.In(k, vs)              => toInCondition(columns, k, vs)
    }
  }