Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfbeac1b

Browse files
knizhnikkelvich
authored andcommitted
Fix make_table_local
1 parent768f076 commitfbeac1b

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

‎multimaster--1.0.sql

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,5 @@ CREATE FUNCTION mtm.check_deadlock(xid bigint) RETURNS boolean
8383
AS'MODULE_PATHNAME','mtm_check_deadlock'
8484
LANGUAGE C;
8585

86-
-- CREATE TABLE IF NOT EXISTS public.ddl_log (issued timestamp with time zone not null, query text);
87-
88-
-- CREATE TABLE IF NOT EXISTS mtm.local_tables(rel_schema text, rel_name text, primary key(rel_schema, rel_name));
86+
CREATETABLEIF NOT EXISTSmtm.local_tables(rel_schematext, rel_nametext,primary key(rel_schema, rel_name));
8987

‎multimaster.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2331,7 +2331,7 @@ MtmCreateLocalTableMap(void)
23312331
returnhtab;
23322332
}
23332333

2334-
staticvoidMtmMakeRelationLocal(Oidrelid)
2334+
voidMtmMakeRelationLocal(Oidrelid)
23352335
{
23362336
if (OidIsValid(relid)) {
23372337
MtmLock(LW_EXCLUSIVE);
@@ -2341,7 +2341,7 @@ static void MtmMakeRelationLocal(Oid relid)
23412341
}
23422342

23432343

2344-
voidMtmMakeTableLocal(char*schema,char*name)
2344+
staticvoidMtmMakeTableLocal(char*schema,char*name)
23452345
{
23462346
RangeVar*rv=makeRangeVar(schema,name,-1);
23472347
Oidrelid=RangeVarGetRelid(rv,NoLock, true);
@@ -4179,7 +4179,7 @@ mtm_get_cluster_info(PG_FUNCTION_ARGS)
41794179

41804180
Datummtm_make_table_local(PG_FUNCTION_ARGS)
41814181
{
4182-
Oidreloid=PG_GETARG_OID(1);
4182+
Oidreloid=PG_GETARG_OID(0);
41834183
RangeVar*rv;
41844184
Relationrel;
41854185
TupleDesctupDesc;
@@ -4192,8 +4192,8 @@ Datum mtm_make_table_local(PG_FUNCTION_ARGS)
41924192
rv=makeRangeVar(MULTIMASTER_SCHEMA_NAME,MULTIMASTER_LOCAL_TABLES_TABLE,-1);
41934193
rel=heap_openrv(rv,RowExclusiveLock);
41944194
if (rel!=NULL) {
4195-
char*tableName=get_rel_name(reloid);
4196-
Oidschemaid=get_rel_namespace(reloid);
4195+
char*tableName=RelationGetRelationName(rel);
4196+
Oidschemaid=RelationGetNamespace(rel);
41974197
char*schemaName=get_namespace_name(schemaid);
41984198

41994199
tupDesc=RelationGetDescr(rel);

‎multimaster.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ extern void MtmCheckQuorum(void);
396396
externboolMtmRecoveryCaughtUp(intnodeId,lsn_twalEndPtr);
397397
externvoidMtmCheckRecoveryCaughtUp(intnodeId,lsn_tslotLSN);
398398
externvoidMtmRecoveryCompleted(void);
399-
externvoidMtmMakeTableLocal(char*schema,char*name);
399+
externvoidMtmMakeRelationLocal(Oidrelid);
400400
externvoidMtmHandleApplyError(void);
401401
externvoidMtmUpdateLsnMapping(intnodeId,lsn_tendLsn);
402402
externlsn_tMtmGetFlushPosition(intnodeId);

‎pglogical_apply.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -818,10 +818,16 @@ process_remote_insert(StringInfo s, Relation rel)
818818
if (ActiveSnapshotSet())
819819
PopActiveSnapshot();
820820

821+
if (strcmp(RelationGetRelationName(rel),MULTIMASTER_LOCAL_TABLES_TABLE)==0&&
822+
strcmp(get_namespace_name(RelationGetNamespace(rel)),MULTIMASTER_SCHEMA_NAME)==0)
823+
{
824+
MtmMakeRelationLocal(RelationGetRelid(rel));
825+
}
826+
821827
heap_close(rel,NoLock);
822828
ExecResetTupleTable(estate->es_tupleTable, true);
823829
FreeExecutorState(estate);
824-
830+
825831
CommandCounterIncrement();
826832
}
827833

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp