Thread: The word "virgin" used incorrectly and probably better off replaced
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/12/manage-ag-templatedbs.html Description: The use of the word virgin as an adjective is incorrect here and also an anachronism. It is better off replaced with the word pristine - quotes unnecessary. Note the word virgin appears in another page of the documentation (a search will find it).
On 2019-Nov-07, PG Doc comments form wrote: > Page: https://www.postgresql.org/docs/12/manage-ag-templatedbs.html > Description: > > The use of the word virgin as an adjective is incorrect here and also an > anachronism. It is better off replaced with the word pristine - quotes > unnecessary. Note the word virgin appears in another page of the > documentation (a search will find it). Just because a word has sexual connotations does not imply that it doesn't have non-sexual meanings. Merriam-Webster lists https://www.merriam-webster.com/dictionary/virgin 2: FRESH, UNSPOILED specifically : not altered by human activity 6: free of impurity or stain : UNSULLIED which seems to apply well to all cases at hand. Also: First Known Use of virgin Noun: 13th century, in the meaning defined at sense 2a Adjective: 14th century, in the meaning defined at sense 6 History and Etymology for virgin Noun: Middle English, from Anglo-French virgine, from Latin virgin-, virgo young woman, virgin That said, in two of the three phrases where the word appears, the quoted adjective adds no value. We could remove the quoted word entirely in all three places and nothing would be lost. But if we do that, then the third occurrence of the word would become inintelligible: "This is particularly handy when restoring a pg_dump dump: the dump script should be restored in a virgin database to ensure that one recreates the correct contents of the dumped database, without conflicting with objects that might have been added to template1 later on." because we have not explained what a "virgin database" is. We could say "empty", which seems better suited than both "virgin" and "pristine" anyway. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
> On 7 Nov 2019, at 16:03, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > because we have not explained what a "virgin database" is. I think this is the key observation. > We could say "empty", which seems better suited than both "virgin" and > "pristine" anyway. empty is a lot better, but still isn't conveying the state of the database without there being room for interpretation. (My grasp of the english language isn't enough to suggest a better alternative however). cheers ./daniel
On Thu, Nov 7, 2019 at 07:55:22PM +0100, Daniel Gustafsson wrote: > > On 7 Nov 2019, at 16:03, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > > because we have not explained what a "virgin database" is. > > I think this is the key observation. > > > We could say "empty", which seems better suited than both "virgin" and > > "pristine" anyway. > > empty is a lot better, but still isn't conveying the state of the database > without there being room for interpretation. (My grasp of the english language > isn't enough to suggest a better alternative however). I am thinking "pristine" would be a good word here. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
On 2019-Nov-07, Bruce Momjian wrote: > On Thu, Nov 7, 2019 at 07:55:22PM +0100, Daniel Gustafsson wrote: > > > On 7 Nov 2019, at 16:03, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > > We could say "empty", which seems better suited than both "virgin" and > > > "pristine" anyway. > > > > empty is a lot better, but still isn't conveying the state of the database > > without there being room for interpretation. (My grasp of the english language > > isn't enough to suggest a better alternative however). > > I am thinking "pristine" would be a good word here. But you would have to explain that a database created as a copy of template1 may somehow not be pristine. Maybe we should just use a phrase that describes what we mean, something like "a database that doesn't contain objects other than default system ones." -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On Thu, Nov 7, 2019 at 06:50:10PM -0300, Alvaro Herrera wrote: > On 2019-Nov-07, Bruce Momjian wrote: > > > On Thu, Nov 7, 2019 at 07:55:22PM +0100, Daniel Gustafsson wrote: > > > > On 7 Nov 2019, at 16:03, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > > > > We could say "empty", which seems better suited than both "virgin" and > > > > "pristine" anyway. > > > > > > empty is a lot better, but still isn't conveying the state of the database > > > without there being room for interpretation. (My grasp of the english language > > > isn't enough to suggest a better alternative however). > > > > I am thinking "pristine" would be a good word here. > > But you would have to explain that a database created as a copy of > template1 may somehow not be pristine. Maybe we should just use a > phrase that describes what we mean, something like "a database that > doesn't contain objects other than default system ones." True. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
> On 7 Nov 2019, at 22:50, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > On 2019-Nov-07, Bruce Momjian wrote: > >> On Thu, Nov 7, 2019 at 07:55:22PM +0100, Daniel Gustafsson wrote: >>>> On 7 Nov 2019, at 16:03, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > >>>> We could say "empty", which seems better suited than both "virgin" and >>>> "pristine" anyway. >>> >>> empty is a lot better, but still isn't conveying the state of the database >>> without there being room for interpretation. (My grasp of the english language >>> isn't enough to suggest a better alternative however). >> >> I am thinking "pristine" would be a good word here. > > But you would have to explain that a database created as a copy of > template1 may somehow not be pristine. Maybe we should just use a > phrase that describes what we mean, something like "a database that > doesn't contain objects other than default system ones." Agreed. I like your suggestion, or the inverse of it: "a database without any user defined objects". cheers ./daniel
On 2019-Nov-08, Daniel Gustafsson wrote: > Agreed. I like your suggestion, or the inverse of it: "a database without any > user defined objects". Here's a proposed patch. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment
> On 8 Nov 2019, at 14:10, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > On 2019-Nov-08, Daniel Gustafsson wrote: > >> Agreed. I like your suggestion, or the inverse of it: "a database without any >> user defined objects". > > Here's a proposed patch. +1, LGTM cheers ./daniel
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > Here's a proposed patch. I don't like this wording much, because "no user-defined objects" is not a sufficient specification of what we are talking about. You need to also capture the property that none of the system- defined objects have been altered. Now that we explicitly support things like altering the ACLs of system-defined objects, I do not think it's okay to take that part for granted. regards, tom lane
On 2019-Nov-08, Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > Here's a proposed patch. > > I don't like this wording much, because "no user-defined objects" > is not a sufficient specification of what we are talking about. > You need to also capture the property that none of the system- > defined objects have been altered. Now that we explicitly support > things like altering the ACLs of system-defined objects, I do not > think it's okay to take that part for granted. Hmm. Maybe we can say "pristine database" and then add this explanation in a parenthical comment: This is particularly handy when restoring a <literal>pg_dump</literal> dump: the dump script should be restored in a pristine database (one where no user-defined objects exist and where system objects have not been altered), to ensure that one recreates the correct contents of the dumped database, without conflicting with objects that might have been added to <literal>template1</literal> later on. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > Hmm. Maybe we can say "pristine database" and then add this explanation > in a parenthical comment: > This is particularly handy when restoring a > <literal>pg_dump</literal> dump: the dump script should be restored in a > pristine database (one where no user-defined objects exist and where > system objects have not been altered), to ensure that one recreates > the correct contents of the dumped database, without conflicting > with objects that might have been added to > <literal>template1</literal> later on. So the patch becomes s/virgin/pristine/g plus add a parenthetical definition for the first use? Works for me. regards, tom lane
> On 8 Nov 2019, at 16:19, Tom Lane <tgl@sss.pgh.pa.us> wrote: > So the patch becomes s/virgin/pristine/g plus add a parenthetical > definition for the first use? Works for me. Agreed. cheers ./daniel
On 2019-Nov-08, Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > Hmm. Maybe we can say "pristine database" and then add this explanation > > in a parenthical comment: > > > This is particularly handy when restoring a > > <literal>pg_dump</literal> dump: the dump script should be restored in a > > pristine database (one where no user-defined objects exist and where > > system objects have not been altered), to ensure that one recreates > > the correct contents of the dumped database, without conflicting > > with objects that might have been added to > > <literal>template1</literal> later on. > > So the patch becomes s/virgin/pristine/g plus add a parenthetical > definition for the first use? Works for me. Well, there are three uses of the word "virgin". The first is for "virgin user", and the patch turns that into just "user". The second one is for "virgin database" and the patch has the effect you describe. The third one is also s/virgin//. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > On 2019-Nov-08, Tom Lane wrote: >> So the patch becomes s/virgin/pristine/g plus add a parenthetical >> definition for the first use? Works for me. > Well, there are three uses of the word "virgin". The first is for > "virgin user", and the patch turns that into just "user". Uh, no, read the next lines. In both cases those are referring to "virgin user database" or "virgin database", and this patch is removing an important qualifier. It needs to be s/virgin/pristine/ in all these places. Since the third case is well separated from the other two, maybe we need to repeat the parenthetical definition there too. regards, tom lane
Everyone, Thank you for the attention paid to this. Brian > On Nov 8, 2019, at 10:37 AM, Daniel Gustafsson <daniel@yesql.se> wrote: > >> On 8 Nov 2019, at 16:19, Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> So the patch becomes s/virgin/pristine/g plus add a parenthetical >> definition for the first use? Works for me. > > Agreed. > > cheers ./daniel
On 2019-Nov-08, Tom Lane wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > On 2019-Nov-08, Tom Lane wrote: > >> So the patch becomes s/virgin/pristine/g plus add a parenthetical > >> definition for the first use? Works for me. > > > Well, there are three uses of the word "virgin". The first is for > > "virgin user", and the patch turns that into just "user". > > Uh, no, read the next lines. In both cases those are referring > to "virgin user database" or "virgin database", and this patch > is removing an important qualifier. It needs to be s/virgin/pristine/ > in all these places. Doh, right. One problem with doing it that way is that the proposed parenthical comment partly duplicates the text immediately following it, so I'm no longer so sure that adding it is good; I think that changing "local additions" to "local additions and changes" might be sufficient, or maybe that is too obscure for novices? For create_database.sgml it does seem to make a little more sense, but I'm not 100% there either. Maybe "changes" can become "database-local system changes"? i.e., By instructing CREATE DATABASE to copy template0 instead of template1, you can create a pristine user database that contains none of the site-local additions and database-local system changes in template1. ... though, argh, "-local" appearing twice makes that look bad too :-( (I'm not sure that it is clear what a "database-local system change" is.) -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > One problem with doing it that way is that the proposed parenthical > comment partly duplicates the text immediately following it, so I'm no > longer so sure that adding it is good; I think that changing "local > additions" to "local additions and changes" might be sufficient, or > maybe that is too obscure for novices? For create_database.sgml it does > seem to make a little more sense, but I'm not 100% there either. I think we should stick to the wording we've agreed to be clearer. Maybe do manage-ag.sgml like so: By instructing CREATE DATABASE to copy template0 instead of template1, you can create a pristine user database, that is one where no user-defined objects exist and where system objects have not been altered. This is particularly handy ... regards, tom lane