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]

Reply via email to