Hi,
When I run "SELECT * FROM pg_class LIMIT 1"; then postgresql run GetSnapshotData twice, one is /* * Set up a snapshot if parse analysis/planning will need one. */ if (analyze_requires_snapshot(parsetree)) { PushActiveSnapshot(GetTransactionSnapshot()); snapshot_set = true; } the other one is in PortalStart. My question is why can't we share the same snapshot for the 2 cases? parser & planner requires Catalog Snapshot which should be the latest one, but in the above case, looks the executor can reuse it as well. Is there anything I missed? Thanks -- Best Regards Andy Fan