run pgindent on a regular basis / scripted manner

Started by Andres Freundover 5 years ago308 messageshackers
Jump to latest
#1Andres Freund
andres@anarazel.de

Hi,

When developing patches I find it fairly painful that I cannot re-indent
patches with pgindent without also seeing a lot of indentation changes
in unmodified parts of files. It is easy enough ([1]./src/tools/pgindent/pgindent $(git diff-tree --no-commit-id --name-only -r upstream/master..HEAD|grep -v src/test|grep -v READ ME|grep -v typedefs.list)) to only re-indent
files that I have modified, but there's often a lot of independent
indentation changes in the files that I did modified.

I e.g. just re-indented patch 0001 of my GetSnapshotData() series and
most of the hunks were entirely unrelated. Despite the development
window for 14 having only relatively recently opened. Based on my
experience it tends to get worse over time.

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

Currently the yearly pgindent runs are somewhat painful for patches that
didn't make it into the release, but if we were to reindent on a more
regular basis, that should be much less the case. It'd also help newer
developers who we sometimes tell to use pgindent - which doesn't really
work.

Greetings,

Andres Freund

[1]: ./src/tools/pgindent/pgindent $(git diff-tree --no-commit-id --name-only -r upstream/master..HEAD|grep -v src/test|grep -v READ ME|grep -v typedefs.list)

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Andres Freund (#1)
Re: run pgindent on a regular basis / scripted manner

On 2020-Aug-12, Andres Freund wrote:

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

Seconded.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#3Jesse Zhang
sbjesse@gmail.com
In reply to: Andres Freund (#1)
Re: run pgindent on a regular basis / scripted manner

Hi Andres,

On Wed, Aug 12, 2020 at 3:34 PM Andres Freund wrote:

Hi,

When developing patches I find it fairly painful that I cannot re-indent
patches with pgindent without also seeing a lot of indentation changes
in unmodified parts of files. It is easy enough ([1]) to only re-indent
files that I have modified, but there's often a lot of independent
indentation changes in the files that I did modified.

I e.g. just re-indented patch 0001 of my GetSnapshotData() series and
most of the hunks were entirely unrelated. Despite the development
window for 14 having only relatively recently opened. Based on my
experience it tends to get worse over time.

How bad was it right after branching 13? I wonder if we have any
empirical measure of badness over time -- assuming there was a point in
the recent past where everything was good, and the bad just crept in.

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

You know what's better than weekly? Every check-in. I for one would love
it if we can just format the entire codebase, and ensure that new
check-ins are also formatted. We _do_ need some form of continuous
integration to catch us when we have fallen short (again, once HEAD
reaches a "known good" state, it's conceivably cheap to keep it in the
good state.

Cheers,
Jesse

#4Andres Freund
andres@anarazel.de
In reply to: Jesse Zhang (#3)
Re: run pgindent on a regular basis / scripted manner

Hi,

On 2020-08-12 16:08:50 -0700, Jesse Zhang wrote:

On Wed, Aug 12, 2020 at 3:34 PM Andres Freund wrote:

Hi,

When developing patches I find it fairly painful that I cannot re-indent
patches with pgindent without also seeing a lot of indentation changes
in unmodified parts of files. It is easy enough ([1]) to only re-indent
files that I have modified, but there's often a lot of independent
indentation changes in the files that I did modified.

I e.g. just re-indented patch 0001 of my GetSnapshotData() series and
most of the hunks were entirely unrelated. Despite the development
window for 14 having only relatively recently opened. Based on my
experience it tends to get worse over time.

How bad was it right after branching 13? I wonder if we have any
empirical measure of badness over time -- assuming there was a point in
the recent past where everything was good, and the bad just crept in.

Well, just after branching it was perfect, because pgindent was
customarily is run just before branching. After that it incrementally
gets worse.

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

You know what's better than weekly? Every check-in. I for one would love
it if we can just format the entire codebase, and ensure that new
check-ins are also formatted. We _do_ need some form of continuous
integration to catch us when we have fallen short (again, once HEAD
reaches a "known good" state, it's conceivably cheap to keep it in the
good state.

Unfortunately that is, with the current tooling, not entirely trivial to
do so completely. The way we generate the list of known typedefs
unfortunately depends on the platform a build is run on. Therefore the
buildfarm collects a number of the generated list of typedefs from
different platforms, and then we use that combined list to run pgindent.

We surely can improve further, but I think having any automation around
this already would be a huge step.

Greetings,

Andres Freund

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jesse Zhang (#3)
Re: run pgindent on a regular basis / scripted manner

Jesse Zhang <sbjesse@gmail.com> writes:

On Wed, Aug 12, 2020 at 3:34 PM Andres Freund wrote:

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

You know what's better than weekly? Every check-in.

I'm not in favor of unsupervised pgindent runs, really. It can do a lot
of damage to code that was written without thinking about it --- in
particular, it'll make a hash of comment blocks that were manually
formatted and not protected with dashes.

If the workflow is commit first and re-indent later, then we can always
revert the pgindent commit and clean things up manually; but an auto
re-indent during commit wouldn't provide that history.

I do like the idea of more frequent, smaller pgindent runs instead of
doing just one giant run per year. With the giant runs it's necessary
to invest a fair amount of time eyeballing all the changes; if we did it
every couple weeks then the pain would be a lot less.

Another idea would be to have a bot that runs pgindent *without*
committing the results, and emails the people who have made commits
into files that changed, saying "if you don't like these diffs then
you'd better clean up your commit before it happens for real". With
some warning like that, it might be okay to do automatic reindenting
a little bit later. Plus, nagging committers who habitually commit
improperly-indented code might persuade them to clean up their acts ;-)

regards, tom lane

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#4)
Re: run pgindent on a regular basis / scripted manner

Andres Freund <andres@anarazel.de> writes:

Unfortunately that is, with the current tooling, not entirely trivial to
do so completely. The way we generate the list of known typedefs
unfortunately depends on the platform a build is run on. Therefore the
buildfarm collects a number of the generated list of typedefs from
different platforms, and then we use that combined list to run pgindent.

Yeah, it's hard to see how to avoid that given that the set of typedefs
provided by system headers is not fixed. (Windows vs not Windows is the
worst case of course, but Unixen aren't all alike either.)

Another gotcha that we have to keep our eyes on is that sometimes the
process finds spurious names that we don't want to treat as typedefs
because it results in messing up too much code. There's a reject list
in pgindent that takes care of those, but it has to be maintained
manually. So I'm not sure how that could work in conjunction with
unsupervised reindents --- by the time you notice a problem, the git
history will already be cluttered with bogus reindentations.

Maybe the secret is to not allow automated adoption of new typedefs.list
entries, but to require somebody to add entries to that file by hand,
even if they're basing it on the buildfarm results. (This would
encourage the habit some people have adopted of updating typedefs.list
along with commits that add typedefs. I've never done that, but would
be willing to change if there's good motivation to.)

regards, tom lane

#7Michael Paquier
michael@paquier.xyz
In reply to: Alvaro Herrera (#2)
Re: run pgindent on a regular basis / scripted manner

On Wed, Aug 12, 2020 at 06:53:25PM -0400, Alvaro Herrera wrote:

On 2020-Aug-12, Andres Freund wrote:

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

Seconded.

Thirded.
--
Michael

#8Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#5)
Re: run pgindent on a regular basis / scripted manner

On Wed, Aug 12, 2020 at 07:47:01PM -0400, Tom Lane wrote:

Jesse Zhang <sbjesse@gmail.com> writes:

On Wed, Aug 12, 2020 at 3:34 PM Andres Freund wrote:

Is there any reason we don't just automatically run pgindent regularly?
Like once a week? And also update typedefs.list automatically, while
we're at it?

You know what's better than weekly? Every check-in.

I'm not in favor of unsupervised pgindent runs, really. It can do a lot
of damage to code that was written without thinking about it --- in
particular, it'll make a hash of comment blocks that were manually
formatted and not protected with dashes.

If the workflow is commit first and re-indent later, then we can always
revert the pgindent commit and clean things up manually; but an auto
re-indent during commit wouldn't provide that history.

There are competing implementations of assuring pgindent-cleanliness at every
check-in:

1. After each push, an automated followup commit appears, restoring
pgindent-cleanliness.
2. "git push" results in a commit that melds pgindent changes into what the
committer tried to push.
3. "git push" fails, for the master branch, if the pushed commit disrupts
pgindent-cleanliness.

Were you thinking of (2)? (1) doesn't have the lack-of-history problem, but
it does have the unexpected-damage problem, and it makes gitweb noisier. (3)
has neither problem, and I'd prefer it over (1), (2), or $SUBJECT.

Regarding typedefs.list, I would use the in-tree one, like you discussed here:

Show quoted text

On Wed, Aug 12, 2020 at 07:57:29PM -0400, Tom Lane wrote:

Maybe the secret is to not allow automated adoption of new typedefs.list
entries, but to require somebody to add entries to that file by hand,
even if they're basing it on the buildfarm results. (This would
encourage the habit some people have adopted of updating typedefs.list
along with commits that add typedefs. I've never done that, but would
be willing to change if there's good motivation to.)

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#8)
Re: run pgindent on a regular basis / scripted manner

Noah Misch <noah@leadboat.com> writes:

On Wed, Aug 12, 2020 at 07:47:01PM -0400, Tom Lane wrote:

If the workflow is commit first and re-indent later, then we can always
revert the pgindent commit and clean things up manually; but an auto
re-indent during commit wouldn't provide that history.

There are competing implementations of assuring pgindent-cleanliness at every
check-in:

1. After each push, an automated followup commit appears, restoring
pgindent-cleanliness.
2. "git push" results in a commit that melds pgindent changes into what the
committer tried to push.
3. "git push" fails, for the master branch, if the pushed commit disrupts
pgindent-cleanliness.

Were you thinking of (2)?

I was objecting to (2). (1) would perhaps work. (3) could be pretty
darn annoying, especially if it blocks a time-critical security patch.

Regarding typedefs.list, I would use the in-tree one, like you discussed here:

Yeah, after thinking about that more, it seems like automated
typedefs.list updates would be far riskier than automated reindent
based on the existing typedefs.list. The latter could at least be
expected not to change code unrelated to the immediate commit.
typedefs.list updates need some amount of adult supervision.

(I'd still vote for nag-mail to the committer whose work got reindented,
in case the bot made things a lot worse.)

I hadn't thought about the angle of HEAD versus back-branch patches,
but that does seem like something to ponder. The back branches don't
have the same pgindent rules necessarily, plus the patch versions
might be different in more than just whitespace. My own habit when
back-patching has been to indent the HEAD patch per-current-rules and
then preserve that layout as much as possible in the back branches,
but I doubt we could get a tool to do that with any reliability.

Of course, there's also the possibility of forcibly reindenting
all the active back branches to current rules. But I think we've
rejected that idea already, because it would cause so much pain
for forks that are following a back branch.

regards, tom lane

#10Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#9)
Re: run pgindent on a regular basis / scripted manner

On Thu, Aug 13, 2020 at 12:08:36AM -0400, Tom Lane wrote:

Noah Misch <noah@leadboat.com> writes:

On Wed, Aug 12, 2020 at 07:47:01PM -0400, Tom Lane wrote:

If the workflow is commit first and re-indent later, then we can always
revert the pgindent commit and clean things up manually; but an auto
re-indent during commit wouldn't provide that history.

There are competing implementations of assuring pgindent-cleanliness at every
check-in:

1. After each push, an automated followup commit appears, restoring
pgindent-cleanliness.
2. "git push" results in a commit that melds pgindent changes into what the
committer tried to push.
3. "git push" fails, for the master branch, if the pushed commit disrupts
pgindent-cleanliness.

Were you thinking of (2)?

I was objecting to (2). (1) would perhaps work. (3) could be pretty
darn annoying,

Right. I think of three use cases here:

a) I'm a committer who wants to push clean code. I want (3).
b) I'm a committer who wants to ignore pgindent. I get some email complaints
under (1), which I ignore. Under (3), I'm forced to become (a).
c) I'm reading the history. I want (3).

I hadn't thought about the angle of HEAD versus back-branch patches,
but that does seem like something to ponder. The back branches don't
have the same pgindent rules necessarily, plus the patch versions
might be different in more than just whitespace. My own habit when
back-patching has been to indent the HEAD patch per-current-rules and
then preserve that layout as much as possible in the back branches,
but I doubt we could get a tool to do that with any reliability.

Similar habit here. Another advantage of master-only is a guarantee against
disrupting time-critical patches. (It would be ugly to push back branches and
sort out the master push later, but it doesn't obstruct the mission.)

#11Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#10)
Re: run pgindent on a regular basis / scripted manner

Noah Misch <noah@leadboat.com> writes:

... Another advantage of master-only is a guarantee against
disrupting time-critical patches. (It would be ugly to push back branches and
sort out the master push later, but it doesn't obstruct the mission.)

Hm, doesn't it? I had the idea that "git push" is atomic --- either all
the per-branch commits succeed, or they all fail. I might be wrong.

regards, tom lane

#12Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#11)
Re: run pgindent on a regular basis / scripted manner

On Thu, Aug 13, 2020 at 01:14:33AM -0400, Tom Lane wrote:

Noah Misch <noah@leadboat.com> writes:

... Another advantage of master-only is a guarantee against
disrupting time-critical patches. (It would be ugly to push back branches and
sort out the master push later, but it doesn't obstruct the mission.)

Hm, doesn't it? I had the idea that "git push" is atomic --- either all
the per-branch commits succeed, or they all fail. I might be wrong.

Atomicity is good. I just meant that you could issue something like "git push
origin $(cd .git/refs/heads && ls REL*)" to defer the complaint about master.

#13Jesse Zhang
sbjesse@gmail.com
In reply to: Tom Lane (#11)
Re: run pgindent on a regular basis / scripted manner

On Wed, Aug 12, 2020 at 10:14 PM Tom Lane wrote:

Noah Misch <noah@leadboat.com> writes:

... Another advantage of master-only is a guarantee against
disrupting time-critical patches. (It would be ugly to push back branches and
sort out the master push later, but it doesn't obstruct the mission.)

Hm, doesn't it? I had the idea that "git push" is atomic --- either all
the per-branch commits succeed, or they all fail. I might be wrong.

As of Git 2.28, atomic pushes are not turned on by default. That means
"git push my-remote foo bar" _can_ result in partial success. I'm that
paranoid who does "git push --atomic my-remote foo bar fizz".

Cheers,
Jesse

#14Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#9)
Re: run pgindent on a regular basis / scripted manner

On Thu, Aug 13, 2020 at 6:08 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Noah Misch <noah@leadboat.com> writes:

On Wed, Aug 12, 2020 at 07:47:01PM -0400, Tom Lane wrote:

If the workflow is commit first and re-indent later, then we can always
revert the pgindent commit and clean things up manually; but an auto
re-indent during commit wouldn't provide that history.

There are competing implementations of assuring pgindent-cleanliness at

every

check-in:

1. After each push, an automated followup commit appears, restoring
pgindent-cleanliness.
2. "git push" results in a commit that melds pgindent changes into what

the

committer tried to push.
3. "git push" fails, for the master branch, if the pushed commit disrupts
pgindent-cleanliness.

There's another option here as well, that is a bit "softer", is to use a
pre-commit hook.

That is, it's a hook that runs on the committers machine prior to the
commit. This hook can then yell "hey, you need to run pgindent before
committing this", but it gives the committer the ability to do --no-verify
and commit anyway (thus won't block things that are urgent).

Since it allows a simple bypass, and very much relies on the committer to
remember to install the hook in their local repository, this is not a
guarantee in any way. So it might need to be done together with something
else in the background doing like a daily job or so, but it might make that
background work be smaller and fewer changes.

This obviously only works in the case where we can rely on the committers
to remember to install such a hook, but given the few committers that we do
have, I think we can certainly get that up to an "acceptable rate" fairly
easily. FWIW, this is similar to what we do in the pgweb, pgeu and a few
other repositories, to ensure python styleguides are followed.

Were you thinking of (2)?

I was objecting to (2). (1) would perhaps work. (3) could be pretty
darn annoying, especially if it blocks a time-critical security patch.

FWIW, I agree that (2) seems like a really bad option. In that suddenly a
committer has committed something they were not aware of.

Regarding typedefs.list, I would use the in-tree one, like you discussed

here:

Yeah, after thinking about that more, it seems like automated
typedefs.list updates would be far riskier than automated reindent
based on the existing typedefs.list. The latter could at least be
expected not to change code unrelated to the immediate commit.
typedefs.list updates need some amount of adult supervision.

(I'd still vote for nag-mail to the committer whose work got reindented,
in case the bot made things a lot worse.)

Yeah, I'm definitely not a big fan of automated commits, regardless of if
it's just indent or both indent+typedef. It's happened at least once, and I
think more than once, that we've had to basically hard reset the upstream
repository and clean things up after automated commits have gone bonkers
(hi, Bruce!). Having an automated system do the whole flow of
change->commit->push definitely invites this type of problem.

There are many solutions that do such things but that do it in the "github
workflow" way, which is they do change -> commit -> create pull request,
and then somebody eyeballs that pullrequest and approves it. We don't have
PRs, but we could either have a script that simply sends out a patch to a
mailinglist, or we could have a script that maintains a separate branch
which is auto-pgindented, and then have a committer squash-merge that
branch after having reviewed it.

Maybe something like that in combination with a pre-commit hook per above.

--
Magnus Hagander
Me: https://www.hagander.net/ <http://www.hagander.net/&gt;
Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/&gt;

#15Stephen Frost
sfrost@snowman.net
In reply to: Magnus Hagander (#14)
Re: run pgindent on a regular basis / scripted manner

Greetings,

* Magnus Hagander (magnus@hagander.net) wrote:

There's another option here as well, that is a bit "softer", is to use a
pre-commit hook.

Yeah, +1 on a pre-commit idea to help address this. I certainly agree
with Andres that it's quite annoying to deal with commits coming in that
aren't indented properly but are in some file that I'm working on.

This obviously only works in the case where we can rely on the committers
to remember to install such a hook, but given the few committers that we do
have, I think we can certainly get that up to an "acceptable rate" fairly
easily. FWIW, this is similar to what we do in the pgweb, pgeu and a few
other repositories, to ensure python styleguides are followed.

Yeah, no guarantee, but definitely seems like it'd be a good
improvement.

I was objecting to (2). (1) would perhaps work. (3) could be pretty
darn annoying, especially if it blocks a time-critical security patch.

FWIW, I agree that (2) seems like a really bad option. In that suddenly a
committer has committed something they were not aware of.

Yeah, I dislike (2) a lot too.

Yeah, I'm definitely not a big fan of automated commits, regardless of if
it's just indent or both indent+typedef. It's happened at least once, and I
think more than once, that we've had to basically hard reset the upstream
repository and clean things up after automated commits have gone bonkers
(hi, Bruce!). Having an automated system do the whole flow of
change->commit->push definitely invites this type of problem.

Agreed, automated commits seems terribly risky.

There are many solutions that do such things but that do it in the "github
workflow" way, which is they do change -> commit -> create pull request,
and then somebody eyeballs that pullrequest and approves it. We don't have
PRs, but we could either have a script that simply sends out a patch to a
mailinglist, or we could have a script that maintains a separate branch
which is auto-pgindented, and then have a committer squash-merge that
branch after having reviewed it.

Maybe something like that in combination with a pre-commit hook per above.

So, in our world, wouldn't this translate to 'make cfbot complain'?

I'm definitely a fan of the idea of having cfbot flag these and then we
maybe get to a point where it's not the committers dealing with fixing
patches that weren't pgindent'd properly, it's the actual patch
submitters being nagged about it...

Thanks,

Stephen

#16Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#15)
Re: run pgindent on a regular basis / scripted manner

Stephen Frost <sfrost@snowman.net> writes:

So, in our world, wouldn't this translate to 'make cfbot complain'?

I'm definitely a fan of the idea of having cfbot flag these and then we
maybe get to a point where it's not the committers dealing with fixing
patches that weren't pgindent'd properly, it's the actual patch
submitters being nagged about it...

Meh. Asking all submitters to install pgindent is a bit of a burden.
Moreover, sometimes it's better to provide a patch that deliberately
hasn't reindented existing code, for ease of review (say, when you're
adding if() { ... } around some big hunk of code). I think getting
committers to do this as part of commit is a better workflow.

(Admittedly, since I've been doing that for a long time, I don't
find it to be a burden. I suppose some committers do.)

regards, tom lane

#17Magnus Hagander
magnus@hagander.net
In reply to: Stephen Frost (#15)
Re: run pgindent on a regular basis / scripted manner

On Thu, Aug 13, 2020 at 6:30 PM Stephen Frost <sfrost@snowman.net> wrote:

* Magnus Hagander (magnus@hagander.net) wrote:

There are many solutions that do such things but that do it in the

"github

workflow" way, which is they do change -> commit -> create pull request,
and then somebody eyeballs that pullrequest and approves it. We don't

have

PRs, but we could either have a script that simply sends out a patch to a
mailinglist, or we could have a script that maintains a separate branch
which is auto-pgindented, and then have a committer squash-merge that
branch after having reviewed it.

Maybe something like that in combination with a pre-commit hook per

above.

So, in our world, wouldn't this translate to 'make cfbot complain'?

I'm definitely a fan of the idea of having cfbot flag these and then we
maybe get to a point where it's not the committers dealing with fixing
patches that weren't pgindent'd properly, it's the actual patch
submitters being nagged about it...

Werll, that's one thing, but what I was thinking of here was more of an
automated branch maintained for the committers, not for the individual
patch owners.

That is:
1. Whenever a patch is pushed on master on the main repo a process kicked
off (or maybe wait 5 minutes to coalesce multiple patches if there are)
2. This process checks out master, and runs pgindent on it
3. When done, this gets committed to a new branch (or just overwrites an
existing branch of course, we don't need to maintain history here) like
"master-indented". This branch can be in a different repo, but one that
starts out as a clone of the main one
4. A committer (any committer) can then on regular basis examine the
differences by fetch + diff. If they're happy with it, cherry pick it in.
If not, figure out what needs to be done to adjust it.

Step 4 can be done at whatever interval we prefer, and we can have
something to nag us if head has been "off-indent" for too long.

This would be the backup for things that aren't indented during patch
commit, not other things.

--
Magnus Hagander
Me: https://www.hagander.net/ <http://www.hagander.net/&gt;
Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/&gt;

#18Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#5)
Re: run pgindent on a regular basis / scripted manner

On Wed, Aug 12, 2020 at 7:47 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

I'm not in favor of unsupervised pgindent runs, really. It can do a lot
of damage to code that was written without thinking about it --- in
particular, it'll make a hash of comment blocks that were manually
formatted and not protected with dashes.

No committer should be committing code without thinking about
pgindent. If some are, they need to up their game.

I am not sure whether weekly or after-every-commit pgindent runs is a
good idea, but I think we should try to do it once a month or so. It's
too annoying otherwise. I could go either way on the question of
automation.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#19Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#15)
Re: run pgindent on a regular basis / scripted manner

On Thu, Aug 13, 2020 at 12:30 PM Stephen Frost <sfrost@snowman.net> wrote:

So, in our world, wouldn't this translate to 'make cfbot complain'?

This seems like it would be useful, but we'd have to figure out what
to do about typedefs.list. If the patch is indented with the current
one (which is auto-generated by the entire build farm, remember) it's
likely to mess up a patch that's otherwise properly formatted. We'd
either need to insist that people include updates to typedefs.list in
the patch, or else have the cfbot take a stab at doing those updates
itself.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#20Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#18)
Re: run pgindent on a regular basis / scripted manner

Robert Haas <robertmhaas@gmail.com> writes:

I am not sure whether weekly or after-every-commit pgindent runs is a
good idea, but I think we should try to do it once a month or so. It's
too annoying otherwise. I could go either way on the question of
automation.

The traditional reason for not doing pgindent too often has been that
it'd cause more work for people who have to rebase their patches over
pgindent's results. If we want to do it more often, then in order to
respond to that concern, I think we need to do it really often ---
not necessarily quite continuously, but often enough that pgindent
is only changing recently-committed code. In this way, it'd be likely
that anyone with a patch touching that same code would only need to
rebase once not twice. The approaches involving an automated run
give a guarantee of that, otherwise we don't have a guarantee; but
as long as it's not many days delay I think it wouldn't be bad.

Intervals on the order of a month seem likely to be the worst of
both worlds from this standpoint --- too long for people to wait
before rebasing their patch, yet short enough that they'd have
to do so repeatedly.

regards, tom lane

#21Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#20)
#22Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#16)
#23Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#19)
#24Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Stephen Frost (#23)
#25Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Magnus Hagander (#17)
#26Amit Kapila
amit.kapila16@gmail.com
In reply to: Alvaro Herrera (#25)
#27Peter Eisentraut
peter_e@gmx.net
In reply to: Andres Freund (#1)
#28Andres Freund
andres@anarazel.de
In reply to: Peter Eisentraut (#27)
#29Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#28)
#30Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#29)
#31Andres Freund
andres@anarazel.de
In reply to: Bruce Momjian (#30)
#32Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#30)
#33Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#29)
#34Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#33)
#35Magnus Hagander
magnus@hagander.net
In reply to: Alvaro Herrera (#25)
#36Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Magnus Hagander (#35)
#37Bruce Momjian
bruce@momjian.us
In reply to: Jelte Fennema-Nio (#36)
#38Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#36)
#39Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#38)
#40Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#39)
#41Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#40)
#42Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#41)
#43Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#42)
#44Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#43)
#45Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#44)
#46Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#45)
#47Bruce Momjian
bruce@momjian.us
In reply to: Jelte Fennema-Nio (#36)
In reply to: Bruce Momjian (#47)
#49Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#48)
In reply to: Tom Lane (#49)
#51Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#50)
#52Andres Freund
andres@anarazel.de
In reply to: Peter Geoghegan (#50)
#53Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#51)
In reply to: Andres Freund (#52)
#55Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andres Freund (#53)
In reply to: Jelte Fennema-Nio (#55)
In reply to: Peter Geoghegan (#50)
#58Bruce Momjian
bruce@momjian.us
In reply to: Peter Geoghegan (#57)
#59Andres Freund
andres@anarazel.de
In reply to: Bruce Momjian (#58)
#60Andres Freund
andres@anarazel.de
In reply to: Peter Geoghegan (#54)
#61Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#45)
#62Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#61)
#63Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#56)
#64Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andres Freund (#60)
#65Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Jelte Fennema-Nio (#64)
#66Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#65)
#67Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tom Lane (#66)
#68Andres Freund
andres@anarazel.de
In reply to: Jelte Fennema-Nio (#67)
#69Andres Freund
andres@anarazel.de
In reply to: Jelte Fennema-Nio (#64)
#70Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#69)
#71Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#67)
#72Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#69)
In reply to: Tom Lane (#72)
#74Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#72)
#75Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#74)
#76Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#75)
#77Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#71)
#78Andres Freund
andres@anarazel.de
In reply to: Andrew Dunstan (#77)
#79Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#75)
#80Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#79)
#81Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tom Lane (#80)
#82Andrew Dunstan
andrew@dunslane.net
In reply to: Andres Freund (#78)
#83Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#62)
#84Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#81)
#85Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#84)
#86Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#80)
#87Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#86)
#88Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Andres Freund (#87)
#89Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#85)
#90Nikita Malakhov
hukutoc@gmail.com
In reply to: Alvaro Herrera (#88)
#91Tom Lane
tgl@sss.pgh.pa.us
In reply to: Nikita Malakhov (#90)
#92Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#89)
#93Bruce Momjian
bruce@momjian.us
In reply to: Andres Freund (#87)
#94Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Bruce Momjian (#93)
#95Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#94)
#96Vladimir Sitnikov
sitnikov.vladimir@gmail.com
In reply to: Andres Freund (#74)
#97Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tom Lane (#95)
#98Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#97)
#99Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#98)
#100Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#99)
#101Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#95)
#102Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#100)
#103Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#85)
#104Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#103)
#105Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#104)
#106Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#105)
#107Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#106)
#108Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#107)
#109Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#108)
#110Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#101)
#111Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#110)
#112Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#110)
#113Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#112)
#114Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#113)
#115Dean Rasheed
dean.a.rasheed@gmail.com
In reply to: Tom Lane (#114)
#116Thomas Munro
thomas.munro@gmail.com
In reply to: Dean Rasheed (#115)
#117Amit Kapila
amit.kapila16@gmail.com
In reply to: Dean Rasheed (#115)
#118Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#114)
#119Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#118)
#120Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#119)
#121Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#70)
#122Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#121)
#123Michael Paquier
michael@paquier.xyz
In reply to: Dean Rasheed (#115)
#124Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#122)
#125Andres Freund
andres@anarazel.de
In reply to: Noah Misch (#124)
#126Andrew Dunstan
andrew@dunslane.net
In reply to: Andres Freund (#125)
#127Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#125)
#128Justin Pryzby
pryzby@telsasoft.com
In reply to: Tom Lane (#127)
#129Tom Lane
tgl@sss.pgh.pa.us
In reply to: Justin Pryzby (#128)
#130Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#126)
#131Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#129)
#132Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#131)
#133Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#131)
#134Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#132)
#135Robert Haas
robertmhaas@gmail.com
In reply to: Andrew Dunstan (#133)
#136Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#135)
#137Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#114)
#138Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#136)
#139Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Eisentraut (#137)
#140Andres Freund
andres@anarazel.de
In reply to: Peter Eisentraut (#137)
#141Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#140)
#142Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#141)
#143Andrew Dunstan
andrew@dunslane.net
In reply to: Noah Misch (#142)
#144Amit Kapila
amit.kapila16@gmail.com
In reply to: Andrew Dunstan (#143)
#145Magnus Hagander
magnus@hagander.net
In reply to: Amit Kapila (#144)
#146Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#131)
#147Andrew Dunstan
andrew@dunslane.net
In reply to: Magnus Hagander (#145)
#148Tom Lane
tgl@sss.pgh.pa.us
In reply to: Amit Kapila (#144)
#149Justin Pryzby
pryzby@telsasoft.com
In reply to: Tom Lane (#129)
#150Tom Lane
tgl@sss.pgh.pa.us
In reply to: Justin Pryzby (#149)
#151Andrew Dunstan
andrew@dunslane.net
In reply to: Justin Pryzby (#149)
#152Robert Haas
robertmhaas@gmail.com
In reply to: Andrew Dunstan (#146)
#153Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Robert Haas (#152)
#154Robert Haas
robertmhaas@gmail.com
In reply to: Jelte Fennema-Nio (#153)
#155Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#138)
#156Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#155)
#157Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#156)
#158Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#157)
#159Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#158)
In reply to: Andrew Dunstan (#159)
#161Andrew Dunstan
andrew@dunslane.net
In reply to: Shinoda, Noriyoshi (PN Japan FSIP) (#160)
#162shiy.fnst@fujitsu.com
shiy.fnst@fujitsu.com
In reply to: Andrew Dunstan (#159)
#163Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: shiy.fnst@fujitsu.com (#162)
#164Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#153)
#165Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#163)
#166Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#165)
#167Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#166)
#168Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#167)
#169Justin Pryzby
pryzby@telsasoft.com
In reply to: Tom Lane (#167)
#170Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#168)
#171Andrew Dunstan
andrew@dunslane.net
In reply to: Justin Pryzby (#169)
#172Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#170)
#173Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#166)
#174Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#173)
#175Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#174)
#176Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#175)
#177Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#176)
#178Justin Pryzby
pryzby@telsasoft.com
In reply to: Andrew Dunstan (#171)
#179Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Justin Pryzby (#178)
#180Noah Misch
noah@leadboat.com
In reply to: Justin Pryzby (#178)
#181shiy.fnst@fujitsu.com
shiy.fnst@fujitsu.com
In reply to: Andrew Dunstan (#159)
#182Andrew Dunstan
andrew@dunslane.net
In reply to: shiy.fnst@fujitsu.com (#181)
#183Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#182)
#184Michael Paquier
michael@paquier.xyz
In reply to: Jelte Fennema-Nio (#183)
#185Andrew Dunstan
andrew@dunslane.net
In reply to: Michael Paquier (#184)
#186Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#185)
#187Magnus Hagander
magnus@hagander.net
In reply to: Andrew Dunstan (#185)
#188Magnus Hagander
magnus@hagander.net
In reply to: Noah Misch (#142)
#189Andrew Dunstan
andrew@dunslane.net
In reply to: Magnus Hagander (#187)
#190Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#187)
#191Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jelte Fennema-Nio (#183)
#192Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#191)
#193Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#192)
#194Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#193)
#195Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#194)
#196Noah Misch
noah@leadboat.com
In reply to: Magnus Hagander (#188)
#197Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#196)
#198Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#197)
#199Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#195)
#200Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#197)
#201Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#199)
#202Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tom Lane (#201)
#203Magnus Hagander
magnus@hagander.net
In reply to: Andrew Dunstan (#189)
#204Magnus Hagander
magnus@hagander.net
In reply to: Noah Misch (#196)
#205Peter Eisentraut
peter_e@gmx.net
In reply to: Jelte Fennema-Nio (#202)
#206Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#205)
#207Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#206)
#208Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#207)
#209Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#208)
#210Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#209)
#211Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Andrew Dunstan (#130)
#212Bruce Momjian
bruce@momjian.us
In reply to: Andrew Dunstan (#209)
#213Andrew Dunstan
andrew@dunslane.net
In reply to: Alvaro Herrera (#211)
#214Andrew Dunstan
andrew@dunslane.net
In reply to: Bruce Momjian (#212)
#215Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#214)
#216Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#210)
#217Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#216)
#218Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Andrew Dunstan (#185)
#219Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#218)
#220Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#219)
#221Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#220)
#222Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#220)
#223Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#221)
#224Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#223)
#225Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#224)
In reply to: Andrew Dunstan (#220)
#227Andres Freund
andres@anarazel.de
In reply to: Peter Geoghegan (#226)
In reply to: Andres Freund (#227)
#229Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#228)
In reply to: Tom Lane (#229)
#231Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#230)
#232Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#226)
#233Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Peter Geoghegan (#226)
#234Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#229)
#235Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#234)
#236Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#235)
#237Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#235)
#238Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#232)
#239Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#231)
#240Andres Freund
andres@anarazel.de
In reply to: Andrew Dunstan (#239)
#241Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#240)
In reply to: Tom Lane (#241)
#243Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#242)
In reply to: Tom Lane (#243)
#245Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Geoghegan (#244)
#246Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#245)
#247Peter Eisentraut
peter_e@gmx.net
In reply to: Andres Freund (#240)
#248Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#235)
#249Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Eisentraut (#247)
#250Nathan Bossart
nathandbossart@gmail.com
In reply to: Peter Geoghegan (#226)
In reply to: Nathan Bossart (#250)
#252Nathan Bossart
nathandbossart@gmail.com
In reply to: Peter Geoghegan (#251)
In reply to: Peter Geoghegan (#244)
#254Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#253)
In reply to: Tom Lane (#254)
#256Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#255)
In reply to: Tom Lane (#256)
#258Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#254)
#259Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Peter Geoghegan (#255)
#260Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Michael Paquier (#258)
#261Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#253)
#262Robert Haas
robertmhaas@gmail.com
In reply to: Jelte Fennema-Nio (#259)
#263Robert Haas
robertmhaas@gmail.com
In reply to: Robert Haas (#261)
#264Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#263)
In reply to: Tom Lane (#264)
#266Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Tom Lane (#264)
#267Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#264)
In reply to: Robert Haas (#267)
#269Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Robert Haas (#263)
#270Robert Haas
robertmhaas@gmail.com
In reply to: Peter Geoghegan (#268)
#271Robert Haas
robertmhaas@gmail.com
In reply to: Jelte Fennema-Nio (#269)
In reply to: Robert Haas (#270)
#273Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Peter Geoghegan (#272)
In reply to: Jelte Fennema-Nio (#273)
#275Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Geoghegan (#274)
#276Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#271)
#277Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#275)
#278Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#276)
#279Maciek Sakrejda
m.sakrejda@gmail.com
In reply to: Robert Haas (#278)
#280Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Maciek Sakrejda (#279)
#281Magnus Hagander
magnus@hagander.net
In reply to: Jelte Fennema-Nio (#280)
#282Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#281)
#283David Rowley
dgrowleyml@gmail.com
In reply to: Robert Haas (#261)
#284Peter Eisentraut
peter_e@gmx.net
In reply to: David Rowley (#283)
#285Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#282)
#286Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: Magnus Hagander (#281)
#287Jelte Fennema-Nio
postgres@jeltef.nl
In reply to: David Rowley (#283)
#288David Rowley
dgrowleyml@gmail.com
In reply to: Jelte Fennema-Nio (#287)
#289Vik Fearing
vik@postgresfriends.org
In reply to: Tom Lane (#264)
#290Robert Haas
robertmhaas@gmail.com
In reply to: Peter Eisentraut (#284)
#291Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#267)
#292Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#254)
#293Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#292)
#294Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#293)
#295Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#294)
#296Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#295)
#297Jeff Davis
pgsql@j-davis.com
In reply to: David Rowley (#288)
#298Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Jeff Davis (#297)
#299Michael Paquier
michael@paquier.xyz
In reply to: Amit Langote (#298)
#300Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#262)
#301Bruce Momjian
bruce@momjian.us
In reply to: Andrew Dunstan (#300)
#302Andrew Dunstan
andrew@dunslane.net
In reply to: Jelte Fennema-Nio (#287)
#303Amit Kapila
amit.kapila16@gmail.com
In reply to: Jeff Davis (#297)
#304Étienne BERSAC
etienne.bersac@dalibo.com
In reply to: Andrew Dunstan (#300)
#305Andrew Dunstan
andrew@dunslane.net
In reply to: Étienne BERSAC (#304)
#306Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#238)
#307Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#306)
#308Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#307)