From 2638ea37f5f05149ca0ff9baa6f7edbc80e97c95 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 28 Jan 2021 18:03:16 +1300 Subject: Ignore query failure in Matomo for WordPress when checking if logtmptable exists (#17158) Needed this in https://github.com/matomo-org/wp-matomo/pull/417 and documented it in https://github.com/matomo-org/wp-matomo/wiki/Database refs https://github.com/matomo-org/wp-matomo/issues/416 refs https://wordpress.org/support/topic/error-in-php-log-after-manual-update-to-v4-1-2/ refs https://wordpress.org/support/topic/archive-warning-error-unserializing-wp_matomo_logtmpsegment/ refs https://wordpress.org/support/topic/php-error-with-vn-4-1-2/ Previously, I had detected this query like this: https://github.com/matomo-org/wp-matomo/pull/417/files#diff-c4e75ddbbcdde3ba408b5a87e273371dd3420a5d0b90a87bb4295e81787cdc31L365 but now it looks like `SELECT /*+MAX_EXECUTION_TIME....` and it's quite hard to detect it without trying to reconstruct the query or using regex. This way it'll be more future proof --- core/DataAccess/LogAggregator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core') diff --git a/core/DataAccess/LogAggregator.php b/core/DataAccess/LogAggregator.php index a4850ebe71..159fdd5b89 100644 --- a/core/DataAccess/LogAggregator.php +++ b/core/DataAccess/LogAggregator.php @@ -240,7 +240,7 @@ class LogAggregator { try { // using DROP TABLE IF EXISTS would not work on a DB reader if the table doesn't exist... - $this->getDb()->fetchOne('SELECT 1 FROM ' . $segmentTablePrefixed . ' LIMIT 1'); + $this->getDb()->fetchOne('SELECT /* WP IGNORE ERROR */ 1 FROM ' . $segmentTablePrefixed . ' LIMIT 1'); $tableExists = true; } catch (\Exception $e) { $tableExists = false; -- cgit v1.2.3