}
/*
- * Insert all matching tuples into to a bitmap.
+ * Insert all matching tuples into a bitmap.
*/
int64
blgetbitmap(IndexScanDesc scan, TIDBitmap *tbm)
<listitem>
<para>
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.
</para>
</listitem>
<refnamediv>
<refname>SPI_register_relation</refname>
- <refpurpose>make a ephemeral named relation available by name in SPI queries</refpurpose>
+ <refpurpose>make an ephemeral named relation available by name in SPI queries</refpurpose>
</refnamediv>
<refsynopsisdiv>
/*
* 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);
/*
* 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.
*/
* 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
* (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
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))
* 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.
-# 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.
* 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)
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 */
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 */
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 */
{
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 */
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;
#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
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,
}
/************************************************************
- * 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)
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:
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;
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:
\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;