Skip to content

Commit

Permalink
CR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
kidonm committed Nov 23, 2020
1 parent c3353c5 commit 754baae
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 24 deletions.
4 changes: 2 additions & 2 deletions core/jvm/src/main/scala/zio/sql/Sql.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ trait Sql extends SelectModule with DeleteModule with UpdateModule with ExprModu
def select[F, A, B <: SelectionSet[A]](selection: Selection[F, A, B]): SelectBuilder[F, A, B] =
SelectBuilder(selection)

def deleteFrom[F[_], A, B](table: Table.Source.Aux[F, A, B]): DeleteBuilder[F, A, B] = DeleteBuilder(table)
def deleteFrom[F[_], A, B](table: Table.Source.Aux[F, A, B]): Delete[A] = Delete(table, true)

def update[A](table: Table.Aux[A]): UpdateBuilder[A] = UpdateBuilder(table)

def renderRead(read: self.Read[_]): String

def renderDelete(delete: self.Delete[_, _]): String
def renderDelete(delete: self.Delete[_]): String
}
9 changes: 2 additions & 7 deletions core/jvm/src/main/scala/zio/sql/delete.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,7 @@ package zio.sql

trait DeleteModule { self: ExprModule with TableModule =>

sealed case class DeleteBuilder[F[_], A, B](table: Table.Aux[A]) {
def where[F1](expr: Expr[F1, A, Boolean]): Delete[F1, A] = Delete(table, expr)

def all[F1]: Delete[Features.Literal, A] = Delete(table, Expr.literal(true))
sealed case class Delete[A](table: Table.Aux[A], whereExpr: Expr[_, A, Boolean]) {
def where[F](expr: Expr[F, A, Boolean]): Delete[A] = Delete(table, expr)
}

sealed case class Delete[F, A](table: Table.Aux[A], whereExpr: Expr[F, A, Boolean])

}
4 changes: 2 additions & 2 deletions core/jvm/src/test/scala/zio/sql/GroupByHavingSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ object GroupByHavingSpec extends DefaultRunnableSpec {

object AggregatedProductSchema {
val sqldsl = new Sql {
override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_, _]): String = ???
override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_]): String = ???
}
import sqldsl.ColumnSet._
import sqldsl.AggregationDef._
Expand Down
4 changes: 2 additions & 2 deletions core/jvm/src/test/scala/zio/sql/ProductSchema.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package zio.sql

object ProductSchema {
val sql = new Sql {
override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_, _]): String = ???
override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_]): String = ???
}
import sql.ColumnSet._
import sql._
Expand Down
4 changes: 2 additions & 2 deletions core/jvm/src/test/scala/zio/sql/TestBasicSelectSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ object TestBasicSelect {
val userSql = new Sql { self =>
import self.ColumnSet._

override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_, _]): String = ???
override def renderRead(read: this.Read[_]): String = ???
override def renderDelete(delete: this.Delete[_]): String = ???

val userTable =
(string("user_id") ++ localDate("dob") ++ string("first_name") ++ string("last_name")).table("users")
Expand Down
4 changes: 2 additions & 2 deletions examples/src/main/scala/Example1.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import zio.sql.Sql
object Example1 extends Sql {
import ColumnSet._

def renderRead(read: this.Read[_]): String = ???
def renderDelete(delete: this.Delete[_, _]): String = ???
def renderRead(read: this.Read[_]): String = ???
def renderDelete(delete: this.Delete[_]): String = ???

val columnSet = int("age") ++ string("name")

Expand Down
6 changes: 3 additions & 3 deletions jdbc/src/main/scala/zio/sql/jdbc.scala
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ trait Jdbc extends zio.sql.Sql {
type DeleteExecutor = Has[DeleteExecutor.Service]
object DeleteExecutor {
trait Service {
def execute(delete: Delete[_, _]): IO[Exception, Int]
def execute(delete: Delete[_]): IO[Exception, Int]
}

val live: ZLayer[ConnectionPool with Blocking, Nothing, DeleteExecutor] =
ZLayer.fromServices[ConnectionPool.Service, Blocking.Service, DeleteExecutor.Service] { (pool, blocking) =>
new Service {
def execute(delete: Delete[_, _]): IO[Exception, Int] = pool.connection.use { conn =>
def execute(delete: Delete[_]): IO[Exception, Int] = pool.connection.use { conn =>
blocking.effectBlocking {
val query = renderDelete(delete)
val statement = conn.createStatement()
Expand Down Expand Up @@ -244,7 +244,7 @@ trait Jdbc extends zio.sql.Sql {

def execute[A <: SelectionSet[_]](read: Read[A]): ExecuteBuilder[A, read.ResultType] = new ExecuteBuilder(read)

def execute(delete: Delete[_, _]): ZIO[DeleteExecutor, Exception, Int] = ZIO.accessM[DeleteExecutor](
def execute(delete: Delete[_]): ZIO[DeleteExecutor, Exception, Int] = ZIO.accessM[DeleteExecutor](
_.get.execute(delete)
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ trait PostgresModule extends Jdbc { self =>
val _ = builder.append(" (").append(values.mkString(",")).append(") ") //todo fix needs escaping
}

private def buildDeleteString(delete: self.Delete[_, _], builder: StringBuilder): Unit = {
private def buildDeleteString(delete: self.Delete[_], builder: StringBuilder): Unit = {
import delete._

builder.append("DELETE FROM ")
Expand All @@ -259,7 +259,7 @@ trait PostgresModule extends Jdbc { self =>
}
}

override def renderDelete(delete: self.Delete[_, _]): String = {
override def renderDelete(delete: self.Delete[_]): String = {
val builder = new StringBuilder()

buildDeleteString(delete, builder)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ object PostgresModuleTest extends PostgresRunnableSpec with ShopSchema {
assertion.mapErrorCause(cause => Cause.stackless(cause.untraced))
}
// testM("Can delete all from a single table") { TODO: Does not work on 2.12 yet
// val query = deleteFrom(customers).all
// val query = deleteFrom(customers)
// println(renderDelete(query))

// val result = execute(query)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import zio.sql.Jdbc

trait SqlServerModule extends Jdbc { self =>

override def renderDelete(delete: Delete[_, _]): String = ??? // TODO: https://github.com/zio/zio-sql/issues/159
override def renderDelete(delete: Delete[_]): String = ??? // TODO: https://github.com/zio/zio-sql/issues/159

override def renderRead(read: self.Read[_]): String = {
val builder = new StringBuilder
Expand Down

0 comments on commit 754baae

Please sign in to comment.