From 5504162f39a7ac6eb9b6d5e8078a28795bdacff7 Mon Sep 17 00:00:00 2001 From: wakqasahmed Date: Sat, 19 Sep 2026 20:30:56 +0200 Subject: [PATCH 1/2] fix: throw Postgre query errors with warnings disabled (#6913) --- system/Database/Postgre/Connection.php | 8 +++++++- tests/system/Database/Live/BadQueryTest.php | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/system/Database/Postgre/Connection.php b/system/Database/Postgre/Connection.php index a152b90aa539..037e3b2f58a4 100644 --- a/system/Database/Postgre/Connection.php +++ b/system/Database/Postgre/Connection.php @@ -207,7 +207,13 @@ public function getVersion(): string protected function execute(string $sql) { try { - return pg_query($this->connID, $sql); + $result = pg_query($this->connID, $sql); + + if ($result === false && $this->DBDebug) { + throw new DatabaseException((string) pg_last_error($this->connID)); + } + + return $result; } catch (ErrorException $e) { $trace = array_slice($e->getTrace(), 2); // remove the call to error handler diff --git a/tests/system/Database/Live/BadQueryTest.php b/tests/system/Database/Live/BadQueryTest.php index 8b842b21b930..587cabc3bdec 100644 --- a/tests/system/Database/Live/BadQueryTest.php +++ b/tests/system/Database/Live/BadQueryTest.php @@ -53,4 +53,22 @@ public function testBadQueryDebugFalse(): void $this->enableDBDebug(); } + + public function testPostgreBadQueryDebugTrueWithWarningsDisabled(): void + { + if ($this->db->DBDriver !== 'Postgre') { + $this->markTestSkipped('This test is only for Postgre.'); + } + + $this->enableDBDebug(); + $errorReporting = error_reporting(E_ALL & ~E_WARNING); + + try { + $this->expectException(DatabaseException::class); + $this->expectExceptionMessage('table_does_not_exist'); + $this->db->query('SELECT * FROM table_does_not_exist'); + } finally { + error_reporting($errorReporting); + } + } } From 6d7297a44d03626c4d3a4182dc323c9eb9075ebd Mon Sep 17 00:00:00 2001 From: wakqasahmed Date: Sat, 19 Sep 2026 20:39:29 +0200 Subject: [PATCH 2/2] style: satisfy Rector for Postgre errors (#6913) --- system/Database/Postgre/Connection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/Database/Postgre/Connection.php b/system/Database/Postgre/Connection.php index 037e3b2f58a4..6f6233d14b74 100644 --- a/system/Database/Postgre/Connection.php +++ b/system/Database/Postgre/Connection.php @@ -210,7 +210,7 @@ protected function execute(string $sql) $result = pg_query($this->connID, $sql); if ($result === false && $this->DBDebug) { - throw new DatabaseException((string) pg_last_error($this->connID)); + throw new DatabaseException(pg_last_error($this->connID)); } return $result;