Hi hackers, I'm doing work related to creating an index with parallel workers. I found that SnapshotAny is used in table_beginscan_parallel() when indexInfo->ii_Concurrent Is set to false. So can we not pass the snapshot from the parallel worker creator to the parallel worker? like this: ``` InitializeParallelDSM() { ...
if (is_concurrent == false) { /* Serialize the active snapshot. */ asnapspace = shm_toc_allocate(pcxt->toc, asnaplen); SerializeSnapshot(active_snapshot, asnapspace); shm_toc_insert(pcxt->toc, PARALLEL_KEY_ACTIVE_SNAPSHOT, asnapspace); } ... } ParallelWorkerMain() { ... if(is_concurrent == false) { asnapspace = shm_toc_lookup(toc, PARALLEL_KEY_ACTIVE_SNAPSHOT, false); tsnapspace = shm_toc_lookup(toc, PARALLEL_KEY_TRANSACTION_SNAPSHOT, true); asnapshot = RestoreSnapshot(asnapspace); tsnapshot = tsnapspace ? RestoreSnapshot(tsnapspace) : asnapshot; RestoreTransactionSnapshot(tsnapshot, fps->parallel_leader_pgproc); PushActiveSnapshot(asnapshot); } ... } ``` I would appreciate your help. With Regards Hao Zhang