On Thu, Feb 29, 2024 at 07:05:13PM -0500, Greg Sabino Mullane wrote: > Attached please find a patch to adjust the behavior of the pgbench program > and make it behave like the other programs that connect to a database > (namely, psql and pg_dump). Specifically, add support for using -d and > --dbname to specify the name of the database. This means that -d can no > longer be used to turn on debugging mode, and the long option --debug must > be used instead. > > This removes a long-standing footgun, in which people assume that the -d > option behaves the same as other programs. Indeed, because it takes no > arguments, and because the first non-option argument is the database name, > it still appears to work. However, people then wonder why pgbench is so > darn verbose all the time! :) > > This is a breaking change, but fixing it this way seems to have the least > total impact, as the number of people using the debug mode of pgbench is > likely quite small. Further, those already using the long option are > unaffected, and those using the short one simply need to replace '-d' with > '--debug', arguably making their scripts a little more self-documenting in > the process.
I think this is a generally reasonable proposal, except I don't know whether this breakage is acceptable. AFAICT there are two fundamental behavior changes folks would observe: * "-d <database_name>" would cease to emit the debugging output, and while enabling debug mode might've been unintentional in most cases, it might actually have been intentional in others. * "-d" with no argument or with a following option would begin failing, and users would need to replace "-d" with "--debug". Neither of these seems particularly severe to me, especially for a benchmarking program, but I'd be curious to hear what others think. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com