diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index 3f4606f6f..7e3061fab 100755 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -32539,7 +32539,7 @@ void ShrinkCfsChunkRestore(Oid relationId, LOCKMODE lockmode, bool nowait) relation_close(relation, lockmode); } -void ShrinkRealtionChunk(ShrinkStmt* shrink) +void ShrinkRelationChunk(ShrinkStmt* shrink) { ListCell* cell = NULL; foreach (cell, shrink->relations) { @@ -32553,9 +32553,11 @@ void ShrinkRealtionChunk(ShrinkStmt* shrink) reloid = RangeVarGetRelid(r, AccessShareLock, true); if (!OidIsValid(reloid)) { - continue; + ereport(ERROR, (errmsg("[shrink] relation %s%s%s does not exist.", + r->schemaname == NULL ? "" : r->schemaname, + r->schemaname == NULL ? "" : ".", + r->relname))); } - ShrinkCfsChunkRestore(reloid, AccessShareLock, shrink->nowait); } } diff --git a/src/gausskernel/process/tcop/utility.cpp b/src/gausskernel/process/tcop/utility.cpp index 811ccec86..a24a37f97 100755 --- a/src/gausskernel/process/tcop/utility.cpp +++ b/src/gausskernel/process/tcop/utility.cpp @@ -2527,7 +2527,7 @@ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), #endif } -void ExecShrinkRealtionChunkStmt(Node* parse_tree, const char* query_string, bool sent_to_remote) +void ExecShrinkRelationChunkStmt(Node* parse_tree, const char* query_string, bool sent_to_remote) { #ifdef PGXC if (IS_PGXC_COORDINATOR) { @@ -2537,18 +2537,18 @@ void ExecShrinkRealtionChunkStmt(Node* parse_tree, const char* query_string, boo if (u_sess->attr.attr_sql.enable_parallel_ddl && !is_first_node) { ExecUtilityStmtOnNodes_ParallelDDLMode( query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false, first_exec_node); - ShrinkRealtionChunk((ShrinkStmt*)(void *)parse_tree); + ShrinkRelationChunk((ShrinkStmt*)(void *)parse_tree); ExecUtilityStmtOnNodes_ParallelDDLMode( query_string, NULL, sent_to_remote, false, EXEC_ON_DATANODES, false, first_exec_node); } else { - ShrinkRealtionChunk((ShrinkStmt*)(void *)parse_tree); + ShrinkRelationChunk((ShrinkStmt*)(void *)parse_tree); ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_ALL_NODES, false); } } else { - ShrinkRealtionChunk((ShrinkStmt*)(void *)parse_tree); + ShrinkRelationChunk((ShrinkStmt*)(void *)parse_tree); } #else - ShrinkRealtionChunk((ShrinkStmt*)(void *)parse_tree); + ShrinkRelationChunk((ShrinkStmt*)(void *)parse_tree); #endif } @@ -4932,7 +4932,7 @@ void standard_ProcessUtility(processutility_context* processutility_cxt, break; #endif case T_ShrinkStmt: { - ExecShrinkRealtionChunkStmt(parse_tree, query_string, sent_to_remote); + ExecShrinkRelationChunkStmt(parse_tree, query_string, sent_to_remote); break; } case T_ReindexStmt: { diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h index fdcccfea7..b7bb4c515 100644 --- a/src/include/commands/tablecmds.h +++ b/src/include/commands/tablecmds.h @@ -114,7 +114,7 @@ extern void RemoveRelationsonMainExecCN(DropStmt* drop, ObjectAddresses* objects extern void RemoveRelations(DropStmt* drop, StringInfo tmp_queryString, RemoteQueryExecType* exec_type); -extern void ShrinkRealtionChunk(ShrinkStmt *shrink); +extern void ShrinkRelationChunk(ShrinkStmt *shrink); extern void RemoveObjectsonMainExecCN(DropStmt* drop, ObjectAddresses* objects, bool isFirstNode); diff --git a/src/test/regress/expected/row_compression/row_compress_feature.out b/src/test/regress/expected/row_compression/row_compress_feature.out index 36896cf1c..4e8035804 100644 --- a/src/test/regress/expected/row_compression/row_compress_feature.out +++ b/src/test/regress/expected/row_compression/row_compress_feature.out @@ -408,6 +408,10 @@ shrink table row_compression_test_tbl1_kkk; shrink table row_compression_test_tbl1_kkk nowait; shrink table row_compression_test_tbl1_kkk_idx; shrink table row_compression_test_tbl1_kkk_idx nowait; +shrink table row_compression_test_not_exist; +ERROR: [shrink] relation row_compression_test_not_exist does not exist. +shrink table row_compression_test_not_exist nowait; +ERROR: [shrink] relation row_compression_test_not_exist does not exist. -- test truncate truncate table row_compression_test_tbl1_kkk; checkpoint; @@ -889,4 +893,4 @@ select * from compress_normal_user.hash_range order by month_code, dept_code; (6 rows) drop table if exists compress_normal_user.hash_range cascade; -drop schema if exists compress_normal_user cascade; \ No newline at end of file +drop schema if exists compress_normal_user cascade; diff --git a/src/test/regress/sql/row_compression/row_compress_feature.sql b/src/test/regress/sql/row_compression/row_compress_feature.sql index c9250759a..cb8758241 100644 --- a/src/test/regress/sql/row_compression/row_compress_feature.sql +++ b/src/test/regress/sql/row_compression/row_compress_feature.sql @@ -229,6 +229,8 @@ shrink table row_compression_test_tbl1_kkk; shrink table row_compression_test_tbl1_kkk nowait; shrink table row_compression_test_tbl1_kkk_idx; shrink table row_compression_test_tbl1_kkk_idx nowait; +shrink table row_compression_test_not_exist; +shrink table row_compression_test_not_exist nowait; -- test truncate truncate table row_compression_test_tbl1_kkk;