From 8bd4600dd9538cb3f9a92fee8d7b9dbd1a1c8387 Mon Sep 17 00:00:00 2001 From: TinyBag Date: Wed, 26 Mar 2025 20:05:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E6=9C=89mlog=E6=B2=A1=E6=9C=89mview?= =?UTF-8?q?=E5=90=8C=E6=A0=B7=E7=BB=B4=E6=8A=A4mlog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/cache/relcache.cpp | 7 +----- .../optimizer/commands/matview.cpp | 22 ------------------- src/include/commands/matview.h | 1 - src/test/regress/expected/matview_single.out | 4 ++-- src/test/regress/sql/matview_single.sql | 2 +- 5 files changed, 4 insertions(+), 32 deletions(-) diff --git a/src/common/backend/utils/cache/relcache.cpp b/src/common/backend/utils/cache/relcache.cpp index e1ea8a8e74..c73c840290 100755 --- a/src/common/backend/utils/cache/relcache.cpp +++ b/src/common/backend/utils/cache/relcache.cpp @@ -2535,12 +2535,7 @@ static Relation RelationBuildDescExtended(Oid targetRelId, bool insertIt, bool b * mlog oid */ if (!IsCatalogRelation(relation)) { - /* if do not have incremental matview, no need to insert into mlog */ - if (is_table_in_incre_matview(relid)) { - relation->rd_mlogoid = find_matview_mlog_table(relid); - } else { - relation->rd_mlogoid = InvalidOid; - } + relation->rd_mlogoid = find_matview_mlog_table(relid); } /* diff --git a/src/gausskernel/optimizer/commands/matview.cpp b/src/gausskernel/optimizer/commands/matview.cpp index 6439a08fc1..dd118c3c75 100755 --- a/src/gausskernel/optimizer/commands/matview.cpp +++ b/src/gausskernel/optimizer/commands/matview.cpp @@ -2268,28 +2268,6 @@ Oid find_matview_mlog_table(Oid relid) return mlogid; } -bool is_table_in_incre_matview(Oid relid) -{ - Relation rel = NULL; - TableScanDesc scan; - ScanKeyData scanKey; - bool result = false; - - ScanKeyInit(&scanKey, - Anum_gs_matview_dep_relid, - BTEqualStrategyNumber, - F_OIDEQ, - ObjectIdGetDatum(relid)); - rel = heap_open(MatviewDependencyId, AccessShareLock); - scan = tableam_scan_begin(rel, SnapshotNow, 1, &scanKey); - if (tableam_scan_getnexttuple(scan, ForwardScanDirection) != NULL) { - result = true; - } - tableam_scan_end(scan); - heap_close(rel, NoLock); - return result; -} - void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, ItemPointer tid, TransactionId xid, char action) { int i; diff --git a/src/include/commands/matview.h b/src/include/commands/matview.h index 223afdddb9..196e9c4fa2 100644 --- a/src/include/commands/matview.h +++ b/src/include/commands/matview.h @@ -67,7 +67,6 @@ extern Oid create_matview_map(Oid intoRelationId); extern void insert_into_matview_map(Oid mapid, Oid matid, ItemPointer matcitd, Oid relid, ItemPointer relctid, TransactionId xid); extern Oid find_matview_mlog_table(Oid relid); -extern bool is_table_in_incre_matview(Oid relid); extern void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, ItemPointer tid, TransactionId xid, char action); extern void create_matview_meta(Query *query, RangeVar *rel, bool incremental); diff --git a/src/test/regress/expected/matview_single.out b/src/test/regress/expected/matview_single.out index aa77c92fbd..bf73d45d0b 100644 --- a/src/test/regress/expected/matview_single.out +++ b/src/test/regress/expected/matview_single.out @@ -391,7 +391,7 @@ create materialized view log on cov_t2; create materialized view log on cov_t2; ERROR: materialized view log for table "cov_t2" already exists. drop table cov_t1,cov_t2 cascade; --- 只有mlog没有incre matview,不维护mlog +-- 只有mlog没有incre matview,也维护mlog create table only_mlog_t1(c1 int); create materialized view log on only_mlog_t1; insert into only_mlog_t1 values (1); @@ -408,7 +408,7 @@ END; select * from only_mlog_record; c1 ---- - 0 + 1 (1 row) drop table only_mlog_t1, only_mlog_record; diff --git a/src/test/regress/sql/matview_single.sql b/src/test/regress/sql/matview_single.sql index 2f3578f0e1..074daf5122 100644 --- a/src/test/regress/sql/matview_single.sql +++ b/src/test/regress/sql/matview_single.sql @@ -228,7 +228,7 @@ create materialized view log on cov_t2; create materialized view log on cov_t2; drop table cov_t1,cov_t2 cascade; --- 只有mlog没有incre matview,不维护mlog +-- 只有mlog没有incre matview,也维护mlog create table only_mlog_t1(c1 int); create materialized view log on only_mlog_t1; insert into only_mlog_t1 values (1); -- Gitee