Hi, Oleksandr,
On Jul 21, Oleksandr Byelkin wrote:
> revision-id: 64ac6ed3e35 (mariadb-10.4.30-31-g64ac6ed3e35)
> parent(s): 55a27bac80c
> author: Oleksandr Byelkin
> committer: Oleksandr Byelkin
> timestamp: 2023-07-19 16:14:39 +0200
> message:
>
> MDEV-31742 incorrect examined rows in case of stored function usage
>
> The counter is global so we do not need add backup to it
> if we do not zero it after taking the backup.
>
> diff --git a/sql/sql_class.cc b/sql/sql_class.cc
> index c9e86b6142c..7911c78b6e0 100644
> --- a/sql/sql_class.cc
> +++ b/sql/sql_class.cc
> @@ -5568,7 +5568,6 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup)
> The following is added to the old values as we are interested in the
> total complexity of the query
> */
> - inc_examined_row_count(backup->examined_row_count);
may be backup->examined_row_count should be simply removed?
Sub_statement_state::examined_row_count, I mean.
Not saved, not restored?
There's also
void THD::add_slow_query_state(Sub_statement_state *backup)
{
affected_rows+= backup->affected_rows;
bytes_sent_old= backup->bytes_sent_old;
m_examined_row_count+= backup->examined_row_count;
it's not even using inc_examined_row_count().
Also examined_row_count is mentioned in comments in sql_class.cc,
if you'll be removing it from Sub_statement_state, don't forget to fix
comments to match.
> cuted_fields+= backup->cuted_fields;
> DBUG_VOID_RETURN;
> }
Regards,
Sergei
VP of MariaDB Server Engineering
and security@mariadb.org