← Back to team overview

maria-developers team mailing list archive

Re: [JIRA] (MDEV-14185) CREATE TEMPORARY TABLE AS SELECT causes error 1290 with read_only and InnoDB

 

Hi, Vesa!

On Jan 16, Vesa Pentti (JIRA) wrote:
> 
> Vesa Pentti updated MDEV-14185:
> -------------------------------
>       Status: In Review  (was: In Progress)
>     Assignee: Sergei Golubchik  (was: Vesa Pentti)
> 
> commit d4366c4a2c9b41901b11ca180d3ddbf79e992490

Please send commit emails next time. This time I had to go and download
the patch from github and paste it in an email.

> diff --git a/sql/handler.cc b/sql/handler.cc
> index 174034a7eb55..85b73719f0e8 100644
> --- a/sql/handler.cc
> +++ b/sql/handler.cc
> @@ -4387,8 +4390,11 @@ handler::ha_create_partitioning_metadata(const char *name, const char *old_name,
>      partitions.
>    */
>    DBUG_ASSERT(m_lock_type == F_UNLCK ||
> -              (!old_name && strcmp(name, table_share->path.str)));
> -  mark_trx_read_write();
> +              (!old_name && table_share && strcmp(name, table_share->path.str)));
> +  if (should_mark_rw)
> +  {
> +    mark_trx_read_write();
> +  }

Just remove mark_trx_read_write() from ha_create_partitioning_metadata().
It's a non-transactional operation anyway.
It's always a part of DDL, so will have the same protection as DDL does.

>  
>    return create_partitioning_metadata(name, old_name, action_flag);
>  }

Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx