Commit e54a4060 authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.7 into 10.8

parents 2b5fdddb 3f3ec40c
...@@ -211,3 +211,14 @@ c c2 ...@@ -211,3 +211,14 @@ c c2
DELETE FROM t; DELETE FROM t;
COMMIT; COMMIT;
DROP TABLE t; DROP TABLE t;
#
# MDEV-26956 LeakSanitizer/Valgrind errors in
# trx_mod_table_time_t::start_bulk_insert
# upon adding system versioning
#
CREATE TABLE t1(id INT, s DATE, e DATE, PERIOD FOR p(s,e),
PRIMARY KEY(id, p WITHOUT OVERLAPS)) ENGINE=InnoDB;
ALTER TABLE t1 ADD COLUMN row_start BIGINT UNSIGNED AS ROW START,
ADD COLUMN row_end BIGINT UNSIGNED AS ROW END,
ADD PERIOD FOR SYSTEM_TIME(row_start,row_end), WITH SYSTEM VERSIONING;
DROP TABLE t1;
...@@ -221,3 +221,15 @@ SELECT * FROM t; ...@@ -221,3 +221,15 @@ SELECT * FROM t;
DELETE FROM t; DELETE FROM t;
COMMIT; COMMIT;
DROP TABLE t; DROP TABLE t;
--echo #
--echo # MDEV-26956 LeakSanitizer/Valgrind errors in
--echo # trx_mod_table_time_t::start_bulk_insert
--echo # upon adding system versioning
--echo #
CREATE TABLE t1(id INT, s DATE, e DATE, PERIOD FOR p(s,e),
PRIMARY KEY(id, p WITHOUT OVERLAPS)) ENGINE=InnoDB;
ALTER TABLE t1 ADD COLUMN row_start BIGINT UNSIGNED AS ROW START,
ADD COLUMN row_end BIGINT UNSIGNED AS ROW END,
ADD PERIOD FOR SYSTEM_TIME(row_start,row_end), WITH SYSTEM VERSIONING;
DROP TABLE t1;
...@@ -27,25 +27,25 @@ class Item_func_sys_guid: public Item_str_func ...@@ -27,25 +27,25 @@ class Item_func_sys_guid: public Item_str_func
{ return MY_UUID_BARE_STRING_LENGTH + with_dashes*MY_UUID_SEPARATORS; } { return MY_UUID_BARE_STRING_LENGTH + with_dashes*MY_UUID_SEPARATORS; }
public: public:
Item_func_sys_guid(THD *thd): Item_str_func(thd), with_dashes(false) {} Item_func_sys_guid(THD *thd): Item_str_func(thd), with_dashes(false) {}
bool fix_length_and_dec() bool fix_length_and_dec() override
{ {
collation.set(DTCollation_numeric()); collation.set(DTCollation_numeric());
fix_char_length(uuid_len()); fix_char_length(uuid_len());
return FALSE; return FALSE;
} }
bool const_item() const { return false; } bool const_item() const override { return false; }
table_map used_tables() const { return RAND_TABLE_BIT; } table_map used_tables() const override { return RAND_TABLE_BIT; }
LEX_CSTRING func_name_cstring() const override LEX_CSTRING func_name_cstring() const override
{ {
static LEX_CSTRING name= {STRING_WITH_LEN("sys_guid") }; static LEX_CSTRING name= {STRING_WITH_LEN("sys_guid") };
return name; return name;
} }
String *val_str(String *) override; String *val_str(String *) override;
bool check_vcol_func_processor(void *arg) bool check_vcol_func_processor(void *arg) override
{ {
return mark_unsupported_function(func_name(), "()", arg, VCOL_NON_DETERMINISTIC); return mark_unsupported_function(func_name(), "()", arg, VCOL_NON_DETERMINISTIC);
} }
Item *get_copy(THD *thd) Item *get_copy(THD *thd) override
{ return get_item_copy<Item_func_sys_guid>(thd, this); } { return get_item_copy<Item_func_sys_guid>(thd, this); }
}; };
...@@ -60,7 +60,7 @@ class Item_func_uuid: public Item_func_sys_guid ...@@ -60,7 +60,7 @@ class Item_func_uuid: public Item_func_sys_guid
return name; return name;
} }
bool val_native(THD *thd, Native *to) override; bool val_native(THD *thd, Native *to) override;
Item *get_copy(THD *thd) Item *get_copy(THD *thd) override
{ return get_item_copy<Item_func_uuid>(thd, this); } { return get_item_copy<Item_func_uuid>(thd, this); }
}; };
......
...@@ -1428,7 +1428,7 @@ class FixedBinTypeBundle ...@@ -1428,7 +1428,7 @@ class FixedBinTypeBundle
item->type_handler() == type_handler()); item->type_handler() == type_handler());
return true; return true;
} }
void hash(ulong *nr, ulong *nr2) void hash(ulong *nr, ulong *nr2) override
{ {
if (is_null()) if (is_null())
*nr^= (*nr << 1) | 1; *nr^= (*nr << 1) | 1;
......
...@@ -9711,6 +9711,9 @@ bool TR_table::update(ulonglong start_id, ulonglong end_id) ...@@ -9711,6 +9711,9 @@ bool TR_table::update(ulonglong start_id, ulonglong end_id)
int error= table->file->ha_write_row(table->record[0]); int error= table->file->ha_write_row(table->record[0]);
if (unlikely(error)) if (unlikely(error))
table->file->print_error(error, MYF(0)); table->file->print_error(error, MYF(0));
/* extra() is used to apply the bulk insert operation
on mysql/transaction_registry table */
table->file->extra(HA_EXTRA_IGNORE_INSERT);
return error; return error;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment