Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-29337

CONNECT BIN unsigned fails on DISTRIB=sorted

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.8.4, 10.9.2, 10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL)
    • 10.5, 10.6
    • None

    Description

      create a CONNECT BIN table with a unsigned field is not creating the .bop block_index file,
      also fails on optimize table as well.:

      create table tm (
       time INT4 unsigned not null DEFAULT 0 field_format='X' DISTRIB=sorted,
       data INT4 unsigned not null DEFAULT 0 field_format='X'
      ) engine=CONNECT table_type=BIN block_size=128  file_name='tm.dat';
      

      then INSERT 1000 rows,

      MariaDB [test]> select * from tm limit 10;
       
      | time       | data    |
       
      | 1651378127 | 7447060 |
      | 1651378187 | 6197231 |
      | 1651378288 | 9090561 |
      | 1651378390 | 9525601 |
      | 1651378451 | 4827450 |
      | 1651378511 | 4905942 |
      | 1651378579 | 5260349 |
      

      no tm.bop file shows up:

      -rw-rw---- 1 mysql mysql 8000 Aug 19 14:31 tm.dat
      -rw-rw---- 1 mysql mysql  565 Aug 19 14:31 tm.frm
      

      Optimize fails as well:

      MariaDB [test]> optimize table tm;
       
      | Table   | Op       | Msg_type | Msg_text                                      |
       
      | test.tm | optimize | Error    | Non matching Value types                      |
      | test.tm | optimize | error    | Unknown - internal error 122 during operation |
       
      2 rows in set (0.000 sec)
      

      Recreate table with signed

      drop table tm;
      create table tm (
       time INT4 not null DEFAULT 0 field_format='X' DISTRIB=sorted,
       data INT4 unsigned not null DEFAULT 0 field_format='X'
      ) engine=CONNECT table_type=BIN block_size=128  file_name='tm.dat';

      update tm set time=time-1 limit 1;
      update tm set time=time+1 limit 1

      Now we have tm.bop file:

      -rw-rw---- 1 mysql mysql   80 Aug 19 14:33 tm.bop
      -rw-rw---- 1 mysql mysql 8000 Aug 19 14:33 tm.dat
      -rw-rw---- 1 mysql mysql  565 Aug 19 14:33 tm.frm
      

      And also optimize works

      MariaDB [test]> optimize table tm;
       
      | Table   | Op       | Msg_type | Msg_text |
       
      | test.tm | optimize | status   | OK       |
       
      1 row in set (0.000 sec)
      

      So there seems to be an issue with unsigned types (I tried short as well) and this DISTRIB sorted

      Attachments

        Activity

          alice Alice Sherepa added a comment -

          Thanks for the report!
          I repeated as described.
          To repeat the bug it needs unsigned + DISTRIB=sorted + block_size.
          With signed int and no update manipulations - I get "internal error 145 during operation " after optimize table.

          MariaDB [test]> create table t8 ( a INT unsigned DISTRIB=sorted) engine=CONNECT table_type=BIN block_size=100  file_name='t8.dat';
          Query OK, 0 rows affected (0.016 sec)
           
          MariaDB [test]> insert into t8 select seq from seq_1_to_1000;
          Query OK, 1000 rows affected, 1 warning (0.001 sec)
          Records: 1000  Duplicates: 0  Warnings: 0
           
          Warning (Code 1105): Non matching Value types
          MariaDB [test]> optimize table t8;
          +---------+----------+----------+-----------------------------------------------+
          | Table   | Op       | Msg_type | Msg_text                                      |
          +---------+----------+----------+-----------------------------------------------+
          | test.t8 | optimize | Error    | Non matching Value types                      |
          | test.t8 | optimize | error    | Unknown - internal error 122 during operation |
          +---------+----------+----------+-----------------------------------------------+
          2 rows in set (0.001 sec)
           
          MariaDB [test]> create table t9 ( a INT unsigned DISTRIB=sorted) engine=CONNECT table_type=BIN   file_name='t9.dat';
          Query OK, 0 rows affected (0.016 sec)
           
          MariaDB [test]> insert into t9 select seq from seq_1_to_1000;
          Query OK, 1000 rows affected (0.001 sec)
          Records: 1000  Duplicates: 0  Warnings: 0
           
          MariaDB [test]> optimize table t9;
          +---------+----------+----------+--------------------------+
          | Table   | Op       | Msg_type | Msg_text                 |
          +---------+----------+----------+--------------------------+
          | test.t9 | optimize | Warning  | Not an optimizable table |
          | test.t9 | optimize | status   | OK                       |
          +---------+----------+----------+--------------------------+
          2 rows in set (0.000 sec)
          

          MariaDB [test]> create table tm ( a int not null  DISTRIB=sorted ) engine=CONNECT table_type=BIN block_size=128 file_name='a.dat';
          Query OK, 0 rows affected (0.017 sec)
           
          MariaDB [test]> insert into tm select seq from seq_1_to_1000;
          Query OK, 1000 rows affected, 1 warning (0.002 sec)
          Records: 1000  Duplicates: 0  Warnings: 0
           
          Warning (Code 1105): Column a of table tm is not sorted
          MariaDB [test]> optimize table tm;
          +---------+----------+----------+-----------------------------------------------+
          | Table   | Op       | Msg_type | Msg_text                                      |
          +---------+----------+----------+-----------------------------------------------+
          | test.tm | optimize | Error    | Column a of table tm is not sorted            |
          | test.tm | optimize | error    | Unknown - internal error 145 during operation |
          +---------+----------+----------+-----------------------------------------------+
          2 rows in set (0.001 sec)
           
          MariaDB [test]> create table tm2 ( a int not null  DISTRIB=sorted ) engine=CONNECT table_type=BIN block_size=128 file_name='b.dat';
          Query OK, 0 rows affected (0.022 sec)
           
          MariaDB [test]> insert into tm2 select seq from seq_1_to_1000;
          Query OK, 1000 rows affected (0.001 sec)
          Records: 1000  Duplicates: 0  Warnings: 0
           
          MariaDB [test]> update tm2 set a=a-1 limit 1;
          Query OK, 1 row affected (0.001 sec)
          Rows matched: 1  Changed: 1  Warnings: 0
           
          MariaDB [test]> update tm2 set a=a+1 limit 1;
          Query OK, 1 row affected (0.001 sec)
          Rows matched: 1  Changed: 1  Warnings: 0
           
          MariaDB [test]> optimize table tm2;
          +----------+----------+----------+----------+
          | Table    | Op       | Msg_type | Msg_text |
          +----------+----------+----------+----------+
          | test.tm2 | optimize | status   | OK       |
          +----------+----------+----------+----------+
          1 row in set (0.001 sec)
          

          alice Alice Sherepa added a comment - Thanks for the report! I repeated as described. To repeat the bug it needs unsigned + DISTRIB=sorted + block_size. With signed int and no update manipulations - I get "internal error 145 during operation " after optimize table. MariaDB [test]> create table t8 ( a INT unsigned DISTRIB=sorted) engine=CONNECT table_type=BIN block_size=100 file_name='t8.dat'; Query OK, 0 rows affected (0.016 sec)   MariaDB [test]> insert into t8 select seq from seq_1_to_1000; Query OK, 1000 rows affected, 1 warning (0.001 sec) Records: 1000 Duplicates: 0 Warnings: 0   Warning (Code 1105): Non matching Value types MariaDB [test]> optimize table t8; +---------+----------+----------+-----------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------+----------+----------+-----------------------------------------------+ | test.t8 | optimize | Error | Non matching Value types | | test.t8 | optimize | error | Unknown - internal error 122 during operation | +---------+----------+----------+-----------------------------------------------+ 2 rows in set (0.001 sec)   MariaDB [test]> create table t9 ( a INT unsigned DISTRIB=sorted) engine=CONNECT table_type=BIN file_name='t9.dat'; Query OK, 0 rows affected (0.016 sec)   MariaDB [test]> insert into t9 select seq from seq_1_to_1000; Query OK, 1000 rows affected (0.001 sec) Records: 1000 Duplicates: 0 Warnings: 0   MariaDB [test]> optimize table t9; +---------+----------+----------+--------------------------+ | Table | Op | Msg_type | Msg_text | +---------+----------+----------+--------------------------+ | test.t9 | optimize | Warning | Not an optimizable table | | test.t9 | optimize | status | OK | +---------+----------+----------+--------------------------+ 2 rows in set (0.000 sec) MariaDB [test]> create table tm ( a int not null DISTRIB=sorted ) engine=CONNECT table_type=BIN block_size=128 file_name='a.dat'; Query OK, 0 rows affected (0.017 sec)   MariaDB [test]> insert into tm select seq from seq_1_to_1000; Query OK, 1000 rows affected, 1 warning (0.002 sec) Records: 1000 Duplicates: 0 Warnings: 0   Warning (Code 1105): Column a of table tm is not sorted MariaDB [test]> optimize table tm; +---------+----------+----------+-----------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------+----------+----------+-----------------------------------------------+ | test.tm | optimize | Error | Column a of table tm is not sorted | | test.tm | optimize | error | Unknown - internal error 145 during operation | +---------+----------+----------+-----------------------------------------------+ 2 rows in set (0.001 sec)   MariaDB [test]> create table tm2 ( a int not null DISTRIB=sorted ) engine=CONNECT table_type=BIN block_size=128 file_name='b.dat'; Query OK, 0 rows affected (0.022 sec)   MariaDB [test]> insert into tm2 select seq from seq_1_to_1000; Query OK, 1000 rows affected (0.001 sec) Records: 1000 Duplicates: 0 Warnings: 0   MariaDB [test]> update tm2 set a=a-1 limit 1; Query OK, 1 row affected (0.001 sec) Rows matched: 1 Changed: 1 Warnings: 0   MariaDB [test]> update tm2 set a=a+1 limit 1; Query OK, 1 row affected (0.001 sec) Rows matched: 1 Changed: 1 Warnings: 0   MariaDB [test]> optimize table tm2; +----------+----------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------+----------+----------+----------+ | test.tm2 | optimize | status | OK | +----------+----------+----------+----------+ 1 row in set (0.001 sec)

          People

            Unassigned Unassigned
            catam catam
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.