From 8bd75e942be6e4485e0450f49db48a038bda0fea Mon Sep 17 00:00:00 2001
From: "Stephen R. van den Berg" <srb@cuci.nl>
Date: Thu, 24 May 2018 18:46:37 +0200
Subject: [PATCH] pgsql: Make replenishrows() wait until the query has properly
 started.

---
 lib/modules/Sql.pmod/pgsql_util.pmod | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index cb66cde0a6..97164200f8 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1453,7 +1453,8 @@ class sql_result {
   }
 
   private void replenishrows() {
-   if (_fetchlimit && datarows->size() <= _fetchlimit >> 1) {
+   if (_fetchlimit && datarows->size() <= _fetchlimit >> 1
+    && _state >= COMMITTED) {
       Thread.MutexKey lock = closemux->lock();
       if (_fetchlimit) {
         _fetchlimit = pgsqlsess._fetchlimit;
-- 
GitLab