Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public PartitionsTableValuedFunction(Map<String, String> params) throws Analysis
// 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)) {
Expand All @@ -156,6 +156,10 @@ public PartitionsTableValuedFunction(Map<String, String> params) throws Analysis
}

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)) {
Expand All @@ -164,10 +168,6 @@ private void analyze(String catalogName, String dbName, String tableName) {
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)) {
Expand Down
28 changes: 28 additions & 0 deletions regression-test/data/mtmv_p0/test_multi_pct_mtmv.out
Original file line number Diff line number Diff line change
Expand Up @@ -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

13 changes: 11 additions & 2 deletions regression-test/suites/auth_p0/test_partitions_auth.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand All @@ -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}");
"""
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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');
"""



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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'),%"; """
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
6 changes: 6 additions & 0 deletions regression-test/suites/mtmv_p0/test_multi_pct_mtmv.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down