This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new abed9a28d50 branch-4.0: [Fix](function) fix partitions function throw 
error when query internal table without specifying catalog condition, this 
incompatible with show partitions command #60247 (#60452)
abed9a28d50 is described below

commit abed9a28d5076310aac8a46fce5e03ea74c5dead
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Feb 3 14:12:14 2026 +0800

    branch-4.0: [Fix](function) fix partitions function throw error when query 
internal table without specifying catalog condition, this incompatible with 
show partitions command #60247 (#60452)
    
    Cherry-picked from #60247
    
    Co-authored-by: heguanhui <[email protected]>
---
 .../PartitionsTableValuedFunction.java             | 10 ++++----
 .../data/mtmv_p0/test_multi_pct_mtmv.out           | 28 ++++++++++++++++++++++
 .../suites/auth_p0/test_partitions_auth.groovy     | 13 ++++++++--
 .../data-partitioning/auto-partitioning.md.groovy  |  3 +++
 .../data-partitioning/basic-concepts.md.groovy     |  3 ++-
 .../tvf/test_partitions_tvf.groovy                 | 16 +++++++++++++
 .../suites/mtmv_p0/test_multi_pct_mtmv.groovy      |  6 +++++
 7 files changed, 71 insertions(+), 8 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/PartitionsTableValuedFunction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/PartitionsTableValuedFunction.java
index eadeaa7dc9b..160399bfd00 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/PartitionsTableValuedFunction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/PartitionsTableValuedFunction.java
@@ -140,7 +140,7 @@ public class PartitionsTableValuedFunction extends 
MetadataTableValuedFunction {
             // check ctl, db, tbl
             validParams.put(key.toLowerCase(), params.get(key));
         }
