Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cats.implicits._
- import doobie.imports._
- import fs2.Task
- import fs2.interop.cats._
- object Main extends App {
- val xa = DriverManagerTransactor[Task](
- "org.postgresql.Driver", "jdbc:postgresql:world", "postgres", ""
- )
- def insert(foos: List[(Int, String)]): ConnectionIO[Int] = {
- val q = "insert into foo (id, name) values (?, ?)"
- Update[(Int, String)](q).updateMany(foos)
- }
- def delete(min: Long, max: Long): ConnectionIO[Int] = {
- (sql"delete from foo where (id between $min and $max)").update.run
- }
- val insertIO: ConnectionIO[Int] =
- insert((1 to 100).toList.map((_, "a")))
- val deleteIO: ConnectionIO[Unit] =
- (1 to 50).grouped(10).toStream.map { ids =>
- delete(ids.min, ids.max)
- }.sequence_
- val insertTask: Task[Int] = insertIO.transact(xa)
- val deleteTask: Task[Unit] = deleteIO.transact(xa)
- //insertTask.unsafeRun
- //deleteTask.unsafeRun
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement