diff --git a/contrib/bloom/blscan.c b/contrib/bloom/blscan.c
index b8fa2d0a71d..64f5dc6dcd8 100644
--- a/contrib/bloom/blscan.c
+++ b/contrib/bloom/blscan.c
@@ -76,7 +76,7 @@ blendscan(IndexScanDesc scan)
}
/*
- * Insert all matching tuples into to a bitmap.
+ * Insert all matching tuples into a bitmap.
*/
int64
blgetbitmap(IndexScanDesc scan, TIDBitmap *tbm)
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 2b0b1b96332..ec786d8f8a7 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -6573,7 +6573,7 @@ Delete
Identifies the following TupleData message as a old tuple.
- This field is is present if the table in which the delete has
+ This field is present if the table in which the delete has
happened has REPLICA IDENTITY set to FULL.
diff --git a/doc/src/sgml/spi.sgml b/doc/src/sgml/spi.sgml
index 0110d02e5a6..1f13b88e05d 100644
--- a/doc/src/sgml/spi.sgml
+++ b/doc/src/sgml/spi.sgml
@@ -2655,7 +2655,7 @@ SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
SPI_register_relation
- make a ephemeral named relation available by name in SPI queries
+ make an ephemeral named relation available by name in SPI queries
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index 7142ecede0a..4421a2267d8 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -2555,7 +2555,7 @@ SetOffsetVacuumLimit(bool is_startup)
/*
* NB: Have to prevent concurrent truncation, we might otherwise try to
- * lookup a oldestMulti that's concurrently getting truncated away.
+ * lookup an oldestMulti that's concurrently getting truncated away.
*/
LWLockAcquire(MultiXactTruncationLock, LW_SHARED);
@@ -2732,7 +2732,7 @@ find_multixact_start(MultiXactId multi, MultiXactOffset *result)
/*
* Flush out dirty data, so PhysicalPageExists can work correctly.
* SimpleLruFlush() is a pretty big hammer for that. Alternatively we
- * could add a in-memory version of page exists, but find_multixact_start
+ * could add an in-memory version of page exists, but find_multixact_start
* is called infrequently, and it doesn't seem bad to flush buffers to
* disk before truncation.
*/
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index dfd089f63ca..fe2d4f147d7 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -1565,7 +1565,7 @@ finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap,
* swap_relation_files()), thus relfrozenxid was not updated. That's
* annoying because a potential reason for doing a VACUUM FULL is a
* imminent or actual anti-wraparound shutdown. So, now that we can
- * access the new relation using it's indices, update relfrozenxid.
+ * access the new relation using its indices, update relfrozenxid.
* pg_class doesn't have a toast relation, so we don't need to update the
* corresponding toast relation. Not that there's little point moving all
* relfrozenxid updates here since swap_relation_files() needs to write to
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index acd27b04821..7de4568b03e 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -1097,7 +1097,7 @@ lreplace:;
* (but still lock row, even though it may not satisfy estate's
* snapshot).
*
- * Returns true if if we're done (with or without an update), or false if
+ * Returns true if we're done (with or without an update), or false if
* the caller must retry the INSERT from scratch.
*/
static bool
diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c
index 6a1d8a63d92..f911b651493 100644
--- a/src/backend/replication/logical/origin.c
+++ b/src/backend/replication/logical/origin.c
@@ -1449,7 +1449,7 @@ pg_show_replication_origin_status(PG_FUNCTION_ARGS)
int i;
#define REPLICATION_ORIGIN_PROGRESS_COLS 4
- /* we we want to return 0 rows if slot is set to zero */
+ /* we want to return 0 rows if slot is set to zero */
replorigin_check_prerequisites(false, true);
if (rsinfo == NULL || !IsA(rsinfo, ReturnSetInfo))
diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c
index addf87dc3bb..cbefc4ba03b 100644
--- a/src/backend/utils/time/snapmgr.c
+++ b/src/backend/utils/time/snapmgr.c
@@ -1087,8 +1087,8 @@ AtEOXact_Snapshot(bool isCommit, bool resetXmin)
* it's too late to abort the transaction, and (2) leaving a leaked
* file around has little real consequence anyway.
*
- * We also also need to remove the snapshots from RegisteredSnapshots
- * to prevent a warning below.
+ * We also need to remove the snapshots from RegisteredSnapshots to
+ * prevent a warning below.
*
* As with the FirstXactSnapshot, we don't need to free resources of
* the snapshot iself as it will go away with the memory context.
diff --git a/src/bin/initdb/t/001_initdb.pl b/src/bin/initdb/t/001_initdb.pl
index c0cfa6e92c4..4290e22772f 100644
--- a/src/bin/initdb/t/001_initdb.pl
+++ b/src/bin/initdb/t/001_initdb.pl
@@ -1,4 +1,4 @@
-# To test successful data directory creation with a additional feature, first
+# To test successful data directory creation with an additional feature, first
# try to elaborate the "successful creation" test instead of adding a test.
# Successful initdb consumes much time and I/O.
diff --git a/src/bin/pg_upgrade/tablespace.c b/src/bin/pg_upgrade/tablespace.c
index 31958d5c67f..913406a8731 100644
--- a/src/bin/pg_upgrade/tablespace.c
+++ b/src/bin/pg_upgrade/tablespace.c
@@ -34,7 +34,7 @@ init_tablespaces(void)
* get_tablespace_paths()
*
* Scans pg_tablespace and returns a malloc'ed array of all tablespace
- * paths. Its the caller's responsibility to free the array.
+ * paths. It's the caller's responsibility to free the array.
*/
static void
get_tablespace_paths(void)
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index cf401dcf821..aa0b9b0ce48 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -3376,7 +3376,7 @@ typedef struct AlterTSConfigurationStmt
typedef struct CreatePublicationStmt
{
NodeTag type;
- char *pubname; /* Name of of the publication */
+ char *pubname; /* Name of the publication */
List *options; /* List of DefElem nodes */
List *tables; /* Optional list of tables to add */
bool for_all_tables; /* Special publication for all tables in db */
@@ -3385,7 +3385,7 @@ typedef struct CreatePublicationStmt
typedef struct AlterPublicationStmt
{
NodeTag type;
- char *pubname; /* Name of of the publication */
+ char *pubname; /* Name of the publication */
/* parameters used for ALTER PUBLICATION ... WITH */
List *options; /* List of DefElem nodes */
@@ -3399,7 +3399,7 @@ typedef struct AlterPublicationStmt
typedef struct CreateSubscriptionStmt
{
NodeTag type;
- char *subname; /* Name of of the subscription */
+ char *subname; /* Name of the subscription */
char *conninfo; /* Connection string to publisher */
List *publication; /* One or more publication to subscribe to */
List *options; /* List of DefElem nodes */
@@ -3418,7 +3418,7 @@ typedef struct AlterSubscriptionStmt
{
NodeTag type;
AlterSubscriptionType kind; /* ALTER_SUBSCRIPTION_OPTIONS, etc */
- char *subname; /* Name of of the subscription */
+ char *subname; /* Name of the subscription */
char *conninfo; /* Connection string to publisher */
List *publication; /* One or more publication to subscribe to */
List *options; /* List of DefElem nodes */
@@ -3427,7 +3427,7 @@ typedef struct AlterSubscriptionStmt
typedef struct DropSubscriptionStmt
{
NodeTag type;
- char *subname; /* Name of of the subscription */
+ char *subname; /* Name of the subscription */
bool missing_ok; /* Skip error if missing? */
DropBehavior behavior; /* RESTRICT or CASCADE behavior */
} DropSubscriptionStmt;
diff --git a/src/include/storage/latch.h b/src/include/storage/latch.h
index a43193c916b..7e5308df1d1 100644
--- a/src/include/storage/latch.h
+++ b/src/include/storage/latch.h
@@ -129,7 +129,7 @@ typedef struct Latch
#ifdef WIN32
#define WL_SOCKET_CONNECTED (1 << 5)
#else
-/* avoid having to to deal with case on platforms not requiring it */
+/* avoid having to deal with case on platforms not requiring it */
#define WL_SOCKET_CONNECTED WL_SOCKET_WRITEABLE
#endif
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c
index ac5717be38d..9a6dde44de9 100644
--- a/src/interfaces/ecpg/ecpglib/execute.c
+++ b/src/interfaces/ecpg/ecpglib/execute.c
@@ -1309,8 +1309,8 @@ ecpg_build_params(struct statement *stmt)
if ((position = next_insert(stmt->command, position, stmt->questionmarks, std_strings) + 1) == 0)
{
/*
- * We have an argument but we dont have the matched up placeholder
- * in the string
+ * We have an argument but we don't have the matched up
+ * placeholder in the string
*/
ecpg_raise(stmt->lineno, ECPG_TOO_MANY_ARGUMENTS,
ECPG_SQLSTATE_USING_CLAUSE_DOES_NOT_MATCH_PARAMETERS,
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index ed494e12108..1ebaf60e9b9 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -2726,7 +2726,7 @@ pltcl_SPI_execute_plan(ClientData cdata, Tcl_Interp *interp,
}
/************************************************************
- * If there was a argtype list on preparation, we need
+ * If there was an argtype list on preparation, we need
* an argument value list now
************************************************************/
if (qdesc->nargs > 0)
diff --git a/src/test/regress/expected/rowsecurity.out b/src/test/regress/expected/rowsecurity.out
index b8dcf51a30e..beb1129737d 100644
--- a/src/test/regress/expected/rowsecurity.out
+++ b/src/test/regress/expected/rowsecurity.out
@@ -2108,7 +2108,7 @@ SET SESSION AUTHORIZATION regress_rls_bob;
INSERT INTO document VALUES (79, (SELECT cid from category WHERE cname = 'technology'), 1, 'regress_rls_bob', 'technology book, can only insert')
ON CONFLICT (did) DO UPDATE SET dtitle = EXCLUDED.dtitle RETURNING *;
ERROR: new row violates row-level security policy for table "document"
--- UPDATE path is taken here. Existing tuple passes, since it's cid
+-- UPDATE path is taken here. Existing tuple passes, since its cid
-- corresponds to "novel", but default USING qual is enforced against
-- post-UPDATE tuple too (as always when updating with a policy that lacks an
-- explicit WCO), and so this fails:
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index ce03c4e7e47..2874078f67c 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -2814,7 +2814,7 @@ Rules:
NOTIFY rules_src_deletion
--
--- Ensure a aliased target relation for insert is correctly deparsed.
+-- Ensure an aliased target relation for insert is correctly deparsed.
--
create rule r4 as on insert to rules_src do instead insert into rules_log AS trgt SELECT NEW.* RETURNING trgt.f1, trgt.f2;
create rule r5 as on update to rules_src do instead UPDATE rules_log AS trgt SET tag = 'updated' WHERE trgt.f1 = new.f1;
diff --git a/src/test/regress/sql/rowsecurity.sql b/src/test/regress/sql/rowsecurity.sql
index f3a31dbee03..5a9fdcad742 100644
--- a/src/test/regress/sql/rowsecurity.sql
+++ b/src/test/regress/sql/rowsecurity.sql
@@ -781,7 +781,7 @@ SET SESSION AUTHORIZATION regress_rls_bob;
INSERT INTO document VALUES (79, (SELECT cid from category WHERE cname = 'technology'), 1, 'regress_rls_bob', 'technology book, can only insert')
ON CONFLICT (did) DO UPDATE SET dtitle = EXCLUDED.dtitle RETURNING *;
--- UPDATE path is taken here. Existing tuple passes, since it's cid
+-- UPDATE path is taken here. Existing tuple passes, since its cid
-- corresponds to "novel", but default USING qual is enforced against
-- post-UPDATE tuple too (as always when updating with a policy that lacks an
-- explicit WCO), and so this fails:
diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql
index d9aecad9122..8d705c795ac 100644
--- a/src/test/regress/sql/rules.sql
+++ b/src/test/regress/sql/rules.sql
@@ -1007,7 +1007,7 @@ create rule r3 as on delete to rules_src do notify rules_src_deletion;
\d+ rules_src
--
--- Ensure a aliased target relation for insert is correctly deparsed.
+-- Ensure an aliased target relation for insert is correctly deparsed.
--
create rule r4 as on insert to rules_src do instead insert into rules_log AS trgt SELECT NEW.* RETURNING trgt.f1, trgt.f2;
create rule r5 as on update to rules_src do instead UPDATE rules_log AS trgt SET tag = 'updated' WHERE trgt.f1 = new.f1;