-        String catalogName = validParams.get(CATALOG);
+        String catalogName = validParams.getOrDefault(CATALOG, 
InternalCatalog.INTERNAL_CATALOG_NAME);
         String dbName = validParams.get(DB);
         String tableName = validParams.get(TABLE);
         if (StringUtils.isEmpty(catalogName) || StringUtils.isEmpty(dbName) || 
StringUtils.isEmpty(tableName)) {
@@ -156,6 +156,10 @@ public class PartitionsTableValuedFunction extends 
MetadataTableValuedFunction {
     }
 
     private void analyze(String catalogName, String dbName, String tableName) {
+        CatalogIf catalog = 
Env.getCurrentEnv().getCatalogMgr().getCatalog(catalogName);
+        if (catalog == null) {
+            throw new AnalysisException("can not find catalog: " + 
catalogName);
+        }
         if (!Env.getCurrentEnv().getAccessManager()
                 .checkTblPriv(ConnectContext.get(), catalogName, dbName,
                         tableName, PrivPredicate.SHOW)) {
@@ -164,10 +168,6 @@ public class PartitionsTableValuedFunction extends 
MetadataTableValuedFunction {
                     catalogName + ": " + dbName + ": " + tableName);
             throw new AnalysisException(message);
         }
-        CatalogIf catalog = 
Env.getCurrentEnv().getCatalogMgr().getCatalog(catalogName);
-        if (catalog == null) {
-            throw new AnalysisException("can not find catalog: " + 
catalogName);
-        }
         // disallow unsupported catalog
         if (!(catalog.isInternalCatalog() || catalog instanceof 
HMSExternalCatalog
                 || catalog instanceof MaxComputeExternalCatalog)) {
diff --git a/regression-test/data/mtmv_p0/test_multi_pct_mtmv.out 
b/regression-test/data/mtmv_p0/test_multi_pct_mtmv.out
index 67ee5cf54e4..bd1bbba191e 100644
--- a/regression-test/data/mtmv_p0/test_multi_pct_mtmv.out
+++ b/regression-test/data/mtmv_p0/test_multi_pct_mtmv.out
@@ -27,29 +27,57 @@ p_20170101_20170201 []
 p_20170201_20170301    [test_multi_pct_mtmv_table1]
 p_20170301_20170401    []
 
+-- !partitions_1_2 --
+p_20170101_20170201    []
+p_20170201_20170301    [test_multi_pct_mtmv_table1]
+p_20170301_20170401    []
+
 -- !partitions_2 --
 p_20170101_20170201    []
 p_20170201_20170301    []
 p_20170301_20170401    []
 
+-- !partitions_2_2 --
+p_20170101_20170201    []
+p_20170201_20170301    []
+p_20170301_20170401    []
+
 -- !partitions_3 --
 p_20170101_20170201    []
 p_20170201_20170301    []
 p_20170301_20170401    [test_multi_pct_mtmv_table2]
 
+-- !partitions_3_2 --
+p_20170101_20170201    []
+p_20170201_20170301    []
+p_20170301_20170401    [test_multi_pct_mtmv_table2]
+
 -- !partitions_4 --
 p_20170101_20170201    []
 p_20170201_20170301    []
 
+-- !partitions_4_2 --
+p_20170101_20170201    []
+p_20170201_20170301    []
+
 -- !partitions_5 --
 p_20170101_20170201    []
 p_20170201_20170301    []
 
+-- !partitions_5_2 --
+p_20170101_20170201    []
+p_20170201_20170301    []
+
 -- !partitions_6 --
 p_20170101_20170201    []
 p_20170201_20170301    []
 p_20170401_20170501    []
 
+-- !partitions_6_2 --
+p_20170101_20170201    []
+p_20170201_20170301    []
+p_20170401_20170501    []
+
 -- !refresh_mode_overwrite --
 PARTIAL
 
diff --git a/regression-test/suites/auth_p0/test_partitions_auth.groovy 
b/regression-test/suites/auth_p0/test_partitions_auth.groovy
index 2406930671f..fa7e7067393 100644
--- a/regression-test/suites/auth_p0/test_partitions_auth.groovy
+++ b/regression-test/suites/auth_p0/test_partitions_auth.groovy
@@ -62,7 +62,13 @@ suite("test_partitions_auth","p0,auth") {
         }
         test {
               sql """
-                 select * from 
partitions('catalog'='internal',"database"="${dbName}","table"="${tableName}");
+                 select * from 
partitions("catalog"="internal","database"="${dbName}","table"="${tableName}");
+              """
+              exception "denied"
+        }
+        test {
+              sql """
+                 select * from 
partitions("database"="${dbName}","table"="${tableName}");
               """
               exception "denied"
         }
@@ -75,7 +81,10 @@ suite("test_partitions_auth","p0,auth") {
              show partitions from ${dbName}.${tableName};
           """
         sql """
-             select * from 
partitions('catalog'='internal',"database"="${dbName}","table"="${tableName}");
+             select * from 
partitions("catalog"="internal","database"="${dbName}","table"="${tableName}");
+          """
+        sql """
+             select * from 
partitions("database"="${dbName}","table"="${tableName}");
           """
     }
 
diff --git 
a/regression-test/suites/doc/table-design/data-partitioning/auto-partitioning.md.groovy
 
b/regression-test/suites/doc/table-design/data-partitioning/auto-partitioning.md.groovy
index c67537d78c9..7c32c76c5ee 100644
--- 
a/regression-test/suites/doc/table-design/data-partitioning/auto-partitioning.md.groovy
+++ 
b/regression-test/suites/doc/table-design/data-partitioning/auto-partitioning.md.groovy
@@ -155,6 +155,9 @@ 
suite("docs/table-design/data-partitioning/auto-partitioning.md") {
     sql """
         select * from 
partitions("catalog"="internal","database"="auto_partition_doc_test","table"="DAILY_TRADE_VALUE")
 where PartitionName = auto_partition_name('range', 'year', '2008-02-03');
     """
+    sql """
+        select * from 
partitions("database"="auto_partition_doc_test","table"="DAILY_TRADE_VALUE") 
where PartitionName = auto_partition_name('range', 'year', '2008-02-03');
+    """
 
 
 
diff --git 
a/regression-test/suites/doc/table-design/data-partitioning/basic-concepts.md.groovy
 
b/regression-test/suites/doc/table-design/data-partitioning/basic-concepts.md.groovy
index 8558aadb218..5b91733c8c1 100644
--- 
a/regression-test/suites/doc/table-design/data-partitioning/basic-concepts.md.groovy
+++ 
b/regression-test/suites/doc/table-design/data-partitioning/basic-concepts.md.groovy
@@ -219,7 +219,8 @@ 
suite("docs/table-design/data-partitioning/basic-concepts.md") {
     sql """ insert into list_table1 values ("Beijing"), ("XXX"), ("xxx"), 
("Beijing"), ("Abc"), (null) """
     sql """ insert into list_table1 values (null), ("") """ // not same 
partition
 
-    sql """ select * from partitions("catalog"="internal", 
"database"="partition_basic_concepts", "table"="DAILY_TRADE_VALUE") where 
PartitionName = auto_partition_name('range', 'year', '2008-02-03'); """
+    sql """ select * from 
partitions("catalog"="internal","database"="partition_basic_concepts", 
"table"="DAILY_TRADE_VALUE") where PartitionName = auto_partition_name('range', 
'year', '2008-02-03'); """
+    sql """ select * from partitions("database"="partition_basic_concepts", 
"table"="DAILY_TRADE_VALUE") where PartitionName = auto_partition_name('range', 
'year', '2008-02-03'); """
     sql """ select * from information_schema.partitions where 
TABLE_SCHEMA='partition_basic_concepts' and TABLE_NAME='list_table1' and 
PARTITION_NAME=auto_partition_name('list', null); """
     sql """ select * from information_schema.partitions where 
TABLE_NAME='DAILY_TRADE_VALUE' and PARTITION_DESCRIPTION like 
"[('2012-01-01'),%"; """
 }
diff --git 
a/regression-test/suites/external_table_p0/tvf/test_partitions_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_partitions_tvf.groovy
index cab85625c84..893cd45fa2d 100644
--- a/regression-test/suites/external_table_p0/tvf/test_partitions_tvf.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_partitions_tvf.groovy
@@ -38,28 +38,39 @@ 
suite("test_partitions_tvf","p0,external,tvf,external_docker") {
         );
         """
     order_qt_desc "desc function 
partitions('catalog'='internal','database'='${dbName}','table'='${tableName}');"
+    sql "desc function 
partitions('database'='${dbName}','table'='${tableName}');"
     List<List<Object>> res =  sql """ select * from 
partitions('catalog'='internal',"database"="${dbName}","table"="${tableName}"); 
"""
+    List<List<Object>> res2 =  sql """ select * from 
partitions("database"="${dbName}","table"="${tableName}"); """
     logger.info("res: " + res.toString())
+    logger.info("res2: " + res2.toString())
 
     assertEquals(1, res.size());
+    assertEquals(1, res2.size());
     // PartitionName
     assertEquals("p1", res[0][1]);
+    assertEquals("p1", res2[0][1]);
     // State
     assertEquals("NORMAL", res[0][4]);
+    assertEquals("NORMAL", res2[0][4]);
     // PartitionKey
     assertEquals("k3", res[0][5]);
+    assertEquals("k3", res2[0][5]);
     // Buckets
     assertEquals(2, res[0][8]);
+    assertEquals(2, res2[0][8]);
     // ReplicationNum: if force_olap_table_replication_num is set to 3,here 
will be 3
     // assertEquals(1, res[0][9]);
     // StorageMedium
     assertEquals("HDD", res[0][10]);
+    assertEquals("HDD", res2[0][10]);
     // ReplicaAllocation: if force_olap_table_replication_num is set to 3,here 
will be 3
     // assertEquals("tag.location.default: 1", res[0][16]);
     // IsMutable
     assertEquals(true, res[0][17]);
+    assertEquals(true, res2[0][17]);
     // SyncWithBaseTables
     assertEquals(true, res[0][18]);
+    assertEquals(true, res2[0][18]);
 
 
     // test exception
@@ -68,6 +79,11 @@ 
suite("test_partitions_tvf","p0,external,tvf,external_docker") {
         // check exception
         exception "xxx"
     }
+    test {
+        sql """ select * from 
partitions("database"="${dbName}","table"="xxx"); """
+        // check exception
+        exception "xxx"
+    }
     test {
         sql """ select * from partitions("database"="${dbName}"); """
         // check exception
diff --git a/regression-test/suites/mtmv_p0/test_multi_pct_mtmv.groovy 
b/regression-test/suites/mtmv_p0/test_multi_pct_mtmv.groovy
index 4eb7a83ab70..a3a9e46cd32 100644
--- a/regression-test/suites/mtmv_p0/test_multi_pct_mtmv.groovy
+++ b/regression-test/suites/mtmv_p0/test_multi_pct_mtmv.groovy
@@ -155,34 +155,40 @@ suite("test_multi_pct_mtmv","mtmv") {
         """
 
     order_qt_partitions_1 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+    order_qt_partitions_1_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
     sql """
         REFRESH MATERIALIZED VIEW ${mvName} AUTO
         """
     waitingMTMVTaskFinishedByMvName(mvName)
     order_qt_partitions_2 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+    order_qt_partitions_2_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
     sql """
         alter table ${tableName2} drop partition p201703;
         """
     order_qt_partitions_3 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+    order_qt_partitions_3_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
     sql """
         REFRESH MATERIALIZED VIEW ${mvName} AUTO
         """
     waitingMTMVTaskFinishedByMvName(mvName)
     order_qt_partitions_4 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+    order_qt_partitions_4_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
     sql """
         alter table ${tableName2} add partition p201704 VALUES 
[("2017-04-01"),("2017-05-01"));
         """
     order_qt_partitions_5 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+    order_qt_partitions_5_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
      sql """
         REFRESH MATERIALIZED VIEW ${mvName} partitions(p_20170401_20170501);
         """
      waitingMTMVTaskFinishedByMvName(mvName)
      order_qt_partitions_6 "select PartitionName,UnsyncTables from 
partitions('catalog'='internal','database'='${dbName}','table'='${mvName}') 
order by PartitionId desc;"
+     order_qt_partitions_6_2 "select PartitionName,UnsyncTables from 
partitions('database'='${dbName}','table'='${mvName}') order by PartitionId 
desc;"
 
      sql """
          insert into ${tableName2} values("2017-04-01",10);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to