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