diff --git a/src/gausskernel/security/gs_ledger/ledger_archive.cpp b/src/gausskernel/security/gs_ledger/ledger_archive.cpp index 62647711bffdc38a9d9f116dc871ecb09efa6def..82d0341c0d2f0dc74419e967eda3f50d9f3f1d2b 100644 --- a/src/gausskernel/security/gs_ledger/ledger_archive.cpp +++ b/src/gausskernel/security/gs_ledger/ledger_archive.cpp @@ -482,6 +482,7 @@ Datum ledger_hist_archive(PG_FUNCTION_ARGS) /* Do insertion for unified row. */ simple_heap_insert(histRel, tuple); + CatalogUpdateIndexes(histRel,tuple); heap_freetuple(tuple); /* diff --git a/src/gausskernel/security/gs_ledger/ledger_utils.cpp b/src/gausskernel/security/gs_ledger/ledger_utils.cpp index b3e1bb5480f3e8bf783f53289912b4114bc38535..66dac7d7cd5b4974aa2d9e0aa6110390b7a834a5 100644 --- a/src/gausskernel/security/gs_ledger/ledger_utils.cpp +++ b/src/gausskernel/security/gs_ledger/ledger_utils.cpp @@ -160,8 +160,7 @@ uint64 get_next_recnum(Oid histoid) uint64 res; RecNumItem *item = (RecNumItem *)hash_search(g_recnum_cache, &histoid, HASH_FIND, &found); if (found) { - res = item->rec_num; - pg_atomic_add_fetch_u64(&item->rec_num, 1); + res = pg_atomic_fetch_add_u64(&item->rec_num, 1); } else { LWLockRelease(BlockchainVersionLock); LWLockAcquire(BlockchainVersionLock, LW_EXCLUSIVE); diff --git a/src/gausskernel/security/gs_ledger/userchain.cpp b/src/gausskernel/security/gs_ledger/userchain.cpp index 68dc66dcd22bcc17a83f929ee524ea42cfacdc6b..ce9369ad4cf12e00dab88cb7581617dbeca458e9 100644 --- a/src/gausskernel/security/gs_ledger/userchain.cpp +++ b/src/gausskernel/security/gs_ledger/userchain.cpp @@ -512,6 +512,7 @@ bool hist_table_record_internal(Oid hist_oid, const uint64 *hash_ins, const uint HeapTuple tuple = heap_form_tuple(hist_desc, values, nulls); simple_heap_insert(hist_rel, tuple); + CatalogUpdateIndexes(hist_rel,tuple); heap_freetuple(tuple); heap_close(hist_rel, RowExclusiveLock);