Re: [Maria-developers] 818407474d6: MDEV-22166 CONVERT PARTITION: move out partition into a table
Hi, Aleksey! I presume that changes to the logging code is what Monty asked. So I'll only comment on a couple of minor issues: On Sep 10, Aleksey Midenkov wrote:
revision-id: 818407474d6 (mariadb-10.6.1-80-g818407474d6) parent(s): bb4b95975f7 author: Aleksey Midenkov committer: Aleksey Midenkov timestamp: 2021-09-10 18:47:31 +0300 message:
MDEV-22166 CONVERT PARTITION: move out partition into a table
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index db371d23ba7..cbdb40472d8 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -5371,8 +5367,12 @@ that are reorganised. tab_part_info->is_auto_partitioned= FALSE; } } - else if (alter_info->partition_flags & ALTER_PARTITION_DROP) + else if ((alter_info->partition_flags & ALTER_PARTITION_DROP) | + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT)) { + const char * const cmd= + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT) ? + "EXTRACT" : "DROP";
"CONVERT"
/* Drop a partition from a range partition and list partitioning is always safe and can be made more or less immediate. It is necessary diff --git a/sql/sql_table.h b/sql/sql_table.h index aacb6c99f15..a580c7d348d 100644 --- a/sql/sql_table.h +++ b/sql/sql_table.h @@ -20,6 +20,17 @@ #include <my_sys.h> // pthread_mutex_t #include "m_string.h" // LEX_CUSTRING
+inline bool suicide() +{ + DBUG_SUICIDE(); + return false; +}
as I wrote earlier, this is wrong. DBUG_SUICIDE() must always be an expression.
+ +#define ERROR_INJECT_CRASH(code) \ + (DBUG_IF(code) && suicide()) +#define ERROR_INJECT_ERROR(code) \ + (DBUG_IF(code) && (my_error(ER_UNKNOWN_ERROR, MYF(0)), 1)) + class Alter_info; class Alter_table_ctx; class Column_definition;
Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org
Hi Sergei, Monty! On Fri, Sep 10, 2021 at 10:02 PM Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Aleksey!
I presume that changes to the logging code is what Monty asked.
Not everything. I've done what I could in the current timeframe, the less important things were postponed. Didn't get his approval for that though, so I'm asking now whether the current state of patch is OK to push from his POV?
So I'll only comment on a couple of minor issues:
On Sep 10, Aleksey Midenkov wrote:
revision-id: 818407474d6 (mariadb-10.6.1-80-g818407474d6) parent(s): bb4b95975f7 author: Aleksey Midenkov committer: Aleksey Midenkov timestamp: 2021-09-10 18:47:31 +0300 message:
MDEV-22166 CONVERT PARTITION: move out partition into a table
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index db371d23ba7..cbdb40472d8 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -5371,8 +5367,12 @@ that are reorganised. tab_part_info->is_auto_partitioned= FALSE; } } - else if (alter_info->partition_flags & ALTER_PARTITION_DROP) + else if ((alter_info->partition_flags & ALTER_PARTITION_DROP) | + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT)) { + const char * const cmd= + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT) ? + "EXTRACT" : "DROP";
"CONVERT"
Fixed.
/* Drop a partition from a range partition and list partitioning is always safe and can be made more or less immediate. It is necessary diff --git a/sql/sql_table.h b/sql/sql_table.h index aacb6c99f15..a580c7d348d 100644 --- a/sql/sql_table.h +++ b/sql/sql_table.h @@ -20,6 +20,17 @@ #include <my_sys.h> // pthread_mutex_t #include "m_string.h" // LEX_CUSTRING
+inline bool suicide() +{ + DBUG_SUICIDE(); + return false; +}
as I wrote earlier, this is wrong. DBUG_SUICIDE() must always be an expression.
Fixed.
+ +#define ERROR_INJECT_CRASH(code) \ + (DBUG_IF(code) && suicide()) +#define ERROR_INJECT_ERROR(code) \ + (DBUG_IF(code) && (my_error(ER_UNKNOWN_ERROR, MYF(0)), 1)) + class Alter_info; class Alter_table_ctx; class Column_definition;
Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org
-- @midenok
Btw, Sergei, that MacOS problem in MDEV-22165 is not a showstopper, so I didn't investigate that. The main business was to get the task into usable/reviewable state. Probably that bug can be reproduced on vanilla, so I change my answer to "I don't know". On Sat, Sep 11, 2021 at 12:24 AM Aleksey Midenkov <midenok@gmail.com> wrote:
Hi Sergei, Monty!
On Fri, Sep 10, 2021 at 10:02 PM Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Aleksey!
I presume that changes to the logging code is what Monty asked.
Not everything. I've done what I could in the current timeframe, the less important things were postponed. Didn't get his approval for that though, so I'm asking now whether the current state of patch is OK to push from his POV?
So I'll only comment on a couple of minor issues:
On Sep 10, Aleksey Midenkov wrote:
revision-id: 818407474d6 (mariadb-10.6.1-80-g818407474d6) parent(s): bb4b95975f7 author: Aleksey Midenkov committer: Aleksey Midenkov timestamp: 2021-09-10 18:47:31 +0300 message:
MDEV-22166 CONVERT PARTITION: move out partition into a table
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index db371d23ba7..cbdb40472d8 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -5371,8 +5367,12 @@ that are reorganised. tab_part_info->is_auto_partitioned= FALSE; } } - else if (alter_info->partition_flags & ALTER_PARTITION_DROP) + else if ((alter_info->partition_flags & ALTER_PARTITION_DROP) | + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT)) { + const char * const cmd= + (alter_info->partition_flags & ALTER_PARTITION_CONVERT_OUT) ? + "EXTRACT" : "DROP";
"CONVERT"
Fixed.
/* Drop a partition from a range partition and list partitioning is always safe and can be made more or less immediate. It is necessary diff --git a/sql/sql_table.h b/sql/sql_table.h index aacb6c99f15..a580c7d348d 100644 --- a/sql/sql_table.h +++ b/sql/sql_table.h @@ -20,6 +20,17 @@ #include <my_sys.h> // pthread_mutex_t #include "m_string.h" // LEX_CUSTRING
+inline bool suicide() +{ + DBUG_SUICIDE(); + return false; +}
as I wrote earlier, this is wrong. DBUG_SUICIDE() must always be an expression.
Fixed.
+ +#define ERROR_INJECT_CRASH(code) \ + (DBUG_IF(code) && suicide()) +#define ERROR_INJECT_ERROR(code) \ + (DBUG_IF(code) && (my_error(ER_UNKNOWN_ERROR, MYF(0)), 1)) + class Alter_info; class Alter_table_ctx; class Column_definition;
Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org
-- @midenok
-- @midenok
participants (2)
-
Aleksey Midenkov
-
Sergei Golubchik