diff --git a/doc/src/sgml/charset.sgml b/doc/src/sgml/charset.sgml
index 5cf459c22f4..a76733a9884 100644
--- a/doc/src/sgml/charset.sgml
+++ b/doc/src/sgml/charset.sgml
@@ -617,7 +617,7 @@ SELECT * FROM test1 ORDER BY a || b COLLATE "fr_FR";
name such as de_DE can be considered unique
within a given database even though it would not be unique globally.
Use of the stripped collation names is recommended, since it will
- make one less thing you need to change if you decide to change to
+ make one fewer thing you need to change if you decide to change to
another database encoding. Note however that the default>,
C>, and POSIX> collations can be used regardless of
the database encoding.
diff --git a/doc/src/sgml/pageinspect.sgml b/doc/src/sgml/pageinspect.sgml
index 442b926717c..2f7b9293065 100644
--- a/doc/src/sgml/pageinspect.sgml
+++ b/doc/src/sgml/pageinspect.sgml
@@ -206,7 +206,7 @@ test=# SELECT tuple_data_split('pg_class'::regclass, t_data, t_infomask, t_infom
If do_detoast is true,
- attribute that will be detoasted as needed. Default value is
+ attributes will be detoasted as needed. Default value is
false.
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 67a00493606..3a269640fcd 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -6575,8 +6575,8 @@ Delete
- Identifies the following TupleData message as a old tuple.
- This field is present if the table in which the delete has
+ Identifies the following TupleData message as an old tuple.
+ This field is present if the table in which the delete
happened has REPLICA IDENTITY set to FULL.
diff --git a/doc/src/sgml/ref/create_type.sgml b/doc/src/sgml/ref/create_type.sgml
index e0e005b7cf6..dbe1e6f30da 100644
--- a/doc/src/sgml/ref/create_type.sgml
+++ b/doc/src/sgml/ref/create_type.sgml
@@ -790,7 +790,7 @@ CREATE TYPE name
Before PostgreSQL version 8.3, the name of
a generated array type was always exactly the element type's name with one
underscore character (_) prepended. (Type names were
- therefore restricted in length to one less character than other names.)
+ therefore restricted in length to one fewer character than other names.)
While this is still usually the case, the array type name may vary from
this in case of maximum-length names or collisions with user type names
that begin with underscore. Writing code that depends on this convention
diff --git a/doc/src/sgml/ref/drop_index.sgml b/doc/src/sgml/ref/drop_index.sgml
index 4c0c48ab1ea..a53c8cc665f 100644
--- a/doc/src/sgml/ref/drop_index.sgml
+++ b/doc/src/sgml/ref/drop_index.sgml
@@ -45,7 +45,7 @@ DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name
Drop the index without locking out concurrent selects, inserts, updates,
and deletes on the index's table. A normal DROP INDEX>
- acquires exclusive lock on the table, blocking other accesses until the
+ acquires an exclusive lock on the table, blocking other accesses until the
index drop can be completed. With this option, the command instead
waits until conflicting transactions have completed.
diff --git a/doc/src/sgml/rules.sgml b/doc/src/sgml/rules.sgml
index 9b1c12dfca4..1a2b11bd212 100644
--- a/doc/src/sgml/rules.sgml
+++ b/doc/src/sgml/rules.sgml
@@ -1265,7 +1265,7 @@ CREATE [ OR REPLACE ] RULE name AS
The query trees generated from rule actions are thrown into the
rewrite system again, and maybe more rules get applied resulting
- in more or less query trees.
+ in additional or fewer query trees.
So a rule's actions must have either a different
command type or a different result relation than the rule itself is
on, otherwise this recursive process will end up in an infinite loop.