Re: POC: Sharing record typmods between backends
Andres Freund <andres@anarazel.de>
On 2017-09-15 15:39:49 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2017-09-14 23:29:05 -0400, Tom Lane wrote: > >> FWIW, I'm not on board with that. I think the version of typedefs.list > >> in the tree should reflect the last official pgindent run. > > > Why? I see pretty much no upside to that. You can't reindent anyway, due > > to unindented changes. You can get the used typedefs.list trivially from > > git. > > Perhaps, but the real problem is still this: > > >> There's also a problem that it only works well if *every* committer > >> faithfully updates typedefs.list, which isn't going to happen. > > We can't even get everybody to pgindent patches before commit, let alone > update typedefs.list. Well, that's partially because right now it's really painful to do so, and we've not tried to push people to do so. You essentially have to: 1) Pull down a new typedefs.list (how many people know where from?) 2) Add new typedefs that have been added in the commit-to-be 3) Run pgindent only on the changed files, because there's bound to be thousands of unrelated reindents 4) Revert reindents in changed files that are unrelated to the commit. 1) is undocumented 2) is painful (add option to automatically generate?), 3) is painful (add commandline tool?) 4) is painful. So it's not particularly surprising that many don't bother. > >> For local pgindent'ing, I pull down > >> https://buildfarm.postgresql.org/cgi-bin/typedefs.pl > > > That's a mighty manual process - I want to be able to reindent files, > > especially new ones where it's still reasonably possible, without having > > to download files, then move changes out of the way, so I can rebase, > > Well, that just shows you don't know how to use it. You can tell pgindent > to use an out-of-tree copy of typedefs.list. I have the curl fetch and > using the out-of-tree list all nicely scripted ;-) Not sure how that invalidates my statement. If you have to script it locally, and still have to add typedefs manually, that's still plenty stuff every committer (and better even, ever contributor!) has to learn. > There might be something to be said for removing the typedefs list > from git altogether, and adjusting the standard wrapper script to pull > it from the buildfarm into a .gitignore'd location if there's not a > copy there already. I wonder if we could add a command that pulls down an up2date list *and* regenerates a list for the local tree with the local settings. And then runs pgindent with the combined list - in most cases that'd result in a properly indented tree. The number of commits with platform specific changes that the author/committer doesn't compile/run isn't that high. Greetings, Andres Freund
Commits
-
Remove TupleDesc remapping logic from tqueue.c.
- 6b65a7fe62e1 11.0 landed
-
Add support for coordinating record typmods among parallel workers.
- cc5f81366c36 11.0 landed
-
Improve division of labor between execParallel.c and nodeGather[Merge].c.
- 51daa7bdb39e 11.0 cited
-
Add minimal regression test for blessed record type transfer.
- d36f7efb39e1 11.0 landed
-
Consolidate the function pointer types used by dshash.c.
- d7694fc14870 11.0 landed
-
Fix unlikely shared memory leak after failure in dshash_create().
- 4569715bd6fa 11.0 landed
-
Refactor typcache.c's record typmod hash table.
- 35ea75632a56 11.0 landed
-
Add a hash_combine function for mixing hash values.
- 0052a0243d9c 11.0 landed
-
Backpatch introduction of TupleDescAttr(tupdesc, i).
- 8cda1fadd25b 9.2.23 landed
- 5b286cae3cc1 9.3.19 landed
- 3d58994eccb7 9.4.14 landed
- d778a77d38be 9.5.9 landed
- 6c036d01089c 9.6.5 landed
- d34a74dd064a 10.0 landed
-
Partially flatten struct tupleDesc so that it can be used in DSM.
- c6293249dc17 11.0 landed
-
Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n).
- 2cd708452400 11.0 landed