github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/ddl/comprimary_key.sql (about)

     1  -- env statement prepare
     2  drop table if exists ex_table_cpk;
     3  drop table if exists cpk_table_1;
     4  drop table if exists cpk_table_1_pk;
     5  drop table if exists cpk_table_2;
     6  drop table if exists cpk_table_3;
     7  drop table if exists cpk_table_3_pk;
     8  drop table if exists cpk_table_4;
     9  drop table if exists cpk_table_5;
    10  drop table if exists cpk_table_6;
    11  drop table if exists cpk_table_7;
    12  drop table if exists cpk_table_8;
    13  drop table if exists cpk_table_9;
    14  drop table if exists cpk_table_10;
    15  drop table if exists cpk_table_11;
    16  drop table if exists cpk_table_42;
    17  drop table if exists cpk_table_43;
    18  create external table ex_table_cpk(clo1 tinyint,clo2 smallint,clo3 int,clo4 bigint,clo5 tinyint unsigned,clo6 smallint unsigned,clo7 int unsigned,clo8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255))infile{"filepath"='$resources/external_table_file/cpk_table_1.csv'} ;
    19  
    20  -- 复合主键int+varchar
    21  create table cpk_table_1(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col3, col18));
    22  insert into cpk_table_1 select * from ex_table_cpk;
    23  select col3,col18 from cpk_table_1;
    24  -- 唯一性验证
    25  insert into cpk_table_1 select * from ex_table_cpk;
    26  
    27  -- 复合主键tinyint+datetime+int
    28  create  table  cpk_table_2(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col1,col12,col3));
    29  insert into cpk_table_2 select * from ex_table_cpk;
    30  select col1,col12,col3 from cpk_table_2;
    31  -- 唯一性验证
    32  insert into cpk_table_2 select * from ex_table_cpk;
    33  
    34  -- 复合主键smallint+float+timestamp+varchar
    35  create  table  cpk_table_3(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col2,col9,col14,col20));
    36  insert into cpk_table_3 select * from ex_table_cpk;
    37  select col2,col9,col14,col20 from cpk_table_3;
    38  -- 唯一性验证
    39  create  table  cpk_table_3_pk(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col2,col9,col14,col19));
    40  -- @bvt:issue#6261
    41  insert into cpk_table_3_pk select * from ex_table_cpk;
    42  -- @bvt:issue
    43  -- 复合主键bigint+tinyint unsigned+DateTime+ decimal+double
    44  create  table  cpk_table_4(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col4,col5,col13,col10,col6));
    45  insert into cpk_table_4 select * from ex_table_cpk;
    46  select col4,col5,col13,col10,col16 from cpk_table_4;
    47  -- 唯一性验证
    48  -- @bvt:issue#6261
    49  insert into cpk_table_4 select * from ex_table_cpk;
    50  -- @bvt:issue
    51  -- 复合主键smallint unsigned+int unsigned+bigint unsigned+char+bool+varchar
    52  create  table  cpk_table_5(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 char(255),col19 varchar(255),col20 varchar(255),primary key(col6,col7,col8,col18,col16,col19));
    53  insert into cpk_table_5 select * from ex_table_cpk;
    54  select col6,col7,col8,col18,col16,col19 from cpk_table_5;
    55  -- 唯一性验证
    56  -- @bvt:issue#6261
    57  insert into cpk_table_5 select * from ex_table_cpk;
    58  -- @bvt:issue
    59  show create table cpk_table_5;
    60  
    61  -- 复合主键19个
    62  create  table  cpk_table_6(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 char(255),col19 varchar(255),col20 varchar(255),primary key(col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,col15,col16,col18,col19,col20));
    63  insert into cpk_table_6 select * from ex_table_cpk;
    64  select * from cpk_table_6;
    65  -- 唯一性验证
    66  -- @bvt:issue#6261
    67  insert into cpk_table_6 select * from ex_table_cpk;
    68  -- @bvt:issue
    69  -- 异常:复合主键列部分不存在
    70  create table cpk_table_7(a int,b float,c char(20),primary key(a,d));
    71  create table cpk_table_8(a int,b float,c char(20),primary key(e,f));
    72  
    73  -- 部分复合主键有空值
    74  create table cpk_table_9(col1 int,col2 varchar(255),col3 timestamp, col4 double,col5 date,primary key(col1, col2,col5));
    75  insert into cpk_table_9 values (3,'','2019-02-10 00:00:00',78.90,'2001-07-10');
    76  insert into cpk_table_9 values (4,'beijing','2019-02-10 00:00:00',78.90,NULL);
    77  
    78  -- 异常:全部有空值
    79  insert into cpk_table_9 values (NULL,NULL,'2019-02-10 00:00:00',78.90,NULL);
    80  
    81  -- 异常:复合主键出现重复字段名
    82  create table cpk_table_10(col1 tinyint,col2 smallint,col3 int,col4 bigint,col5 tinyint unsigned,col6 smallint unsigned,col7 int unsigned,col8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(col3,col11,col12,col3));
    83  create table cpk_table_10(col1 int,col2 text,col3 double,primary key(col1,col2));
    84  -- load data
    85  create table cpk_table_11(clo1 tinyint,clo2 smallint,clo3 int,clo4 bigint,clo5 tinyint unsigned,clo6 smallint unsigned,clo7 int unsigned,clo8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(clo3, col19));
    86  load data infile '$resources/external_table_file/ex_table_sep_1.csv' into table cpk_table_11 fields terminated by '|' enclosed by '\"';
    87  
    88  -- insert into select xxx
    89  create table cpk_table_42(clo1 tinyint,clo2 smallint,clo3 int,clo4 bigint,clo5 tinyint unsigned,clo6 smallint unsigned,clo7 int unsigned,clo8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255));
    90  insert into cpk_table_42  select * from ex_table_cpk;
    91  create table cpk_table_43(clo1 tinyint,clo2 smallint,clo3 int,clo4 bigint,clo5 tinyint unsigned,clo6 smallint unsigned,clo7 int unsigned,clo8 bigint unsigned,col9 float,col10 double,col11 varchar(255),col12 Date,col13 DateTime,col14 timestamp,col15 bool,col16 decimal(5,2),col17 text,col18 varchar(255),col19 varchar(255),col20 varchar(255),primary key(clo4, col14,col20));
    92  insert into cpk_table_43 select * from cpk_table_42;
    93  select clo4, col14,col20 from cpk_table_43;
    94  -- insert into values
    95  insert into cpk_table_43 values(8,11,1,9,15,600,700,56,3.4365,5.5590,"math","2020-04-30","1999-08-07 00:00:00","1975-09-09 23:59:59",true,602.53,"abcdefg","message","s@126.com","balabalabalabalabala");
    96  select clo4, col14,col20 from cpk_table_43;
    97  -- insert into 无复合主键表 select 复合主键表
    98  insert into cpk_table_42 select * from cpk_table_43;
    99  select clo4, col14,col20 from cpk_table_43;
   100  
   101  -- test cases for external table with null values
   102  drop table if exists rawlog_withnull;
   103  CREATE external TABLE rawlog_withnull (
   104  `raw_item` VARCHAR(1024),
   105  `node_uuid` VARCHAR(36),
   106  `node_type` VARCHAR(64),
   107  `span_id` VARCHAR(16),
   108  `statement_id` VARCHAR(36),
   109  `logger_name` VARCHAR(1024),
   110  `timestamp` DATETIME,
   111  `level` VARCHAR(1024),
   112  `caller` VARCHAR(1024),
   113  `message` TEXT,
   114  `extra` JSON,
   115  `err_code` VARCHAR(1024),
   116  `error` TEXT,
   117  `stack` VARCHAR(4096),
   118  `span_name` VARCHAR(1024),
   119  `parent_span_id` VARCHAR(16),
   120  `start_time` DATETIME,
   121  `end_time` DATETIME,
   122  `duration` BIGINT UNSIGNED,
   123  `resource` JSON)
   124  infile{"filepath"='$resources/external_table_file/rawlog_withnull.csv'} fields terminated by ',' enclosed by '\"' lines terminated by '\n';
   125  select raw_item,node_uuid,node_type,span_id,statement_id,logger_name,timestamp from rawlog_withnull order by 1 limit 1;
   126  drop table if exists rawlog_withnull;