From c90ad277ca3c996161ac224f4bfde56593c5435a Mon Sep 17 00:00:00 2001
From: "Stephen R. van den Berg" <srb@cuci.nl>
Date: Wed, 23 May 2018 11:38:37 +0200
Subject: [PATCH] pgsql: Fix regression error in adaptive buffer refill.

sizeof(Thread.Queue()) is not equal to Thread.Queue()->size().
Fixes the calculation for adaptive buffer refills.
Without this fix, it *will* result in hung queries, but only
if the number of rows returned exceeds 1024.
---
 lib/modules/Sql.pmod/pgsql_util.pmod | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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