GithubHelp home page GithubHelp logo

tempesta-tech / mariadb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mariadb/server

6.0 6.0 5.0 790.68 MB

MariaDB System Versioning

License: GNU General Public License v2.0

Shell 0.74% CMake 0.80% C 33.52% C++ 59.96% Perl 2.06% Batchfile 0.01% Pascal 0.34% HTML 0.02% PHP 0.87% Assembly 0.08% SourcePawn 0.01% M4 0.03% Makefile 0.04% XS 0.02% Objective-C 0.59% Yacc 0.71% Lex 0.02% Ruby 0.02% DTrace 0.02% Python 0.18%

mariadb's People

Contributors

abarkov avatar bjornmu avatar blaudden avatar buggynours avatar cvicentiu avatar dr-m avatar elenst avatar esmet avatar fizzfaldt avatar gkodinov avatar grooverdan avatar gurusami avatar igorbabaev avatar jhauglid avatar kentoku avatar kevgs avatar knielsen avatar leifwalsh avatar midenok avatar montywi avatar mydanny avatar ottok avatar prohaska avatar sanja-byelkin avatar spetrunia avatar svoj avatar thirunarayanan avatar vaintroub avatar vasild avatar vuvova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mariadb's Issues

Implement show create table for versioned tables

Issue by hagrid-the-developer
Monday Sep 05, 2016 at 08:42 GMT
Originally opened as https://github.com/natsys/mariadb/issues/4


Show create table doesn't work for system versioned tables:

