mirror of
https://github.com/postgres/postgres.git
synced 2025-11-24 00:23:06 +03:00
Post-PG 10 beta1 pgindent run
perltidy run not included.
This commit is contained in:
@@ -30,13 +30,13 @@
|
||||
#include "utils/memutils.h"
|
||||
#include "utils/syscache.h"
|
||||
|
||||
static MemoryContext LogicalRepRelMapContext = NULL;
|
||||
static MemoryContext LogicalRepRelMapContext = NULL;
|
||||
|
||||
static HTAB *LogicalRepRelMap = NULL;
|
||||
static HTAB *LogicalRepTypMap = NULL;
|
||||
static HTAB *LogicalRepRelMap = NULL;
|
||||
static HTAB *LogicalRepTypMap = NULL;
|
||||
|
||||
static void logicalrep_typmap_invalidate_cb(Datum arg, int cacheid,
|
||||
uint32 hashvalue);
|
||||
uint32 hashvalue);
|
||||
|
||||
/*
|
||||
* Relcache invalidation callback for our relation map cache.
|
||||
@@ -44,7 +44,7 @@ static void logicalrep_typmap_invalidate_cb(Datum arg, int cacheid,
|
||||
static void
|
||||
logicalrep_relmap_invalidate_cb(Datum arg, Oid reloid)
|
||||
{
|
||||
LogicalRepRelMapEntry *entry;
|
||||
LogicalRepRelMapEntry *entry;
|
||||
|
||||
/* Just to be sure. */
|
||||
if (LogicalRepRelMap == NULL)
|
||||
@@ -110,7 +110,7 @@ logicalrep_relmap_init(void)
|
||||
|
||||
/* This will usually be small. */
|
||||
LogicalRepTypMap = hash_create("logicalrep type map cache", 2, &ctl,
|
||||
HASH_ELEM | HASH_BLOBS |HASH_CONTEXT);
|
||||
HASH_ELEM | HASH_BLOBS | HASH_CONTEXT);
|
||||
|
||||
/* Watch for invalidation events. */
|
||||
CacheRegisterRelcacheCallback(logicalrep_relmap_invalidate_cb,
|
||||
@@ -134,7 +134,7 @@ logicalrep_relmap_free_entry(LogicalRepRelMapEntry *entry)
|
||||
|
||||
if (remoterel->natts > 0)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < remoterel->natts; i++)
|
||||
pfree(remoterel->attnames[i]);
|
||||
@@ -157,10 +157,10 @@ logicalrep_relmap_free_entry(LogicalRepRelMapEntry *entry)
|
||||
void
|
||||
logicalrep_relmap_update(LogicalRepRelation *remoterel)
|
||||
{
|
||||
MemoryContext oldctx;
|
||||
LogicalRepRelMapEntry *entry;
|
||||
bool found;
|
||||
int i;
|
||||
MemoryContext oldctx;
|
||||
LogicalRepRelMapEntry *entry;
|
||||
bool found;
|
||||
int i;
|
||||
|
||||
if (LogicalRepRelMap == NULL)
|
||||
logicalrep_relmap_init();
|
||||
@@ -202,7 +202,7 @@ logicalrep_relmap_update(LogicalRepRelation *remoterel)
|
||||
static int
|
||||
logicalrep_rel_att_by_name(LogicalRepRelation *remoterel, const char *attname)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < remoterel->natts; i++)
|
||||
{
|
||||
@@ -222,7 +222,7 @@ logicalrep_rel_att_by_name(LogicalRepRelation *remoterel, const char *attname)
|
||||
LogicalRepRelMapEntry *
|
||||
logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
{
|
||||
LogicalRepRelMapEntry *entry;
|
||||
LogicalRepRelMapEntry *entry;
|
||||
bool found;
|
||||
|
||||
if (LogicalRepRelMap == NULL)
|
||||
@@ -245,7 +245,8 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
Bitmapset *idkey;
|
||||
TupleDesc desc;
|
||||
LogicalRepRelation *remoterel;
|
||||
MemoryContext oldctx;
|
||||
MemoryContext oldctx;
|
||||
|
||||
remoterel = &entry->remoterel;
|
||||
|
||||
/* Try to find and lock the relation by name. */
|
||||
@@ -265,8 +266,8 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
|
||||
/*
|
||||
* Build the mapping of local attribute numbers to remote attribute
|
||||
* numbers and validate that we don't miss any replicated columns
|
||||
* as that would result in potentially unwanted data loss.
|
||||
* numbers and validate that we don't miss any replicated columns as
|
||||
* that would result in potentially unwanted data loss.
|
||||
*/
|
||||
desc = RelationGetDescr(entry->localrel);
|
||||
oldctx = MemoryContextSwitchTo(LogicalRepRelMapContext);
|
||||
@@ -276,8 +277,9 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
found = 0;
|
||||
for (i = 0; i < desc->natts; i++)
|
||||
{
|
||||
int attnum = logicalrep_rel_att_by_name(remoterel,
|
||||
NameStr(desc->attrs[i]->attname));
|
||||
int attnum = logicalrep_rel_att_by_name(remoterel,
|
||||
NameStr(desc->attrs[i]->attname));
|
||||
|
||||
entry->attrmap[i] = attnum;
|
||||
if (attnum >= 0)
|
||||
found++;
|
||||
@@ -287,9 +289,9 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
if (found < remoterel->natts)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("logical replication target relation \"%s.%s\" is missing "
|
||||
"some replicated columns",
|
||||
remoterel->nspname, remoterel->relname)));
|
||||
errmsg("logical replication target relation \"%s.%s\" is missing "
|
||||
"some replicated columns",
|
||||
remoterel->nspname, remoterel->relname)));
|
||||
|
||||
/*
|
||||
* Check that replica identity matches. We allow for stricter replica
|
||||
@@ -299,8 +301,8 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
* but in the opposite scenario it will.
|
||||
*
|
||||
* Don't throw any error here just mark the relation entry as not
|
||||
* updatable, as replica identity is only for updates and deletes
|
||||
* but inserts can be replicated even without it.
|
||||
* updatable, as replica identity is only for updates and deletes but
|
||||
* inserts can be replicated even without it.
|
||||
*/
|
||||
entry->updatable = true;
|
||||
idkey = RelationGetIndexAttrBitmap(entry->localrel,
|
||||
@@ -310,6 +312,7 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
{
|
||||
idkey = RelationGetIndexAttrBitmap(entry->localrel,
|
||||
INDEX_ATTR_BITMAP_PRIMARY_KEY);
|
||||
|
||||
/*
|
||||
* If no replica identity index and no PK, the published table
|
||||
* must have replica identity FULL.
|
||||
@@ -321,14 +324,14 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
|
||||
i = -1;
|
||||
while ((i = bms_next_member(idkey, i)) >= 0)
|
||||
{
|
||||
int attnum = i + FirstLowInvalidHeapAttributeNumber;
|
||||
int attnum = i + FirstLowInvalidHeapAttributeNumber;
|
||||
|
||||
if (!AttrNumberIsForUserDefinedAttr(attnum))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("logical replication target relation \"%s.%s\" uses "
|
||||
"system columns in REPLICA IDENTITY index",
|
||||
remoterel->nspname, remoterel->relname)));
|
||||
errmsg("logical replication target relation \"%s.%s\" uses "
|
||||
"system columns in REPLICA IDENTITY index",
|
||||
remoterel->nspname, remoterel->relname)));
|
||||
|
||||
attnum = AttrNumberGetAttrOffset(attnum);
|
||||
|
||||
@@ -371,7 +374,7 @@ static void
|
||||
logicalrep_typmap_invalidate_cb(Datum arg, int cacheid, uint32 hashvalue)
|
||||
{
|
||||
HASH_SEQ_STATUS status;
|
||||
LogicalRepTyp *entry;
|
||||
LogicalRepTyp *entry;
|
||||
|
||||
/* Just to be sure. */
|
||||
if (LogicalRepTypMap == NULL)
|
||||
@@ -402,9 +405,9 @@ logicalrep_typmap_free_entry(LogicalRepTyp *entry)
|
||||
void
|
||||
logicalrep_typmap_update(LogicalRepTyp *remotetyp)
|
||||
{
|
||||
MemoryContext oldctx;
|
||||
LogicalRepTyp *entry;
|
||||
bool found;
|
||||
MemoryContext oldctx;
|
||||
LogicalRepTyp *entry;
|
||||
bool found;
|
||||
|
||||
if (LogicalRepTypMap == NULL)
|
||||
logicalrep_relmap_init();
|
||||
@@ -433,9 +436,9 @@ logicalrep_typmap_update(LogicalRepTyp *remotetyp)
|
||||
Oid
|
||||
logicalrep_typmap_getid(Oid remoteid)
|
||||
{
|
||||
LogicalRepTyp *entry;
|
||||
bool found;
|
||||
Oid nspoid;
|
||||
LogicalRepTyp *entry;
|
||||
bool found;
|
||||
Oid nspoid;
|
||||
|
||||
/* Internal types are mapped directly. */
|
||||
if (remoteid < FirstNormalObjectId)
|
||||
|
||||
Reference in New Issue
Block a user