已合并
只有mlog没有mview同样维护mlog #7965
TinyBag创建于 2025年6月23日
只有mlog没有mview同样维护mlog #7965
已合并
共 5 个文件变更+4-32
| @@ -2549,12 +2549,7 @@ static Relation RelationBuildDescExtended(Oid targetRelId, bool insertIt, bool b | |||
| 2549 | * mlog oid | 2549 | * mlog oid |
| 2550 | */ | 2550 | */ |
| 2551 | if (!IsCatalogRelation(relation)) { | 2551 | if (!IsCatalogRelation(relation)) { |
| 2552 | - /* if do not have incremental matview, no need to insert into mlog */ | 2552 | + relation->rd_mlogoid = find_matview_mlog_table(relid); |
| 2553 | - if (is_table_in_incre_matview(relid)) { | ||
| 2554 | - relation->rd_mlogoid = find_matview_mlog_table(relid); | ||
| 2555 | - } else { | ||
| 2556 | - relation->rd_mlogoid = InvalidOid; | ||
| 2557 | - } | ||
| 2558 | } | 2553 | } |
| 2559 | 2554 | ||
| 2560 | /* | 2555 | /* |
| @@ -2268,28 +2268,6 @@ Oid find_matview_mlog_table(Oid relid) | |||
| 2268 | return mlogid; | 2268 | return mlogid; |
| 2269 | } | 2269 | } |
| 2270 | 2270 | ||
| 2271 | -bool is_table_in_incre_matview(Oid relid) | ||
| 2272 | -{ | ||
| 2273 | - Relation rel = NULL; | ||
| 2274 | - TableScanDesc scan; | ||
| 2275 | - ScanKeyData scanKey; | ||
| 2276 | - bool result = false; | ||
| 2277 | - | ||
| 2278 | - ScanKeyInit(&scanKey, | ||
| 2279 | - Anum_gs_matview_dep_relid, | ||
| 2280 | - BTEqualStrategyNumber, | ||
| 2281 | - F_OIDEQ, | ||
| 2282 | - ObjectIdGetDatum(relid)); | ||
| 2283 | - rel = heap_open(MatviewDependencyId, AccessShareLock); | ||
| 2284 | - scan = tableam_scan_begin(rel, SnapshotNow, 1, &scanKey); | ||
| 2285 | - if (tableam_scan_getnexttuple(scan, ForwardScanDirection) != NULL) { | ||
| 2286 | - result = true; | ||
| 2287 | - } | ||
| 2288 | - tableam_scan_end(scan); | ||
| 2289 | - heap_close(rel, NoLock); | ||
| 2290 | - return result; | ||
| 2291 | -} | ||
| 2292 | - | ||
| 2293 | void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, ItemPointer tid, TransactionId xid, char action) | 2271 | void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, ItemPointer tid, TransactionId xid, char action) |
| 2294 | { | 2272 | { |
| 2295 | int i; | 2273 | int i; |
| @@ -67,7 +67,6 @@ extern Oid create_matview_map(Oid intoRelationId); | |||
| 67 | extern void insert_into_matview_map(Oid mapid, Oid matid, ItemPointer matcitd, | 67 | extern void insert_into_matview_map(Oid mapid, Oid matid, ItemPointer matcitd, |
| 68 | Oid relid, ItemPointer relctid, TransactionId xid); | 68 | Oid relid, ItemPointer relctid, TransactionId xid); |
| 69 | extern Oid find_matview_mlog_table(Oid relid); | 69 | extern Oid find_matview_mlog_table(Oid relid); |
| 70 | -extern bool is_table_in_incre_matview(Oid relid); | ||
| 71 | extern void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, | 70 | extern void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, |
| 72 | ItemPointer tid, TransactionId xid, char action); | 71 | ItemPointer tid, TransactionId xid, char action); |
| 73 | extern void create_matview_meta(Query *query, RangeVar *rel, bool incremental); | 72 | extern void create_matview_meta(Query *query, RangeVar *rel, bool incremental); |
| @@ -391,7 +391,7 @@ create materialized view log on cov_t2; | |||
| 391 | create materialized view log on cov_t2; | 391 | create materialized view log on cov_t2; |
| 392 | ERROR: materialized view log for table "cov_t2" already exists. | 392 | ERROR: materialized view log for table "cov_t2" already exists. |
| 393 | drop table cov_t1,cov_t2 cascade; | 393 | drop table cov_t1,cov_t2 cascade; |
| 394 | --- 只有mlog没有incre matview,不维护mlog | 394 | +-- 只有mlog没有incre matview,也维护mlog |
| 395 | create table only_mlog_t1(c1 int); | 395 | create table only_mlog_t1(c1 int); |
| 396 | create materialized view log on only_mlog_t1; | 396 | create materialized view log on only_mlog_t1; |
| 397 | insert into only_mlog_t1 values (1); | 397 | insert into only_mlog_t1 values (1); |
| @@ -408,7 +408,7 @@ END; | |||
| 408 | select * from only_mlog_record; | 408 | select * from only_mlog_record; |
| 409 | c1 | 409 | c1 |
| 410 | ---- | 410 | ---- |
| 411 | - 0 | 411 | + 1 |
| 412 | (1 row) | 412 | (1 row) |
| 413 | 413 | ||
| 414 | drop table only_mlog_t1, only_mlog_record; | 414 | drop table only_mlog_t1, only_mlog_record; |
| @@ -228,7 +228,7 @@ create materialized view log on cov_t2; | |||
| 228 | create materialized view log on cov_t2; | 228 | create materialized view log on cov_t2; |
| 229 | drop table cov_t1,cov_t2 cascade; | 229 | drop table cov_t1,cov_t2 cascade; |
| 230 | 230 | ||
| 231 | --- 只有mlog没有incre matview,不维护mlog | 231 | +-- 只有mlog没有incre matview,也维护mlog |
| 232 | create table only_mlog_t1(c1 int); | 232 | create table only_mlog_t1(c1 int); |
| 233 | create materialized view log on only_mlog_t1; | 233 | create materialized view log on only_mlog_t1; |
| 234 | insert into only_mlog_t1 values (1); | 234 | insert into only_mlog_t1 values (1); |