> On Jul 10, 2026, at 11:07, Xuneng Zhou <[email protected]> wrote:
> 
> Hi Guoqing,
> 
> On Wed, Jul 1, 2026 at 9:45 AM Guoqing Yang <[email protected]> wrote:
>> 
>> Fix grammar in buffer lock wait message
>> 
>> Correct the wait message from "Waiting to acquire a exclusive lock on a 
>> buffer"
>> to "Waiting to acquire an exclusive lock on a buffer".
>> 
>> The word "exclusive" starts with a vowel sound, so the indefinite article
>> should be "an" instead of "a".
> 
> This seems to be a typo. I asked Sol to check this kind of issue in
> the tree, and it found a bunch of them. Do you bother to do a further
> check? As John suggested, we better fix grammar issues wholesale[1].
> 
> [1] 
> https://www.postgresql.org/message-id/CANWCAZaZgQN54ccVheWd%3Dyg2KW_c1vTPB7hd0CXkqBNLD2-pDA%40mail.gmail.com
> 
> -- 
> Regards,
> Xuneng Zhou
> HighGo Software Co., Ltd.
> <fix-indefinite-articles.patch><check_indefinite_articles.py>

Hi Xuneng,

Thanks for the thorough fixes.

I think Guoqing’s fix is a back-patch candidate for v19, as it was an oversight 
of "[fcb9c977] bufmgr: Implement buffer content locks independently of lwlocks".

So, I added your new findings to 0002, and I think they should be applied to 
master only. Although AI can help here, TBH, I think it would be better if 
English-speaking folks could review them. To make it easier for reviewers, here 
is a summary of all the changes in 0002:
```
event-trigger.sgml: a EventTriggerData structure -> an EventTriggerData 
structure
func-admin.sgml: an one-dimension array -> a one-dimensional array
libpq.sgml: a EXECUTE command -> an EXECUTE command
logical-replication.sgml: a update_missing conflict -> an update_missing 
conflict
alter_table.sgml: a inheritable constraint -> an inheritable constraint
pg_createsubscriber.sgml: a initial replication location -> an initial 
replication location
tidstore.c: a in-memory data structure -> an in-memory data structure
ginget.c: a ItemPointer -> an ItemPointer
heap.c: all functions in use a immutable -> all functions in use are immutable
publicationcmds.c: a ALL state -> an ALL state
execExpr.c: a EEOP_HASHED_SCALARARRAYOP step -> an EEOP_HASHED_SCALARARRAYOP 
step
execExpr.c: a EEOP_SCALARARRAYOP -> an EEOP_SCALARARRAYOP
execExpr.c: a EEOP_JSONEXPR_COERCION step -> an EEOP_JSONEXPR_COERCION step
execExprInterp.c: a EEOP_*_FETCHSOME operation -> an EEOP_*_FETCHSOME operation
hba.c: a AuthToken struct -> an AuthToken struct
parse_oper.c: a ObjectWithArgs node -> an ObjectWithArgs node
wait_event_names.txt: a IO -> I/O
wait_event_names.txt: a exclusive lock -> an exclusive lock
pg_dependencies.c: an dependency key -> a dependency key
uuid.c: an UNIX epoch timestamp -> a Unix epoch timestamp
uuid.c: an UUIDv7 -> a UUIDv7
queryenvironment.c: a Ephemeral Named Relation -> an Ephemeral Named Relation
aset.c: a AllocFreeListLink -> an AllocFreeListLink
aset.c: Obtain a AllocFreeListLink -> Obtain an AllocFreeListLink
astreamer_inject.c: Create a astreamer -> Create an astreamer
pg_restore.c: an utility -> a utility
astreamer_verify.c: processing for a astreamer_verify stream -> processing for 
an astreamer_verify stream
astreamer_verify.c: memory associated with a astreamer_verify stream -> memory 
associated with an astreamer_verify stream
astreamer_file.c: Create a astreamer that just writes data -> Create an 
astreamer that just writes data
astreamer_file.c: Create a astreamer that extracts an archive -> Create an 
astreamer that extracts an archive
astreamer_gzip.c: Create a astreamer that just compresses data -> Create an 
astreamer that just compresses data
astreamer_tar.c: Create a astreamer that can parse a stream -> Create an 
astreamer that can parse a stream
astreamer_tar.c: Create a astreamer that can generate a tar archive -> Create 
an astreamer that can generate a tar archive
astreamer_tar.c: If a ASTREAMER_MEMBER_HEADER chunk -> If an 
ASTREAMER_MEMBER_HEADER chunk
astreamer_tar.c: Create a astreamer that blindly adds two blocks -> Create an 
astreamer that blindly adds two blocks
relscan.h: it must act as a information what to scan for those workers -> to 
tell those workers what to scan
astreamer.h: passed to a astreamer -> passed to an astreamer
astreamer.h: A astreamer that does not -> An astreamer that does not
astreamer.h: callbacks for a astreamer -> callbacks for an astreamer
astreamer.h: Send some content to a astreamer -> Send some content to an 
astreamer
astreamer.h: Finalize a astreamer -> Finalize an astreamer
astreamer.h: Free a astreamer -> Free an astreamer
astreamer.h: implementing a astreamer -> implementing an astreamer
astreamer.h: implementing a astreamer -> implementing an astreamer
jsonb.h: an JB_FOBJECT -> a JB_FOBJECT
```

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




Attachment: v2-0001-Fix-grammar-in-BUFFER_EXCLUSIVE-wait-event-descri.patch
Description: Binary data

Attachment: v2-0002-Fix-assorted-grammar-errors-in-documentation-and-.patch
Description: Binary data

Reply via email to