Skip to content

Commit

Permalink
Merge pull request #25 from yisraelU/main
Browse files Browse the repository at this point in the history
Where and In operators
  • Loading branch information
jdegoes authored Feb 17, 2022
2 parents 5f1654b + 6ad437f commit 6899569
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion core/src/main/scala/zio/jdbc/Sql.scala
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,19 @@ final class Sql[+A](
def withDecode[B](f: ZResultSet => B): Sql[B] =
Sql(segments, f)

def where(predicate: SqlFragment)(implicit ev: A <:< ZResultSet): SqlFragment =
self ++ Sql.where ++ predicate

def and(right: SqlFragment*)(implicit ev: A <:< ZResultSet): SqlFragment =
self ++ intersperse(Sql.and, right)

def or(right: SqlFragment*)(implicit ev: A <:< ZResultSet): SqlFragment =
self ++ intersperse(Sql.or, right)

def in[B](b: B*)(implicit encode: JdbcEncoder[B], ev: A <:< ZResultSet): SqlFragment = in(b.iterator)

def in[B](iterator: Iterator[B])(implicit encode: JdbcEncoder[B], ev: A <:< ZResultSet): SqlFragment =
self ++ Sql.in ++ Sql.lparen ++ Sql.intersperse(Sql.comma, iterator.map(encode.encode).toIndexedSeq) ++ Sql.rparen
}

object Sql {
Expand Down Expand Up @@ -136,9 +144,10 @@ object Sql {
private[jdbc] val rparen = sql""")"""
private[jdbc] val comma = sql""","""
private[jdbc] val nullLiteral = sql"""NULL"""
private[jdbc] val where = sql"""WHERE"""
private[jdbc] val and = sql"""AND"""
private[jdbc] val or = sql"""OR"""
private[jdbc] val not = sql"""NOT"""
private[jdbc] val in = sql"""IN"""

private[jdbc] val notIn = sql"""NOT IN"""
}

0 comments on commit 6899569

Please sign in to comment.