diff --git a/build.sbt b/build.sbt index 53ed70860..e79e72b2c 100644 --- a/build.sbt +++ b/build.sbt @@ -23,7 +23,7 @@ addCommandAlias("fmtOnce", "all scalafmtSbt scalafmt test:scalafmt") addCommandAlias("fmt", "fmtOnce;fmtOnce") addCommandAlias("check", "all scalafmtSbtCheck scalafmtCheck test:scalafmtCheck") -val zioVersion = "2.0.0" +val zioVersion = "2.0.2" val zioSchemaVersion = "0.2.0" val testcontainersVersion = "1.17.3" val testcontainersScalaVersion = "0.40.10" @@ -138,7 +138,7 @@ lazy val jdbc_hikaricp = project .settings(buildInfoSettings("zio.sql.jdbc-hickaricp")) .settings( libraryDependencies ++= Seq( - "com.zaxxer" % "HikariCP" % "5.0.1", + "com.zaxxer" % "HikariCP" % "4.0.3", // 5.x doesn't support Java 1.8 "dev.zio" %% "zio-test" % zioVersion % Test, "dev.zio" %% "zio-test-sbt" % zioVersion % Test, "org.testcontainers" % "mysql" % testcontainersVersion % Test, diff --git a/jdbc-hikaricp/src/main/scala/zio/sql/HikariConnectionPool.scala b/jdbc-hikaricp/src/main/scala/zio/sql/HikariConnectionPool.scala index b72a28464..fa1eadec1 100644 --- a/jdbc-hikaricp/src/main/scala/zio/sql/HikariConnectionPool.scala +++ b/jdbc-hikaricp/src/main/scala/zio/sql/HikariConnectionPool.scala @@ -8,11 +8,6 @@ class HikariConnectionPool private (hikariDataSource: HikariDataSource) extends private[sql] val dataSource = hikariDataSource - /** - * Retrieves a JDBC java.sql.Connection as a [[ZIO[Scope, Exception, Connection]]] resource. - * The managed resource will safely acquire and release the connection, and - * may be interrupted or timed out if necessary. - */ override def connection: ZIO[Scope, Exception, Connection] = ZIO.acquireRelease(ZIO.attemptBlocking(hikariDataSource.getConnection).refineToOrDie[SQLException])(con => ZIO.attemptBlocking(hikariDataSource.evictConnection(con)).orDie diff --git a/jdbc-hikaricp/src/test/scala/zio/sql/HikariConnectionPoolSpec.scala b/jdbc-hikaricp/src/test/scala/zio/sql/HikariConnectionPoolSpec.scala index 31a2a5f5b..d2870c0a2 100644 --- a/jdbc-hikaricp/src/test/scala/zio/sql/HikariConnectionPoolSpec.scala +++ b/jdbc-hikaricp/src/test/scala/zio/sql/HikariConnectionPoolSpec.scala @@ -119,7 +119,7 @@ object HikariConnectionPoolSpec extends ZIOSpecDefault { ) } @@ timeout(10.seconds) @@ withLiveClock, test("connection init SQL should be configurable") { - val initialSql = "SELECT 1 FROM test.test" + val initialSql = "SELECT 1" (for { cp <- ZIO.service[HikariConnectionPool] } yield assertTrue(cp.dataSource.getConnectionInitSql == initialSql)) diff --git a/jdbc-hikaricp/src/test/scala/zio/sql/MySqlTestContainer.scala b/jdbc-hikaricp/src/test/scala/zio/sql/MySqlTestContainer.scala index 16ec7cc17..ebba6fa31 100644 --- a/jdbc-hikaricp/src/test/scala/zio/sql/MySqlTestContainer.scala +++ b/jdbc-hikaricp/src/test/scala/zio/sql/MySqlTestContainer.scala @@ -12,10 +12,7 @@ object MySqlTestContainer { ZIO.attemptBlocking { val c = new MySQLContainer( mysqlImageVersion = Option(imageName).map(DockerImageName.parse) - ).configure { a => - a.withInitScript("test_schema.sql") - () - } + ) c.start() c } diff --git a/jdbc/src/test/scala/zio/sql/JdbcRunnableSpec.scala b/jdbc/src/test/scala/zio/sql/JdbcRunnableSpec.scala index d72bd8c0c..b4c031db0 100644 --- a/jdbc/src/test/scala/zio/sql/JdbcRunnableSpec.scala +++ b/jdbc/src/test/scala/zio/sql/JdbcRunnableSpec.scala @@ -51,10 +51,11 @@ trait JdbcRunnableSpec extends ZIOSpecDefault with Jdbc { ) } + val connectionPool: ZLayer[Any, Throwable, ConnectionPool] = poolConfigLayer >>> ConnectionPool.live + private[this] final lazy val jdbcLayer: ZLayer[Any, Any, SqlDriver] = ZLayer.make[SqlDriver]( - poolConfigLayer.orDie, - ConnectionPool.live.orDie, + connectionPool.orDie, SqlDriver.live ) @@ -65,7 +66,7 @@ trait JdbcRunnableSpec extends ZIOSpecDefault with Jdbc { def both[A, B](fa: => Gen[R, A], fb: => Gen[R, B]): Gen[R, (A, B)] = fa.zip(fb) } - private[this] def testContainer: ZIO[Scope, Throwable, SingleContainer[_] with JdbcDatabaseContainer] = + val testContainer: ZIO[Scope, Throwable, SingleContainer[_] with JdbcDatabaseContainer] = ZIO.acquireRelease { ZIO.attemptBlocking { val c = getContainer diff --git a/oracle/src/test/scala/zio/sql/oracle/OracleSqlModuleSpec.scala b/oracle/src/test/scala/zio/sql/oracle/OracleSqlModuleSpec.scala index 40007cd4d..dc7869b93 100644 --- a/oracle/src/test/scala/zio/sql/oracle/OracleSqlModuleSpec.scala +++ b/oracle/src/test/scala/zio/sql/oracle/OracleSqlModuleSpec.scala @@ -130,13 +130,13 @@ object OracleSqlModuleSpec extends OracleRunnableSpec with ShopSchema { assertZIO(execute(command))(equalTo(2)) }, test("Can insert all supported types") { - val sqlMinDateTime = LocalDateTime.of(-4713, 1, 1, 0, 0) + val sqlMinDateTime = LocalDateTime.of(1, 1, 1, 0, 0) val sqlMaxDateTime = LocalDateTime.of(9999, 12, 31, 23, 59) val sqlInstant = Gen.instant(sqlMinDateTime.toInstant(ZoneOffset.MIN), sqlMaxDateTime.toInstant(ZoneOffset.MAX)) - val sqlYear = Gen.int(-4713, 9999).filter(_ != 0).map(Year.of) + val sqlYear = Gen.int(1, 9999).map(Year.of) val sqlLocalDate = for { year <- sqlYear @@ -216,6 +216,7 @@ object OracleSqlModuleSpec extends OracleRunnableSpec with ShopSchema { durationCol ).values(row) + // printInsert(insert) // TODO: ensure we can read values back correctly // val read = // select( diff --git a/sqlserver/src/test/scala/zio/sql/sqlserver/SqlServerModuleSpec.scala b/sqlserver/src/test/scala/zio/sql/sqlserver/SqlServerModuleSpec.scala index e435e2316..30371d83e 100644 --- a/sqlserver/src/test/scala/zio/sql/sqlserver/SqlServerModuleSpec.scala +++ b/sqlserver/src/test/scala/zio/sql/sqlserver/SqlServerModuleSpec.scala @@ -656,7 +656,7 @@ object SqlServerModuleSpec extends SqlServerRunnableSpec with DbSchema { Gen.option(Gen.int), sqlLocalDate, sqlLocalDateTime, - Gen.localTime, + Gen.localTime.map(normLt), // needs to be truncated before saving to the db for predictable outcome Gen.long, sqlOffsetDateTime, sqlOffsetTime,