From 31d916912d450b39457770897d7052a21ed06711 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Wed, 23 Feb 2022 11:23:03 -0600 Subject: [PATCH] don't sync after PortalSuspended --- .../src/main/scala/net/protocol/Unroll.scala | 2 +- .../shared/src/test/scala/issue/628.scala | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 modules/tests/shared/src/test/scala/issue/628.scala diff --git a/modules/core/shared/src/main/scala/net/protocol/Unroll.scala b/modules/core/shared/src/main/scala/net/protocol/Unroll.scala index 57247f02..290a0497 100644 --- a/modules/core/shared/src/main/scala/net/protocol/Unroll.scala +++ b/modules/core/shared/src/main/scala/net/protocol/Unroll.scala @@ -77,7 +77,7 @@ private[protocol] class Unroll[F[_]: MessageSocket: Trace]( flatExpect { case rd @ RowData(_) => accumulate(rd.fields :: accum) case CommandComplete(_) => sync.as((accum.reverse ~ false)) - case PortalSuspended => sync.as((accum.reverse ~ true)) + case PortalSuspended => (accum.reverse ~ true).pure[F] case ErrorResponse(info) => syncAndFail(info) } diff --git a/modules/tests/shared/src/test/scala/issue/628.scala b/modules/tests/shared/src/test/scala/issue/628.scala new file mode 100644 index 00000000..33e928c5 --- /dev/null +++ b/modules/tests/shared/src/test/scala/issue/628.scala @@ -0,0 +1,21 @@ +// Copyright (c) 2018-2021 by Rob Norris +// This software is licensed under the MIT License (MIT). +// For more information see LICENSE or https://opensource.org/licenses/MIT + +package tests.issue + +import skunk._ +import skunk.codec.all._ +import skunk.implicits._ +import tests.SkunkTest + +// https://github.com/tpolecat/skunk/issues/628 +class Test628 extends SkunkTest { + + sessionTest("issue/628") { s => + s.prepare(sql"select name from country".query(varchar)).use { ps => + ps.stream(Void, 10).compile.toList + } + } + +} \ No newline at end of file