> CREATE TABLE t1(id INT UNSIGNED AUTO INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
> SHOW CREATE TABLE t1;

+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `x` int(10) unsigned DEFAULT NULL,
  `y` int(10) unsigned DEFAULT NULL,
  `Sys_start` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  `Sys_end` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  PRIMARY KEY (`id`,`Sys_end`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

Please note: Additional column in PRIMARY KEY is ok, it is necessary to preserve uniqueness of the key.

SHOW CREATE TABLE: `DEFAULT NULL` instead of `NOT NULL` for NOW() funcs

--- /home/midenok/src/mariadb/10.2/src4/mysql-test/r/ctype_binary.result        2016-10-27 10:23:10.867101438 +0000
+++ /home/midenok/src/mariadb/10.2/src4/mysql-test/r/ctype_binary.reject        2016-10-27 10:29:43.989820783 +0000
@@ -1606,21 +1606,21 @@
 show create table t1;
 Table  Create Table
 t1     CREATE TABLE `t1` (
-  `c1` varbinary(19) NOT NULL
+  `c1` varbinary(19) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 create table t1 as select concat(utc_timestamp()) as c1;
 show create table t1;
 Table  Create Table
 t1     CREATE TABLE `t1` (
-  `c1` varbinary(19) NOT NULL
+  `c1` varbinary(19) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 create table t1 as select concat(sysdate()) as c1;
 show create table t1;
 Table  Create Table
 t1     CREATE TABLE `t1` (
-  `c1` varbinary(19) NOT NULL
+  `c1` varbinary(19) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 select hex(concat(addtime('00:00:00','11:22:33')));

Wrong test results: datetime Null = YES

--- ./mysql-test/r/func_group.result    2016-10-25 12:45:45.876257166 +0000
+++ ./mysql-test/r/func_group.reject    2016-10-27 00:27:32.000000000 +0000
@@ -787,7 +787,7 @@
 create table t2 select f2 from (select now() f2 from t1) a;
 show columns from t2;
 Field  Type    Null    Key     Default Extra
-f2     datetime        NO              NULL
+f2     datetime        YES             NULL
 drop table t2, t1;
 CREATE TABLE t1(
 id int PRIMARY KEY,
--- ./mysql-test/r/create.result        2016-10-27 12:22:58.965764883 +0000
+++ ./mysql-test/r/create.reject        2016-10-27 00:24:37.000000000 +0000
@@ -131,7 +131,7 @@
 create table t2 select now() as a , curtime() as b, curdate() as c , 1+1 as d , 1.0 + 1 as e , 33333333333333333 + 3 as f;
 describe t2;
 Field  Type    Null    Key     Default Extra
-a      datetime        NO              NULL
+a      datetime        YES             NULL
 b      time    NO              NULL
 c      date    NO              NULL
 d      int(3)  NO              NULL

0.2 part III: DML supports `trx_id` instead of timestamps

TODO:

  • check if it is correct to allocate from table->heap in row_insert_for_mysql();
  • test with AUTOINC;
  • multi-update;
  • test all 'is_max()' cases;
  • is it correct to use UPD_NODE_NO_ORD_CHANGE in UPDATE?
    • Yes, because it's calculated on lower level (row_upd(), requires in_mysql_interface).

0.4: Basic transaction ID support in parser

Select statements with TRX_ID:

      select * from t1 for system_time as of transaction @trx_id;
      select * from t1 for system_time from transaction @trx_id1 to transaction @trx_id2;
      select * from t1 for system_time between transaction @trx_id1 and transaction @trx_id2;

Non-versioned field update is not optimized for IB

delimiter ~~
create or replace procedure creat(
  sys_type varchar(255),
  engine varchar(255),
  fields varchar(255))
begin
  set @str= concat('(
    id bigint primary key,
    name varchar(128) with system versioning,
    salary bigint)
  engine ', engine);

  set @str2= concat('create or replace table t1', @str);
  prepare stmt from @str2; execute stmt; drop prepare stmt;
  set @str2= concat('create or replace table t2', @str);
  prepare stmt from @str2; execute stmt; drop prepare stmt;

  insert into t1 values (1, "Jeremy", 3000);
  insert into t2 values (1, "Jeremy", 4000);
end~~

create or replace procedure test()
begin  
  select sys_trx_start into @tmp1 from t1;
  select sys_trx_start into @tmp2 from t2;
  update t1, t2 set t1.name= "Jerry", t2.name= "Jerry" where t1.id = t2.id and t1.name = "Jeremy";
  select @tmp1 < sys_trx_start as A1, name from t1;
  select @tmp2 < sys_trx_start as A2, name from t2;

  select sys_trx_start into @tmp1 from t1;
  select sys_trx_start into @tmp2 from t2;
  update t1, t2 set t1.salary= 2500, t2.salary= 2500 where t1.id = t2.id and t1.name = "Jerry";
  select @tmp1 = sys_trx_start as B1, salary from t1;
  select @tmp2 = sys_trx_start as B2, salary from t2;
end~~
delimiter ;

Now:

call creat('bigint unsigned', 'innodb', 'commit_ts(sys_start)'); call test;
Query OK, 1 row affected (0.14 sec)

+------+-------+
| A1   | name  |
+------+-------+
|    1 | Jerry |
+------+-------+
1 row in set (0.01 sec)

+------+-------+
| A2   | name  |
+------+-------+
|    1 | Jerry |
+------+-------+
1 row in set (0.01 sec)

+------+--------+
| B1   | salary |
+------+--------+
|    0 |   2500 |
+------+--------+
1 row in set (0.02 sec)

+------+--------+
| B2   | salary |
+------+--------+
|    0 |   2500 |
+------+--------+
1 row in set (0.02 sec)

Query OK, 0 rows affected (0.02 sec)

Expected:

call creat('bigint unsigned', 'innodb', 'commit_ts(sys_start)'); call test;
Query OK, 1 row affected (0.14 sec)

+------+-------+
| A1   | name  |
+------+-------+
|    1 | Jerry |
+------+-------+
1 row in set (0.01 sec)

+------+-------+
| A2   | name  |
+------+-------+
|    1 | Jerry |
+------+-------+
1 row in set (0.01 sec)

+------+--------+
| B1   | salary |
+------+--------+
|    1 |   2500 |
+------+--------+
1 row in set (0.02 sec)

+------+--------+
| B2   | salary |
+------+--------+
|    1 |   2500 |
+------+--------+
1 row in set (0.02 sec)

Query OK, 0 rows affected (0.02 sec)

Wrong results: FOR FOR instead of FOR EACH

--- ./mysql-test/suite/perfschema/r/statement_digest.result     2016-10-20 16:36:26.077860437 +0000
+++ ./mysql-test/suite/perfschema/r/statement_digest.reject     2016-10-27 00:39:05.000000000 +0000
@@ -144,7 +144,7 @@
 statements_digest      CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b`       1       0       0       0
 statements_digest      SELECT `func` (...)     2       0       0       0
 statements_digest      DROP FUNCTION `func`    1       0       0       0
-statements_digest      CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ?    1       0       0       0
+statements_digest      CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR FOR ROW SET @? := ?     1       0       0       0
 statements_digest      INSERT INTO `t12` VALUES (?)    2       2       0       0
 statements_digest      DROP TRIGGER `trg`      1       0       0       0
 ####################################
--- ./mysql-test/suite/perfschema/r/statement_digest_consumers.result   2016-10-20 16:36:26.077860437 +0000
+++ ./mysql-test/suite/perfschema/r/statement_digest_consumers.reject   2016-10-26 22:01:31.000000000 +0000
@@ -157,7 +157,7 @@
 statements_digest      CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b`       1
 statements_digest      SELECT `func` (...)     2
 statements_digest      DROP FUNCTION `func`    1
-statements_digest      CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ?    1
+statements_digest      CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR FOR ROW SET @? := ?     1
 statements_digest      INSERT INTO `t12` VALUES (?)    2
 statements_digest      DROP TRIGGER `trg`      1
 SELECT digest_text FROM performance_schema.events_statements_current;

Wrong 'WITHOUT SYSTEM VERSIONING' added to 'SHOW CREATE TABLE'

(May be effect of trunk rebasing)

--- ./mysql-test/r/ps.result    2016-10-25 05:28:19.354856358 +0000
+++ ./mysql-test/r/ps.reject    2016-10-25 07:56:52.340691138 +0000
@@ -3523,7 +3523,7 @@
 SHOW CREATE TABLE tmp1;
 Table  Create Table
 tmp1   CREATE TEMPORARY TABLE `tmp1` (
-  `c1` decimal(65,38) DEFAULT NULL
+  `c1` decimal(65,38) DEFAULT NULL WITHOUT SYSTEM VERSIONING
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 SELECT @a, @a = 123.456789;
 @a     @a = 123.456789

Segfault in Item_cond on multiple execute of prepared statement

Thread 23 "mysqld" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff7f79f00 (LWP 30818)]
0x0000000000929435 in Item_cond::copy_andor_arguments (this=0x7fffe02ab1e8, thd=0x7fffe0052070, item=0x7fffe0315750) at /home/midenok/src/mariadb/midenok/src/sql/item_cmpfunc.cc:4434
4434        list.push_back(it->copy_andor_structure(thd), thd->mem_root);
(gdb) bt
#0  0x0000000000929435 in Item_cond::copy_andor_arguments (this=0x7fffe02ab1e8, thd=0x7fffe0052070, item=0x7fffe0315750) at /home/midenok/src/mariadb/midenok/src/sql/item_cmpfunc.cc:4434
#1  0x00000000009293ba in Item_cond_and::copy_andor_structure (this=0x7fffe0315750, thd=0x7fffe0052070) at /home/midenok/src/mariadb/midenok/src/sql/item_cmpfunc.cc:4425
#2  0x00000000006b809a in reinit_stmt_before_use (thd=0x7fffe0052070, lex=0x7fffe0313090) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:2813
#3  0x00000000006bbaf4 in Prepared_statement::execute (this=0x7fffe01b7470, expanded_query=0x7ffff7f762c0, open_cursor=0x0) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:4252
#4  0x00000000006baa15 in Prepared_statement::execute_loop (this=0x7fffe01b7470, expanded_query=0x7ffff7f762c0, open_cursor=0x0, packet=0x0, packet_end=0x0) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:3908
#5  0x00000000006b89e1 in mysql_sql_stmt_execute (thd=0x7fffe0052070) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:3036
#6  0x0000000000691ca1 in mysql_execute_command (thd=0x7fffe0052070) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:3363
#7  0x0000000000a40ed2 in sp_instr_stmt::exec_core (this=0x7fffe02cd640, thd=0x7fffe0052070, nextp=0x7ffff7f772c4) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:3217
#8  0x0000000000a405c1 in sp_lex_keeper::reset_lex_and_exec_core (this=0x7fffe02cd680, thd=0x7fffe0052070, nextp=0x7ffff7f772c4, open_tables=0x0, instr=0x7fffe02cd640) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:2983
#9  0x0000000000a40bb8 in sp_instr_stmt::execute (this=0x7fffe02cd640, thd=0x7fffe0052070, nextp=0x7ffff7f772c4) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:3133
#10 0x0000000000a3c293 in sp_head::execute (this=0x7fffe029c088, thd=0x7fffe0052070, merge_da_on_success=0x1) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:1323
#11 0x0000000000a3e146 in sp_head::execute_procedure (this=0x7fffe029c088, thd=0x7fffe0052070, args=0x7fffe00567a8) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:2110
#12 0x000000000069039f in do_execute_sp (thd=0x7fffe0052070, sp=0x7fffe029c088) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:2793
#13 0x00000000006998d1 in mysql_execute_command (thd=0x7fffe0052070) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:5674
#14 0x000000000069fcd3 in mysql_parse (thd=0x7fffe0052070, rawbuf=0x7fffe0123088 "call test_01('timestamp(6)', 'myisam', 'sys_end')", length=0x31, parser_state=0x7ffff7f78720, is_com_multi=0x0, is_next_command=0x0) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:7792
4434        list.push_back(it->copy_andor_structure(thd), thd->mem_root);
   0x0000000000929420 <+90>:    mov    rax,QWORD PTR [rbp-0x60]
   0x0000000000929424 <+94>:    mov    rbx,QWORD PTR [rax+0x28]
   0x0000000000929428 <+98>:    mov    rax,QWORD PTR [rbp-0x48]
   0x000000000092942c <+102>:   mov    rax,QWORD PTR [rax]
   0x000000000092942f <+105>:   add    rax,0x278
=> 0x0000000000929435 <+111>:   mov    rax,QWORD PTR [rax]
   0x0000000000929438 <+114>:   mov    rcx,QWORD PTR [rbp-0x60]
   0x000000000092943c <+118>:   mov    rdx,QWORD PTR [rbp-0x48]
   0x0000000000929440 <+122>:   mov    rsi,rcx
   0x0000000000929443 <+125>:   mov    rdi,rdx
   0x0000000000929446 <+128>:   call   rax
   0x0000000000929448 <+130>:   mov    rcx,rax
   0x000000000092944b <+133>:   mov    rax,QWORD PTR [rbp-0x58]
   0x000000000092944f <+137>:   add    rax,0xc0
   0x0000000000929455 <+143>:   mov    rdx,rbx
   0x0000000000929458 <+146>:   mov    rsi,rcx
   0x000000000092945b <+149>:   mov    rdi,rax
   0x000000000092945e <+152>:   call   0x5d8466 <List<Item>::push_back(Item*, st_mem_root*)>
(gdb) p $rax
$2 = 0x8f8f8f8f8f8f9207
(gdb) p *it
$3 = {
  <Value_source> = {<No data fields>},
  <Type_std_attributes> = {
    collation = {
      collation = 0x8f8f8f8f8f8f8f8f,
      derivation = 2408550287,
      repertoire = 0x8f8f8f8f
    },
    decimals = 0x8f8f8f8f,
    max_length = 0x8f8f8f8f,
    unsigned_flag = 0x8f
  },
  <Type_handler> = {
    _vptr.Type_handler = 0x8f8f8f8f8f8f8f8f
  },
  members of Item:
  join_tab_idx = 0x8f8f8f8f,
  is_expensive_cache = 0x8f,
  rsize = 0x8f8f8f8f,
  str_value = {
    Ptr = 0x8f8f8f8f8f8f8f8f <error: Cannot access memory at address 0x8f8f8f8f8f8f8f8f>,
    str_length = 0x8f8f8f8f,
    Alloced_length = 0x8f8f8f8f,
    extra_alloc = 0x8f8f8f8f,
    alloced = 0x8f,
    thread_specific = 0x8f,
    str_charset = 0x8f8f8f8f8f8f8f8f
  },
  name = 0x8f8f8f8f8f8f8f8f <error: Cannot access memory at address 0x8f8f8f8f8f8f8f8f>,
  orig_name = 0x8f8f8f8f8f8f8f8f <error: Cannot access memory at address 0x8f8f8f8f8f8f8f8f>,
  next = 0x8f8f8f8f8f8f8f8f,
  name_length = 0x8f8f8f8f,
  marker = 0x8f8f8f8f,
  maybe_null = 0x8f,
  in_rollup = 0x8f,
  null_value = 0x8f,
  with_sum_func = 0x8f,
  with_window_func = 0x8f,
  with_field = 0x8f,
  fixed = 0x8f,
  is_autogenerated_name = 0x8f,
  with_subselect = 0x8f
}

Item is prematurely freed.

Alter table with system versioning not supported

Problem 1

Alter table with system versioning fails.

Reproduce

create or replace table emp (
  emp_id int(10) primary key,
  dept_id int(10) not null,
  name varchar(100) not null,
  mgr int(10),
  salary int(10) not null 
with system versioning;
alter table emp add (bonus varchar(20)) with system versioning;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'with system versioning' at line 1

saved_where does not provide idempotency on INNER JOIN inside SP

delimiter ~~
create or replace procedure creat(
  sys_type varchar(255),
  engine varchar(255),
  fields varchar(255))
begin
  set @str0= concat('(
    x int,
    y int,
    sys_start ', sys_type, ' generated always as row start,
    sys_end ', sys_type, ' generated always as row end,
    period for system_time (sys_start, sys_end))
  with system versioning
  engine ', engine);
  set @str= concat('create or replace table t1', @str0);
  prepare stmt from @str; execute stmt; drop prepare stmt;
  set @str= concat('create or replace table t2', @str0);
  prepare stmt from @str; execute stmt; drop prepare stmt;

  insert into t1 values (1, 1), (1, 2), (1, 3), (4, 4), (5, 5);
  insert into t2 values (1, 2), (2, 1), (3, 1);
end~~

create or replace procedure test()
begin
  select t1.x as IJ1_x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1 inner join t2 on t1.x = t2.x where t1.y > 1 and t2.y = 2;
end~~

create or replace procedure test2() modifies sql data
begin
  select t1.x as x1, t1.y as y1, t2.x as x2, t2.y as y2 from t1, t2 where t1.y > 1 and t2.y = 2;
end~~
delimiter ;
MariaDB [test]> call test;
+--------+------+------+------+
| IJ1_x1 | y1   | x2   | y2   |
+--------+------+------+------+
|      1 |    2 |    1 |    2 |
|      1 |    3 |    1 |    2 |
+--------+------+------+------+
2 rows in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> call test;
+--------+------+------+------+
| IJ1_x1 | y1   | x2   | y2   |
+--------+------+------+------+
|      1 |    2 |    1 |    2 |
|      1 |    3 |    1 |    2 |
+--------+------+------+------+
2 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> call test;
+--------+------+------+------+
| IJ1_x1 | y1   | x2   | y2   |
+--------+------+------+------+
|      1 |    1 |    1 |    2 |
|      1 |    2 |    1 |    2 |
|      1 |    3 |    1 |    2 |
+--------+------+------+------+
3 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> call test2;
+------+------+------+------+
| x1   | y1   | x2   | y2   |
+------+------+------+------+
|    1 |    2 |    1 |    2 |
|    1 |    3 |    1 |    2 |
|    4 |    4 |    1 |    2 |
|    5 |    5 |    1 |    2 |
+------+------+------+------+
4 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> call test2;
+------+------+------+------+
| x1   | y1   | x2   | y2   |
+------+------+------+------+
|    1 |    2 |    1 |    2 |
|    1 |    3 |    1 |    2 |
|    4 |    4 |    1 |    2 |
|    5 |    5 |    1 |    2 |
+------+------+------+------+
4 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> call test2;
+------+------+------+------+
| x1   | y1   | x2   | y2   |
+------+------+------+------+
|    1 |    1 |    1 |    2 |
|    1 |    1 |    2 |    1 |
|    1 |    1 |    3 |    1 |
|    1 |    2 |    1 |    2 |
|    1 |    2 |    2 |    1 |
|    1 |    2 |    3 |    1 |
|    1 |    3 |    1 |    2 |
|    1 |    3 |    2 |    1 |
|    1 |    3 |    3 |    1 |
|    4 |    4 |    1 |    2 |
|    4 |    4 |    2 |    1 |
|    4 |    4 |    3 |    1 |
|    5 |    5 |    1 |    2 |
|    5 |    5 |    2 |    1 |
|    5 |    5 |    3 |    1 |
+------+------+------+------+
15 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Recovery of saved_where have no effect on third execution of SP. Though it works good when there is no INNER JOIN.

Excluding XtraDB (from build and tests)

I have two issues here:

  1. How to build MariaDB without XtraDB. It seems that any time I use Engine=InnoDB in table definition, MariaDB uses XtraDB, eg. code from: storage/xtradb/handler/ha_innodb.cc, instead of code from: storage/innobase/handler/ha_innodb.cc .

I call cmake in this way:

cmake -D CMAKE_INSTALL_PREFIX:STRING=/opt/mariadb-10.2  -D CMAKE_BUILD_TYPE:STRING=Debug  -D CMAKE_CXX_FLAGS_DEBUG:STRING="-g -O0"   -D CMAKE_C_FLAGS_DEBUG:STRING="-g -O0" -D SECURITY_HARDENED:BOOL=FALSE -DWITH_DEBUG=true -D CPLUGIN_TOKUDB:STRING=NO -DWITH_INNOBASE_STORAGE_ENGINE=ON ..
  1. How to disable some tests, when XtraDB is enabled and vice versa.

Hide system versioning fields in SHOW CREATE VIEW

When creating VIEW from system versioning table, clauses that are used to do versioned search over the table are added to WHERE part of the statement and are printed eg. by SHOW CREATE VIEW ... .

They should be probably hidden if hiding of System Versioned fields is enabled. Maybe VIEW should be created without these fields in WHERE. Also, user can add some conditions related to Sys_start or Sys_end to where clause and then they should be printed.

Merge upstream 10.2

  • Move fix in sql_yacc from part I to proper past commit;
  • Make timestamp from thd in trx not lost on next update;
  • Move typo fix in dict0load.cc:66 to proper commit.
  • Move fix in row0mysql.cc:2728
            que_thr_stop_for_mysql_no_error(thr, trx);
  • Move warning fix (warning appears at part IV):
In file included from /home/midenok/src/mariadb/10.2/src/sql/sql_class.h:31:0,
                 from /home/midenok/src/mariadb/10.2/src/unittest/sql/explain_filename-t.cc:22:
/home/midenok/src/mariadb/10.2/src/sql/field.h: In constructor โ€˜Column_definition::Column_definition()โ€™:
/home/midenok/src/mariadb/10.2/src/sql/field.h:3808:6: warning: โ€˜Column_definition::check_constraintโ€™ will be initialized after [-Wreorder]
     *check_constraint;               // Check constraint
      ^
/home/midenok/src/mariadb/10.2/src/sql/field.h:3796:26: warning:   โ€˜Column_definition::enum_column_versioning Column_definition::versioningโ€™ [-Wreorder]
   enum_column_versioning versioning;
                          ^
/home/midenok/src/mariadb/10.2/src/sql/field.h:3810:3: warning:   when initialized here [-Wreorder]
   Column_definition():
   ^
  • Fix full test results

Failed test:

Aleksey, can you replicate this?

CURRENT_TEST: sys_vars.sql_big_selects_basic
mysqltest: At line 97: query 'SET @@session.sql_big_selects = OFF' succeeded - should have  failed with errno 1231...

The result from queries just before the failure was:
< snip >
@@session.sql_big_selects
0
SET @@session.sql_big_selects = 1;
SELECT @@session.sql_big_selects;
@@session.sql_big_selects
1
'#--------------------FN_DYNVARS_153_04-------------------------#'
SET @@session.sql_big_selects = -1;
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of '-1'
SET @@session.sql_big_selects = 2;
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of '2'
SET @@session.sql_big_selects = "T";
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of 'T'
SET @@session.sql_big_selects = "Y";
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of 'Y'
SET @@session.sql_big_selects = TR<DC>E;
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of 'TR<DC>E'
SET @@session.sql_big_selects = <D5>N;
ERROR 42000: Variable 'sql_big_selects' can't be set to the value of '<D5>N'
SET @@session.sql_big_selects = OFF;

More results from queries before failure can be found in /home/maria/mariadb_10.2/build/mysql-test/var/log/sql_big_selects_basic.log
CURRENT_TEST: sys_vars.sql_big_selects_func
CURRENT_TEST: sys_vars.sql_buffer_result_basic
mysqltest: At line 103: query 'SET @@session.sql_buffer_result = OFF' succeeded - should have failed with errno 1231...

The result from queries just before the failure was:
< snip >
@@session.sql_buffer_result
0
SET @@session.sql_buffer_result = 1;
SELECT @@session.sql_buffer_result;
@@session.sql_buffer_result
1
'#--------------------FN_DYNVARS_155_04-------------------------#'
SET @@session.sql_buffer_result = -1;
ERROR 42000: Variable 'sql_buffer_result' can't be set to the value of '-1'

Server segfaults when running prepared statement for versioned tables

It seems that prepared statements are necessary for test of select statements with 'FOR SYSTEM_TIME', since mysql-test doesn't allow statements that change for every test.

Sequence of commands that cause segfault of MariaDB server:

drop table t1;drop table T1;CREATE TABLE t1 (x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;CREATE TABLE T1 (x INT UNSIGNED, y INT UNSIGNED);insert into t1(x, y) values(1, 11),(2,12),(3,13),(4,14),(5,15);insert into T1(x, y) values(1, 11),(2,12),(3,13),(4,14),(5,15);SELECT * FROM t1;SELECT * FROM T1;prepare stmtT1 from 'select x, y from T1';execute stmtT1;prepare stmtt1 from 'select x, y from t1';execute stmtt1;
> CREATE TABLE t1 (x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
Query OK, 0 rows affected (0.02 sec)

> CREATE TABLE T1 (x INT UNSIGNED, y INT UNSIGNED)
Query OK, 0 rows affected (0.01 sec)

> insert into t1(x, y) values(1, 11),(2,12),(3,13),(4,14),(5,15);
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

> insert into T1(x, y) values(1, 11),(2,12),(3,13),(4,14),(5,15);
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

> SELECT * FROM t1;
+------+------+----------------------------+----------------------------+
| x    | y    | Sys_start                  | Sys_end                    |
+------+------+----------------------------+----------------------------+
|    1 |   11 | 2016-09-06 09:14:35.992804 | 2038-01-19 04:14:07.000000 |
|    2 |   12 | 2016-09-06 09:14:35.992804 | 2038-01-19 04:14:07.000000 |
|    3 |   13 | 2016-09-06 09:14:35.992804 | 2038-01-19 04:14:07.000000 |
|    4 |   14 | 2016-09-06 09:14:35.992804 | 2038-01-19 04:14:07.000000 |
|    5 |   15 | 2016-09-06 09:14:35.992804 | 2038-01-19 04:14:07.000000 |
+------+------+----------------------------+----------------------------+
5 rows in set (0.00 sec)

> SELECT * FROM T1;
+------+------+
| x    | y    |
+------+------+
|    1 |   11 |
|    2 |   12 |
|    3 |   13 |
|    4 |   14 |
|    5 |   15 |
+------+------+
5 rows in set (0.00 sec)

> prepare stmtT1 from 'select x, y from T1';
Query OK, 0 rows affected (0.00 sec)
Statement prepared

> execute stmtT1;
+------+------+
| x    | y    |
+------+------+
|    1 |   11 |
|    2 |   12 |
|    3 |   13 |
|    4 |   14 |
|    5 |   15 |
+------+------+
5 rows in set (0.00 sec)

> prepare stmtt1 from 'select x, y from t1';
Query OK, 0 rows affected (0.00 sec)
Statement prepared

> execute stmtt1;
ERROR 2013 (HY000): Lost connection to MySQL server during query

Simplest insert doesn't work with MyISAM.

Run looks like this. Note SELECT returns nothing.

create or replace table t1(a int) with system versioning engine=myisam;
insert into t1 values(1); select * from t1;

Assertion failure on INSERT.

Version 3647e2e (natsys/trunk)

#0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
#1  0x00005584a2bc19a9 in my_write_core (sig=6) at /home/kevg/Desktop/mariadb_10.2/mysys/stacktrace.c:456
#2  0x00005584a2581b19 in handle_fatal_signal (sig=6) at /home/kevg/Desktop/mariadb_10.2/sql/signal_handler.cc:272
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#5  0x00007ff4f14273ea in __GI_abort () at abort.c:89
#6  0x00007ff4f141dc47 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x5584a2cf72d0 "0", file=file@entry=0x5584a2cf7280 "/home/kevg/Desktop/mariadb_10.2/sql/field.h", line=line@entry=652, function=function@entry=0x5584a2cfc4e0 <Field::set_max()::__PRETTY_FUNCTION__> "virtual bool Field::set_max()") at assert.c:92
#7  0x00007ff4f141dcf2 in __GI___assert_fail (assertion=0x5584a2cf72d0 "0", file=0x5584a2cf7280 "/home/kevg/Desktop/mariadb_10.2/sql/field.h", line=652, function=0x5584a2cfc4e0 <Field::set_max()::__PRETTY_FUNCTION__> "virtual bool Field::set_max()") at assert.c:101
#8  0x00005584a2572a81 in Field::set_max (this=0x7ff4e8429388) at /home/kevg/Desktop/mariadb_10.2/sql/field.h:652
#9  0x00005584a243a856 in TABLE::vers_update_fields (this=0x7ff4e84a8070) at /home/kevg/Desktop/mariadb_10.2/sql/table.cc:7091
#10 0x00005584a231bd2c in mysql_insert (thd=0x7ff4e8452070, table_list=0x7ff4e8523170, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /home/kevg/Desktop/mariadb_10.2/sql/sql_insert.cc:971
#11 0x00005584a2341358 in mysql_execute_command (thd=0x7ff4e8452070) at /home/kevg/Desktop/mariadb_10.2/sql/sql_parse.cc:4292
#12 0x00005584a234c891 in mysql_parse (thd=0x7ff4e8452070, rawbuf=0x7ff4e8523088 "INSERT INTO t1 VALUES(1, 1, 1)", length=30, parser_state=0x7ff4f3c079c0, is_com_multi=false, is_next_command=false) at /home/kevg/Desktop/mariadb_10.2/sql/sql_parse.cc:7792
#13 0x00005584a233a773 in dispatch_command (command=COM_QUERY, thd=0x7ff4e8452070, packet=0x7ff4e8519071 "INSERT INTO t1 VALUES(1, 1, 1)", packet_length=30, is_com_multi=false, is_next_command=false) at /home/kevg/Desktop/mariadb_10.2/sql/sql_parse.cc:1790
#14 0x00005584a23391de in do_command (thd=0x7ff4e8452070) at /home/kevg/Desktop/mariadb_10.2/sql/sql_parse.cc:1350
#15 0x00005584a2470dfe in do_handle_one_connection (connect=0x7ff4f0884590) at /home/kevg/Desktop/mariadb_10.2/sql/sql_connect.cc:1358
#16 0x00005584a2470b7e in handle_one_connection (arg=0x7ff4f0884590) at /home/kevg/Desktop/mariadb_10.2/sql/sql_connect.cc:1264
#17 0x00005584a2b6ab63 in pfs_spawn_thread (arg=0x7ff4f08639f0) at /home/kevg/Desktop/mariadb_10.2/storage/perfschema/pfs.cc:1862
#18 0x00007ff4f1e4f70a in start_thread (arg=0x7ff4f3c08f00) at pthread_create.c:333
#19 0x00007ff4f14f80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Test case:

CREATE table t1 (
  id BIGINT PRIMARY KEY,
  A INT,
  B INT
) WITH SYSTEM VERSIONING;

INSERT INTO t1 VALUES(1, 1, 1);

insert test do not pass in release build

CURRENT_TEST: main.insert

--- /home/kevg/Desktop/mariadb_10.2/mysql-test/r/insert.result  2016-09-19 12:05:08.882857108 +0300
+++ /home/kevg/Desktop/mariadb_10.2/mysql-test/r/insert.reject  2016-09-22 12:20:59.846507502 +0300
@@ -728,9 +728,6 @@
 INSERT INTO t1 VALUES(40, 33);
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-3  4   2038-01-19 03:14:07.000000
-2  3   2038-01-19 03:14:07.000000
-40 33  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
 INSERT INTO t1(x, y) VALUES(3, 4);
@@ -738,9 +735,6 @@
 INSERT INTO t1 VALUES(40, 33);
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-3  4   2038-01-19 03:14:07.000000
-2  3   2038-01-19 03:14:07.000000
-40 33  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING;
 INSERT INTO t1(x, y) VALUES(33, 44);
@@ -748,9 +742,6 @@
 INSERT INTO t1 VALUES(40, 33, 44);
 SELECT id, x, y, Sys_end FROM t1;
 id x   y   Sys_end
-1  33  44  2038-01-19 03:14:07.000000
-20 33  44  2038-01-19 03:14:07.000000
-40 33  44  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
 INSERT INTO t1(x, y) VALUES(33, 44);
@@ -758,9 +749,6 @@
 INSERT INTO t1 VALUES(40, 33, 44);
 SELECT id, x, y, Sys_end FROM t1;
 id x   y   Sys_end
-1  33  44  2038-01-19 03:14:07.000000
-20 33  44  2038-01-19 03:14:07.000000
-40 33  44  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
 CREATE VIEW vt1_1 AS SELECT x, y FROM t1;
@@ -775,22 +763,10 @@
 ERROR HY000: Generated field for System Versioning cannot be set by user
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-8001   9001    2038-01-19 03:14:07.000000
-1001   2001    2038-01-19 03:14:07.000000
-1002   2002    2038-01-19 03:14:07.000000
-3001   4001    2038-01-19 03:14:07.000000
 SELECT x, y FROM vt1_1;
 x  y
-8001   9001
-1001   2001
-1002   2002
-3001   4001
 SELECT x, y, Sys_end FROM vt1_2;
 x  y   Sys_end
-8001   9001    2038-01-19 03:14:07.000000
-1001   2001    2038-01-19 03:14:07.000000
-1002   2002    2038-01-19 03:14:07.000000
-3001   4001    2038-01-19 03:14:07.000000
 DROP TABLE t1;
 DROP VIEW vt1_1;
 DROP VIEW vt1_2;
@@ -807,22 +783,10 @@
 ERROR HY000: Generated field for System Versioning cannot be set by user
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-8001   9001    2038-01-19 03:14:07.000000
-1001   2001    2038-01-19 03:14:07.000000
-1002   2002    2038-01-19 03:14:07.000000
-3001   4001    2038-01-19 03:14:07.000000
 SELECT x, y FROM vt1_1;
 x  y
-8001   9001
-1001   2001
-1002   2002
-3001   4001
 SELECT x, y, Sys_end FROM vt1_2;
 x  y   Sys_end
-8001   9001    2038-01-19 03:14:07.000000
-1001   2001    2038-01-19 03:14:07.000000
-1002   2002    2038-01-19 03:14:07.000000
-3001   4001    2038-01-19 03:14:07.000000
 DROP TABLE t1;
 DROP VIEW vt1_1;
 DROP VIEW vt1_2;

mysqltest: Result length mismatch

Reliability and performance tests

Following to discussion with Alvin we need to solve how to test reliability and performance of the feature. It's clear that sysbench or dbt2 workloads running on our VPS testbed aren't enough to guarantee stability in real life installations working on large multi-core systems with extremely long uptime. Need to discuss the issue with MariaDB QA team.

Test for update aborts

Issue by hagrid-the-developer
Monday Sep 05, 2016 at 13:51 GMT
Originally opened as https://github.com/natsys/mariadb/issues/5


Present test for update aborts:

$ cd mysql-test
$ ./mysql-test-run.pl  update
Logging: ./mysql-test-run.pl  update
vardir: /home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var
...
worker[1]  - 'localhost:16000' was not free
worker[1] Using MTR_BUILD_THREAD 301, with reserved ports 16020..16039
main.update 'innodb_plugin'              [ fail ]
    Test ended at 2016-09-05 15:43:05
CURRENT_TEST: main.update
mysqltest: At line 512: query 'CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) 
ENGINE=INNODB' failed: 2013: Lost connection to MySQL server during query
...

It seems that: CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB works in console client...

Full output of the test:

Logging: ./mysql-test-run.pl  update
vardir: /home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var
Checking leftover processes...
Removing old var directory...
Creating var directory '/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var'...
Checking supported features...
MariaDB Version 10.2.1-MariaDB-debug
 - SSL connections supported
 - binaries are debug compiled
Collecting tests...
Installing system database...

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1]  - 'localhost:16000' was not free
worker[1] Using MTR_BUILD_THREAD 301, with reserved ports 16020..16039
main.update 'innodb_plugin'              [ fail ]
        Test ended at 2016-09-05 15:43:05

CURRENT_TEST: main.update
mysqltest: At line 512: query 'CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB' failed: 2013: Lost connection to MySQL server during query

The result from queries just before the failure was:
< snip >
SET SESSION sql_safe_updates = DEFAULT;
DROP TABLE t1;
DROP VIEW v1;
#
# Bug#54734 assert in Diagnostics_area::set_ok_status
#
DROP TABLE IF EXISTS t1, not_exists;
DROP FUNCTION IF EXISTS f1;
DROP VIEW IF EXISTS v1;
CREATE TABLE t1 (PRIMARY KEY(pk)) AS SELECT 1 AS pk;
CREATE FUNCTION f1() RETURNS INTEGER RETURN (SELECT 1 FROM not_exists);
CREATE VIEW v1 AS SELECT pk FROM t1 WHERE f1() = 13;
UPDATE v1 SET pk = 7 WHERE pk > 0;
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
DROP VIEW v1;
DROP FUNCTION f1;
DROP TABLE t1;
# Bug #21143080: UPDATE ON VARCHAR AND TEXT COLUMNS PRODUCE INCORRECT
#                RESULTS
CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB;

More results from queries before failure can be found in /home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/log/update.log


Server [mysqld.1 - pid: 13670, winpid: 13670, exit: 256] failed during test run
Server log from this test:
----------SERVER LOG START-----------
2016-09-05 15:43:03 139979670501312 [Note] /home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld (mysqld 10.2.1-MariaDB-debug) starting as process 13671 ...
2016-09-05 15:43:03 139979670501312 [Warning] Could not increase number of max_open_files to more than 1024 (request: 4162)
2016-09-05 15:43:03 139979670501312 [Note] Plugin 'BLACKHOLE' is disabled.
2016-09-05 15:43:03 139979670501312 [Note] Plugin 'partition' is disabled.
2016-09-05 15:43:03 139979670501312 [Note] Plugin 'ARCHIVE' is disabled.
2016-09-05 15:43:03 139979670501312 [Note] Plugin 'SEQUENCE' is disabled.
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-09-05 15:43:03 139979670501312 [Note] InnoDB:  InnoDB: !!!!!!!! UNIV_DEBUG switched on !!!!!!!!!
2016-09-05 15:43:03 139979670501312 [Note] InnoDB:  InnoDB: !!!!!!!! UNIV_SYNC_DEBUG switched on !!!!!!!!!
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Memory barrier is not used
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Using Linux native AIO
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Using SSE crc32 instructions
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Initializing buffer pool, size = 8.0M
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Completed initialization of buffer pool
2016-09-05 15:43:03 139979670501312 [Note] InnoDB: Highest supported file format is Barracuda.
2016-09-05 15:43:04 139979670501312 [Note] InnoDB: 128 rollback segment(s) are active.
2016-09-05 15:43:04 139979670501312 [Note] InnoDB: Waiting for purge to start
2016-09-05 15:43:04 139979670501312 [Note] InnoDB: 5.6.29 started; log sequence number 1629546
2016-09-05 15:43:05 139979359516416 [Note] InnoDB: Dumping buffer pool(s) not yet started
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'FEDERATED' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_DATAFILES' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_TABLESTATS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_CMP' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'XTRADB_READ_VIEW' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'XTRADB_RSEG' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_DELETED' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_LOCK_WAITS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'CHANGED_PAGE_BITMAPS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_TABLESPACES_ENCRYPTION' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_FIELDS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'XTRADB_INTERNAL_HASH_TABLES' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_TABLESPACES_SCRUBBING' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_CMPMEM_RESET' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_INDEX_TABLE' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_BEING_DELETED' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_MUTEXES' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_CONFIG' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'FEEDBACK' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_INDEX_CACHE' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_FT_DEFAULT_STOPWORD' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_CMP_RESET' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_COLUMNS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_CMP_PER_INDEX_RESET' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_TABLESPACES' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_SEMAPHORE_WAITS' is disabled.
2016-09-05 15:43:05 139979670501312 [Note] Plugin 'INNODB_SYS_INDEXES' is disabled.
2016-09-05 15:43:05 139979670501312 [Warning] /home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld: unknown option '--loose-skip-plugin-innodb-changed-pages'
2016-09-05 15:43:05 139979670501312 [Note] Server socket created on IP: '127.0.0.1'.
2016-09-05 15:43:05 139979670501312 [Note] /home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld: ready for connections.
Version: '10.2.1-MariaDB-debug'  socket: '/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/tmp/mysqld.1.sock'  port: 16020  MariaDB Server
2016-09-05 15:43:05 7f4f8e838f00  InnoDB: Assertion failure in thread 139979670130432 in file ha_innodb.cc line 6742
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
160905 15:43:05 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.

Server version: 10.2.1-MariaDB-debug
key_buffer_size=1048576
read_buffer_size=131072
max_used_connections=2
max_threads=153
thread_count=2
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 63026 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0x7f4f76852070
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f4f8e8385c8 thread_stack 0x48800
/home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld(my_print_stacktrace+0x2b)[0x7f4f8e0a0372]
/home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld(handle_fatal_signal+0x301)[0x7f4f8dadc144]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x7f4f8c831330]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7f4f8be88c37]
mysys/stacktrace.c:246(my_print_stacktrace)[0x7f4f8be8c028]
/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/plugins/ha_innodb.so(+0x148dc4)[0x7f4f85382dc4]
/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/plugins/ha_innodb.so(+0x157204)[0x7f4f85391204]
sql/handler.cc:4315(handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*))[0x7f4f8dae5354]
sql/handler.cc:4686(ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*))[0x7f4f8dae5e2e]
sql/unireg.cc:474(rea_create_table(THD*, st_mysql_const_unsigned_lex_string*, char const*, char const*, char const*, HA_CREATE_INFO*, handler*, bool))[0x7f4f8d9e150d]
sql/sql_table.cc:4972(create_table_impl)[0x7f4f8d9ac65e]
sql/sql_table.cc:5089(mysql_create_table_no_lock(THD*, char const*, char const*, Table_specification_st*, Alter_info*, bool*, int))[0x7f4f8d9acc32]
sql/sql_table.cc:5153(mysql_create_table(THD*, TABLE_LIST*, Table_specification_st*, Alter_info*))[0x7f4f8d9ad029]
sql/sql_parse.cc:3850(mysql_execute_command(THD*))[0x7f4f8d913f85]
sql/sql_parse.cc:7789(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x7f4f8d91c506]
sql/sql_parse.cc:1790(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x7f4f8d91e73f]
sql/sql_parse.cc:1351(do_command(THD*))[0x7f4f8d921077]
sql/sql_connect.cc:1358(do_handle_one_connection(CONNECT*))[0x7f4f8da03213]
sql/sql_connect.cc:1266(handle_one_connection)[0x7f4f8da033fc]
/home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld(+0xb4bea6)[0x7f4f8dffeea6]
perfschema/pfs.cc:1865(pfs_spawn_thread)[0x7f4f8c829184]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f4f8bf4c37d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7f4f76923088): CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB
Connection ID (thread ID): 3
Status: NOT_KILLED

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Writing a core file
----------SERVER LOG END-------------


 - saving '/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/log/main.update-innodb_plugin/' to '/home/faramir/Documents/obair/natsys/mariadb_10.2/mysql-test/var/log/main.update-innodb_plugin/'
 - found 'core' (0/5)

Trying 'dbx' to get a backtrace

Trying 'gdb' to get a backtrace
Core generated by '/home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld'
Output from gdb follows. The first stack trace is from the failing thread.
The following stack traces are from all threads (so the failing one is
duplicated).
--------------------------
[New LWP 13695]
[New LWP 13675]
[New LWP 13676]
[New LWP 13698]
[New LWP 13672]
[New LWP 13674]
[New LWP 13673]
[New LWP 13688]
[New LWP 13681]
[New LWP 13678]
[New LWP 13682]
[New LWP 13684]
[New LWP 13677]
[New LWP 13680]
[New LWP 13687]
[New LWP 13691]
[New LWP 13686]
[New LWP 13683]
[New LWP 13689]
[New LWP 13671]
[New LWP 13685]
[New LWP 13690]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/faramir/Documents/obair/natsys/mariadb_10.2/sql/mysqld --defaults-group-s'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f4f8c82e611 in __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
61  ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c: No such file or directory.
#0  0x00007f4f8c82e611 in __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x00007f4f8e09ff73 in my_write_core (sig=6) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/stacktrace.c:456
#2  0x00007f4f8dadc3a3 in handle_fatal_signal (sig=6) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/signal_handler.cc:272
#3  <signal handler called>
#4  0x00007f4f8be88c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007f4f8be8c028 in __GI_abort () at abort.c:89
#6  0x00007f4f85382dc4 in get_innobase_type_from_mysql_type (unsigned_flag=unsigned_flag@entry=0x7f4f8e832dd8, f=f@entry=0x7f4f7682b720) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:6742
#7  0x00007f4f85391204 in create_table_check_doc_id_col (doc_id_col=<synthetic pointer>, form=0x7f4f8e833770, trx=0x7f4f76872078) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:10570
#8  create_table_def (key_id=1, mode=FIL_SPACE_ENCRYPTION_DEFAULT, flags2=80, flags=1, remote_path=0x7f4f8e833220 "", temp_path=0x7f4f8e833020 "", table_name=0x7f4f8e832e20 "test/t1", form=0x7f4f8e833770, trx=0x7f4f76872078) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:10674
#9  ha_innodb::create (this=<optimized out>, name=<optimized out>, form=0x7f4f8e833770, create_info=0x7f4f8e836400) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:11949
#10 0x00007f4f8dae5354 in handler::ha_create (this=0x7f4f76889888, name=0x7f4f8e835f70 "./test/t1", form=form@entry=0x7f4f8e833770, info_arg=info_arg@entry=0x7f4f8e836400) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/handler.cc:4315
#11 0x00007f4f8dae5e2e in ha_create_table (thd=thd@entry=0x7f4f76852070, path=path@entry=0x7f4f8e835f70 "./test/t1", db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, frm=frm@entry=0x7f4f8e835f60) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/handler.cc:4686
#12 0x00007f4f8d9e150d in rea_create_table (thd=thd@entry=0x7f4f76852070, frm=frm@entry=0x7f4f8e835f60, path=path@entry=0x7f4f8e835f70 "./test/t1", db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, file=file@entry=0x7f4f76923ee8, no_ha_create_table=no_ha_create_table@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/unireg.cc:474
#13 0x00007f4f8d9ac65e in create_table_impl (thd=thd@entry=0x7f4f76852070, orig_db=orig_db@entry=0x7f4f769237d0 "test", orig_table_name=orig_table_name@entry=0x7f4f76923180 "t1", db=<optimized out>, db@entry=0x7f4f769237d0 "test", table_name=<optimized out>, table_name@entry=0x7f4f76923180 "t1", path=path@entry=0x7f4f8e835f70 "./test/t1", options=..., create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370, create_table_mode=create_table_mode@entry=0, is_trans=is_trans@entry=0x7f4f8e83621f, key_info=key_info@entry=0x7f4f8e835f58, key_count=key_count@entry=0x7f4f8e835f54, frm=frm@entry=0x7f4f8e835f60) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:4973
#14 0x00007f4f8d9acc32 in mysql_create_table_no_lock (thd=thd@entry=0x7f4f76852070, db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370, is_trans=is_trans@entry=0x7f4f8e83621f, create_table_mode=create_table_mode@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:5089
#15 0x00007f4f8d9ad029 in mysql_create_table (thd=thd@entry=0x7f4f76852070, create_table=create_table@entry=0x7f4f769231b8, create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:5154
#16 0x00007f4f8d913f85 in mysql_execute_command (thd=thd@entry=0x7f4f76852070) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:3850
#17 0x00007f4f8d91c506 in mysql_parse (thd=thd@entry=0x7f4f76852070, rawbuf=<optimized out>, length=65, parser_state=parser_state@entry=0x7f4f8e837940, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:7789
#18 0x00007f4f8d91e73f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f4f76852070, packet=packet@entry=0x7f4f76919071 "CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB", packet_length=packet_length@entry=65, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:1790
#19 0x00007f4f8d921077 in do_command (thd=0x7f4f76852070) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:1351
#20 0x00007f4f8da03213 in do_handle_one_connection (connect=connect@entry=0x7f4f8b472ef0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1358
#21 0x00007f4f8da033fc in handle_one_connection (arg=arg@entry=0x7f4f8b472ef0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1264
#22 0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f84755370) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#23 0x00007f4f8c829184 in start_thread (arg=0x7f4f8e838f00) at pthread_create.c:312
#24 0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 22 (Thread 0x7f4f787ff700 (LWP 13690)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f8e0a55ae in safe_cond_timedwait (cond=cond@entry=0x7f4f8f2541a0 <COND_checkpoint>, mp=mp@entry=0x7f4f8f2541e0 <LOCK_checkpoint>, abstime=abstime@entry=0x7f4f787fed60, file=file@entry=0x7f4f8e161638 "/home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h", line=line@entry=1175) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/thr_mutex.c:545
#2  0x00007f4f8dca3bff in inline_mysql_cond_timedwait (src_line=119, src_file=0x7f4f8e275568 "/home/faramir/Documents/epona/natsys/mariadb_10.2/storage/maria/ma_servicethread.c", abstime=0x7f4f787fed60, mutex=0x7f4f8f2541e0 <LOCK_checkpoint>, that=0x7f4f8f2541a0 <COND_checkpoint>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h:1175
#3  my_service_thread_sleep (control=control@entry=0x7f4f8e9ac2b0 <checkpoint_control>, sleep_time=sleep_time@entry=29000000000) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/maria/ma_servicethread.c:118
#4  0x00007f4f8dc9c060 in ma_checkpoint_background (arg=arg@entry=0x1e) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/maria/ma_checkpoint.c:711
#5  0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f84752df0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#6  0x00007f4f8c829184 in start_thread (arg=0x7f4f787ff700) at pthread_create.c:312
#7  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 21 (Thread 0x7f4f7d3ff700 (LWP 13685)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f7d3fed80, fast_mutex=0x7f4f86b82d00, cond=0x7f4f86b82d40) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=0x7f4f86b82d00, time_in_usec=time_in_usec@entry=1000000, reset_sig_count=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f852c4f22 in page_cleaner_sleep_if_needed (next_loop_time=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/buf/buf0flu.cc:2274
#4  buf_flush_page_cleaner_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/buf/buf0flu.cc:2310
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f7d3ff700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 20 (Thread 0x7f4f8e8937c0 (LWP 13671)):
#0  0x00007f4f8bf3efdd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f4f8d86d34b in poll (__timeout=-1, __nfds=2, __fds=0x7ffc8529fc50) at /usr/include/x86_64-linux-gnu/bits/poll2.h:41
#2  handle_connections_sockets () at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc:6577
#3  0x00007f4f8d87683e in mysqld_main (argc=146, argv=0x7f4f8b45dac0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc:6044
#4  0x00007f4f8d8670ae in main (argc=<optimized out>, argv=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/main.cc:25

Thread 19 (Thread 0x7f4f7a7fc700 (LWP 13689)):
#0  0x00007f4f8bf43c53 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f4f854038d7 in os_thread_sleep (tm=tm@entry=1000000) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0thread.cc:261
#2  0x00007f4f852a3327 in btr_defragment_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/btr/btr0defragment.cc:758
#3  0x00007f4f8c829184 in start_thread (arg=0x7f4f7a7fc700) at pthread_create.c:312
#4  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 18 (Thread 0x7f4f7ebfd700 (LWP 13683)):
#0  0x00007f4f8bf43c53 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f4f854038d7 in os_thread_sleep (tm=tm@entry=1000000) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0thread.cc:261
#2  0x00007f4f854d1684 in srv_master_sleep () at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:2514
#3  srv_master_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:2558
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f7ebfd700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 17 (Thread 0x7f4f7bfff700 (LWP 13686)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f4f85402b2b in os_cond_wait (fast_mutex=0x7f4f87ffed80, cond=0x7f4f87ffedc0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:214
#2  os_event_wait_low (event=0x7f4f87ffed80, reset_sig_count=1, reset_sig_count@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:592
#3  0x00007f4f852bd847 in buf_dump_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/buf/buf0dump.cc:703
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f7bfff700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 16 (Thread 0x7f4f8e882f00 (LWP 13691)):
#0  0x00007f4f8c8310c1 in do_sigwait (sig=0x7f4f8e882518, set=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:60
#1  __sigwait (set=0x7f4f8e882590, sig=0x7f4f8e882518) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:97
#2  0x00007f4f8d86b16d in signal_hand (arg=arg@entry=0x0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc:3557
#3  0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f847532f0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f8e882f00) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 15 (Thread 0x7f4f7b7fe700 (LWP 13687)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f7b7fdd90, fast_mutex=0x7f4f86b83880, cond=0x7f4f86b838c0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=0x7f4f86b83880, time_in_usec=time_in_usec@entry=10000000, reset_sig_count=1, reset_sig_count@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f85317236 in dict_stats_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/dict/dict0stats_bg.cc:545
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f7b7fe700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 14 (Thread 0x7f4f7fbff700 (LWP 13680)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f7fbfed90, fast_mutex=0x7f4f86b83180, cond=0x7f4f86b831c0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=event@entry=0x7f4f86b83180, time_in_usec=time_in_usec@entry=1000000, reset_sig_count=1, reset_sig_count@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f853da598 in lock_wait_timeout_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/lock/lock0wait.cc:536
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f7fbff700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 13 (Thread 0x7f4f823fb700 (LWP 13677)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=0, array=0x7f4f873f4150) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=4, message1=message1@entry=0x7f4f823fae48, message2=message2@entry=0x7f4f823fae50, type=type@entry=0x7f4f823fae58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=4) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f823fb700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 12 (Thread 0x7f4f7e3fc700 (LWP 13684)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f4f85402b2b in os_cond_wait (fast_mutex=0x7f4f87ffec00, cond=0x7f4f87ffec40) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:214
#2  os_event_wait_low (event=0x7f4f87ffec00, reset_sig_count=reset_sig_count@entry=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:592
#3  0x00007f4f854d2428 in srv_purge_coordinator_suspend (rseg_history_len=<optimized out>, slot=0x7f4f86fcfe80) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:2848
#4  srv_purge_coordinator_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:2967
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f7e3fc700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 11 (Thread 0x7f4f7f3fe700 (LWP 13682)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f7f3fddd0, fast_mutex=0x7f4f87ffed00, cond=0x7f4f87ffed40) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=0x7f4f87ffed00, time_in_usec=time_in_usec@entry=5000000, reset_sig_count=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f854d0406 in srv_monitor_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:1727
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f7f3fe700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 10 (Thread 0x7f4f81bfa700 (LWP 13678)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=1, array=0x7f4f873f4150) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=5, message1=message1@entry=0x7f4f81bf9e48, message2=message2@entry=0x7f4f81bf9e50, type=type@entry=0x7f4f81bf9e58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=5) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f81bfa700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 9 (Thread 0x7f4f80bff700 (LWP 13681)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f80bfed70, fast_mutex=0x7f4f87ffec80, cond=0x7f4f87ffecc0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=0x7f4f87ffec80, time_in_usec=time_in_usec@entry=1000000, reset_sig_count=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f854d0d15 in srv_error_monitor_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0srv.cc:1973
#4  0x00007f4f8c829184 in start_thread (arg=0x7f4f80bff700) at pthread_create.c:312
#5  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 8 (Thread 0x7f4f7affd700 (LWP 13688)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f85402cda in os_cond_wait_timed (abstime=0x7f4f7affcd40, fast_mutex=0x7f4f84761580, cond=0x7f4f847615c0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:177
#2  os_event_wait_time_low (event=0x7f4f84761580, time_in_usec=time_in_usec@entry=5000000, reset_sig_count=reset_sig_count@entry=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0sync.cc:705
#3  0x00007f4f8551a478 in ib_wqueue_timedwait (wq=wq@entry=0x7f4f86f5fe78, wait_in_usecs=wait_in_usecs@entry=5000000) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/ut/ut0wqueue.cc:154
#4  0x00007f4f853670bc in fts_optimize_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fts/fts0opt.cc:3001
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f7affd700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 7 (Thread 0x7f4f843ff700 (LWP 13673)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=0, array=0x7f4f873f4100) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=0, message1=message1@entry=0x7f4f843fee48, message2=message2@entry=0x7f4f843fee50, type=type@entry=0x7f4f843fee58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f843ff700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 6 (Thread 0x7f4f83bfe700 (LWP 13674)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=0, array=0x7f4f873f40b0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=1, message1=message1@entry=0x7f4f83bfde48, message2=message2@entry=0x7f4f83bfde50, type=type@entry=0x7f4f83bfde58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=1) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f83bfe700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 5 (Thread 0x7f4f867ff700 (LWP 13672)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f8e0a55ae in safe_cond_timedwait (cond=cond@entry=0x7f4f8f29bf20 <COND_timer>, mp=mp@entry=0x7f4f8f29bf60 <LOCK_timer>, abstime=abstime@entry=0x7f4f867fede0, file=file@entry=0x7f4f8e161638 "/home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h", line=line@entry=1175) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/thr_mutex.c:545
#2  0x00007f4f8e0a5c76 in inline_mysql_cond_timedwait (src_line=292, src_file=0x7f4f8e3145b0 "/home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/thr_timer.c", abstime=0x7f4f867fede0, mutex=0x7f4f8f29bf60 <LOCK_timer>, that=0x7f4f8f29bf20 <COND_timer>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h:1175
#3  timer_handler (arg=arg@entry=0x0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/thr_timer.c:292
#4  0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f8b4519f0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f867ff700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 4 (Thread 0x7f4f8e7eef00 (LWP 13698)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f4f8e0a55ae in safe_cond_timedwait (cond=0x7f4f8ea2b1a0 <COND_thread_cache>, mp=0x7f4f8ea28a20 <LOCK_thread_cache>, abstime=0x7f4f8e7ee4f0, file=0x7f4f8e161638 "/home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h", line=1175) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/thr_mutex.c:545
#2  0x00007f4f8d86c581 in inline_mysql_cond_timedwait (src_line=3020, src_file=0x7f4f8e161308 "/home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc", abstime=0x7f4f8e7ee4f0, mutex=0x7f4f8ea28a20 <LOCK_thread_cache>, that=0x7f4f8ea2b1a0 <COND_thread_cache>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/include/mysql/psi/mysql_thread.h:1175
#3  cache_thread (thd=0x7f4f76c16070) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc:3019
#4  one_thread_per_connection_end (thd=0x7f4f76c16070, put_in_cache=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/mysqld.cc:3108
#5  0x00007f4f8da0338e in do_handle_one_connection (connect=connect@entry=0x7f4f8b4730b0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1377
#6  0x00007f4f8da033fc in handle_one_connection (arg=arg@entry=0x7f4f8b4730b0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1264
#7  0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f84755af0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#8  0x00007f4f8c829184 in start_thread (arg=0x7f4f8e7eef00) at pthread_create.c:312
#9  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7f4f82bfc700 (LWP 13676)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=1, array=0x7f4f873f4060) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=3, message1=message1@entry=0x7f4f82bfbe48, message2=message2@entry=0x7f4f82bfbe50, type=type@entry=0x7f4f82bfbe58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=3) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f82bfc700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f4f833fd700 (LWP 13675)):
#0  0x00007f4f8ce7c58a in ?? () from /lib/x86_64-linux-gnu/libaio.so.1
#1  0x00007f4f85401061 in os_aio_linux_collect (seg_size=256, segment=0, array=0x7f4f873f4060) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5349
#2  os_aio_linux_handle (global_seg=global_seg@entry=2, message1=message1@entry=0x7f4f833fce48, message2=message2@entry=0x7f4f833fce50, type=type@entry=0x7f4f833fce58) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/os/os0file.cc:5501
#3  0x00007f4f85329c5c in fil_aio_wait (segment=segment@entry=2) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/fil/fil0fil.cc:5982
#4  0x00007f4f854d5f1a in io_handler_thread (arg=<optimized out>) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/srv/srv0start.cc:515
#5  0x00007f4f8c829184 in start_thread (arg=0x7f4f833fd700) at pthread_create.c:312
#6  0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f4f8e838f00 (LWP 13695)):
#0  0x00007f4f8c82e611 in __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x00007f4f8e09ff73 in my_write_core (sig=6) at /home/faramir/Documents/epona/natsys/mariadb_10.2/mysys/stacktrace.c:456
#2  0x00007f4f8dadc3a3 in handle_fatal_signal (sig=6) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/signal_handler.cc:272
#3  <signal handler called>
#4  0x00007f4f8be88c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007f4f8be8c028 in __GI_abort () at abort.c:89
#6  0x00007f4f85382dc4 in get_innobase_type_from_mysql_type (unsigned_flag=unsigned_flag@entry=0x7f4f8e832dd8, f=f@entry=0x7f4f7682b720) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:6742
#7  0x00007f4f85391204 in create_table_check_doc_id_col (doc_id_col=<synthetic pointer>, form=0x7f4f8e833770, trx=0x7f4f76872078) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:10570
#8  create_table_def (key_id=1, mode=FIL_SPACE_ENCRYPTION_DEFAULT, flags2=80, flags=1, remote_path=0x7f4f8e833220 "", temp_path=0x7f4f8e833020 "", table_name=0x7f4f8e832e20 "test/t1", form=0x7f4f8e833770, trx=0x7f4f76872078) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:10674
#9  ha_innodb::create (this=<optimized out>, name=<optimized out>, form=0x7f4f8e833770, create_info=0x7f4f8e836400) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:11949
#10 0x00007f4f8dae5354 in handler::ha_create (this=0x7f4f76889888, name=0x7f4f8e835f70 "./test/t1", form=form@entry=0x7f4f8e833770, info_arg=info_arg@entry=0x7f4f8e836400) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/handler.cc:4315
#11 0x00007f4f8dae5e2e in ha_create_table (thd=thd@entry=0x7f4f76852070, path=path@entry=0x7f4f8e835f70 "./test/t1", db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, frm=frm@entry=0x7f4f8e835f60) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/handler.cc:4686
#12 0x00007f4f8d9e150d in rea_create_table (thd=thd@entry=0x7f4f76852070, frm=frm@entry=0x7f4f8e835f60, path=path@entry=0x7f4f8e835f70 "./test/t1", db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, file=file@entry=0x7f4f76923ee8, no_ha_create_table=no_ha_create_table@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/unireg.cc:474
#13 0x00007f4f8d9ac65e in create_table_impl (thd=thd@entry=0x7f4f76852070, orig_db=orig_db@entry=0x7f4f769237d0 "test", orig_table_name=orig_table_name@entry=0x7f4f76923180 "t1", db=<optimized out>, db@entry=0x7f4f769237d0 "test", table_name=<optimized out>, table_name@entry=0x7f4f76923180 "t1", path=path@entry=0x7f4f8e835f70 "./test/t1", options=..., create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370, create_table_mode=create_table_mode@entry=0, is_trans=is_trans@entry=0x7f4f8e83621f, key_info=key_info@entry=0x7f4f8e835f58, key_count=key_count@entry=0x7f4f8e835f54, frm=frm@entry=0x7f4f8e835f60) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:4973
#14 0x00007f4f8d9acc32 in mysql_create_table_no_lock (thd=thd@entry=0x7f4f76852070, db=db@entry=0x7f4f769237d0 "test", table_name=table_name@entry=0x7f4f76923180 "t1", create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370, is_trans=is_trans@entry=0x7f4f8e83621f, create_table_mode=create_table_mode@entry=0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:5089
#15 0x00007f4f8d9ad029 in mysql_create_table (thd=thd@entry=0x7f4f76852070, create_table=create_table@entry=0x7f4f769231b8, create_info=create_info@entry=0x7f4f8e836400, alter_info=alter_info@entry=0x7f4f8e836370) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_table.cc:5154
#16 0x00007f4f8d913f85 in mysql_execute_command (thd=thd@entry=0x7f4f76852070) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:3850
#17 0x00007f4f8d91c506 in mysql_parse (thd=thd@entry=0x7f4f76852070, rawbuf=<optimized out>, length=65, parser_state=parser_state@entry=0x7f4f8e837940, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:7789
#18 0x00007f4f8d91e73f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f4f76852070, packet=packet@entry=0x7f4f76919071 "CREATE TABLE t1 (a VARCHAR(50), b TEXT, c CHAR(50)) ENGINE=INNODB", packet_length=packet_length@entry=65, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:1790
#19 0x00007f4f8d921077 in do_command (thd=0x7f4f76852070) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_parse.cc:1351
#20 0x00007f4f8da03213 in do_handle_one_connection (connect=connect@entry=0x7f4f8b472ef0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1358
#21 0x00007f4f8da033fc in handle_one_connection (arg=arg@entry=0x7f4f8b472ef0) at /home/faramir/Documents/epona/natsys/mariadb_10.2/sql/sql_connect.cc:1264
#22 0x00007f4f8dffeea6 in pfs_spawn_thread (arg=0x7f4f84755370) at /home/faramir/Documents/epona/natsys/mariadb_10.2/storage/perfschema/pfs.cc:1862
#23 0x00007f4f8c829184 in start_thread (arg=0x7f4f8e838f00) at pthread_create.c:312
#24 0x00007f4f8bf4c37d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111


Only  1  of 2 completed.
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 9 seconds executing testcases

Failure: Failed 1/1 tests, 0.00% were successful.

Failing test(s): main.update

The log files in var/log may give you some hint of what went wrong.

If you want to report this error, please read first the documentation
at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html

mysql-test-run: *** ERROR: there were failing test cases

SQL: UPDATE works incorrect

The test:

CREATE TABLE t1(
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  A INT
) WITH SYSTEM VERSIONING ENGINE INNODB;
SET @tmp0=NOW(6);
INSERT INTO t1 (A) VALUES (1);
SET @tmp1=NOW(6);
UPDATE t1 SET A=2 WHERE id=1;
SET @tmp2=NOW(6);
UPDATE t1 SET A=3 WHERE id=1;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp0;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp1;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp2;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP NOW(6);
DROP TABLE t1;


CREATE TABLE t1(
  id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  A INT
) WITH SYSTEM VERSIONING ENGINE MYISAM;
SET @tmp0=NOW(6);
INSERT INTO t1 (A) VALUES (1);
SET @tmp1=NOW(6);
UPDATE t1 SET A=2 WHERE id=1;
SET @tmp2=NOW(6);
UPDATE t1 SET A=3 WHERE id=1;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp0;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp1;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp2;
SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP NOW(6);
DROP TABLE t1;

And the result:

+CREATE TABLE t1(
+id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
+A INT
+) WITH SYSTEM VERSIONING ENGINE INNODB;
+SET @tmp0=NOW();
+INSERT INTO t1 (A) VALUES (1);
+SET @tmp1=NOW();
+UPDATE t1 SET A=2 WHERE id=1;
+SET @tmp2=NOW();
+UPDATE t1 SET A=3 WHERE id=1;
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp0;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp1;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp2;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP NOW();
+A
+DROP TABLE t1;
+CREATE TABLE t1(
+id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
+A INT
+) WITH SYSTEM VERSIONING ENGINE MYISAM;
+SET @tmp0=NOW();
+INSERT INTO t1 (A) VALUES (1);
+SET @tmp1=NOW();
+UPDATE t1 SET A=2 WHERE id=1;
+SET @tmp2=NOW();
+UPDATE t1 SET A=3 WHERE id=1;
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp0;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp1;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP @tmp2;
+A
+SELECT A FROM t1 FOR SYSTEM_TIME AS OF TIMESTAMP NOW();
+A
+DROP TABLE t1;

[CLOSED] FOR keyword is cut off from triggers on RENAME TABLE

Issue by midenok
Friday Sep 02, 2016 at 18:21 GMT
Originally opened as https://github.com/natsys/mariadb/issues/2


Reproduce:

 mysql-test-run main.trigger --manual-gdb

In GDB:

b my_parse_error_intern
run

Backtrace:

#0  my_parse_error_intern (thd=0x7fffec852070, err_text=0x7ffff13cdd27 "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use", yytext=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/sql_yacc.yy:124
#1  0x000000000086a931 in MYSQLerror (thd=0x7fffec852070, s=0x7ffff13cdd27 "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use") at /home/midenok/src/mariadb/hagrid/src/sql/sql_yacc.yy:187
#2  0x0000000000898432 in MYSQLparse (thd=0x7fffec852070) at /home/midenok/src/mariadb/hagrid/build/sql/sql_yacc.cc:43278
#3  0x00000000006a3aa2 in parse_sql (thd=0x7fffec852070, parser_state=0x7ffff7f74b50, creation_ctx=0x7fffec923a30, do_pfs_digest=false) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:9807
#4  0x0000000000768304 in Table_triggers_list::check_n_load (thd=0x7fffec852070, db=0x7fffec870160 "test", table_name=0x7fffec870165 "t2", table=0x7fffec8a3870, names_only=false) at /home/midenok/src/mariadb/hagrid/src/sql/sql_trigger.cc:1406
#5  0x00000000006261a2 in open_table_entry_fini (thd=0x7fffec852070, share=0x7fffec86fc88, entry=0x7fffec8a3870) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.cc:3292
#6  0x0000000000624ca3 in open_table (thd=0x7fffec852070, table_list=0x7fffec923170, ot_ctx=0x7ffff7f77340) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.cc:2546
#7  0x0000000000627611 in open_and_process_table (thd=0x7fffec852070, lex=0x7fffec855a00, tables=0x7fffec923170, counter=0x7ffff7f773d4, flags=0, prelocking_strategy=0x7ffff7f77460, has_prelocking_list=false, ot_ctx=0x7ffff7f77340) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.cc:4055
#8  0x0000000000628726 in open_tables (thd=0x7fffec852070, options=..., start=0x7ffff7f773b8, counter=0x7ffff7f773d4, flags=0, prelocking_strategy=0x7ffff7f77460) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.cc:4566
#9  0x00000000006299ab in open_and_lock_tables (thd=0x7fffec852070, options=..., tables=0x7fffec923170, derived=true, flags=0, prelocking_strategy=0x7ffff7f77460) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.cc:5228
#10 0x000000000061d12f in open_and_lock_tables (thd=0x7fffec852070, tables=0x7fffec923170, derived=true, flags=0) at /home/midenok/src/mariadb/hagrid/src/sql/sql_base.h:524
#11 0x000000000066cf65 in mysql_insert (thd=0x7fffec852070, table_list=0x7fffec923170, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /home/midenok/src/mariadb/hagrid/src/sql/sql_insert.cc:723
#12 0x0000000000693c03 in mysql_execute_command (thd=0x7fffec852070) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:4289
#13 0x000000000069f25d in mysql_parse (thd=0x7fffec852070, rawbuf=0x7fffec923088 "insert into t2 values (102)", length=27, parser_state=0x7ffff7f78720, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:7789
#14 0x000000000068cf49 in dispatch_command (command=COM_QUERY, thd=0x7fffec852070, packet=0x7fffec919071 "insert into t2 values (102)", packet_length=27, is_com_multi=false, is_next_command=false) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:1790
#15 0x000000000068b93e in do_command (thd=0x7fffec852070) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:1351
#16 0x00000000007cca7e in do_handle_one_connection (connect=0x7ffff5037590) at /home/midenok/src/mariadb/hagrid/src/sql/sql_connect.cc:1358
#17 0x00000000007cc7ef in handle_one_connection (arg=0x7ffff5037590) at /home/midenok/src/mariadb/hagrid/src/sql/sql_connect.cc:1264
#18 0x0000000000f062ce in pfs_spawn_thread (arg=0x7ffff5056c70) at /home/midenok/src/mariadb/hagrid/src/storage/perfschema/pfs.cc:1862
#19 0x00007ffff67fd6fa in start_thread (arg=0x7ffff7f79f00) at pthread_create.c:333
#20 0x00007ffff5eaab5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Look at /home/midenok/src/mariadb/hagrid/build/mysql-test/var/mysqld.1/data/test/t2.TRG:

TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert ON `t2` each row set @a:=new.id' 'CREATE DEFINER=`root`@`localhost` trigger t1_ai after insert ON `t2` each row set @b:=new.id'
sql_modes=1342177280 1342177280
definers='root@localhost' 'root@localhost'
client_cs_names='latin1' 'latin1'
connection_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'
db_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'

Expected:

TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert ON `t2` for each row set @a:=new.id' 'CREATE DEFINER=`root`@`localhost` trigger t1_ai after insert ON `t2` for each row set @b:=new.id'
sql_modes=1342177280 1342177280
definers='root@localhost' 'root@localhost'
client_cs_names='latin1' 'latin1'
connection_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'
db_cl_names='latin1_swedish_ci' 'latin1_swedish_ci'

Now you can kill test and attach to socket with client:

 mysql -S /home/midenok/src/mariadb/hagrid/build/mysql-test/var/tmp/mysqld.1.sock

Each 'SHOW TRIGGERS' will trigger error.

0.2 parts I and II: VTQ update

DROP TABLE t1;CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE InnoDB;

Single-statement transaction

INSERT INTO t1(x, y) VALUES(8001, 9001);
#0  mtr_commit (mtr=0x7fa9d9bc4530) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/mtr/mtr0mtr.cc:315
#1  0x0000000000c526a4 in trx_commit_low (trx=0x7fa9b0101678, mtr=0x7fa9d9bc4530) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1645
#2  0x0000000000c5275d in trx_commit (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1673
#3  0x0000000000c5312a in trx_commit_for_mysql (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1937
#4  0x0000000000aac1d4 in innobase_commit_low (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4342
#5  0x0000000000aac4d2 in innobase_commit_ordered_2 (trx=0x7fa9b0101678, thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4486
#6  0x0000000000aac8dc in innobase_commit (hton=0x7fa9d6c5a870, thd=0x7fa9b0016070, commit_trx=0x0) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4623
#7  0x00000000008e7097 in commit_one_phase_2 (thd=0x7fa9b0016070, all=0x0, trans=0x7fa9b00191d0, is_real_trans=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1552
#8  0x00000000008e6f93 in ha_commit_one_phase (thd=0x7fa9b0016070, all=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1533
#9  0x00000000008e686d in ha_commit_trans (thd=0x7fa9b0016070, all=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1400
#10 0x00000000007e24e8 in trans_commit_stmt (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/transaction.cc:434
#11 0x000000000069ad86 in mysql_execute_command (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:6135
#12 0x000000000069f205 in mysql_parse (thd=0x7fa9b0016070, rawbuf=0x7fa9b005e088 "INSERT INTO t1(x, y) VALUES(8001, 9001)", length=0x27, parser_state=0x7fa9d9bc5f70, is_com_multi=0x0, is_next_command=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:7789

Multi-statement transaction

start transaction; INSERT INTO t1(x, y) VALUES(8001, 9001); commit;
#0  mtr_commit (mtr=0x7fa9d9bc4530) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/mtr/mtr0mtr.cc:315
#1  0x0000000000c526a4 in trx_commit_low (trx=0x7fa9b0101678, mtr=0x7fa9d9bc4530) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1645
#2  0x0000000000c5275d in trx_commit (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1673
#3  0x0000000000c5312a in trx_commit_for_mysql (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1937
#4  0x0000000000aac1d4 in innobase_commit_low (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4342
#5  0x0000000000aac4d2 in innobase_commit_ordered_2 (trx=0x7fa9b0101678, thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4486
#6  0x0000000000aac8dc in innobase_commit (hton=0x7fa9d6c5a870, thd=0x7fa9b0016070, commit_trx=0x1) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4623
#7  0x00000000008e7097 in commit_one_phase_2 (thd=0x7fa9b0016070, all=0x1, trans=0x7fa9b00191b8, is_real_trans=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1552
#8  0x00000000008e6f93 in ha_commit_one_phase (thd=0x7fa9b0016070, all=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1533
#9  0x00000000008e686d in ha_commit_trans (thd=0x7fa9b0016070, all=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1400
#10 0x00000000007e1c50 in trans_commit (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/transaction.cc:236
#11 0x000000000069811e in mysql_execute_command (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:5412
#12 0x000000000069f205 in mysql_parse (thd=0x7fa9b0016070, rawbuf=0x7fa9b005e088 "commit", length=0x6, parser_state=0x7fa9d9bc5f70, is_com_multi=0x0, is_next_command=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:7789

Two-phase transaction

xa start 'xyz'; INSERT INTO t1(x, y) VALUES(8001, 9001); xa end 'xyz'; xa prepare 'xyz'; xa commit 'xyz';
#0  mtr_commit (mtr=0x7fa9d9bc45c0) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/mtr/mtr0mtr.cc:315
#1  0x0000000000c526a4 in trx_commit_low (trx=0x7fa9b0101678, mtr=0x7fa9d9bc45c0) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1645
#2  0x0000000000c5275d in trx_commit (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1673
#3  0x0000000000c5312a in trx_commit_for_mysql (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/trx/trx0trx.cc:1937
#4  0x0000000000aac1d4 in innobase_commit_low (trx=0x7fa9b0101678) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4342
#5  0x0000000000aac4d2 in innobase_commit_ordered_2 (trx=0x7fa9b0101678, thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4486
#6  0x0000000000aac8dc in innobase_commit (hton=0x7fa9d6c5a870, thd=0x7fa9b0016070, commit_trx=0x1) at /home/midenok/src/mariadb/hagrid/src/storage/xtradb/handler/ha_innodb.cc:4623
#7  0x00000000008e7097 in commit_one_phase_2 (thd=0x7fa9b0016070, all=0x1, trans=0x7fa9b00191b8, is_real_trans=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1552
#8  0x00000000008e6f93 in ha_commit_one_phase (thd=0x7fa9b0016070, all=0x1) at /home/midenok/src/mariadb/hagrid/src/sql/handler.cc:1533
#9  0x00000000007e38a4 in trans_xa_commit (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/transaction.cc:895
#10 0x0000000000699f20 in mysql_execute_command (thd=0x7fa9b0016070) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:5951
#11 0x000000000069f205 in mysql_parse (thd=0x7fa9b0016070, rawbuf=0x7fa9b005e088 "xa commit 'xyz'", length=0xf, parser_state=0x7fa9d9bc5f70, is_com_multi=0x0, is_next_command=0x0) at /home/midenok/src/mariadb/hagrid/src/sql/sql_parse.cc:7789

Non-versioned fields should display latest value

For historical SELECT:

  1. At setup fields phase:
    • replace non-versioned fields with AS_OF_NOW(field) func;
    • store non-nonversioned fields as keys in now_fields map in select_lex context.
  2. at some later phase (must be discovered when):
    • translate now_fields to separate SELECT;
    • execute that SELECT and store results to original historical select_lex context into now_fields map.
  3. When AS_OF_NOW is executed it selects field value from now_fields map.

AS_OF_NOW(field)

This function is non-interactive, so no need to modify parser. Function is local to select_lex context, so it holds pointer to now_fields inside itself as well as field param which will be key for now_fields. When executed, function searches value by field key in now_fields map.

now_fields map

Key: Field pointer, stored at p.1
Value: Item pointer, NULL at p.1, field values at p.2

Actual name in select_lex struct: vers_now_fields.

Questions

Do we need to store now_fields pointer into AS_OF_NOW() or we can store only reference to value from now_fields.

Segfault: stale prep_where for stored procedures

Reproduce test (reproducible only in branch)

#0  0x00000000006b80a7 in reinit_stmt_before_use (thd=0x7fffdfc52070, lex=0x7fffdfd900c0) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:2814
#1  0x0000000000a40708 in sp_lex_keeper::reset_lex_and_exec_core (this=0x7fffdfd76ff0, thd=0x7fffdfc52070, nextp=0x7ffff7f772a4, open_tables=0x0, instr=0x7fffdfd76fa8) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:2976
#2  0x0000000000a40d4c in sp_instr_stmt::execute (this=0x7fffdfd76fa8, thd=0x7fffdfc52070, nextp=0x7ffff7f772a4) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:3133
#3  0x0000000000a3c427 in sp_head::execute (this=0x7fffdfd5f088, thd=0x7fffdfc52070, merge_da_on_success=0x1) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:1323
#4  0x0000000000a3e2da in sp_head::execute_procedure (this=0x7fffdfd5f088, thd=0x7fffdfc52070, args=0x7fffdfc567b0) at /home/midenok/src/mariadb/midenok/src/sql/sp_head.cc:2110
#5  0x00000000006903c7 in do_execute_sp (thd=0x7fffdfc52070, sp=0x7fffdfd5f088) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:2793
#6  0x00000000006998fb in mysql_execute_command (thd=0x7fffdfc52070) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:5674
#7  0x000000000069fcfd in mysql_parse (thd=0x7fffdfc52070, rawbuf=0x7fffdfd23088 "call test_01('bigint unsigned', 'innodb', 'commit_ts(sys_end)')", length=0x3f, parser_state=0x7ffff7f78720, is_com_multi=0x0, is_next_command=0x0) at /home/midenok/src/mariadb/midenok/src/sql/sql_parse.cc:7792
(gdb) f 0
#0  0x00000000006b80a7 in reinit_stmt_before_use (thd=0x7fffdfc52070, lex=0x7fffdfd900c0) at /home/midenok/src/mariadb/midenok/src/sql/sql_prepare.cc:2814
2814                                  sl->prep_where->copy_andor_structure(thd));
(gdb) p *(void **)sl->prep_where
$22 = (void *) 0x0

Empty vtable, so the item was already destroyed.

2803          /*
2804            Copy WHERE, HAVING clause pointers to avoid damaging them
2805            by optimisation
2806          */
2807          if (sl->prep_where)
2808          {
2809            /*
2810              We need this rollback because memory allocated in
2811              copy_andor_structure() will be freed
2812            */
2813            thd->change_item_tree((Item**)&sl->where,
2814                                  sl->prep_where->copy_andor_structure(thd));
2815            sl->where->cleanup();
2816          }
2817          else
2818            sl->where= NULL;

Assertion failure on test 'insert'

Appeared in 2d5f222

This fails

(gdb) p size
$1 = 2264
(gdb) p dict_sys->size
$2 = 415

#0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
#1  0x00005596ceb06bd7 in my_write_core (sig=6) at /home/kevg/Desktop/mariadb_10.2/mysys/stacktrace.c:456
#2  0x00005596ce4c82e3 in handle_fatal_signal (sig=6) at /home/kevg/Desktop/mariadb_10.2/sql/signal_handler.cc:272
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#5  0x00007f8edbf613ea in __GI_abort () at abort.c:89
#6  0x00005596ce8acd31 in dict_index_remove_from_cache_low (table=0x5596d512de78, index=0x5596d512e5f8, lru_evict=0) at /home/kevg/Desktop/mariadb_10.2/storage/innobase/dict/dict0dict.cc:2818
#7  0x00005596ce8ab6b4 in dict_table_remove_from_cache_low (table=0x5596d512de78, lru_evict=0) at /home/kevg/Desktop/mariadb_10.2/storage/innobase/dict/dict0dict.cc:2132
#8  0x00005596ce8abc72 in dict_table_remove_from_cache (table=0x5596d512de78) at /home/kevg/Desktop/mariadb_10.2/storage/innobase/dict/dict0dict.cc:2199
#9  0x00005596ce8b61c0 in dict_close () at /home/kevg/Desktop/mariadb_10.2/storage/innobase/dict/dict0dict.cc:6912
#10 0x00005596ce7e6fc4 in innobase_shutdown_for_mysql () at /home/kevg/Desktop/mariadb_10.2/storage/innobase/srv/srv0start.cc:3239
#11 0x00005596ce6888af in innobase_end (hton=0x5596d506cdf0, type=HA_PANIC_CLOSE) at /home/kevg/Desktop/mariadb_10.2/storage/innobase/handler/ha_innodb.cc:4001
#12 0x00005596ce4c9c7a in ha_finalize_handlerton (plugin=0x5596d4e0d8e8) at /home/kevg/Desktop/mariadb_10.2/sql/handler.cc:449
#13 0x00005596ce29d1bc in plugin_deinitialize (plugin=0x5596d4e0d8e8, ref_check=true) at /home/kevg/Desktop/mariadb_10.2/sql/sql_plugin.cc:1209
#14 0x00005596ce29d625 in reap_plugins () at /home/kevg/Desktop/mariadb_10.2/sql/sql_plugin.cc:1287
#15 0x00005596ce29f4a8 in plugin_shutdown () at /home/kevg/Desktop/mariadb_10.2/sql/sql_plugin.cc:1945
#16 0x00005596ce1b55ce in clean_up (print_message=true) at /home/kevg/Desktop/mariadb_10.2/sql/mysqld.cc:2189
#17 0x00005596ce1b517b in unireg_end () at /home/kevg/Desktop/mariadb_10.2/sql/mysqld.cc:2068
#18 0x00005596ce1b508f in kill_server (sig_ptr=0x0) at /home/kevg/Desktop/mariadb_10.2/sql/mysqld.cc:1995
#19 0x00005596ce1b50b7 in kill_server_thread (arg=0x7f8ede9fc5d0) at /home/kevg/Desktop/mariadb_10.2/sql/mysqld.cc:2018
#20 0x00005596ceaafd91 in pfs_spawn_thread (arg=0x5596d6288370) at /home/kevg/Desktop/mariadb_10.2/storage/perfschema/pfs.cc:1862
#21 0x00007f8edc98970a in start_thread (arg=0x7f8ede968f00) at pthread_create.c:333
#22 0x00007f8edc0320ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Looks like dict_sys->size needs to be incremented in some places where heap allocations occur.

Select from view over versioned table returns empty resultset

Issue by hagrid-the-developer
Monday Sep 05, 2016 at 08:12 GMT
Originally opened as https://github.com/natsys/mariadb/issues/3


It seems that when one creates system versioned table, creates view over it, runs some insert(s) over the table and/or view and then runs select over the view, then select over view in mysql/mariadb client returns correct values. On the other hand in tests it returns empty set.

Eg. in mysql client:

> CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED  ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
Query OK, 0 rows affected (0.28 sec)

> create view vt1 as select x, y from t1;
Query OK, 0 rows affected (0.05 sec)

> insert into t1(x, y) values(1,10);
Query OK, 1 row affected (0.04 sec)

> select * from t1;
 +------+------+----------------------------+----------------------------+
 | x    | y    | Sys_start                  | Sys_end                    |
 +------+------+----------------------------+----------------------------+
 |    1 |   10 | 2016-09-05 10:01:44.392996 | 2038-01-19 04:14:07.000000 |
+------+------+----------------------------+----------------------------+
1 row in set (0.01 sec)

> select * from vt1;
+------+------+
| x    | y    |
+------+------+
|    1 |   10 |
+------+------+
1 row in set (0.01 sec)

But in tests, similar statements lead to empty result for select over view, eg. see insert test .

VTQ cache

Cache queries to VTQ: BEGIN_TS(), COMMIT_TS()

Tests that fail on 10.2

These tests should be excluded from run because they fail on 10.2 branch:

tokudb.rows-32m-seq-insert
rows-32m-rand-insert

Alter table to add column loses PERIOD FOR SYSTEM_TIME (`sys_trx_start`, `sys_trx_end`) clause

Problem

When altering a table to add a column, the table become unversioned. It appears that the following clause gets dropped

PERIOD FOR SYSTEM_TIME (`sys_trx_start`, `sys_trx_end`)

Reproduce

create or replace table emp (
  emp_id int(10) primary key,
  dept_id int(10) not null,
  name varchar(100) not null,
  mgr int(10),
  salary int(10) not null 
) 
with system versioning;
show create table emp;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| emp   | CREATE TABLE `emp` (
  `emp_id` int(10) NOT NULL,
  `dept_id` int(10) NOT NULL,
  `name` varchar(100) NOT NULL,
  `mgr` int(10) DEFAULT NULL,
  `salary` int(10) NOT NULL,
  `sys_trx_start` timestamp(6) NOT NULL GENERATED AS ROW START,
  `sys_trx_end` timestamp(6) NOT NULL GENERATED AS ROW END,
  PRIMARY KEY (`emp_id`,`sys_trx_end`),
  PERIOD FOR SYSTEM_TIME (`sys_trx_start`, `sys_trx_end`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
alter table emp add (bonus varchar(20));
MariaDB [test]> show create table emp;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| emp   | CREATE TABLE `emp` (
  `emp_id` int(10) NOT NULL,
  `dept_id` int(10) NOT NULL,
  `name` varchar(100) NOT NULL,
  `mgr` int(10) DEFAULT NULL,
  `salary` int(10) NOT NULL,
  `sys_trx_start` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  `sys_trx_end` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  `bonus` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`emp_id`,`sys_trx_end`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Test rejects encountered

At the moment I've encountered following rejects. Please, check.

--- ./mysql-test/r/insert.result    2016-09-12 14:23:43.080142165 +0000
+++ ./mysql-test/r/insert.reject    2016-09-13 01:18:14.424742144 +0000
@@ -727,9 +727,9 @@
 INSERT INTO t1 VALUES(40, 33);
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-3  4   2038-01-19 04:14:07.000000
-2  3   2038-01-19 04:14:07.000000
-40 33  2038-01-19 04:14:07.000000
+3  4   2038-01-19 03:14:07.000000
+2  3   2038-01-19 03:14:07.000000
+40 33  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
 INSERT INTO t1(x, y) VALUES(3, 4);
@@ -737,9 +737,9 @@
 INSERT INTO t1 VALUES(40, 33);
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-3  4   2038-01-19 04:14:07.000000
-2  3   2038-01-19 04:14:07.000000
-40 33  2038-01-19 04:14:07.000000
+3  4   2038-01-19 03:14:07.000000
+2  3   2038-01-19 03:14:07.000000
+40 33  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING;
 INSERT INTO t1(x, y) VALUES(33, 44);
@@ -747,9 +747,9 @@
 INSERT INTO t1 VALUES(40, 33, 44);
 SELECT id, x, y, Sys_end FROM t1;
 id x   y   Sys_end
-1  33  44  2038-01-19 04:14:07.000000
-20 33  44  2038-01-19 04:14:07.000000
-40 33  44  2038-01-19 04:14:07.000000
+1  33  44  2038-01-19 03:14:07.000000
+20 33  44  2038-01-19 03:14:07.000000
+40 33  44  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
 INSERT INTO t1(x, y) VALUES(33, 44);
@@ -757,9 +757,9 @@
 INSERT INTO t1 VALUES(40, 33, 44);
 SELECT id, x, y, Sys_end FROM t1;
 id x   y   Sys_end
-1  33  44  2038-01-19 04:14:07.000000
-20 33  44  2038-01-19 04:14:07.000000
-40 33  44  2038-01-19 04:14:07.000000
+1  33  44  2038-01-19 03:14:07.000000
+20 33  44  2038-01-19 03:14:07.000000
+40 33  44  2038-01-19 03:14:07.000000
 DROP TABLE t1;
 CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
 CREATE VIEW vt1_1 AS SELECT x, y FROM t1;
@@ -774,10 +774,10 @@
 ERROR HY000: Generated field for System Versioning cannot be set by user
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-8001   9001    2038-01-19 04:14:07.000000
-1001   2001    2038-01-19 04:14:07.000000
-1002   2002    2038-01-19 04:14:07.000000
-3001   4001    2038-01-19 04:14:07.000000
+8001   9001    2038-01-19 03:14:07.000000
+1001   2001    2038-01-19 03:14:07.000000
+1002   2002    2038-01-19 03:14:07.000000
+3001   4001    2038-01-19 03:14:07.000000
 SELECT x, y FROM vt1_1;
 x  y
 8001   9001
@@ -786,10 +786,10 @@
 3001   4001
 SELECT x, y, Sys_end FROM vt1_2;
 x  y   Sys_end
-8001   9001    2038-01-19 04:14:07.000000
-1001   2001    2038-01-19 04:14:07.000000
-1002   2002    2038-01-19 04:14:07.000000
-3001   4001    2038-01-19 04:14:07.000000
+8001   9001    2038-01-19 03:14:07.000000
+1001   2001    2038-01-19 03:14:07.000000
+1002   2002    2038-01-19 03:14:07.000000
+3001   4001    2038-01-19 03:14:07.000000
 DROP TABLE t1;
 DROP VIEW vt1_1;
 DROP VIEW vt1_2;
@@ -806,10 +806,10 @@
 ERROR HY000: Generated field for System Versioning cannot be set by user
 SELECT x, y, Sys_end FROM t1;
 x  y   Sys_end
-8001   9001    2038-01-19 04:14:07.000000
-1001   2001    2038-01-19 04:14:07.000000
-1002   2002    2038-01-19 04:14:07.000000
-3001   4001    2038-01-19 04:14:07.000000
+8001   9001    2038-01-19 03:14:07.000000
+1001   2001    2038-01-19 03:14:07.000000
+1002   2002    2038-01-19 03:14:07.000000
+3001   4001    2038-01-19 03:14:07.000000
 SELECT x, y FROM vt1_1;
 x  y
 8001   9001
@@ -818,10 +818,10 @@
 3001   4001
 SELECT x, y, Sys_end FROM vt1_2;
 x  y   Sys_end
-8001   9001    2038-01-19 04:14:07.000000
-1001   2001    2038-01-19 04:14:07.000000
-1002   2002    2038-01-19 04:14:07.000000
-3001   4001    2038-01-19 04:14:07.000000
+8001   9001    2038-01-19 03:14:07.000000
+1001   2001    2038-01-19 03:14:07.000000
+1002   2002    2038-01-19 03:14:07.000000
+3001   4001    2038-01-19 03:14:07.000000
 DROP TABLE t1;
 DROP VIEW vt1_1;
 DROP VIEW vt1_2;
--- ./mysql-test/r/select_pkeycache.result  2016-09-02 07:45:28.357703976 +0000
+++ ./mysql-test/r/select_pkeycache.reject  2016-09-13 01:29:40.829607887 +0000
@@ -5549,3 +5549,68 @@
 NULL
 drop table t1;
 End of 10.0 tests
+#
+# System Versioning Support
+#
+#
+CREATE TABLE t1( x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
+INSERT INTO t1(x, y) VALUES
+(0, 100),
+(1, 101),
+(2, 102),
+(3, 103),
+(4, 104),
+(5, 105),
+(6, 106),
+(7, 107),
+(8, 108),
+(9, 109);
+DELETE FROM t1 WHERE x = 3;
+DELETE FROM t1 WHERE x > 7;
+INSERT INTO t1(x, y) VALUES(3, 33);
+SELECT @time := Sys_start FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP '0-0-0 0:0:0' AND TIMESTAMP '2038-01-19 04:14:07' WHERE x = 3 AND y = 33;
+@time := Sys_start
+Sys_start
+SELECT x, y FROM t1;
+x  y
+0  100
+1  101
+2  102
+4  104
+5  105
+6  106
+7  107
+3  33
+SET @query=CONCAT('SELECT x, y FROM t1 FOR SYSTEM_TIME FROM TIMESTAMP \'0-0-0 0:0:0\' TO TIMESTAMP \'', @time, '\'');
+PREPARE stmt_t1 FROM @query;
+EXECUTE stmt_t1;
+x  y
+0  100
+1  101
+2  102
+3  103
+4  104
+5  105
+6  106
+7  107
+8  108
+9  109
+SET @query=CONCAT('SELECT x, y FROM t1 FOR SYSTEM_TIME BETWEEN TIMESTAMP \'0-0-0 0:0:0\' AND TIMESTAMP \'', @time, '\'');
+PREPARE stmt_t1 FROM @query;
+EXECUTE stmt_t1;
+x  y
+0  100
+1  101
+2  102
+3  103
+4  104
+5  105
+6  106
+7  107
+8  108
+9  109
+3  33
+SET @time=NULL;
+SET @query=NULL;
+DEALLOCATE PREPARE stmt_t1;
+DROP TABLE t1;

Git: delete upstream tags

Command used to delete tags:

git push --delete origin 'mariadb-10.1.0'
git push --delete origin $(git ls-remote --tags origin|(while read a t; do echo ${t#refs/tags/}; done))

Configure nightly builds (Jenkins)

Jenkins box: sunny.my.to

  • Create simple job for building MariaDB and run full test suite;
  • Tests skipping;
  • Setup schedule to run nightly: nightly builds must be separate jenkins Item (mariadb-nightly vs mariadb-manual);
  • Tell how many rejects available, forge scp command to copy test rejects from Jenkins box to localhost;
  • Backup Jenkins config (see Administering Jenkins);
  • Parse tests output to generate JUnit report, probably with the help of xUnit (some info here and here). Parsing should recognize failure cause:
tokudb.bf_delete                         [ fail ]  timeout after 900 seconds
  • JUnit report should contain each test run time;
  • Setup status badge (Embeddable Build Status).

Tests fixes

  • multi-delete: delete t1, t2 from t1 join t2 where t1.y = 3 and t2.y = 32;
  • multiple update same row in single transaction:
start transaction;
update t1 set y = y + 1 where x = 3;
update t1 set y = y + 1 where x = 3;
commit;
  • INNER JOIN of two versioned tables at point in past:
select * from t1, t2 for system_time as of timestamp '2016-10-13';
select t1.x as x1, t2.x as x2 from t1 inner join t2 for system_time as of timestamp '2016-10-13';
select t1.x as x1, t2.x as x2 from t1 inner join t2 on x1 = x2 for system_time as of timestamp '2016-10-13';
  • LEFT JOIN, RIGHT JOIN:
drop table if exists t3;
drop table if exists t4;
create table t3 (x int, y int) with system versioning;
create table t4 (x int, y int) with system versioning;
insert into t3 values (1, 1), (1, 2), (1, 3), (4, 4), (5, 5);
insert into t4 values (1, 2), (2, 1), (3, 1);
select t3.*, t4.* from t3 left join t4 on t3.x = t4.x;
select t3.*, t4.* from t3 right join t4 on t3.x = t4.x;
  • add cases from #47

Git: delete non-natsys branches

Command used to delete branches:

git branch -r |
$(which grep) -E "^\s*origin" |
$(which grep) -Ev 'HEAD|/natsys/|/10.[012]$' |
while read branch;
    do branch=${branch#origin/};
    echo $branch;
    git push origin --delete $branch;
done

SELECT statement after UPDATE doesn't work

In mysql-test/t/update.test there is a test for update statement over versioned table. Unfortunately, the test doesn't work. Command:

SELECT x, y FROM t1;

Returns both historical and up-to-date data. When the same commands are run from client then everything works.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.