stats_ext test fails with -DCATCACHE_FORCE_RELEASE
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2018-05-01T07:16:35Z
Lists: pgsql-hackers
Attachments
- extended-stat-catalog-datum-1.patch (text/plain) patch
Hi. While playing around with a -DCATCACHE_FORCE_RELEASE build, I noticed that stats_ext test failed with errors for multiple statements that looked like this: ERROR: invalid ndistinct magic 7f7f7f7f (expected a352bfa4) I figured it's because statext_dependencies_load() and statext_ndistinct_build() both return a pointer that points directly into a pg_statistics_ext tuple obtained by using SearchSysCache1 that has uncertain lifetime after subsequent call to ReleaseSysCache before returning. I think we should be calling statext_dependencies_deserialize() and statext_ndistinct_deserialize(), respectively, *before* we perform ReleaseSysCache on the tuple. Attached patch does that. Thanks, Amit
Commits
-
Fix bogus code for extracting extended-statistics data from syscache.
- 447dbf7aa790 11.0 landed
- cec9d03d9165 10.4 landed