Re: Doc patch: replace 'salesmen' with 'salespeople' - Mailing list pgsql-hackers
From | Dagfinn Ilmari Mannsåker |
---|---|
Subject | Re: Doc patch: replace 'salesmen' with 'salespeople' |
Date | |
Msg-id | 87ils2qjbc.fsf@wibble.ilmari.org Whole thread Raw |
In response to | Re: Doc patch: replace 'salesmen' with 'salespeople' (Daniel Gustafsson <daniel@yesql.se>) |
Responses |
Re: Doc patch: replace 'salesmen' with 'salespeople'
|
List | pgsql-hackers |
Daniel Gustafsson <daniel@yesql.se> writes: >> On 24 Mar 2022, at 19:34, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> wrote: > >> I just spotted an unnecessarily gendered example involving a 'salesmen' >> table in the UPDATE docs. Here's a patch that changes that to >> 'salespeople'. > > No objections to changing that, it's AFAICT the sole such usage in the docs. There's a mention of the travelling salesman problem in the GEQO docs (and one in the code comments), but that's the established name for that problem (although I do note the Wikipedia page says it's "also called the travelling salesperson problem"). >> Update contact names in an accounts table to match the currently assigned >> - salesmen: >> + salespeople: >> <programlisting> >> UPDATE accounts SET (contact_first_name, contact_last_name) = >> - (SELECT first_name, last_name FROM salesmen >> - WHERE salesmen.id = accounts.sales_id); >> + (SELECT first_name, last_name FROM salespeople >> + WHERE salespeople.id = accounts.sales_id); > > This example is a bit confusing to me, it's joining on accounts.sales_id to get > the assigned salesperson, but in the example just above we are finding the > salesperson by joining on accounts.sales_person. Shouldn't this be using the > employees table to keep it consistent? (which also avoids the gendered issue > raised here) The same goes for the second example. Or am I missing something? Yeah, you're right. The second section (added by Tom in commit 8f889b1083f) is inconsistent with the first half in both table and column names. Here's a patch that makes it all consistent, eliminating the salesmen references completely, rather than renaming them. - ilmari From 5dbbba776d6d53eb3abcbf028f6c94b4e4c0e75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org> Date: Fri, 25 Mar 2022 12:49:14 +0000 Subject: [PATCH] doc: make UPDATE FROM examples consistent The original first half of the example used an employees table and an accounts.sales_person foreign key column, while the second half (added in commit 8f889b1083f) used a salesmen table and accounts.sales_id for the foreign key. This makes everything use the original names, thus eliminating the unnecessarily gendered salesmen table. --- doc/src/sgml/ref/update.sgml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml index 3a0285df79..2ab24b0523 100644 --- a/doc/src/sgml/ref/update.sgml +++ b/doc/src/sgml/ref/update.sgml @@ -387,23 +387,23 @@ <para> Update contact names in an accounts table to match the currently assigned - salesmen: + salespeople: <programlisting> UPDATE accounts SET (contact_first_name, contact_last_name) = - (SELECT first_name, last_name FROM salesmen - WHERE salesmen.id = accounts.sales_id); + (SELECT first_name, last_name FROM employees + WHERE employees.id = accounts.sales_person); </programlisting> A similar result could be accomplished with a join: <programlisting> UPDATE accounts SET contact_first_name = first_name, contact_last_name = last_name - FROM salesmen WHERE salesmen.id = accounts.sales_id; + FROM employees WHERE employees.id = accounts.sales_person; </programlisting> However, the second query may give unexpected results - if <structname>salesmen</structname>.<structfield>id</structfield> is not a unique key, whereas + if <structname>employees</structname>.<structfield>id</structfield> is not a unique key, whereas the first query is guaranteed to raise an error if there are multiple <structfield>id</structfield> matches. Also, if there is no match for a particular - <structname>accounts</structname>.<structfield>sales_id</structfield> entry, the first query + <structname>accounts</structname>.<structfield>sales_person</structfield> entry, the first query will set the corresponding name fields to NULL, whereas the second query will not update that row at all. </para> -- 2.30.2
pgsql-hackers by date: