Skip to content

Commit

Permalink
Verify a statement execution returns a ResultSet zio#63
Browse files Browse the repository at this point in the history
  • Loading branch information
TobiasPfeifer authored and Tobias Pfeifer committed Mar 29, 2021
1 parent cfedbf3 commit d60fd1e
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions jdbc/src/main/scala/zio/sql/SqlDriverLiveModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,24 @@ trait SqlDriverLiveModule { self: Jdbc =>

val statement = conn.createStatement()

val _ = statement.execute(query) // TODO: Check boolean return value

val resultSet = statement.getResultSet()

ZStream
.unfoldM(resultSet) { rs =>
if (rs.next()) {
try unsafeExtractRow[read.ResultType](resultSet, schema) match {
case Left(error) => ZIO.fail(error)
case Right(value) => ZIO.succeed(Some((value, rs)))
} catch {
case e: SQLException => ZIO.fail(e)
}
} else ZIO.succeed(None)
}
.map(read.mapper)
val hasResultSet = statement.execute(query)

if (hasResultSet) {
val resultSet = statement.getResultSet()

ZStream
.unfoldM(resultSet) { rs =>
if (rs.next()) {
try unsafeExtractRow[read.ResultType](resultSet, schema) match {
case Left(error) => ZIO.fail(error)
case Right(value) => ZIO.succeed(Some((value, rs)))
} catch {
case e: SQLException => ZIO.fail(e)
}
} else ZIO.succeed(None)
}
.map(read.mapper)
} else ZStream.empty

}.refineToOrDie[Exception]
}
Expand Down

0 comments on commit d60fd1e

Please sign in to comment.