Dropped queries with unknown start time (that never worked).
This commit is contained in:
1 parent
7bffa1f49e
commit
bbc7ff1ada
1 file changed
+8
-7
@@ -64,7 +64,9 @@ class Sql_Collector implements Record_Collector_Interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @var array $wpdb->queries */
|
/** @var array $wpdb->queries */
|
||||||
return array_map( [ $this, 'transform' ], array_keys( $wpdb->queries ), $wpdb->queries );
|
$records = array_filter( array_map( [ $this, 'transform' ], array_keys( $wpdb->queries ), $wpdb->queries ) );
|
||||||
|
|
||||||
|
return $records;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,21 +86,20 @@ class Sql_Collector implements Record_Collector_Interface {
|
|||||||
*
|
*
|
||||||
* @return Record
|
* @return Record
|
||||||
*/
|
*/
|
||||||
protected function transform( int $key, array $query_data ): Record {
|
protected function transform( int $key, array $query_data ): ?Record {
|
||||||
|
|
||||||
static $last_query_end = 0;
|
|
||||||
|
|
||||||
[ $sql, $duration, $caller ] = $query_data;
|
[ $sql, $duration, $caller ] = $query_data;
|
||||||
|
|
||||||
/** @var float $query_start */
|
/** @var float $query_start */
|
||||||
$query_start = $query_data[3] ?? $this->query_starts[ $key ] ?? $last_query_end;
|
$query_start = $query_data[3] ?? $this->query_starts[ $key ] ?? 0;
|
||||||
|
if ( empty( $query_start ) ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$sql = trim( $sql );
|
$sql = trim( $sql );
|
||||||
$category = 'sql-read';
|
$category = 'sql-read';
|
||||||
if ( 0 === stripos( $sql, 'INSERT' ) || 0 === stripos( $sql, 'UPDATE' ) ) {
|
if ( 0 === stripos( $sql, 'INSERT' ) || 0 === stripos( $sql, 'UPDATE' ) ) {
|
||||||
$category = 'sql-write';
|
$category = 'sql-write';
|
||||||
}
|
}
|
||||||
$last_query_end = $query_start + $duration;
|
|
||||||
|
|
||||||
$desc_duration = round( $duration * 1000 );
|
$desc_duration = round( $duration * 1000 );
|
||||||
$backtrace = $this->formatter->format( $caller );
|
$backtrace = $this->formatter->format( $caller );
|
||||||
$description = $sql . ' – ' . $desc_duration . 'ms<hr />' . implode( '<br />', $backtrace );
|
$description = $sql . ' – ' . $desc_duration . 'ms<hr />' . implode( '<br />', $backtrace );
|
||||||
|
|||||||
Reference in new issue
Block a user