Re: Displaying and dumping of table access methods - Mailing list pgsql-hackers
From | Andres Freund |
---|---|
Subject | Re: Displaying and dumping of table access methods |
Date | |
Msg-id | 20190108172949.oanse2pzii65udwv@alap3.anarazel.de Whole thread Raw |
In response to | Re: Displaying and dumping of table access methods (Michael Paquier <michael@paquier.xyz>) |
Responses |
Re: Displaying and dumping of table access methods
|
List | pgsql-hackers |
Hi, On 2019-01-08 13:02:00 +0900, Michael Paquier wrote: > On Mon, Jan 07, 2019 at 06:31:52PM -0800, Andres Freund wrote: > > Huh? It's absolutely *trivial* from a buildsystem POV to run the tests > > again with a different default AM. That's precisely why I'm talking > > about this. Just setting PGOPTIONS='-c > > default_table_access_method=zheap' in the new makefile target (the ms > > run scripts are similar) is sufficient. And we don't need to force > > everyone to constantly run tests with e.g. both heap and zheap, it's > > sufficient to do so on a few buildfarm machines, and whenever changing > > AM level code. Rerunning all the tests with a different AM is just > > setting the same environment variable, but running check-world as the > > target. > > Another point is that having default_table_access_method facilitates > the restore of tables across AMs similarly to tablespaces, so CREATE > TABLE dumps should not include the AM part. That's what I suggested in the first message in this thread, or did I miss a difference? > > And even if you were to successfully argue that it's sufficient during > > normal development to only have a few zheap specific additional tests, > > we'd certainly want to make it possible to occasionally explicitly run > > the rest of the tests under zheap to see whether additional stuff has > > been broken - and that's much harder to sift through if there's a lot of > > spurious test failures due to \d[+] outputting additional/differing > > data. > > The specific-heap tests could be included as an extra module in > src/test/modules easily, so removing from the main tests what is not > completely transparent may make sense. Why does it need to be an extra module, rather than just exta regression files / sections of files that just explicitly specify the AM? Seems a lot easier and faster. > > We are working seriously hard on making AMs pluggable. Zheap is not yet, > > and won't be that soon, part of core. The concerns for an in-core zheap > > (which needs to maintain the test infrastructure during the remainder of > > its out-of-core development!) and out-of-core AMs are pretty aligned. I > > don't get your confusion. > > I would imagine that a full-fledged AM should be able to maintain > compatibility with the full set of queries that heap is able to > support, so if you can make the tests transparent enough so as they > can be run for any AMs without alternate input in the core tree, then > that's a goal worth it. Don't you have plan inconsistencies as well > with zheap? In the core tests there's a fair number of things that can be cured by adding an ORDER BY to the tests, which seems sensible. We've added a lot of those over the years anyway. There's additionally a number of plans that change, which currently is handled by alternatives output files, but I think we should move to reduce those differences, that's probably not too hard. Greetings, Andres Freund
pgsql-hackers by date: