From 56c67a442aa4b68b1b731908600fafc5b7d48cb9 Mon Sep 17 00:00:00 2001 From: zhangy5 Date: Wed, 19 Jul 2023 14:05:56 +0800 Subject: [PATCH] [regression-test] add p0/p1 case about partition table (#21777) --- .../multi_partition/partition_table.csv | 30 ++ .../multi_partition/partition_table.out | 30 ++ .../partition_p0/test_partition_operation.out | 244 ++++++++++++++ .../test_range_partition.groovy | 297 ++++++++++++++++++ .../test_partition_operation.groovy | 284 +++++++++++++++++ .../test_partition_table_err_msg.groovy | 174 ++++++++++ 6 files changed, 1059 insertions(+) create mode 100644 regression-test/data/partition_p0/multi_partition/partition_table.csv create mode 100644 regression-test/data/partition_p0/multi_partition/partition_table.out create mode 100644 regression-test/data/partition_p0/test_partition_operation.out create mode 100644 regression-test/suites/partition_p0/multi_partition/test_range_partition.groovy create mode 100644 regression-test/suites/partition_p0/test_partition_operation.groovy create mode 100644 regression-test/suites/partition_p0/test_partition_table_err_msg.groovy diff --git a/regression-test/data/partition_p0/multi_partition/partition_table.csv b/regression-test/data/partition_p0/multi_partition/partition_table.csv new file mode 100644 index 0000000000..8175e398de --- /dev/null +++ b/regression-test/data/partition_p0/multi_partition/partition_table.csv @@ -0,0 +1,30 @@ +1,10,100,1000,100000,2011-01-01 00:00:00,2010-01-01,t,ynqnzeowymt,38.638843,180.998031,7395.231067 +2,20,200,2000,200000,2012-01-01 00:00:00,2010-01-02,f,hfkfwlr,506.044046,539.922834,2080.504502 +3,30,300,3000,300000,2013-01-01 00:00:00,2010-01-03,t,uoclasp,377.793209,577.044148,4605.253205 +4,40,400,4000,400000,2014-01-01 00:00:00,2010-01-04,n,iswngzeodfhptjzgswsddt,871.354536,919.067864,7291.703724 +5,50,500,5000,500000,2015-01-01 00:00:00,2010-01-05,a,sqodagzlyrmcelyxgcgcsfuxadcdt,462.067902,929.660783,3903.906901 +6,60,600,6000,600000,2016-01-01 00:00:00,2010-01-06,m,obdrei,921.867848,882.708491,6514.405051 +7,70,700,7000,700000,2017-01-01 00:00:00,2010-01-07,a,cuobdhvrgkugknj,141.656421,209.420112,8604.198677 +8,80,800,8000,800000,2018-01-01 00:00:00,2010-01-08,z,phcxztwgjllhmj,762.813376,285.664871,7784.859446 +9,90,900,9000,900000,2019-01-01 00:00:00,2010-01-09,b,nbarqjwilbkelk,92.702403,535.285510,4846.735593 +10,100,1000,10000,1000000,2020-01-01 00:00:00,2010-01-10,s,zucprgdnlgzzfl,26.874738,155.861217,7996.434686 +11,110,1100,11000,1100000,2021-01-01 00:00:00,2010-01-11,j,zabbwiimqemk,369.819134,558.999245,3821.278705 +12,120,1200,12000,1200000,2022-01-01 00:00:00,2010-01-12,d,elvkhacywhdzrazcvyunkjajnx,536.045037,181.877653,9334.300973 +13,130,1300,13000,1300000,2023-01-01 00:00:00,2010-01-13,x,cylgmxlmkkrkk,990.836863,909.667873,9103.804406 +14,140,1400,14000,1400000,2024-01-01 00:00:00,2010-01-14,s,vpzwml,763.615167,295.541079,9823.062496 +15,150,1500,15000,1500000,2025-01-01 00:00:00,2010-01-15,f,yvvstxajxtgrimmrveljjbwo,380.419929,391.329557,5859.241974 +16,160,1600,16000,1600000,2026-01-01 00:00:00,2010-01-16,b,yxtowesbeqyejvpfhkixpdw,312.933953,328.666079,9430.138013 +17,170,1700,17000,1700000,2027-01-01 00:00:00,2010-01-17,d,nrrzcgygjplgttf,472.844369,799.528036,3135.292842 +18,180,1800,18000,1800000,2028-01-01 00:00:00,2010-01-18,e,wfknyaxplas,971.549437,844.025534,9855.813711 +19,190,1900,19000,1900000,2029-01-01 00:00:00,2010-01-19,f,qtznw,37.568959,502.584396,3086.573874 +20,200,2000,20000,2000000,2030-01-01 00:00:00,2010-01-20,i,nwznneizhtmzemy,632.512198,972.561324,2698.863638 +21,210,2100,21000,2100000,2031-01-01 00:00:00,2010-01-21,q,sqqeanrmafdoheeizljifwsj,942.888716,933.754744,5185.373039 +22,220,2200,22000,2200000,2032-01-01 00:00:00,2010-01-22,h,tirlgqmwrchusfyxitxttvxlioknz,654.955955,69.032071,6221.348291 +23,230,2300,23000,2300000,2033-01-01 00:00:00,2010-01-23,s,imnrusvqy,468.780338,24.626005,7481.574657 +24,240,2400,24000,2400000,2034-01-01 00:00:00,2010-01-24,s,irpbe,537.906124,396.750845,3585.208809 +25,250,2500,25000,2500000,2035-01-01 00:00:00,2010-01-25,w,drpjerrdlel,662.123247,202.007097,6982.796060 +26,260,2600,26000,2600000,2036-01-01 00:00:00,2010-01-26,v,vmzutsaifmlimicshgjpsvhiowjnq,115.145598,64.115478,3046.839203 +27,270,2700,27000,2700000,2037-01-01 00:00:00,2010-01-27,d,yrxspxgcwgbnjnmqkcido,362.227207,519.383701,9921.135045 +28,280,2800,28000,2800000,2038-01-01 00:00:00,2010-01-28,w,udfzebgnnxfjnoujtvlib,443.030856,998.471600,4633.258698 +29,290,2900,29000,2900000,2039-01-01 00:00:00,2010-01-29,p,jfgvke,8.602754,248.265099,5465.010345 +30,300,3000,30000,3000000,2040-01-01 00:00:00,2010-01-30,d,tbuvpobzluhbwkljlhwnrkrhowybk,949.575593,976.266490,2579.668636 diff --git a/regression-test/data/partition_p0/multi_partition/partition_table.out b/regression-test/data/partition_p0/multi_partition/partition_table.out new file mode 100644 index 0000000000..884d25c7a0 --- /dev/null +++ b/regression-test/data/partition_p0/multi_partition/partition_table.out @@ -0,0 +1,30 @@ +1 10 100 1000 100000 2011-01-01T00:00 2010-01-01 t ynqnzeowymt 38.638844 180.998031 7395.2310670 +2 20 200 2000 200000 2012-01-01T00:00 2010-01-02 f hfkfwlr 506.04404 539.922834 2080.5045020 +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 diff --git a/regression-test/data/partition_p0/test_partition_operation.out b/regression-test/data/partition_p0/test_partition_operation.out new file mode 100644 index 0000000000..1a41d88fdd --- /dev/null +++ b/regression-test/data/partition_p0/test_partition_operation.out @@ -0,0 +1,244 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !sql1 -- +1 10 100 1000 100000 2011-01-01T00:00 2010-01-01 t ynqnzeowymt 38.638844 180.998031 7395.2310670 +2 20 200 2000 200000 2012-01-01T00:00 2010-01-02 f hfkfwlr 506.04404 539.922834 2080.5045020 +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 +50 500 5000 65535990 5000000 2060-01-01T00:00 2010-02-28 = asdfg 50.555 505.55522 545.0050000 + +-- !sql2 -- +1 10 100 1000 100000 2011-01-01T00:00 2010-01-01 t ynqnzeowymt 38.638844 180.998031 7395.2310670 +2 20 200 2000 200000 2012-01-01T00:00 2010-01-02 f hfkfwlr 506.04404 539.922834 2080.5045020 +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 +50 500 5000 65535990 5000000 2060-01-01T00:00 2010-02-28 = asdfg 50.555 505.55522 545.0050000 +60 600 6000 65536990 6000000 2070-01-01T00:00 2010-03-01 - qwert 60.555 605.55522 645.0050000 + +-- !sql3 -- +1 10 100 1000 100000 2011-01-01T00:00 2010-01-01 t ynqnzeowymt 38.638844 180.998031 7395.2310670 +2 20 200 2000 200000 2012-01-01T00:00 2010-01-02 f hfkfwlr 506.04404 539.922834 2080.5045020 +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 +50 500 5000 65535990 5000000 2060-01-01T00:00 2010-02-28 = asdfg 50.555 505.55522 545.0050000 +60 600 6000 65536990 6000000 2070-01-01T00:00 2010-03-01 - qwert 60.555 605.55522 645.0050000 +70 700 7000 65537990 7000000 2080-01-01T00:00 2010-03-02 + zxcvb 70.555 705.55522 745.0050000 + +-- !sql4 -- +1 10 100 1000 100000 2011-01-01T00:00 2010-01-01 t ynqnzeowymt 38.638844 180.998031 7395.2310670 +2 20 200 2000 200000 2012-01-01T00:00 2010-01-02 f hfkfwlr 506.04404 539.922834 2080.5045020 +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 +50 500 5000 65535990 5000000 2060-01-01T00:00 2010-02-28 = asdfg 50.555 505.55522 545.0050000 +60 600 6000 65536990 6000000 2070-01-01T00:00 2010-03-01 - qwert 60.555 605.55522 645.0050000 +70 700 7000 65537990 7000000 2080-01-01T00:00 2010-03-02 + zxcvb 70.555 705.55522 745.0050000 +80 800 8000 65539990 8000000 2090-01-01T00:00 2010-03-03 > uiopy 80.555 805.55522 845.0050000 + +-- !sql5 -- + +-- !sql6 -- +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +5 50 500 5000 500000 2015-01-01T00:00 2010-01-05 a sqodagzlyrmcelyxgcgcsfuxadcdt 462.0679 929.660783 3903.9069010 +6 60 600 6000 600000 2016-01-01T00:00 2010-01-06 m obdrei 921.86786 882.708491 6514.4050510 +7 70 700 7000 700000 2017-01-01T00:00 2010-01-07 a cuobdhvrgkugknj 141.65642 209.420112 8604.1986770 +8 80 800 8000 800000 2018-01-01T00:00 2010-01-08 z phcxztwgjllhmj 762.81335 285.664871 7784.8594460 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 + +-- !sql7 -- +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +22 220 2200 22000 2200000 2032-01-01T00:00 2010-01-22 h tirlgqmwrchusfyxitxttvxlioknz 654.95593 69.032071 6221.3482910 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 + +-- !sql8 -- +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 +28 280 2800 28000 2800000 2038-01-01T00:00 2010-01-28 w udfzebgnnxfjnoujtvlib 443.03085 998.4716 4633.2586980 +29 290 2900 29000 2900000 2039-01-01T00:00 2010-01-29 p jfgvke 8.602754 248.265099 5465.0103450 +30 300 3000 30000 3000000 2040-01-01T00:00 2010-01-30 d tbuvpobzluhbwkljlhwnrkrhowybk 949.5756 976.26649 2579.6686360 + +-- !sql9 -- +3 30 300 3000 300000 2013-01-01T00:00 2010-01-03 t uoclasp 377.7932 577.044148 4605.2532050 +4 40 400 4000 400000 2014-01-01T00:00 2010-01-04 n iswngzeodfhptjzgswsddt 871.35455 919.067864 7291.7037240 +9 90 900 9000 900000 2019-01-01T00:00 2010-01-09 b nbarqjwilbkelk 92.7024 535.28551 4846.7355930 +10 100 1000 10000 1000000 2020-01-01T00:00 2010-01-10 s zucprgdnlgzzfl 26.874739 155.861217 7996.4346860 +11 110 1100 11000 1100000 2021-01-01T00:00 2010-01-11 j zabbwiimqemk 369.81912 558.999245 3821.2787050 +12 120 1200 12000 1200000 2022-01-01T00:00 2010-01-12 d elvkhacywhdzrazcvyunkjajnx 536.04504 181.877653 9334.3009730 +13 130 1300 13000 1300000 2023-01-01T00:00 2010-01-13 x cylgmxlmkkrkk 990.83685 909.667873 9103.8044060 +14 140 1400 14000 1400000 2024-01-01T00:00 2010-01-14 s vpzwml 763.6152 295.541079 9823.0624960 +15 150 1500 15000 1500000 2025-01-01T00:00 2010-01-15 f yvvstxajxtgrimmrveljjbwo 380.41992 391.329557 5859.2419740 +16 160 1600 16000 1600000 2026-01-01T00:00 2010-01-16 b yxtowesbeqyejvpfhkixpdw 312.93396 328.666079 9430.1380130 +17 170 1700 17000 1700000 2027-01-01T00:00 2010-01-17 d nrrzcgygjplgttf 472.84436 799.528036 3135.2928420 +18 180 1800 18000 1800000 2028-01-01T00:00 2010-01-18 e wfknyaxplas 971.54944 844.025534 9855.8137110 +19 190 1900 19000 1900000 2029-01-01T00:00 2010-01-19 f qtznw 37.56896 502.584396 3086.5738740 +20 200 2000 20000 2000000 2030-01-01T00:00 2010-01-20 i nwznneizhtmzemy 632.5122 972.561324 2698.8636380 +21 210 2100 21000 2100000 2031-01-01T00:00 2010-01-21 q sqqeanrmafdoheeizljifwsj 942.88873 933.754744 5185.3730390 +23 230 2300 23000 2300000 2033-01-01T00:00 2010-01-23 s imnrusvqy 468.78033 24.626005 7481.5746570 +24 240 2400 24000 2400000 2034-01-01T00:00 2010-01-24 s irpbe 537.9061 396.750845 3585.2088090 +25 250 2500 25000 2500000 2035-01-01T00:00 2010-01-25 w drpjerrdlel 662.1232 202.007097 6982.7960600 +26 260 2600 26000 2600000 2036-01-01T00:00 2010-01-26 v vmzutsaifmlimicshgjpsvhiowjnq 115.1456 64.115478 3046.8392030 +27 270 2700 27000 2700000 2037-01-01T00:00 2010-01-27 d yrxspxgcwgbnjnmqkcido 362.2272 519.383701 9921.1350450 + diff --git a/regression-test/suites/partition_p0/multi_partition/test_range_partition.groovy b/regression-test/suites/partition_p0/multi_partition/test_range_partition.groovy new file mode 100644 index 0000000000..02f5f1b55b --- /dev/null +++ b/regression-test/suites/partition_p0/multi_partition/test_range_partition.groovy @@ -0,0 +1,297 @@ +// 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. + +suite("test_range_partition", "p0") { + def random = new Random() + + def createTable = { String tableName, String partitionInfo, String distributionInfo -> + sql """DROP TABLE IF EXISTS ${tableName}""" + sql """ + CREATE TABLE IF NOT EXISTS ${tableName} ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 LARGEINT NOT NULL, + k6 DATETIME NOT NULL, + v1 DATE NOT NULL, + v2 CHAR NOT NULL, + v3 VARCHAR(4096) NOT NULL, + v4 FLOAT NOT NULL, + v5 DOUBLE NOT NULL, + v6 DECIMAL(20,7) NOT NULL ) + DUPLICATE KEY(k1, k2, k3, k4, k5, k6) + ${partitionInfo} + ${distributionInfo} + PROPERTIES("replication_allocation" = "tag.location.default: 1") + """ + } + // when partition key is tinyint column, with different distribution type + def testTinyintPartition = { + def tinyIntPartition = """ + PARTITION BY RANGE(k1) ( + PARTITION partition_a VALUES LESS THAN ("-127"), + PARTITION partition_b VALUES LESS THAN ("-1"), + PARTITION partition_c VALUES LESS THAN ("0"), + PARTITION partition_d VALUES LESS THAN ("1"), + PARTITION partition_e VALUES LESS THAN ("126"), + PARTITION partition_f VALUES LESS THAN ("127") + ) + """ + def distributions = [ + "DISTRIBUTED BY RANDOM BUCKETS ${random.nextInt(300) + 1}", + "DISTRIBUTED BY HASH(k1) BUCKETS ${random.nextInt(300) + 1}", + "DISTRIBUTED BY HASH(k2) BUCKETS ${random.nextInt(300) + 1}", + "DISTRIBUTED BY HASH(k3, k4, k5) BUCKETS ${random.nextInt(300) + 1}", + "DISTRIBUTED BY HASH(k2, k3, k4, k5) BUCKETS ${random.nextInt(300) + 1}", + "DISTRIBUTED BY HASH(k1, k2, k3, k4, k5) BUCKETS ${random.nextInt(300) + 1}" + ] + def idx = 0 + for (String distributionInfo in distributions) { + createTable("tinyint_partition_tb_${idx}", tinyIntPartition, distributionInfo) + streamLoad { + table "tinyint_partition_tb_${idx}" + set "column_separator", "," + file "partition_table.csv" + } + test { + sql "select * from tinyint_partition_tb_${idx} order by k1, k2" + resultFile "partition_table.out" + } + def result = sql "SHOW PARTITIONS FROM tinyint_partition_tb_${idx}" + assertTrue(result.size() == 6) + try_sql """DROP TABLE tinyint_partition_tb_${idx}""" + idx += 1 + } + } + + // tinyint + testTinyintPartition() + + // create table -> stream load -> check -> drop table + def testPartitionTbl = { String tableName, String partitionInfo, String distributInfo -> + createTable(tableName, partitionInfo, distributInfo) + streamLoad { + table tableName + set "column_separator", "," + file "partition_table.csv" + } + test { + sql "select * from ${tableName} order by k1, k2" + resultFile "partition_table.out" + } + def result = sql "SHOW PARTITIONS FROM ${tableName}" + assertTrue(result.size() > 1) + try_sql """DROP TABLE ${tableName}""" + } + + // smallint partition key, random distribute + testPartitionTbl( + "test_smallint_partition_random", + """ + PARTITION BY RANGE(k2) + ( PARTITION partition_a VALUES LESS THAN ("10"), + PARTITION partition_b VALUES LESS THAN ("20"), + PARTITION partition_c VALUES LESS THAN ("30"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + // smallint partition key, hash distribute + testPartitionTbl( + "test_smallint_partition_hash", + """ + PARTITION BY RANGE(k2) + ( PARTITION partition_a VALUES LESS THAN ("-32767"), + PARTITION partition_b VALUES LESS THAN ("-32766"), + PARTITION partition_c VALUES LESS THAN ("0"), + PARTITION partition_d VALUES LESS THAN ("1"), + PARTITION partition_e VALUES LESS THAN ("32766"), + PARTITION partition_f VALUES LESS THAN ("32767")) + """, + "DISTRIBUTED BY hash(k2) BUCKETS 13" + ) + // int partition key, random distribute + testPartitionTbl( + "test_int_partition_random", + """ + PARTITION BY RANGE(k3) + ( PARTITION partition_a VALUES LESS THAN ("-2147483647"), + PARTITION partition_b VALUES LESS THAN ("-2147483646"), + PARTITION partition_c VALUES LESS THAN ("0"), + PARTITION partition_d VALUES LESS THAN ("1"), + PARTITION partition_e VALUES LESS THAN ("2147483646"), + PARTITION partition_f VALUES LESS THAN ("2147483647")) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + // int partition key, hash distribute + testPartitionTbl( + "test_int_partition_hash", + """ + PARTITION BY RANGE(k3) + ( PARTITION partition_a VALUES LESS THAN ("100"), + PARTITION partition_b VALUES LESS THAN ("200"), + PARTITION partition_c VALUES LESS THAN ("300"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY hash(k3) BUCKETS 13" + ) + // bigint partition key, random distribute + testPartitionTbl( + "test_bigint_partition_random", + """ + PARTITION BY RANGE(k4) + ( PARTITION partition_a VALUES LESS THAN ("1000"), + PARTITION partition_b VALUES LESS THAN ("2000"), + PARTITION partition_c VALUES LESS THAN ("3000"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + // bigint partition key, hash distribute + testPartitionTbl( + "test_bigint_partition_hash", + """ + PARTITION BY RANGE(k4) + ( PARTITION partition_a VALUES LESS THAN ("-9223372036854775807"), + PARTITION partition_b VALUES LESS THAN ("-9223372036854775806"), + PARTITION partition_c VALUES LESS THAN ("0"), + PARTITION partition_d VALUES LESS THAN ("1"), + PARTITION partition_e VALUES LESS THAN ("9223372036854775806"), + PARTITION partition_f VALUES LESS THAN ("9223372036854775807")) + """, + "DISTRIBUTED BY hash(k4) BUCKETS 13" + ) + // largetint partition key, random distribute + testPartitionTbl( + "test_largeint_partition_random", + """ + PARTITION BY RANGE(k5) + ( PARTITION partition_a VALUES LESS THAN ("1000"), + PARTITION partition_b VALUES LESS THAN ("2000"), + PARTITION partition_c VALUES LESS THAN ("3000"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + // largetint partition key, hash distribute + testPartitionTbl( + "test_largeint_partition_hash", + """ + PARTITION BY RANGE(k5) + ( PARTITION partition_a VALUES LESS THAN ("-170141183460469231731687303715884105727"), + PARTITION partition_b VALUES LESS THAN ("-170141183460469231731687303715884105726"), + PARTITION partition_c VALUES LESS THAN ("0"), + PARTITION partition_d VALUES LESS THAN ("1"), + PARTITION partition_e VALUES LESS THAN ("170141183460469231731687303715884105726"), + PARTITION partition_f VALUES LESS THAN ("170141183460469231731687303715884105727")) + """, + "DISTRIBUTED BY hash(k5) BUCKETS 13" + ) + // don't support decimal as partition key + test { + sql """ + CREATE TABLE test_decimal_err (k1 decimal(9, 3), v1 int) DUPLICATE KEY(k1) + PARTITION BY RANGE(k1) + ( PARTITION partition_a VALUES LESS THAN ("100"), + PARTITION partition_b VALUES LESS THAN ("200"), + PARTITION partition_c VALUES LESS THAN ("300")) + DISTRIBUTED BY hash(k1) BUCKETS 13 + """ + exception "Column[k1] type[DECIMAL32] cannot be a range partition key" + } + // don't support boolean as partition key + test { + sql """ + CREATE TABLE test_boolean_err (k1 boolean, v1 int) DUPLICATE KEY(k1) + PARTITION BY RANGE(k1) + ( PARTITION partition_a VALUES LESS THAN ("1")) + DISTRIBUTED BY hash(k1) BUCKETS 13 + """ + exception "Column[k1] type[BOOLEAN] cannot be a range partition key" + } + // datetime partition key, random distribute + testPartitionTbl( + "test_datetime_partition_random", + """ + PARTITION BY RANGE(k6) + ( PARTITION partition_a VALUES LESS THAN ("2017-01-01 00:00:00"), + PARTITION partition_b VALUES LESS THAN ("2027-01-01 00:00:00"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + // datetime partition key, hash distribute + testPartitionTbl( + "test_datetime_partition_hash", + """ + PARTITION BY RANGE(k6) + ( PARTITION partition_a VALUES LESS THAN ("1900-01-01 00:00:00"), + PARTITION partition_b VALUES LESS THAN ("2027-01-01 23:59:59"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN MAXVALUE) + """, + "DISTRIBUTED BY hash(k6) BUCKETS 13" + ) + // don't support char as partition key + test { + sql """ + CREATE TABLE test_char_err (k1 char(5), v1 int) DUPLICATE KEY(k1) + PARTITION BY RANGE(k1) + ( PARTITION partition_a VALUES LESS THAN ("12345")) + DISTRIBUTED BY hash(k1) BUCKETS 13 + """ + exception "Column[k1] type[CHAR] cannot be a range partition key" + } + // don't support varchar as partition key + test { + sql """ + CREATE TABLE test_varchar_err (k1 varchar(5), v1 int) DUPLICATE KEY(k1) + PARTITION BY RANGE(k1) + ( PARTITION partition_a VALUES LESS THAN ("12345")) + DISTRIBUTED BY hash(k1) BUCKETS 13 + """ + exception "Column[k1] type[VARCHAR] cannot be a range partition key" + } + // date value column as partition key, hash distribute + testPartitionTbl( + "test_date_value_partition_hash", + """ + PARTITION BY RANGE(v1) + ( PARTITION partition_a VALUES LESS THAN ("2010-01-10"), + PARTITION partition_b VALUES LESS THAN ("2010-01-20"), + PARTITION partition_c VALUES LESS THAN ("2010-01-31"), + PARTITION partition_d VALUES LESS THAN ("2010-12-31")) + """, + "DISTRIBUTED BY hash(k1) BUCKETS 13" + ) + // date value column as partition key, random distribute + testPartitionTbl( + "test_date_value_partition_random", + """ + PARTITION BY RANGE(v1) + ( PARTITION partition_a VALUES LESS THAN ("2010-01-10"), + PARTITION partition_b VALUES LESS THAN ("2010-01-20"), + PARTITION partition_c VALUES LESS THAN ("2010-01-31"), + PARTITION partition_d VALUES LESS THAN ("2010-12-31")) + """, + "DISTRIBUTED BY RANDOM BUCKETS 13" + ) + +} diff --git a/regression-test/suites/partition_p0/test_partition_operation.groovy b/regression-test/suites/partition_p0/test_partition_operation.groovy new file mode 100644 index 0000000000..eae7f5fa38 --- /dev/null +++ b/regression-test/suites/partition_p0/test_partition_operation.groovy @@ -0,0 +1,284 @@ +// 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. + +suite("test_partition_operation", "p1") { + def random = new Random() + // create table -> load -> check load data + def createTableAndLoad = { String tableName, String partitionInfo, String distributionInfo -> + sql """DROP TABLE IF EXISTS ${tableName}""" + sql """ + CREATE TABLE IF NOT EXISTS ${tableName} ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 LARGEINT NOT NULL, + k6 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL, + v2 CHAR REPLACE NOT NULL, + v3 VARCHAR(4096) REPLACE NOT NULL, + v4 FLOAT SUM NOT NULL, + v5 DOUBLE SUM NOT NULL, + v6 DECIMAL(20,7) SUM NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5,k6) + ${partitionInfo} + ${distributionInfo} + PROPERTIES("replication_allocation" = "tag.location.default: 1") + """ + streamLoad { + table tableName + set "column_separator", "," + file "./multi_partition/partition_table.csv" + } + test { + sql "select * from ${tableName} order by k1, k2" + resultFile "./multi_partition/partition_table.out" + } + + } + def checkTablePartitionExists = { String tableName, String partitionName -> + def result = sql "SHOW PARTITIONS FROM ${tableName} WHERE PartitionName = '${partitionName}'" + assertTrue(result.size() == 1) + } + def checkTablePartitionNotExists = { String tableName, String partitionName -> + def result = sql "SHOW PARTITIONS FROM ${tableName} WHERE PartitionName = '${partitionName}'" + assertTrue(result.size() == 0) + } + // add partition, insert, check + createTableAndLoad( + "test_add_partition_1", + """ + PARTITION BY RANGE(k3) ( + PARTITION partition_a VALUES LESS THAN ("50"), + PARTITION partition_b VALUES LESS THAN ("200"), + PARTITION partition_c VALUES LESS THAN ("1000"), + PARTITION partition_d VALUES LESS THAN ("65535000") ) """, + "DISTRIBUTED BY HASH(k1) BUCKETS 13" + ) + sql """ + ALTER TABLE test_add_partition_1 ADD PARTITION add_1 VALUES LESS THAN ("65536000") + """ + checkTablePartitionExists("test_add_partition_1", "add_1") + sql "insert into test_add_partition_1 values (50, 500, 5000, 65535990, 5000000, '2060-01-01 00:00:00', " + + "'2010-02-28', '=', 'asdfg', 50.555, 505.55522, 545.005)" + qt_sql1 "select * from test_add_partition_1 order by k1" + + // add partition value overlap + test { + sql """ + ALTER TABLE test_add_partition_1 ADD PARTITION add_1_err VALUES LESS THAN ("100") + """ + exception "is intersected with range" + } + test { + sql """ + ALTER TABLE test_add_partition_1 ADD PARTITION add_1_err VALUES LESS THAN ("50") + """ + exception "is intersected with range" + } + // add partition with different bucket num, become bigger,smaller ok + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_2 VALUES LESS THAN ("65537000") + DISTRIBUTED BY HASH(k1) BUCKETS 20""" + checkTablePartitionExists("test_add_partition_1", "add_2") + sql "insert into test_add_partition_1 values(60, 600, 6000, 65536990, 6000000, '2070-01-01 00:00:00', " + + "'2010-03-01', '-', 'qwert', 60.555, 605.55522, 645.005)" + qt_sql2 "select * from test_add_partition_1 order by k1" + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_3 VALUES LESS THAN ("65538000") + DISTRIBUTED BY HASH(k1) BUCKETS 37""" + checkTablePartitionExists("test_add_partition_1", "add_3") + sql "insert into test_add_partition_1 values(70, 700, 7000, 65537990, 7000000, '2080-01-01 00:00:00', " + + "'2010-03-02', '+', 'zxcvb', 70.555, 705.55522, 745.005)" + qt_sql3 "select * from test_add_partition_1 order by k1" + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_4 VALUES LESS THAN ("65540000") + DISTRIBUTED BY HASH(k1) BUCKETS 7""" + checkTablePartitionExists("test_add_partition_1", "add_4") + sql "insert into test_add_partition_1 values(80, 800, 8000, 65539990, 8000000, '2090-01-01 00:00:00', " + + "'2010-03-03', '>', 'uiopy', 80.555, 805.55522, 845.005)" + qt_sql4 "select * from test_add_partition_1 order by k1" + // add partition with 0 bucket + test { + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_0_err VALUES LESS THAN ("2147483647") + DISTRIBUTED BY HASH(k1) BUCKETS 0""" + exception "Cannot assign hash distribution buckets less than 1" + } + + // add partition with different distribution key + // todo err msg need be fixed + // ERROR 1105 (HY000): errCode = 2, detailMessage = Cannot assign hash distribution with different distribution cols. + // new is: [`k1` tinyint(4) NOT NULL, `k2` smallint(6) NOT NULL] default is: [`k1` tinyint(4) NOT NULL, `k2` smallint(6) NOT NULL] + test { + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_2_err VALUES LESS THAN ("2147483647") + DISTRIBUTED BY HASH(k1, k2) BUCKETS 13""" + exception "Cannot assign hash distribution with different distribution cols" + } + // add partition with different ditribution type: hash -> random + test { + sql """ALTER TABLE test_add_partition_1 ADD PARTITION add_2_err VALUES LESS THAN ("2147483647") + DISTRIBUTED BY RANDOM BUCKETS 13""" + exception "Cannot assign different distribution type. default is: HASH" + } + + // test drop partitions + createTableAndLoad( + "test_drop_partition_1", + """ + PARTITION BY RANGE(k3) ( + PARTITION partition_a VALUES LESS THAN ("50"), + PARTITION partition_b VALUES LESS THAN ("200"), + PARTITION partition_c VALUES LESS THAN ("1000"), + PARTITION partition_d VALUES LESS THAN ("65535000") )""", + "DISTRIBUTED BY HASH(k1) BUCKETS 13" + ) + // drop a not exists partition + test { + sql """ALTER TABLE test_drop_partition_1 DROP PARTITION not_exists_partition""" + exception "Error in list of partitions to not_exists_partition" + } + // drop all exists partition + sql """ALTER TABLE test_drop_partition_1 DROP PARTITION partition_a""" + checkTablePartitionNotExists("test_drop_partition_1", "partition_a") + sql """ALTER TABLE test_drop_partition_1 DROP PARTITION partition_b""" + checkTablePartitionNotExists("test_drop_partition_1", "partition_b") + sql """ALTER TABLE test_drop_partition_1 DROP PARTITION partition_c""" + checkTablePartitionNotExists("test_drop_partition_1", "partition_c") + sql """ALTER TABLE test_drop_partition_1 DROP PARTITION partition_d""" + checkTablePartitionNotExists("test_drop_partition_1", "partition_d") + qt_sql5 "select * from test_drop_partition_1 order by k1, k2" + // after drop all partition, add a partiion + sql """ALTER TABLE test_drop_partition_1 ADD PARTITION add_1 VALUES LESS THAN ("0")""" + checkTablePartitionExists("test_drop_partition_1", "add_1") + + createTableAndLoad( + "test_drop_partition_2", + """ + PARTITION BY RANGE(k3) ( + PARTITION partition_a VALUES LESS THAN ("300"), + PARTITION partition_b VALUES LESS THAN ("500"), + PARTITION partition_c VALUES LESS THAN ("900"), + PARTITION partition_d VALUES LESS THAN ("2200"), + PARTITION partition_e VALUES LESS THAN ("2300"), + PARTITION partition_f VALUES LESS THAN ("2800"), + PARTITION partition_g VALUES LESS THAN ("4000") ) """, + "DISTRIBUTED BY HASH(k1) BUCKETS 13" + ) + // drop partition times + sql """ALTER TABLE test_drop_partition_2 DROP PARTITION partition_a""" + checkTablePartitionNotExists("test_drop_partition_2", "partition_a") + qt_sql6 "select * from test_drop_partition_2 order by k1" + sql """ALTER TABLE test_drop_partition_2 ADD PARTITION add_1 VALUES LESS THAN ("5000")""" + checkTablePartitionExists("test_drop_partition_2", "add_1") + sql """ALTER TABLE test_drop_partition_2 ADD PARTITION add_2 VALUES LESS THAN ("6000")""" + checkTablePartitionExists("test_drop_partition_2", "add_2") + + sql """ALTER TABLE test_drop_partition_2 DROP PARTITION partition_c""" + checkTablePartitionNotExists("test_drop_partition_2", "partition_c") + qt_sql7 "select * from test_drop_partition_2 order by k1" + sql """ALTER TABLE test_drop_partition_2 DROP PARTITION partition_e""" + checkTablePartitionNotExists("test_drop_partition_2", "partition_e") + qt_sql8 "select * from test_drop_partition_2 order by k1" + sql """ALTER TABLE test_drop_partition_2 ADD PARTITION add_3 VALUES LESS THAN MAXVALUE""" + checkTablePartitionExists("test_drop_partition_2", "add_3") + + sql """ALTER TABLE test_drop_partition_2 DROP PARTITION partition_g""" + checkTablePartitionNotExists("test_drop_partition_2", "partition_g") + qt_sql9 "select * from test_drop_partition_2 order by k1" + + // drop partition, add partition, times + createTableAndLoad( + "test_add_drop_partition_times", + """ + PARTITION BY RANGE(k3)( + PARTITION partition_a VALUES LESS THAN ("300"), + PARTITION partition_b VALUES LESS THAN ("500"), + PARTITION partition_c VALUES LESS THAN ("900"), + PARTITION partition_d VALUES LESS THAN ("2200"), + PARTITION partition_e VALUES LESS THAN ("2300"), + PARTITION partition_f VALUES LESS THAN ("3800"), + PARTITION partition_g VALUES LESS THAN ("4000") )""", + "DISTRIBUTED BY HASH(k1) BUCKETS 13" + ) + for (int repeat_times = 0; repeat_times < 10; repeat_times++) { + sql "ALTER TABLE test_add_drop_partition_times DROP PARTITION partition_g" + checkTablePartitionNotExists("test_add_drop_partition_times", "partition_g") + sql "ALTER TABLE test_add_drop_partition_times ADD PARTITION partition_g VALUES LESS THAN ('4000') " + + "DISTRIBUTED BY HASH(k1) BUCKETS ${random.nextInt(300) + 1}" + checkTablePartitionExists("test_add_drop_partition_times", "partition_g") + } + test { + sql "select * from test_add_drop_partition_times order by k1, k2" + resultFile "./multi_partition/partition_table.out" + } + + // add multi partitions and drop + createTableAndLoad( + "test_add_drop_partition_times_1", + """ + PARTITION BY RANGE(k3)( + PARTITION partition_a VALUES LESS THAN ("300"), + PARTITION partition_b VALUES LESS THAN ("500"), + PARTITION partition_c VALUES LESS THAN ("900"), + PARTITION partition_d VALUES LESS THAN ("2200"), + PARTITION partition_e VALUES LESS THAN ("2300"), + PARTITION partition_f VALUES LESS THAN ("3800"), + PARTITION partition_g VALUES LESS THAN ("4000") )""", + "DISTRIBUTED BY HASH(k1) BUCKETS 13" + ) + for (int repeat_times = 1; repeat_times < 30; repeat_times++) { + sql "ALTER TABLE test_add_drop_partition_times_1 ADD PARTITION partition_add_${repeat_times.toString()} " + + "VALUES LESS THAN ('${4000 + repeat_times * 10}') " + + "DISTRIBUTED BY HASH(k1) BUCKETS ${random.nextInt(300) + 1}" + checkTablePartitionExists("test_add_drop_partition_times_1", "partition_add_${repeat_times.toString()}") + } + for (int repeat_times = 1; repeat_times < 30; repeat_times++) { + sql "ALTER TABLE test_add_drop_partition_times_1 DROP PARTITION partition_add_${repeat_times.toString()}" + checkTablePartitionNotExists("test_add_drop_partition_times_1", "partition_add_${repeat_times.toString()}") + } + test { + sql "select * from test_add_drop_partition_times_1 order by k1, k2" + resultFile "./multi_partition/partition_table.out" + } + + + // add partition to non partition table + sql """ + CREATE TABLE IF NOT EXISTS test_non_partition_tbl ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL, + v2 CHAR REPLACE NOT NULL, + v3 VARCHAR(4096) REPLACE NOT NULL, + v4 FLOAT SUM NOT NULL, + v5 DOUBLE SUM NOT NULL, + v6 DECIMAL(20,7) SUM NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5) DISTRIBUTED BY HASH(k1) BUCKETS 13 + PROPERTIES("replication_allocation" = "tag.location.default: 1") + """ + test { + sql """ALTER TABLE test_non_partition_tbl ADD PARTITION add_1 VALUES LESS THAN ("2147483647") + DISTRIBUTED BY HASH(k1, k2) BUCKETS 13""" + exception "" + } + try_sql "DROP TABLE IF EXISTS test_add_partition_1" + try_sql "DROP TABLE IF EXISTS test_drop_partition_1" + try_sql "DROP TABLE IF EXISTS test_drop_partition_2" + try_sql "DROP TABLE IF EXISTS test_add_drop_partition_times_1" + try_sql "DROP TABLE IF EXISTS test_add_drop_partition_times_2" + try_sql "DROP TABLE IF EXISTS test_non_partition_tbl" +} diff --git a/regression-test/suites/partition_p0/test_partition_table_err_msg.groovy b/regression-test/suites/partition_p0/test_partition_table_err_msg.groovy new file mode 100644 index 0000000000..e9a2e7166a --- /dev/null +++ b/regression-test/suites/partition_p0/test_partition_table_err_msg.groovy @@ -0,0 +1,174 @@ +// 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. + +suite("test_partition_table_err_msg", "p0") { + // create partition table errors + test { + sql """ + CREATE TABLE err_tb1 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k5) ( + PARTITION partition_a VALUES LESS THAN ("2017-01-01 00:00:00"), + PARTITION partition_b VALUES LESS THAN ("2017-01-01 00:00:00"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN MAXVALUE ) + DISTRIBUTED BY HASH(k1) BUCKETS 13""" + exception "is intersected with range" + } + test { + sql """ + CREATE TABLE err_tb2 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k5) ( + PARTITION partition_a VALUES LESS THAN ("0000-01-01 00:00:00"), + PARTITION partition_b VALUES LESS THAN ("2027-01-01 23:59:59"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN MAXVALUE ) + DISTRIBUTED BY HASH(k1) BUCKETS 13; + """ + exception "Partition's upper value should not be MIN VALUE: ('0000-01-01 00:00:00')" + } + // datetime overflow + test { + sql """ + CREATE TABLE err_tb3 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k5) ( + PARTITION partition_a VALUES LESS THAN ("1899-12-31 23:59:59"), + PARTITION partition_b VALUES LESS THAN ("2027-01-01 00:00:00"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN ("10000-01-01 00:00:00") ) + DISTRIBUTED BY HASH(k1) BUCKETS 13 + """ + exception "Datetime value is out of range" + } + test { + sql """ + CREATE TABLE err_tb4 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k5) ( + PARTITION partition_a VALUES LESS THAN ("1899-12-31 23:59:59"), + PARTITION partition_b VALUES LESS THAN ("2027-01-01 00:00:00"), + PARTITION partition_c VALUES LESS THAN ("2039-01-01 00:00:00"), + PARTITION partition_d VALUES LESS THAN ("9999-12-31 24:00:00") ) + DISTRIBUTED BY HASH(k1) BUCKETS 13 + """ + exception "date literal [9999-12-31 24:00:00] is invalid: Text '9999-12-31 24:00:00' could not be parsed: " + + "Invalid value for HourOfDay (valid values 0 - 23): 24" + } + test { + sql """ + CREATE TABLE err_tb5 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k4) ( + PARTITION partition_a VALUES LESS THAN ("2000"), + PARTITION partition_b VALUES LESS THAN ("1000"), + PARTITION partition_c VALUES LESS THAN ("3000"), + PARTITION partition_d VALUES LESS THAN MAXVALUE ) + DISTRIBUTED BY HASH(k1) BUCKETS 13; + """ + exception " is intersected with range" + } + test { + sql """ + CREATE TABLE err_tb6 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k1) ( + PARTITION partition_a VALUES LESS THAN ("20"), + PARTITION partition_b VALUES LESS THAN ("100"), + PARTITION partition_c VALUES LESS THAN ("101"), + PARTITION partition_d VALUES LESS THAN ("3000") ) + DISTRIBUTED BY HASH(k1) BUCKETS 13 + """ + exception "Invalid range value format: errCode = 2, detailMessage = Number out of range[3000]. type: TINYINT" + } + test { + sql """ + CREATE TABLE err_tb7 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 DATE REPLACE NOT NULL) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(k1) ( + PARTITION partition_a VALUES LESS THAN ("-50.1"), + PARTITION partition_b VALUES LESS THAN ("20.5"), + PARTITION partition_c VALUES LESS THAN ("100.0"), + PARTITION partition_d VALUES LESS THAN ("101") ) + DISTRIBUTED BY HASH(k1) BUCKETS 13 + """ + exception "Invalid range value format: errCode = 2, detailMessage = Invalid number format: -50.1" + } + // aggregate table value column can't be partition key + test { + sql """ + CREATE TABLE err_tb8 ( + k1 TINYINT NOT NULL, + k2 SMALLINT NOT NULL, + k3 INT NOT NULL, + k4 BIGINT NOT NULL, + k5 DATETIME NOT NULL, + v1 INT REPLACE NOT NULL ) + AGGREGATE KEY(k1,k2,k3,k4,k5) + PARTITION BY RANGE(v1) ( + PARTITION partition_a VALUES LESS THAN ("5"), + PARTITION partition_b VALUES LESS THAN ("20"), + PARTITION partition_c VALUES LESS THAN ("30"), + PARTITION partition_d VALUES LESS THAN MAXVALUE ) + DISTRIBUTED BY HASH(k1) BUCKETS 5 + """ + exception "The partition column could not be aggregated column" + } +}