Re: [Proposal] Fully WAL logged CREATE DATABASE - No Checkpoints
Robert Haas <robertmhaas@gmail.com>
On Tue, Mar 29, 2022 at 2:37 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: > > On Tue, Mar 29, 2022 at 2:17 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> it's some random algorithm that they probably feel at liberty > >> to change. > > > I guess that characterization surprises me. The man page for > > getopt_long() says this, and has for a long time at least on systems > > I've used: > > Yeah, they say they follow the POSIX spec when you set POSIXLY_CORRECT. > What they don't spell out in any detail is what they do when you don't. > We know that it involves rearranging the argv[] array behind the > application's back, but not what the rules are for doing that. In > particular, they must have some undocumented and probably not very safe > method for deciding which arguments are neither switches nor switch > arguments. I mean, I think of an option as something that starts with '-'. The documentation contains a caveat that says: "The special argument ‘--’ forces in all cases the end of option scanning." So I think I would expect it just looks for arguments starting with '-' that do not follow an argument that is exactly "--". <looks around for the source code> https://github.com/gcc-mirror/gcc/blob/master/libiberty/getopt.c If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. OK - so I was off slightly. Either "-" or "--" terminates the options list. Apart from that anything starting with "-" is an option. I think you're overestimating the level of mystery that's present here, as well as the likelihood that the rules could ever be changed. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
When using the WAL-logged CREATE DATABASE strategy, bulk extend.
- 3e63e8462f31 16.0 landed
- 576bb0fc9342 15.0 landed
-
Avoid using a fake relcache entry to own an SmgrRelation.
- 1b94f8f232f6 15.0 landed
- 76733b399c49 16.0 landed
-
Fix data-corruption hazard in WAL-logged CREATE DATABASE.
- 692df425b688 16.0 landed
- 811203d4aff5 15.0 landed
-
initdb: When running CREATE DATABASE, use STRATEGY = WAL_COPY.
- ad43a413c4f7 15.0 landed
-
Simplify a needlessly-complicated regular expression.
- c6863b858291 15.0 landed
-
In 020_createdb.pl, change order of command-line arguments.
- 3d067c53b26d 15.0 landed
-
Add new block-by-block strategy for CREATE DATABASE.
- 9c08aea6a309 15.0 landed
-
Fix replay of create database records on standby
- 49d9cfc68bf4 15.0 cited
-
Refactor code for reading and writing relation map files.
- 39f0c4bd670c 15.0 landed
-
Replace RelationOpenSmgr() with RelationGetSmgr().
- f10f0ae420ee 15.0 cited
-
Refactor the fsync queue for wider use.
- 3eb77eba5a51 12.0 cited