Skip to content

Commit

Permalink
[case]add ZT case (apache#27)
Browse files Browse the repository at this point in the history
add ZT case
  • Loading branch information
zy-kkk committed Aug 1, 2022
1 parent 4378c7b commit 79d0733
Show file tree
Hide file tree
Showing 10 changed files with 254 additions and 0 deletions.
4 changes: 4 additions & 0 deletions regression-test/data/usercases/ZT/sql/q01.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !q01 --
gxy_null 1

7 changes: 7 additions & 0 deletions regression-test/data/usercases/ZT/sql/q02.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !q02 --
2022-08-02 1

-- !q02_2 --
2022-08-01 1

4 changes: 4 additions & 0 deletions regression-test/data/usercases/ZT/sql/q03.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !q03 --
2022-08-01,2022-08-01 1

54 changes: 54 additions & 0 deletions regression-test/suites/usercases/ZT/ddl/gxy_internship_records.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
CREATE TABLE `gxy_internship_records`
(
`student_id` bigint(20) NOT NULL COMMENT "学生id",
`batch_id` varchar(32) NOT NULL COMMENT "批次id",
`practice_type` tinyint(4) NULL COMMENT "1[顶岗] 2【跟岗】0免实习",
`modified_time` datetime NULL COMMENT "更新时间",
`is_deleted` tinyint(4) NULL DEFAULT "0" COMMENT "是否删除",
`is_auto` tinyint(4) NULL COMMENT "是否统一安排(1是 0否)",
`is_security` tinyint(4) NULL COMMENT "是否安全(1是 0否)",
`is_holiday_practice` tinyint(4) NULL COMMENT "是否法定节假日实习(1是 0否)",
`is_night_word` tinyint(4) NULL COMMENT "是否加班和夜班(1是 0否)",
`province` varchar(255) NULL COMMENT "",
`city` varchar(255) NULL COMMENT "",
`area` varchar(255) NULL COMMENT "",
`is_protocol` tinyint(4) NULL COMMENT "是否签署三方协议(1是 0否)",
`is_insurance` tinyint(4) NULL COMMENT "是否为学生买保险(1是 0否)",
`is_salary` tinyint(4) NULL COMMENT "是否有薪资(1 是 0否)",
`about_type` varchar(255) NULL COMMENT "免实习类型",
`address` varchar(500) NULL COMMENT "地址",
`company_name` varchar(255) NULL COMMENT "实习单位",
`company_type` tinyint(4) NULL COMMENT "单位性质",
`company_type_value` varchar(255) NULL COMMENT "性质值",
`description` varchar(1000) NULL COMMENT "备注",
`is_major_right` tinyint(4) NULL COMMENT "专业是否对口(1是0否)",
`is_change` tinyint(4) NULL COMMENT "是否企业变更(1是0否)",
`company_code` varchar(255) NULL COMMENT "企业信用代码",
`people_num` int(11) NULL COMMENT "企业规模",
`trade_type` tinyint(4) NULL COMMENT "行业类别",
`trade_value` varchar(255) NULL COMMENT "行业类别值",
`job_salary` int(11) NULL COMMENT "薪资",
`create_by` varchar(32) NULL COMMENT "",
`plan_name` varchar(255) NULL COMMENT "实习计划名称",
`plan_start_time` datetime NULL COMMENT "实习开始时间",
`plan_end_time` datetime NULL COMMENT "实习结束时间",
`job_name` varchar(255) NULL COMMENT "实习岗位名称",
`job_province` varchar(100) NULL COMMENT "工作岗位所在省份",
`job_city` varchar(100) NULL COMMENT "工作岗位所在地级市",
`is_stay` tinyint(4) NULL COMMENT "是否提供宿舍",
`teacher` varchar(100) NULL COMMENT "指导老师",
`teacher_phone` varchar(100) NULL COMMENT "指导老师联系电话",
`company_teacher` varchar(100) NULL COMMENT "企业老师",
`company_teacher_phone` varchar(100) NULL COMMENT "企业老师联系电话",
`salary` varchar(100) NULL COMMENT "实习薪酬",
`plan_scores` varchar(100) NULL COMMENT "实习考核成绩",
`attachments` varchar(500) NULL COMMENT "三方协议url"
) ENGINE=OLAP
UNIQUE KEY(`student_id`, `batch_id`, `practice_type`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`student_id`) BUCKETS 20
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2"
);
19 changes: 19 additions & 0 deletions regression-test/suites/usercases/ZT/ddl/gxy_school.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
CREATE TABLE `gxy_school`
(
`school_id` bigint(20) NOT NULL COMMENT "唯一主键",
`school_name` varchar(255) NULL COMMENT "学校名称",
`is_deleted` tinyint(4) NULL DEFAULT "0" COMMENT "是否删除",
`school_code` varchar(255) NULL COMMENT "学校代码",
`province` varchar(255) NULL COMMENT "学校省",
`city` varchar(255) NULL COMMENT "学校市",
`area` varchar(255) NULL COMMENT "学校区",
`level` varchar(255) NULL COMMENT "层次"
) ENGINE=OLAP
UNIQUE KEY(`school_id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`school_id`) BUCKETS 20
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2"
)
45 changes: 45 additions & 0 deletions regression-test/suites/usercases/ZT/ddl/gxy_students.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
CREATE TABLE `gxy_students`
(
`student_id` bigint(20) NOT NULL COMMENT "唯一主键",
`batch_id` varchar(32) NULL COMMENT "批次id",
`is_deleted` tinyint(4) NULL DEFAULT "0" COMMENT "是否删除",
`modified_time` datetime NULL COMMENT "更新时间",
`school_name` varchar(255) NULL COMMENT "学校Id",
`student_name` varchar(255) NULL COMMENT "姓名",
`gender` tinyint(4) NULL COMMENT "性别",
`academe_name` varchar(255) NULL COMMENT "院系ID",
`major_name` varchar(255) NULL COMMENT "专业Id",
`classes_name` varchar(255) NULL COMMENT "班级Id",
`student_number` varchar(255) NULL COMMENT "学号",
`mobile` varchar(255) NULL COMMENT "手机号",
`family_name` varchar(255) NULL COMMENT "家长姓名",
`family_mobile` varchar(255) NULL COMMENT "家长电话",
`family_address` varchar(255) NULL COMMENT "家庭详细地址",
`family_province` varchar(255) NULL COMMENT "家庭省",
`family_city` varchar(255) NULL COMMENT "家庭市",
`family_area` varchar(255) NULL COMMENT "家庭区",
`grade` varchar(255) NULL COMMENT "年级",
`birthday` date NULL COMMENT "生日",
`nation` varchar(255) NULL COMMENT "民族",
`origin_province` varchar(255) NULL COMMENT "生源省",
`origin_city` varchar(255) NULL COMMENT "生源市",
`card_no` varchar(255) NULL COMMENT "身份证",
`email` varchar(255) NULL COMMENT "邮箱",
`level` varchar(255) NULL DEFAULT "" COMMENT "专业层次",
`practice_state` tinyint(4) NULL COMMENT "实习状态((1待分配,2已分配,3实习中,4实习完毕 5不参加实习))",
`job_state` tinyint(4) NULL COMMENT "在岗状态(1在岗 0不在岗)",
`educational` varchar(100) NULL COMMENT "学制(一年, 二年 ,三年,四年)",
`major_field` varchar(100) NULL COMMENT "专业方向",
`is_practice` tinyint(4) NULL COMMENT "是否参与实习(1参与实习 0免实习)",
`about_type` int(11) NULL COMMENT "不参加实习的去向",
`age` int(11) NULL COMMENT "年龄",
`create_by` varchar(32) NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`student_id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`student_id`) BUCKETS 20
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2"
)
66 changes: 66 additions & 0 deletions regression-test/suites/usercases/ZT/load.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

