From fac8253dc4c2775bc3123e6781eed8e4bac20282 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Fri, 5 Jan 2018 15:49:20 +0100 Subject: [PATCH] pgsql: Swallow multiple EOF marks in final data rows in fetch_row_array(). Depending on timing when the query finishes, there can be multiple internal EOF rows. --- lib/modules/Sql.pmod/pgsql_util.pmod | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index 43d1ec91be..cb03aa8afb 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -1374,10 +1374,12 @@ class sql_result { } if (arrayp(datarow[-1])) return datarow; + do datarow = datarow[..<1]; // Swallow EOF mark(s) + while (sizeof(datarow) && !arrayp(datarow[-1])); trydelayederror(); eoffound = 1; datarows->write(1); // Signal EOF for other threads - return (datarow = datarow[..<1]); + return datarow; } //! @param copydata -- GitLab