This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit ac66f942868c73308ac7c9c86309d6bc52250538 Author: Mingyu Chen <[email protected]> AuthorDate: Tue Sep 12 20:11:20 2023 +0800 [fix](query-cache) fix query cache with empty set (#24147) If the query result set is empty, the query cache will not cache the result. This PR fix it. --- .../java/org/apache/doris/qe/StmtExecutor.java | 10 +- .../org/apache/doris/qe/cache/RowBatchBuilder.java | 15 +- .../hive/test_hive_query_cache.out | 404 +++++++++++++++++++++ .../hive/test_hive_query_cache.groovy | 127 +++++++ 4 files changed, 547 insertions(+), 9 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java index fff24358b9..cc1ed2dac2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java @@ -1230,6 +1230,8 @@ public class StmtExecutor { boolean isSend = isSendFields; for (InternalService.PCacheValue value : cacheValues) { TResultBatch resultBatch = new TResultBatch(); + // need to set empty list first, to support empty result set. + resultBatch.setRows(Lists.newArrayList()); for (ByteString one : value.getRowsList()) { resultBatch.addToRows(ByteBuffer.wrap(one.toByteArray())); } @@ -1406,11 +1408,11 @@ public class StmtExecutor { profile.getSummaryProfile().freshFetchResultConsumeTime(); // for outfile query, there will be only one empty batch send back with eos flag + // call `copyRowBatch()` first, because batch.getBatch() may be null, it result set is empty + if (cacheAnalyzer != null && !isOutfileQuery) { + cacheAnalyzer.copyRowBatch(batch); + } if (batch.getBatch() != null) { - if (cacheAnalyzer != null) { - cacheAnalyzer.copyRowBatch(batch); - } - // register send field result time. profile.getSummaryProfile().setTempStartTime(); // For some language driver, getting error packet after fields packet diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/cache/RowBatchBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/qe/cache/RowBatchBuilder.java index 665f47a793..5cab6f74bb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/cache/RowBatchBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/cache/RowBatchBuilder.java @@ -22,6 +22,7 @@ import org.apache.doris.catalog.Column; import org.apache.doris.catalog.Type; import org.apache.doris.proto.InternalService; import org.apache.doris.qe.RowBatch; +import org.apache.doris.thrift.TResultBatch; import com.google.common.collect.Lists; import com.google.protobuf.ByteString; @@ -95,11 +96,15 @@ public class RowBatchBuilder { public void copyRowData(RowBatch rowBatch) { batchSize++; - rowSize += rowBatch.getBatch().getRowsSize(); - for (ByteBuffer buf : rowBatch.getBatch().getRows()) { - byte[] bytes = Arrays.copyOfRange(buf.array(), buf.position(), buf.limit()); - dataSize += bytes.length; - rowList.add(bytes); + TResultBatch resultBatch = rowBatch.getBatch(); + // for empty result set, the resultBatch will be null + rowSize += resultBatch == null ? 0 : resultBatch.getRowsSize(); + if (resultBatch != null) { + for (ByteBuffer buf : rowBatch.getBatch().getRows()) { + byte[] bytes = Arrays.copyOfRange(buf.array(), buf.position(), buf.limit()); + dataSize += bytes.length; + rowList.add(bytes); + } } } diff --git a/regression-test/data/external_table_p0/hive/test_hive_query_cache.out b/regression-test/data/external_table_p0/hive/test_hive_query_cache.out new file mode 100644 index 0000000000..1320eb9bd5 --- /dev/null +++ b/regression-test/data/external_table_p0/hive/test_hive_query_cache.out @@ -0,0 +1,404 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !tpch_1sf_q09 -- +ALGERIA 1998 27136900.1803 +ALGERIA 1997 48611833.4962 +ALGERIA 1996 48285482.6782 +ALGERIA 1995 44402273.5999 +ALGERIA 1994 48694008.0668 +ALGERIA 1993 46044207.7838 +ALGERIA 1992 45636849.4881 +ARGENTINA 1998 28341663.7848 +ARGENTINA 1997 47143964.1176 +ARGENTINA 1996 45255278.6021 +ARGENTINA 1995 45631769.2054 +ARGENTINA 1994 48268856.3547 +ARGENTINA 1993 48605593.6162 +ARGENTINA 1992 46654240.7487 +BRAZIL 1998 26527736.3960 +BRAZIL 1997 45640660.7677 +BRAZIL 1996 45090647.1630 +BRAZIL 1995 44015888.5132 +BRAZIL 1994 44854218.8932 +BRAZIL 1993 45766603.7379 +BRAZIL 1992 45280216.8027 +CANADA 1998 26828985.3944 +CANADA 1997 44849954.3186 +CANADA 1996 46307936.1108 +CANADA 1995 47311993.0441 +CANADA 1994 46691491.9596 +CANADA 1993 46634791.1121 +CANADA 1992 45873849.6882 +CHINA 1998 27510180.1657 +CHINA 1997 46123865.4097 +CHINA 1996 49532807.0601 +CHINA 1995 46734651.4838 +CHINA 1994 46397896.6097 +CHINA 1993 49634673.9463 +CHINA 1992 46949457.6426 +EGYPT 1998 28401491.7968 +EGYPT 1997 47674857.6783 +EGYPT 1996 47745727.5450 +EGYPT 1995 45897160.6783 +EGYPT 1994 47194895.2280 +EGYPT 1993 49133627.6471 +EGYPT 1992 47000574.5027 +ETHIOPIA 1998 25135046.1377 +ETHIOPIA 1997 43010596.0838 +ETHIOPIA 1996 43636287.1922 +ETHIOPIA 1995 43575757.3343 +ETHIOPIA 1994 41597208.5283 +ETHIOPIA 1993 42622804.1616 +ETHIOPIA 1992 44385735.6813 +FRANCE 1998 26210392.2804 +FRANCE 1997 42392969.4731 +FRANCE 1996 43306317.9749 +FRANCE 1995 46377408.4328 +FRANCE 1994 43447352.9922 +FRANCE 1993 43729961.0639 +FRANCE 1992 44052308.4290 +GERMANY 1998 25991257.1071 +GERMANY 1997 43968355.8079 +GERMANY 1996 45882074.8049 +GERMANY 1995 43314338.3077 +GERMANY 1994 44616995.4369 +GERMANY 1993 45126645.9113 +GERMANY 1992 44361141.2107 +INDIA 1998 29626417.2379 +INDIA 1997 51386111.3448 +INDIA 1996 47571018.5122 +INDIA 1995 49344062.2829 +INDIA 1994 50106952.4261 +INDIA 1993 48112766.6987 +INDIA 1992 47914303.1234 +INDONESIA 1998 27734909.6763 +INDONESIA 1997 44593812.9863 +INDONESIA 1996 44746729.8078 +INDONESIA 1995 45593622.6993 +INDONESIA 1994 45988483.8772 +INDONESIA 1993 46147963.7895 +INDONESIA 1992 45185777.0688 +IRAN 1998 26661608.9301 +IRAN 1997 45019114.1696 +IRAN 1996 45891397.0992 +IRAN 1995 44414285.2348 +IRAN 1994 43696360.4795 +IRAN 1993 45362775.8094 +IRAN 1992 43052338.4143 +IRAQ 1998 31188498.1914 +IRAQ 1997 48585307.5222 +IRAQ 1996 50036593.8404 +IRAQ 1995 48774801.7275 +IRAQ 1994 48795847.2310 +IRAQ 1993 47435691.5082 +IRAQ 1992 47562355.6571 +JAPAN 1998 24694102.1720 +JAPAN 1997 42377052.3454 +JAPAN 1996 40267778.9094 +JAPAN 1995 40925317.4650 +JAPAN 1994 41159518.3058 +JAPAN 1993 39589074.2771 +JAPAN 1992 39113493.9052 +JORDAN 1998 23489867.7893 +JORDAN 1997 41615962.6619 +JORDAN 1996 41860855.4684 +JORDAN 1995 39931672.0908 +JORDAN 1994 40707555.4638 +JORDAN 1993 39060405.4658 +JORDAN 1992 41657604.2684 +KENYA 1998 25566337.4303 +KENYA 1997 43108847.9024 +KENYA 1996 43482953.5430 +KENYA 1995 42517988.9814 +KENYA 1994 43612479.4523 +KENYA 1993 42724038.7571 +KENYA 1992 43217106.2068 +MOROCCO 1998 24915496.8756 +MOROCCO 1997 42698382.8550 +MOROCCO 1996 42986113.5049 +MOROCCO 1995 42316089.1593 +MOROCCO 1994 43458604.6029 +MOROCCO 1993 42672288.0699 +MOROCCO 1992 42800781.6415 +MOZAMBIQUE 1998 28279876.0301 +MOZAMBIQUE 1997 51159216.2298 +MOZAMBIQUE 1996 48072525.0645 +MOZAMBIQUE 1995 48905200.6007 +MOZAMBIQUE 1994 46092076.2805 +MOZAMBIQUE 1993 48555926.2669 +MOZAMBIQUE 1992 47809075.1192 +PERU 1998 26713966.2678 +PERU 1997 48324008.6011 +PERU 1996 50310008.8629 +PERU 1995 49647080.9629 +PERU 1994 46420910.2773 +PERU 1993 51536906.2487 +PERU 1992 47711665.3137 +ROMANIA 1998 27271993.1010 +ROMANIA 1997 45063059.1953 +ROMANIA 1996 47492335.0323 +ROMANIA 1995 45710636.2909 +ROMANIA 1994 46088041.1066 +ROMANIA 1993 47515092.5613 +ROMANIA 1992 44111439.8044 +RUSSIA 1998 27935323.7271 +RUSSIA 1997 48222347.2924 +RUSSIA 1996 47553559.4932 +RUSSIA 1995 46755990.0976 +RUSSIA 1994 48000515.6191 +RUSSIA 1993 48569624.5082 +RUSSIA 1992 47672831.5329 +SAUDI ARABIA 1998 27113516.8424 +SAUDI ARABIA 1997 46690468.9649 +SAUDI ARABIA 1996 47775782.6670 +SAUDI ARABIA 1995 46657107.8287 +SAUDI ARABIA 1994 48181672.8100 +SAUDI ARABIA 1993 45692556.4438 +SAUDI ARABIA 1992 48924913.2717 +UNITED KINGDOM 1998 26366682.8786 +UNITED KINGDOM 1997 44518130.1851 +UNITED KINGDOM 1996 45539729.6166 +UNITED KINGDOM 1995 46845879.3390 +UNITED KINGDOM 1994 43081609.5737 +UNITED KINGDOM 1993 44770146.7555 +UNITED KINGDOM 1992 44123402.5484 +UNITED STATES 1998 27826593.6825 +UNITED STATES 1997 46638572.3648 +UNITED STATES 1996 46688280.5474 +UNITED STATES 1995 48951591.6156 +UNITED STATES 1994 45099092.0598 +UNITED STATES 1993 46181600.5278 +UNITED STATES 1992 46168214.0901 +VIETNAM 1998 27281931.0011 +VIETNAM 1997 48735914.1796 +VIETNAM 1996 47824595.9040 +VIETNAM 1995 48235135.8016 +VIETNAM 1994 47729256.3324 +VIETNAM 1993 45352676.8672 +VIETNAM 1992 47846355.6485 + +-- !q24 -- +zhangsan 1 +lisi 1 + +-- !q25 -- +1 1 +2 1 +3 1 +4 1 + +-- !q26 -- +123 china 4 56 sc +234 america 5 67 ls +345 cana 4 56 fy +567 fre 7 89 pa + +-- !q27 -- +p_partkey2 p_name2 p_mfgr2 p_brand2 p_type2 p_size2 p_con2 p_r_price2 p_comment2 +p_partkey1 p_name1 p_mfgr1 p_brand1 p_type1 p_size1 p_con1 p_r_price1 p_comment1 +p_partkey0 p_name0 p_mfgr0 p_brand0 p_type0 p_size0 p_con0 p_r_price0 p_comment0 + +-- !q28 -- +batchno appsheet_no filedate t_no tano t_name chged_no mob_no2 home_no off_no +off_no home_no mob_no2 chged_no t_name tano t_no filedate appsheet_no batchno + +-- !q29 -- +bill_code dates ord_year ord_month ord_quarter on_time + +-- !q30 -- +2 + +-- !q31 -- +123 zhangsan 12 123.45 2022-01-01 +124 lisi 12 123.45 2022-01-01 +125 lisan 12 123.45 2022-01-02 + +-- !q32 -- +a123 12 +a124 13 +a125 14 +a126 15 + +-- !q33 -- +2022-11-25 zz08Quhrpk zz08Quhrpk m8vknqtybC Eyk5GmwzDJ eW7R46dTNx 86tM8PWfGQ RU6WOEYEmX eN0Sm0fEjH NwYXON812A NYzAKjdBVu OQf936VCQv scbCva79DG HAK0HACy2d pbs5ypY6cy ft54SbxPmW hcVLijY8PL 2022-11-25 +2022-11-25 zvyprEdKlk zvyprEdKlk 6oO1KfWKnS zeNgOLbD5I o5FEyMNjhJ ACUBOltRRn YJsyP7erIV cZEbgd4Q7J DNzXA9QYKg wrhu8Heu17 PHerHoPGn0 nSSQLodYNZ zSxZ7eEs1k V4RVLp7h2O FGlZiPTOkV Yr1zRnrqPE 2022-11-25 +2022-11-25 ztbynIKOAB ztbynIKOAB T0jxzYQdtB sMyKhrS29F tOKKw4YrnE ND0qk9uKlp f7fMtT4f9A XBKdWFhCc2 0AP0jCcOvc Be2o2BO7Zf I33L9Tgr7y PG414ZCN0H Wb85Gn6HSE 6Dv3a7gAP1 abfib4AMr1 QX4rLkftjB 2022-11-25 +2022-11-25 zt6cI3WyPZ zt6cI3WyPZ FE3oLtL07b MqkD7rhh9Z larXyucEGE piaxKcubhh cVUtgHlsly fjumWOXPkM hUNrdq0FYN tsjzXqGBlN XNVuUkuoxG iyhpIB4SHv PTw9fDpPMm Url7haQqHQ qWt4vJm87n FScyOLzx8c 2022-11-25 +2022-11-25 zluC6EgPz8 zluC6EgPz8 ufSllWR5MA XIcWrCHYsR x4TQaY0uON AIRP6WN0PR sJ2hpxX6w4 aA4cNryz5G mAFcXmzyHG VlVY1J6HSG 3HwdoY0t44 0nCMGUzzew RMsQ4tG9l4 BBKNamSAyP 8kRynkgB2y aqmC8elovV 2022-11-25 +2022-11-25 zjM4h9Jtm2 zjM4h9Jtm2 TgiVg53a5R qUqbrdFemU 0o7oL6FnQw h39e3fhRi2 erJgos6ENS xD8kdyZsIr VJ1GmDyO1F QVbYI0NQ77 nrYkLCTrgD nQTn0hULEP qSHhNxO9AJ px5lKNCjrE LyH73bHlJt KZSopyFVMm 2022-11-25 +2022-11-25 zgZ82sWMOE zgZ82sWMOE d3L50SOM47 xtRhjoeVNV ZEWRyMclGd mE85T2Mg2t exZ7tYRdkr 6U4qNiFxDk VNTnrXhxC7 Rkfbo2rKY7 IoqxH43Iu1 13up4RtCbZ mbJgDA56Ey 9H7UGVuWCn KvsB4cMCWZ FmICYOQC6Y 2022-11-25 +2022-11-25 zgUDwoe0R0 zgUDwoe0R0 VFqYUAJger Axv5zHQ9Aj VrZj2oLMHw AFGrr1jQ4T dTaSKfBDyt lx1JgWEnVD Arqdl5tEB0 KSOTAtif2o TYuyIlLcDT 14vUoFChqv NM8pWxCiJL 1yZ7RM8WCs 9lYAarGdHK XsZ9vSH14w 2022-11-25 +2022-11-25 zYco1C1wbA zYco1C1wbA Jg9d1Vz8Nc M0jPS30f17 WRrQGzaqzl wKghuTj9Hf oAbqV68KVL iwT59HVsml X2pfKlSvmV EtScW6rT7w fgSAM7qInL 7ud6VtTvNq pyP4ZGsJ5O 0mBO3GVgxc j5ZKwj1MD5 VC7d7CEtco 2022-11-25 +2022-11-25 zUCfrwLP3h zUCfrwLP3h kqwtMmz3PH q1RgmOdoHv ENU2ipUkUY IviUi4Gmrv R6LXapRkKZ vESQ05cSlQ ICw4lJ4ksT bv0SQBAllD skdJMJYRKz ozPmYA3bks 3VSTEExqgk O9wf7u00RS KQcf7rwCg5 K2EMmTiSSz 2022-11-25 + +-- !q34 -- +2022-11-24 zVhHON3m5L +2022-11-24 zceLX7IpL5 +2022-11-24 zjp4CiDZ8F +2022-11-24 zpV3iiPrMp +2022-11-24 zrjCNYBzpb +2022-11-24 zvbIuF1cg8 +2022-11-24 zyLjAtVdXV +2022-11-25 zVOQFPxGhP +2022-11-25 zj9uWRywHa +2022-11-25 zvs3b72ERY + +-- !q35 -- +2022-11-24 zyLjAtVdXV +2022-11-24 zvbIuF1cg8 +2022-11-24 zrjCNYBzpb +2022-11-24 zpV3iiPrMp +2022-11-24 zjp4CiDZ8F +2022-11-24 zceLX7IpL5 +2022-11-24 zVhHON3m5L +2022-11-24 zTOGIjaaZJ +2022-11-24 zOeOJwAvfc +2022-11-24 zNDyH7VSpm + +-- !q36 -- +zvs3b72ERY zorbigHkYB +zj9uWRywHa 5F8hzYcY8G +zVOQFPxGhP V0FTqkqsma +zJvBmGUvxj oHlH8nOlxp +zHUd303J4r q000anXrEp +zGQt4RNefu 7fkTAaRATj +z5SAncObhE PUl5h9h6iL +z5AAgk7RGE gSPjanitfl +z3cvap67Lh 8EfHi4roEB +ysw8j0x551 IwlRuhywtn + +-- !q37 -- +2000 + +-- !q38 -- +zvs3b72ERY zorbigHkYB +zj9uWRywHa 5F8hzYcY8G +zVOQFPxGhP V0FTqkqsma +zJvBmGUvxj oHlH8nOlxp +zHUd303J4r q000anXrEp +zGQt4RNefu 7fkTAaRATj +z5SAncObhE PUl5h9h6iL +z5AAgk7RGE gSPjanitfl +z3cvap67Lh 8EfHi4roEB +ysw8j0x551 IwlRuhywtn + +-- !q39 -- +zyLjAtVdXV GrJRf8WvRR +zvs3b72ERY zorbigHkYB +zvbIuF1cg8 33ZkOc8Fl7 +zrjCNYBzpb FD1Zxm39qk +zpV3iiPrMp j0XRD1oFXY +zjp4CiDZ8F ljiRxP16r2 +zj9uWRywHa 5F8hzYcY8G +zceLX7IpL5 JZtsmIjKGQ +zVhHON3m5L ecmOZhvo5C +zVOQFPxGhP V0FTqkqsma + +-- !q40 -- +2022-11-25 2022-11-25 zvs3b72ERY zorbigHkYB 2022-11-25 +2022-11-25 2022-11-25 zj9uWRywHa 5F8hzYcY8G 2022-11-25 +2022-11-25 2022-11-25 zVOQFPxGhP V0FTqkqsma 2022-11-25 +2022-11-25 2022-11-25 zJvBmGUvxj oHlH8nOlxp 2022-11-25 +2022-11-25 2022-11-25 zHUd303J4r q000anXrEp 2022-11-25 +2022-11-25 2022-11-25 zGQt4RNefu 7fkTAaRATj 2022-11-25 +2022-11-25 2022-11-25 z5SAncObhE PUl5h9h6iL 2022-11-25 +2022-11-25 2022-11-25 z5AAgk7RGE gSPjanitfl 2022-11-25 +2022-11-25 2022-11-25 z3cvap67Lh 8EfHi4roEB 2022-11-25 +2022-11-25 2022-11-25 ysw8j0x551 IwlRuhywtn 2022-11-25 + +-- !q41 -- + +-- !q42 -- +2022-11-24 2022-11-24 zyLjAtVdXV GrJRf8WvRR 2022-11-24 +2022-11-25 2022-11-25 zvs3b72ERY zorbigHkYB 2022-11-25 +2022-11-24 2022-11-24 zvbIuF1cg8 33ZkOc8Fl7 2022-11-24 +2022-11-24 2022-11-24 zrjCNYBzpb FD1Zxm39qk 2022-11-24 +2022-11-24 2022-11-24 zpV3iiPrMp j0XRD1oFXY 2022-11-24 +2022-11-24 2022-11-24 zjp4CiDZ8F ljiRxP16r2 2022-11-24 +2022-11-25 2022-11-25 zj9uWRywHa 5F8hzYcY8G 2022-11-25 +2022-11-24 2022-11-24 zceLX7IpL5 JZtsmIjKGQ 2022-11-24 +2022-11-24 2022-11-24 zVhHON3m5L ecmOZhvo5C 2022-11-24 +2022-11-25 2022-11-25 zVOQFPxGhP V0FTqkqsma 2022-11-25 + +-- !q43 -- +2022-11-10 zzf0Hyy3PP zzf0Hyy3PP kqonrn13oM qMpDJZ3jVG oQafAQzfpg WprPRT9pxG W6Vfvw6VU3 U2J2db3EcI oa3CXQ51wk DSfnG13L1h x6pO2DvZXm y6McEKEtPF 6P1xAKaJcI a0WviK01l1 4UxX1EJ4nV FAJyYIGlBN 2022-11-10 +2022-11-10 zwkeNflkF1 zwkeNflkF1 TkWqg6Ix6t Mvg3XCz4KW xNtobuEiYh 2zfFFtguoD dM0xJvckpt J0KzHbhdQV GzofYnr0OQ IDej5DPSlV QlzwIZHnDh oTrJx4aX3J Z1fyagW29j giFWZDk1Rd CMHyNvI6n1 uXoAudfOjF 2022-11-10 +2022-11-10 zw7iBPPTEF zw7iBPPTEF z036dLkobV soKogHEGDn htmRKThWKo WzPFReXEDF rx1wJaZkHR bGNyBl0jZc 41zilEUfud fhVJ30rOBV VGgO3KrN3C c9KX0k1gb8 MwR4IXvjCI qrvDKvMD9k mSqAiJQFEN hVuhJxSlj9 2022-11-10 +2022-11-10 zsLnfKZ51O zsLnfKZ51O wHvRoX5XhH 1lLcmzAVUU VdRNvndgvg UoqeV9QYiJ pvSwfhZTej rA51Wq2lQN Ljdu8nmKCg v9EMT2z3mo kKUH8y5N4u XoC9shDIZN GnJ5kOqIU3 ppQBteeHzM 3fn0IUEII1 tnzPWN4kRj 2022-11-10 +2022-11-10 zsEmkJnMdC zsEmkJnMdC Dx6sAB4I7M eCKoLNz9oG lE3YGayXaN pGOgX608Fz pVo9dletTZ 7XWdPnNlJm seYFng9MgQ PGD3yh4Wlc PfwzK2ZiuS l8ddKEdG8n AVLIoP9Jha ipjmF2YjKK qaODuhuFWi AkuaGy0Qqp 2022-11-10 +2022-11-10 zmzCEZlbV5 zmzCEZlbV5 0v2IfWCEIr mdRkZG9LVW yNR9pzfPna Q7XmH62qSh iYMJPOhApN QuKGOQYa7l XHYEA9oxnq bU8pbr0KXA vY2O2CSUY6 8NH1vjDoPB SiSpTkuXNc QZOkZ5IjqD heoOSWTkNX gOU9E6AR3E 2022-11-10 +2022-11-10 zfOtU6uM5Z zfOtU6uM5Z ALpuvTDVnW mjJPYTgWRl 9wPoJuEY4O Fjl0u6YIup i6MJdwoXrc jdEbHX2ciY at0qPGFS9K BbFvD5pDHn R8j7s2hZHn YYatCMK0Hp R1wiwcfZ7J sgK2ElpSWh dMjk2u1h2r MkoSLDtORA 2022-11-10 +2022-11-10 zaCKFeMKPl zaCKFeMKPl 2ZTD9DtO1l MHL1vr5tx4 fiE4PbRVGT B0L7bSYqqE HgJcRjMTEb M1Y8ublbIf duEnPcBFIj N2j62LjxW4 4kaqVUWoPc Fe09FCOcfV chMDNkDdsu rCMCu231Bb T6QDStOoKf izRqyR2c6v 2022-11-10 +2022-11-10 zYNiE7iX1z zYNiE7iX1z XWoDz1bYcL Bn8QGcPeVi DJyDWOYpM3 Kv7jHcWKju eSDLJiXt8i 8uiVxsiVBq CtwoNyHZL8 XJeZsXvRzK VeJZUeQuPW UTeKq4u86J G9BRL00Caw qgXkXNw3LN RFJIwqft7H 73uqYcUHNU 2022-11-10 +2022-11-10 zRZyJdYT6X zRZyJdYT6X r7KeoDNRia erhjhmnbee 8smgVFxgRY 4zsHrL9mmX GdCn844KLZ 6CT2bojzlB P2X7SBkzcy uBpZ7VtFNj csGSglKMMF hmDxo1NUOg hUwaq7MFvD m8mu7xQZbS aKhGVtz40x 7OP7GtYURR 2022-11-10 + +-- !q44 -- +2022-11-10 zyLjAtVdXV +2022-11-10 zvbIuF1cg8 +2022-11-10 zrjCNYBzpb +2022-11-10 zpV3iiPrMp +2022-11-10 zjp4CiDZ8F +2022-11-10 zceLX7IpL5 +2022-11-10 zVhHON3m5L +2022-11-10 zTOGIjaaZJ +2022-11-10 zOeOJwAvfc +2022-11-10 zNDyH7VSpm + +-- !q45 -- +2022-11-10 zyLjAtVdXV +2022-11-10 zvbIuF1cg8 +2022-11-10 zrjCNYBzpb +2022-11-10 zpV3iiPrMp +2022-11-10 zjp4CiDZ8F +2022-11-10 zceLX7IpL5 +2022-11-10 zVhHON3m5L +2022-11-10 zTOGIjaaZJ +2022-11-10 zOeOJwAvfc +2022-11-10 zNDyH7VSpm + +-- !q46 -- +zyLjAtVdXV GrJRf8WvRR +zvbIuF1cg8 33ZkOc8Fl7 +zrjCNYBzpb FD1Zxm39qk +zpV3iiPrMp j0XRD1oFXY +zjp4CiDZ8F ljiRxP16r2 +zceLX7IpL5 JZtsmIjKGQ +zVhHON3m5L ecmOZhvo5C +zTOGIjaaZJ kKS2qRmfG7 +zOeOJwAvfc hQsA8GlyPI +zNDyH7VSpm x6S8xvWIKO + +-- !q47 -- +1000 + +-- !q48 -- + +-- !q49 -- +zyLjAtVdXV GrJRf8WvRR +zvbIuF1cg8 33ZkOc8Fl7 +zrjCNYBzpb FD1Zxm39qk +zpV3iiPrMp j0XRD1oFXY +zjp4CiDZ8F ljiRxP16r2 +zceLX7IpL5 JZtsmIjKGQ +zVhHON3m5L ecmOZhvo5C +zTOGIjaaZJ kKS2qRmfG7 +zOeOJwAvfc hQsA8GlyPI +zNDyH7VSpm x6S8xvWIKO + +-- !q50 -- +2022-11-10 2022-11-10 zyLjAtVdXV GrJRf8WvRR 2022-11-10 +2022-11-10 2022-11-10 zvbIuF1cg8 33ZkOc8Fl7 2022-11-10 +2022-11-10 2022-11-10 zrjCNYBzpb FD1Zxm39qk 2022-11-10 +2022-11-10 2022-11-10 zpV3iiPrMp j0XRD1oFXY 2022-11-10 +2022-11-10 2022-11-10 zjp4CiDZ8F ljiRxP16r2 2022-11-10 +2022-11-10 2022-11-10 zceLX7IpL5 JZtsmIjKGQ 2022-11-10 +2022-11-10 2022-11-10 zVhHON3m5L ecmOZhvo5C 2022-11-10 +2022-11-10 2022-11-10 zTOGIjaaZJ kKS2qRmfG7 2022-11-10 +2022-11-10 2022-11-10 zOeOJwAvfc hQsA8GlyPI 2022-11-10 +2022-11-10 2022-11-10 zNDyH7VSpm x6S8xvWIKO 2022-11-10 + +-- !q51 -- +china +america +cana +fre + diff --git a/regression-test/suites/external_table_p0/hive/test_hive_query_cache.groovy b/regression-test/suites/external_table_p0/hive/test_hive_query_cache.groovy new file mode 100644 index 0000000000..9c780b578d --- /dev/null +++ b/regression-test/suites/external_table_p0/hive/test_hive_query_cache.groovy @@ -0,0 +1,127 @@ +// 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_hive_query_cache", "p0,external,hive,external_docker,external_docker_hive") { + + def q01 = { + qt_q24 """ select name, count(1) as c from student group by name order by c desc;""" + qt_q25 """ select lo_orderkey, count(1) as c from lineorder group by lo_orderkey order by c desc;""" + qt_q26 """ select * from test1 order by col_1;""" + qt_q27 """ select * from string_table order by p_partkey desc;""" + qt_q28 """ select * from account_fund order by batchno;""" + qt_q29 """ select * from sale_table order by bill_code limit 01;""" + order_qt_q30 """ select count(card_cnt) from hive01;""" + qt_q31 """ select * from test2 order by id;""" + qt_q32 """ select * from test_hive_doris order by id;""" + + qt_q33 """ select dt, k1, * from table_with_vertical_line order by dt desc, k1 desc limit 10;""" + order_qt_q34 """ select dt, k2 from table_with_vertical_line order by k2 desc limit 10;""" + qt_q35 """ select dt, k2 from table_with_vertical_line where dt='2022-11-24' order by k2 desc limit 10;""" + qt_q36 """ select k2, k5 from table_with_vertical_line where dt='2022-11-25' order by k2 desc limit 10;""" + order_qt_q37 """ select count(*) from table_with_vertical_line;""" + qt_q38 """ select k2, k5 from table_with_vertical_line where dt in ('2022-11-25') order by k2 desc limit 10;""" + qt_q39 """ select k2, k5 from table_with_vertical_line where dt in ('2022-11-25', '2022-11-24') order by k2 desc limit 10;""" + qt_q40 """ select dt, dt, k2, k5, dt from table_with_vertical_line where dt in ('2022-11-25') or dt in ('2022-11-25') order by k2 desc limit 10;""" + qt_q41 """ select dt, dt, k2, k5, dt from table_with_vertical_line where dt in ('2022-11-25') and dt in ('2022-11-24') order by k2 desc limit 10;""" + qt_q42 """ select dt, dt, k2, k5, dt from table_with_vertical_line where dt in ('2022-11-25') or dt in ('2022-11-24') order by k2 desc limit 10;""" + + qt_q43 """ select dt, k1, * from table_with_x01 order by dt desc, k1 desc limit 10;""" + qt_q44 """ select dt, k2 from table_with_x01 order by k2 desc limit 10;""" + qt_q45 """ select dt, k2 from table_with_x01 where dt='2022-11-10' order by k2 desc limit 10;""" + qt_q46 """ select k2, k5 from table_with_x01 where dt='2022-11-10' order by k2 desc limit 10;""" + order_qt_q47 """ select count(*) from table_with_x01;""" + qt_q48 """ select k2, k5 from table_with_x01 where dt in ('2022-11-25') order by k2 desc limit 10;""" + qt_q49 """ select k2, k5 from table_with_x01 where dt in ('2022-11-10', '2022-11-10') order by k2 desc limit 10;""" + qt_q50 """ select dt, dt, k2, k5, dt from table_with_x01 where dt in ('2022-11-10') or dt in ('2022-11-10') order by k2 desc limit 10;""" + qt_q51 """ select col_2 from test1;""" + } + + String enabled = context.config.otherConfigs.get("enableHiveTest") + if (enabled != null && enabled.equalsIgnoreCase("true")) { + String hms_port = context.config.otherConfigs.get("hms_port") + String hdfs_port = context.config.otherConfigs.get("hdfs_port") + String externalEnvIp = context.config.otherConfigs.get("externalEnvIp") + + String catalog_name = "hive_test_query_cache" + + sql """drop catalog if exists ${catalog_name}""" + sql """create catalog if not exists ${catalog_name} properties ( + "type"="hms", + 'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}' + );""" + sql """switch ${catalog_name}""" + + sql """set enable_fallback_to_original_planner=false""" + + def tpch_1sf_q09 = """ + select + nation, + o_year, + sum(amount) as sum_profit + from + ( + select + n_name as nation, + extract(year from o_orderdate) as o_year, + l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount + from + lineitem join[shuffle] orders on o_orderkey = l_orderkey + join[shuffle] partsupp on ps_suppkey = l_suppkey and ps_partkey = l_partkey + join[shuffle] part on p_partkey = l_partkey and p_name like '%green%' + join supplier on s_suppkey = l_suppkey + join nation on s_nationkey = n_nationkey + ) as profit + group by + nation, + o_year + order by + nation, + o_year desc; + """ + + // test sql cache + sql """set enable_sql_cache=true""" + sql """admin set frontend config("cache_last_version_interval_second" = "1");""" + sql """use `tpch1_parquet`""" + qt_tpch_1sf_q09 "${tpch_1sf_q09}" + sql "${tpch_1sf_q09}" + + test { + sql "${tpch_1sf_q09}" + time 5000 + } + + // test sql cache with empty result + sql """select * from lineitem where l_suppkey="abc";""" // non exist l_suppkey; + test { + sql """select * from lineitem where l_suppkey="abc";""" + // TODO: can not set it very small because the CI env is unstable. + // Actually, it should cost within 100ms + time 1000 + } + + // test more sql cache + sql """use `default`""" + q01() + test { + sql """select dt, dt, k2, k5, dt from table_with_x01 where dt in ('2022-11-10') or dt in ('2022-11-10') order by k2 desc limit 10;""" + // TODO: can not set it very small because the CI env is unstable. + // Actually, it should cost within 100ms + time 1000 + } + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
