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

Commit294a2db

Browse files
committed
Handle truncate table and CREATE DOMAIN AS (temp)
1 parent824cbc3 commit294a2db

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

‎multimaster.c

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@
6262
#include"pglogical_output/hooks.h"
6363
#include"parser/analyze.h"
6464
#include"parser/parse_relation.h"
65+
#include"parser/parse_type.h"
66+
#include"catalog/pg_class.h"
67+
#include"catalog/pg_type.h"
6568
#include"tcop/pquery.h"
6669
#include"lib/ilist.h"
6770

@@ -3915,7 +3918,6 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
39153918
caseT_DoStmt:
39163919
caseT_CreateTableSpaceStmt:
39173920
caseT_AlterTableSpaceOptionsStmt:
3918-
caseT_TruncateStmt:
39193921
caseT_CommentStmt:
39203922
caseT_PrepareStmt:
39213923
caseT_ExecuteStmt:
@@ -3934,6 +3936,43 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
39343936
skipCommand= true;
39353937
break;
39363938

3939+
caseT_CreateDomainStmt:
3940+
{
3941+
CreateDomainStmt*stmt= (CreateDomainStmt*)parsetree;
3942+
HeapTupletypeTup;
3943+
Form_pg_typebaseType;
3944+
Form_pg_typeelementType;
3945+
Form_pg_classpgClassStruct;
3946+
int32basetypeMod;
3947+
OidelementTypeOid;
3948+
OidtableOid;
3949+
HeapTuplepgClassTuple;
3950+
HeapTupleelementTypeTuple;
3951+
3952+
typeTup=typenameType(NULL,stmt->typeName,&basetypeMod);
3953+
baseType= (Form_pg_type)GETSTRUCT(typeTup);
3954+
elementTypeOid=baseType->typelem;
3955+
ReleaseSysCache(typeTup);
3956+
3957+
if (elementTypeOid==InvalidOid)
3958+
break;
3959+
3960+
elementTypeTuple=SearchSysCache1(TYPEOID,elementTypeOid);
3961+
elementType= (Form_pg_type)GETSTRUCT(elementTypeTuple);
3962+
tableOid=elementType->typrelid;
3963+
ReleaseSysCache(elementTypeTuple);
3964+
3965+
if (tableOid==InvalidOid)
3966+
break;
3967+
3968+
pgClassTuple=SearchSysCache1(RELOID,tableOid);
3969+
pgClassStruct= (Form_pg_class)GETSTRUCT(pgClassTuple);
3970+
if (pgClassStruct->relpersistence=='t')
3971+
MyXactAccessedTempRel= true;
3972+
ReleaseSysCache(pgClassTuple);
3973+
}
3974+
break;
3975+
39373976
caseT_ExplainStmt:
39383977
/*
39393978
* EXPLAIN ANALYZE can create side-effects.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp