From 6c09e79cc5e0afa979399dfabbb50bc01d56eb59 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Mon, 5 Mar 2018 22:54:35 +0000 Subject: [PATCH] Database: Add the query start time to logged query data. This allows debugging plugins to plot the time at which queries were executed. Props Rarst for initial patch. Fixes #43315 Built from https://develop.svn.wordpress.org/trunk@42789 git-svn-id: http://core.svn.wordpress.org/trunk@42619 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/version.php | 2 +- wp-includes/wp-db.php | 27 +++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/wp-includes/version.php b/wp-includes/version.php index a2ff12e12b..e669c8a04b 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '5.0-alpha-42788'; +$wp_version = '5.0-alpha-42789'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index 901cf10bac..05ca10eb91 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -174,10 +174,24 @@ class wpdb { protected $col_info; /** - * Saved queries that were executed + * Log of queries that were executed, for debugging purposes. * * @since 1.5.0 - * @var array + * @since 2.5.0 The third element in each query log was added to record the calling functions. + * @since 5.0.0 The fourth element in each query log was added to record the start time. + * + * @var array[] { + * Array of queries that were executed. + * + * @type array ...$0 { + * Data for each query. + * + * @type string $0 The query's SQL. + * @type float $1 Total time spent on the query, in seconds. + * @type string $2 Comma separated list of the calling functions. + * @type float $3 Unix timestamp of the time at the start of the query. + * } + * } */ var $queries; @@ -1986,7 +2000,12 @@ class wpdb { $this->num_queries++; if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) { - $this->queries[] = array( $query, $this->timer_stop(), $this->get_caller() ); + $this->queries[] = array( + $query, + $this->timer_stop(), + $this->get_caller(), + $this->time_start, + ); } } @@ -3493,7 +3512,7 @@ class wpdb { * * @since 2.5.0 * - * @return string|array The name of the calling function + * @return string Comma separated list of the calling functions. */ public function get_caller() { return wp_debug_backtrace_summary( __CLASS__ );