// The cases is copied from https://github.com/trinodb/trino/tree/master
// /testing/trino-product-tests/src/main/resources/sql-tests/testcases/tpcds
// and modified by Doris.
suite("load") {
def tables =
[
"gxy_internship_records",
"gxy_school",
"gxy_students"
]
for (String table in tables) {
sql """DROP TABLE IF EXISTS ${table}"""
sql new File("""${context.file.parent}/ddl/${table}.sql""").text
}

sql """
INSERT INTO gxy_internship_records (student_id,batch_id,practice_type,modified_time,is_deleted,is_auto,is_security,is_holiday_practice,is_night_word,province,city,area,is_protocol,is_insurance,is_salary,about_type,address,company_name,company_type,company_type_value,description,is_major_right,is_change,company_code,people_num,trade_type,trade_value,job_salary,create_by,plan_name,plan_start_time,plan_end_time,job_name,job_province,job_city,is_stay,teacher,teacher_phone,company_teacher,company_teacher_phone,salary,plan_scores,attachments) VALUES
(5,'Guinea-Bissau',1,'2022-08-01 00:00:00',1,1,0,1,0,'Morocco','Greenland','Kazakhstan',0,0,1,'Libya','Timor-Leste','Bermuda',1,'Fiji','Saint Lucia',0,0,'Liechtenstein',3,1,'Belgium',3,'French Polynesia','Yugoslavia','2022-08-01 00:00:00','2022-08-01 00:00:00',NULL,'Netherlands','Benin',0,'India','Spain','Korea, North','Benin','Malaysia','Benin','British Indian Ocean Territory'),
(5,'Saint Barthelemy',1,'2022-08-01 00:00:00',1,1,0,1,0,'Guyana','Germany','Nepal',1,1,1,'Guatemala','Montenegro','Jersey',0,'Cambodia','Guinea-Bissau',NULL,0,'Poland',5,1,NULL,5,'Austria','Puerto Rico','2022-08-01 00:00:00','2022-08-01 00:00:00','Mayotte','Bahamas',NULL,1,'Belarus','Wallis and Futuna Islands','Korea, South','Chad','Cambodia','Chad','Åland'),
(10,'Brunei Darussalam',0,'2022-08-01 00:00:00',0,1,0,NULL,1,'Wallis and Futuna Islands','Tokelau','Monaco',0,1,0,'Tuvalu','Christmas Island','Portugal',0,'Guinea-Bissau','Mayotte',0,1,'Iran',1,0,'Uzbekistan',4,'Georgia','Korea, South','2022-08-01 00:00:00','2022-08-01 00:00:00','Ethiopia','Panama','Palestinian Territory, Occupied',0,'Morocco','Mali','Jordan','Finland','Botswana','Samoa','Ethiopia'),
(10,'Guatemala',1,'2022-08-01 00:00:00',0,1,0,1,0,'Maldives','Lithuania','Georgia',1,0,0,'Paraguay','Oman','India',0,'Western Sahara','Netherlands Antilles',0,0,'Trinidad and Tobago',5,0,'Kazakhstan',6,'Zimbabwe','Colombia','2022-08-01 00:00:00','2022-08-01 00:00:00','Somalia','Norway','Guernsey',1,'Ireland','Zambia','Maldives','Cape Verde','Tajikistan','Åland','Gibraltar'),
(10,'Guyana',1,'2022-08-01 00:00:00',0,0,0,0,1,'Cook Islands','Egypt','New Zealand',0,1,1,'Congo, Democratic Republic of','Philippines','Armenia',1,'Zambia','Nicaragua',NULL,1,'Reunion',8,0,'Qatar',1,'China','Portugal','2022-08-01 00:00:00','2022-08-01 00:00:00','Tokelau','Monaco','Jersey',0,'Madagascar','Kyrgyzstan','Malaysia','Heard and McDonald Islands','Chad','Suriname','Lesotho'),
(6,'British Indian Ocean Territory',1,'2022-08-01 00:00:00',0,1,0,0,1,'Malaysia','USSR',NULL,0,0,0,'Mongolia','Bahrain','Belgium',1,'Åland','French Polynesia',1,1,'Senegal',5,0,'Brunei Darussalam',1,'Mongolia','French Southern Territories','2022-08-01 00:00:00','2022-08-01 00:00:00','Belize','Mauritania','Sao Tome and Principe',0,'Micronesia','Malawi','Maldives','Somalia','Cocos (Keeling) Island','Aruba','Cambodia'),
(6,'Peru',1,'2022-08-01 00:00:00',1,0,1,NULL,1,'Iceland','Mexico','San Marino',0,0,1,'Northern Mariana Islands','Poland','USSR',1,'Macau','Cayman Islands',0,0,'Togo',2,1,'Tanzania',5,'Georgia','Bouvet Island','2022-08-01 00:00:00','2022-08-01 00:00:00','Iraq','Laos','Antigua and Barbuda',1,'Guinea-Bissau','Mozambique',NULL,'Cuba','Finland','Portugal',NULL),
(6,'Timor-Leste',0,'2022-08-01 00:00:00',1,1,1,0,0,'Ascension Island','Vatican City State (Holy See)','Mali',1,0,NULL,'Nicaragua','Kiribati','Jamaica',0,'Anguilla','Colombia',1,0,'Saint Lucia',8,0,'Namibia',10,'Russia','Kiribati','2022-08-01 00:00:00','2022-08-01 00:00:00','Hungary','Lesotho','Australia',0,'Hungary',NULL,'Saint Kitts and Nevis','Lithuania','Aruba','Maldives','Eritrea'),
(6,'Wallis and Futuna Islands',1,'2022-08-01 00:00:00',0,NULL,1,1,1,'Uruguay','Estonia','Guinea-Bissau',1,0,0,'Rwanda','Tunisia','Liberia',0,'Northern Mariana Islands','Heard and McDonald Islands',1,1,'Namibia',4,0,'Jamaica',5,'Dominica','Yemen',NULL,'2022-08-01 00:00:00','Malaysia','Malaysia','Djibouti',0,'Poland','Uzbekistan','Nauru','Cocos (Keeling) Island','Uzbekistan','US Minor Outlying Islands','Russia'),
(8,'French Guiana',1,'2022-08-01 00:00:00',1,NULL,0,1,0,'Guyana','Liechtenstein','Tonga',1,1,1,'Korea, South','Hungary','Liechtenstein',0,'Congo, Republic of','Saint Martin',0,0,'Jamaica',3,1,'Jersey',9,'Falkland Islands (Malvinas)','Georgia','2022-08-01 00:00:00','2022-08-01 00:00:00','Guam','Pakistan','Nauru',1,'Laos','Netherlands','Italy','Suriname','Trinidad and Tobago','Bolivia','Solomon Islands');
"""
sql """
INSERT INTO gxy_school (school_id,school_name,is_deleted,school_code,province,city,area,`level`) VALUES
(6,'Andorra',0,'Sao Tome and Principe','Ascension Island','Denmark','Cayman Islands','Botswana'),
(2,'Bouvet Island',NULL,'Jamaica','Jersey','South Georgia and the South Sandwich Islands','Rwanda','Barbados'),
(8,'Yemen',1,'Grenada','Syria','United Arab Emirates','India',NULL),
(4,'Norway',1,'Tuvalu','Greece','Kyrgyzstan','Ghana','Uganda'),
(9,'Nepal',0,'Ecuador','Nicaragua','Finland','Seychelles','United States of America'),
(5,'Dominica',1,'Faroe Islands','Indonesia','Micronesia','Solomon Islands','Nicaragua');
"""

sql """
INSERT INTO gxy_students (student_id,batch_id,is_deleted,modified_time,school_name,student_name,gender,academe_name,major_name,classes_name,student_number,mobile,family_name,family_mobile,family_address,family_province,family_city,family_area,grade,birthday,nation,origin_province,origin_city,card_no,email,`level`,practice_state,job_state,educational,major_field,is_practice,about_type,age,create_by) VALUES
(3,'Seychelles',0,'2022-08-01 00:00:00','Andorra','United States Virgin Islands',1,'Kazakhstan','Yugoslavia','Bahamas','El Salvador','Ascension Island','Suriname','Tokelau','Vatican City State (Holy See)','Marshall Islands','Somalia','Zambia','Burkina Faso','2022-08-01','Saint Pierre and Miquelon','Monaco','Cuba','8OOi','Ethiopia','Austria',1,1,'Åland','Niue',NULL,8,10,'Spain'),
(1,'French Polynesia',0,'2022-08-01 00:00:00','Bouvet Island','Saint Barthelemy',1,'Cape Verde','Saint Helena','Czech Republic','Portugal','Korea, North','Togo','Dominica','Morocco','Belarus','South Georgia and the South Sandwich Islands',NULL,'Slovenia','2022-08-01','Suriname','Kuwait','Suriname','0Vp3aPeQn','Belarus','Laos',0,0,'Luxembourg','French Polynesia',1,7,8,'Malta'),
(4,'Yemen',1,'2022-08-01 00:00:00','Yemen','Turkmenistan',0,'Bosnia and Herzegovina','Christmas Island','Isle of Man',NULL,'Singapore','French Guiana','Morocco','Lesotho',NULL,'Barbados',NULL,'Andorra','2022-08-01','Liberia','Vanuatu','Tajikistan','lLur','Argentina','Ethiopia',0,0,'Barbados','Malaysia',0,7,7,'Guinea-Bissau'),
(5,'Bahrain',1,'2022-08-01 00:00:00','Netherlands Antilles','Congo, Republic of',1,'Marshall Islands','Azerbaijan','Jamaica','Kuwait','Åland','Togo','Canada','Benin','Monaco',NULL,'Sudan','Netherlands Antilles','2022-08-01','Cayman Islands','Argentina','Bhutan','uzC80a','South Africa','Solomon Islands',0,1,'Slovakia','Guatemala',1,10,2,'Chad'),
(9,'Mali',0,'2022-08-01 00:00:00','Norway','Faroe Islands',1,'Tokelau','Moldova','Tajikistan','Puerto Rico','Montenegro','Uganda','Israel','Algeria','Haiti','Malawi','Montserrat','Namibia','2022-08-01','Sweden','Nicaragua','Guadeloupe','Xm6HWUg','Cocos (Keeling) Island','Iran',0,1,'Mauritania','Philippines',0,NULL,1,'Guadeloupe'),
(2,'Kuwait',1,'2022-08-01 00:00:00','Nepal','Peru',NULL,'Vanuatu','Zambia','Philippines','Zimbabwe','Guernsey','Korea, North','Bolivia','Moldova','Mali','Svalbard and Jan Mayen Islands','Guyana','Ireland','2022-08-01','Burundi','Uganda','Sierra Leone','2LlLWH1','United States of America','Denmark',0,1,'Portugal','Slovakia',1,8,2,'Eritrea'),
(8,'Burkina Faso',1,'2022-08-01 00:00:00','Dominica','Tunisia',1,'Macedonia','Greenland','Trinidad and Tobago','Mayotte','Bhutan','Vatican City State (Holy See)','China','Tunisia',NULL,'Greece','Guernsey','Sierra Leone',NULL,'Chile','Isle of Man','Philippines','Gkz57','Faroe Islands','Georgia',1,0,'Netherlands Antilles','Gambia',0,5,6,'Yemen');
"""
}
13 changes: 13 additions & 0 deletions regression-test/suites/usercases/ZT/sql/q01.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
SELECT 'gxy_null' AS gxyKey,
COUNT(i.student_id) AS gxyValue
FROM gxy_internship_records AS i
JOIN gxy_students AS x ON i.student_id = x.student_id
JOIN gxy_school AS h ON x.school_name = h.school_name
WHERE NOT EXISTS
(SELECT *
FROM gxy_internship_records
WHERE i.student_id=student_id
AND i.practice_type<practice_type)
GROUP BY gxyKey
ORDER BY gxyKey DESC
;
26 changes: 26 additions & 0 deletions regression-test/suites/usercases/ZT/sql/q02.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
SELECT date_format(date_add(i.plan_end_time,INTERVAL 1 DAY),'%Y-%m-%d') AS DAY,
count(i.student_id)
FROM gxy_internship_records AS i
JOIN gxy_students AS x ON i.student_id = x.student_id
JOIN gxy_school AS h ON x.school_name = h.school_name
WHERE NOT EXISTS
(SELECT *
FROM gxy_internship_records
WHERE i.student_id=student_id
AND i.practice_type<practice_type)
GROUP BY DAY
ORDER BY DAY DESC
;

