From 41436335c8bbd805768a2a3426f169e8dc401ff9 Mon Sep 17 00:00:00 2001 From: wangfeihuo Date: Thu, 19 Sep 2024 15:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=A0=87=E9=A2=98=E3=80=91=EF=BC=9A?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dyat=E6=89=A7=E8=A1=8Cshrink=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?.=20=E3=80=90=E5=AE=9E=E7=8E=B0=E5=86=85=E5=AE=B9=E3=80=91:=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dyat=E6=89=A7=E8=A1=8Cshrink=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20=E3=80=90=E6=A0=B9=E5=9B=A0=E5=88=86=E6=9E=90=E3=80=91:=20co?= =?UTF-8?q?pyObject=E4=B8=AD=E7=BC=BA=E5=B0=91ShrinkStmt=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=20=E3=80=90=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E3=80=91:=20copyObject=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0ShrinkStmt=E8=AF=AD=E5=8F=A5=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86=20=E3=80=90=E5=85=B3=E8=81=94=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E6=88=96issue=E3=80=91:=20https://e.gitee.com/opengaussorg/das?= =?UTF-8?q?hboard=3Fissue=3DIAS3UU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/nodes/copyfuncs.cpp | 11 +++++++++++ src/common/backend/nodes/equalfuncs.cpp | 11 +++++++++++ src/common/backend/nodes/outfuncs.cpp | 11 +++++++++++ src/common/backend/nodes/readfuncs.cpp | 14 +++++++++++++- 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/common/backend/nodes/copyfuncs.cpp b/src/common/backend/nodes/copyfuncs.cpp index fbbbde7e2..e94cb815c 100644 --- a/src/common/backend/nodes/copyfuncs.cpp +++ b/src/common/backend/nodes/copyfuncs.cpp @@ -7815,6 +7815,14 @@ static CharsetClause *_copyCharsetClause(const CharsetClause* from) return newnode; } +static ShrinkStmt *_copyShrinkStmt(const ShrinkStmt* from) +{ + ShrinkStmt* newnode = makeNode(ShrinkStmt); + COPY_NODE_FIELD(relations); + COPY_SCALAR_FIELD(nowait); + return newnode; +} + static PrefixKey* _copyPrefixKey(const PrefixKey* from) { PrefixKey* newnode = makeNode(PrefixKey); @@ -9286,6 +9294,9 @@ void* copyObject(const void* from) case T_CharsetClause: retval = _copyCharsetClause((CharsetClause *)from); break; + case T_ShrinkStmt: + retval = _copyShrinkStmt((ShrinkStmt*) from); + break; #ifdef USE_SPQ case T_Motion: retval = _copyMotion((Motion*)from); diff --git a/src/common/backend/nodes/equalfuncs.cpp b/src/common/backend/nodes/equalfuncs.cpp index 81c433b45..b0f0562d9 100644 --- a/src/common/backend/nodes/equalfuncs.cpp +++ b/src/common/backend/nodes/equalfuncs.cpp @@ -3627,6 +3627,14 @@ static bool _equalCharsetClause(const CharsetClause* a, const CharsetClause* b) return true; } + +static bool _equalShrinkStmt(const ShrinkStmt* a, const ShrinkStmt* b) +{ + COMPARE_NODE_FIELD(relations); + COMPARE_SCALAR_FIELD(nowait); + return true; +} + static bool _equalPrefixKey(const PrefixKey* a, const PrefixKey* b) { COMPARE_NODE_FIELD(arg); @@ -4636,6 +4644,9 @@ bool equal(const void* a, const void* b) case T_CharsetClause: retval = _equalCharsetClause((const CharsetClause*) a, (const CharsetClause*) b); break; + case T_ShrinkStmt: + retval = _equalShrinkStmt((const ShrinkStmt*)a, (const ShrinkStmt*)b); + break; case T_PrefixKey: retval = _equalPrefixKey((PrefixKey *)a, (PrefixKey *)b); break; diff --git a/src/common/backend/nodes/outfuncs.cpp b/src/common/backend/nodes/outfuncs.cpp index e70984e91..c0f30f9d3 100755 --- a/src/common/backend/nodes/outfuncs.cpp +++ b/src/common/backend/nodes/outfuncs.cpp @@ -6384,6 +6384,14 @@ static void _outCharsetClause(StringInfo str, CharsetClause* node) WRITE_LOCATION_FIELD(location); } +static void _outShrinkStmt(StringInfo str, ShrinkStmt* node) +{ + WRITE_NODE_TYPE("SHRINK"); + WRITE_NODE_FIELD(relations); + WRITE_BOOL_FIELD(nowait); +} + + static void _outPrefixKey(StringInfo str, PrefixKey* node) { WRITE_NODE_TYPE("PREFIXKEY"); @@ -7375,6 +7383,9 @@ static void _outNode(StringInfo str, const void* obj) case T_CharsetClause: _outCharsetClause(str, (CharsetClause*)obj); break; + case T_ShrinkStmt: + _outShrinkStmt(str, (ShrinkStmt*)obj); + break; case T_AutoIncrement: _outAutoIncrement(str, (AutoIncrement*)obj); break; diff --git a/src/common/backend/nodes/readfuncs.cpp b/src/common/backend/nodes/readfuncs.cpp index f6d48f8a1..4b1844e28 100755 --- a/src/common/backend/nodes/readfuncs.cpp +++ b/src/common/backend/nodes/readfuncs.cpp @@ -6485,6 +6485,16 @@ static CharsetClause* _readCharsetClause() READ_DONE(); } +static ShrinkStmt* _readShrinkStmt() +{ + READ_LOCALS(ShrinkStmt); + + READ_NODE_FIELD(relations); + READ_BOOL_FIELD(nowait); + + READ_DONE(); +} + static PrefixKey* _readPrefixKey() { READ_LOCALS(PrefixKey); @@ -7105,7 +7115,9 @@ Node* parseNodeString(void) return_value = _readRotateClause(); } else if (MATCH("UNROTATEINFO", 12)) { return_value = _readUnrotateClause(); - } else { + } else if (MATCH("SHRINK", 6)) { + return_value = _readShrinkStmt(); + } else { ereport(ERROR, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("parseNodeString(): badly formatted node string \"%s\"...", token)));