SELECT date_format(i.plan_start_time,'%Y-%m-%d') AS DAY,
count(i.student_id)
FROM gxy_internship_records AS i
JOIN gxy_students AS x ON i.student_id = x.student_id
JOIN gxy_school AS h ON x.school_name = h.school_name
WHERE NOT EXISTS
(SELECT *
FROM gxy_internship_records
WHERE i.student_id=student_id
AND i.practice_type<practice_type)
GROUP BY DAY
ORDER BY DAY;
16 changes: 16 additions & 0 deletions regression-test/suites/usercases/ZT/sql/q03.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
SELECT tag,
count(student_id) as value
FROM
( SELECT i.student_id,
'2022-08-01 00:00:00',
'2022-08-02 00:00:00',
CONCAT(if(datediff(i.plan_start_time,STR_TO_DATE('2022-08-01 00:00:00','%Y-%m-%d'))<0,'2022-08-01 00:00:00',date_format(i.plan_start_time,'%Y-%m-%d')),",",if(datediff(STR_TO_DATE('2022-08-02 00:00:00','%Y-%m-%d'),i.plan_end_time)<0,'2022-08-02 00:00:00',date_format(i.plan_end_time,'%Y-%m-%d'))) AS tag
FROM gxy_internship_records AS i
JOIN gxy_students AS x ON i.student_id = x.student_id
JOIN gxy_school AS h ON x.school_name = h.school_name
WHERE NOT EXISTS
(SELECT *
FROM gxy_internship_records
WHERE i.student_id=student_id
AND i.practice_type<practice_type) ) m
GROUP BY tag;

0 comments on commit 79d0733

Please sign in to comment.