This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/cbdb-postgres-merge by this
push:
new d76704e1d6d Remove struct Value
d76704e1d6d is described below
commit d76704e1d6d5a748e0700d10d9f3f7139aef17b7
Author: Jinbao Chen <[email protected]>
AuthorDate: Thu Oct 23 10:40:49 2025 +0800
Remove struct Value
---
gpcontrib/gp_exttable_fdw/extaccess.c | 20 ++--
gpcontrib/gp_exttable_fdw/gp_exttable_fdw.c | 2 +-
gpcontrib/gp_exttable_fdw/option.c | 4 +-
src/backend/access/external/external.c | 3 +-
src/backend/access/external/url.c | 2 +-
src/backend/catalog/objectaddress.c | 2 +-
src/backend/commands/dropcmds.c | 4 +-
src/backend/commands/exttablecmds.c | 8 +-
src/backend/commands/user.c | 4 +-
src/backend/executor/nodeAssertOp.c | 2 +-
src/backend/nodes/copyfuncs.c | 31 ------
src/backend/nodes/equalfuncs.c | 30 ------
src/backend/nodes/outfast.c | 7 +-
src/backend/nodes/outfuncs.c | 1 -
src/backend/nodes/outfuncs_common.c | 2 +-
src/backend/nodes/readfast.c | 156 ++++++++++------------------
src/backend/nodes/readfuncs_common.c | 4 +-
src/backend/parser/gram.y | 4 +-
src/backend/parser/parse_utilcmd.c | 4 +-
src/backend/postmaster/backoff.c | 6 +-
src/backend/utils/resscheduler/resqueue.c | 6 +-
src/include/nodes/parsenodes.h | 4 +-
src/include/nodes/value.h | 18 ++--
23 files changed, 106 insertions(+), 218 deletions(-)
diff --git a/gpcontrib/gp_exttable_fdw/extaccess.c
b/gpcontrib/gp_exttable_fdw/extaccess.c
index 08f6a431c66..f283239dda3 100644
--- a/gpcontrib/gp_exttable_fdw/extaccess.c
+++ b/gpcontrib/gp_exttable_fdw/extaccess.c
@@ -169,7 +169,7 @@ external_beginscan(Relation relation, uint32 scancounter,
if (Gp_role == GP_ROLE_EXECUTE)
{
/* this is the normal path for most ext tables */
- Value *v;
+ String *v;
int idx = segindex;
/*
@@ -184,12 +184,9 @@ external_beginscan(Relation relation, uint32 scancounter,
if (idx >= 0)
{
- v = (Value *) list_nth(uriList, idx);
+ v = list_nth(uriList, idx);
- if (v->type == T_Null)
- uri = NULL;
- else
- uri = (char *) strVal(v);
+ uri = strVal(v);
}
}
/*
@@ -203,12 +200,9 @@ external_beginscan(Relation relation, uint32 scancounter,
/* this is a ON COORDINATOR table. Only get uri if we are the
master */
if (segindex == -1)
{
- Value *v = list_nth(uriList, 0);
+ String *v = list_nth(uriList, 0);
- if (v->type == T_Null)
- uri = NULL;
- else
- uri = (char *) strVal(v);
+ uri = strVal(v);
}
}
@@ -583,7 +577,7 @@ external_insert_init(Relation rel)
{
/* LOCATION - gpfdist or custom */
- Value *v;
+ String *v;
char *uri_str;
int segindex = GpIdentity.segindex;
int num_segs = getgpsegmentCount();
@@ -597,7 +591,7 @@ external_insert_init(Relation rel)
/* get a url to use. we use seg number modulo total num of urls
*/
v = list_nth(extentry->urilocations, my_url);
- uri_str = pstrdup(v->val.str);
+ uri_str = pstrdup(v->sval);
extInsertDesc->ext_uri = uri_str;
#if 0
diff --git a/gpcontrib/gp_exttable_fdw/gp_exttable_fdw.c
b/gpcontrib/gp_exttable_fdw/gp_exttable_fdw.c
index 19dde78a441..ebafc0a7172 100644
--- a/gpcontrib/gp_exttable_fdw/gp_exttable_fdw.c
+++ b/gpcontrib/gp_exttable_fdw/gp_exttable_fdw.c
@@ -110,7 +110,7 @@ strListToArray(List *stringlist)
foreach(cell, stringlist)
{
- Value *val = lfirst(cell);
+ String *val = lfirst(cell);
astate = accumArrayResult(astate,
CStringGetTextDatum(strVal(val)),
false,
TEXTOID,
CurrentMemoryContext);
diff --git a/gpcontrib/gp_exttable_fdw/option.c
b/gpcontrib/gp_exttable_fdw/option.c
index 04cccfe0e47..d112b7554c3 100644
--- a/gpcontrib/gp_exttable_fdw/option.c
+++ b/gpcontrib/gp_exttable_fdw/option.c
@@ -206,8 +206,8 @@ static void
is_valid_locationuris(List *location_list, bool is_writable)
{
ListCell *first_uri = list_head(location_list);
- Value *v = lfirst(first_uri);
- char *uri_str = pstrdup(v->val.str);
+ String *v = lfirst(first_uri);
+ char *uri_str = pstrdup(v->sval);
Uri *uri = ParseExternalTableUri(uri_str);
if (uri->protocol == URI_FILE)
diff --git a/src/backend/access/external/external.c
b/src/backend/access/external/external.c
index 0905a576a6c..3562f063cbf 100644
--- a/src/backend/access/external/external.c
+++ b/src/backend/access/external/external.c
@@ -1003,9 +1003,8 @@ create_external_scan_uri_list(ExtTableEntry *ext, bool
*ismasteronly)
else
{
/* no file for this segdb. add a null entry */
- Value *n = makeNode(Value);
+ String *n = makeNode(String);
- n->type = T_Null;
filenames = lappend(filenames, n);
}
}
diff --git a/src/backend/access/external/url.c
b/src/backend/access/external/url.c
index bfdd24298e8..891805b7d2c 100644
--- a/src/backend/access/external/url.c
+++ b/src/backend/access/external/url.c
@@ -172,7 +172,7 @@ get_eol_delimiter(List *params)
foreach(lc, params)
if (pg_strcasecmp(((DefElem *) lc->ptr_value)->defname,
"line_delim") == 0)
- return pstrdup(((Value *) ((DefElem *)
lc->ptr_value)->arg)->val.str);
+ return pstrdup(((String *) ((DefElem *)
lc->ptr_value)->arg)->sval);
return pstrdup("");
}
diff --git a/src/backend/catalog/objectaddress.c
b/src/backend/catalog/objectaddress.c
index 1f8ebcd7572..db5294c89e9 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2757,7 +2757,7 @@ check_object_ownership(Oid roleid, ObjectType objtype,
ObjectAddress address,
case OBJECT_EXTPROTOCOL:
if (!pg_extprotocol_ownercheck(address.objectId,
roleid))
aclcheck_error(ACLCHECK_NOT_OWNER,
OBJECT_EXTPROTOCOL,
- strVal((Value *)
object));
+ strVal(object));
break;
case OBJECT_TSPARSER:
case OBJECT_TSTEMPLATE:
diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index 9dc12b13eea..9bed9866aac 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -458,7 +458,7 @@ does_not_exist_skipping(ObjectType objtype, Node *object)
break;
case OBJECT_STORAGE_SERVER:
msg = gettext_noop("storage server \"%s\" does not
exist, skipping");
- name = strVal((Value *) object);
+ name = strVal(object);
break;
case OBJECT_OPCLASS:
{
@@ -531,7 +531,7 @@ does_not_exist_skipping(ObjectType objtype, Node *object)
break;
case OBJECT_EXTPROTOCOL:
msg = gettext_noop("protocol \"%s\" does not exist,
skipping");
- name = strVal((Value *) object);
+ name = strVal(object);
break;
/* no default, to let compiler warn about missing case
*/
}
diff --git a/src/backend/commands/exttablecmds.c
b/src/backend/commands/exttablecmds.c
index 73a20ce2a54..18834960460 100644
--- a/src/backend/commands/exttablecmds.c
+++ b/src/backend/commands/exttablecmds.c
@@ -251,8 +251,8 @@ DefineExternalRelation(CreateExternalStmt *createExtStmt)
{
if (Gp_role == GP_ROLE_DISPATCH)
{
- Value *loc =
lfirst(list_head(exttypeDesc->location_list));
- Uri *uri = ParseExternalTableUri(loc->val.str);
+ String *loc =
lfirst(list_head(exttypeDesc->location_list));
+ Uri *uri = ParseExternalTableUri(loc->sval);
if (uri->protocol == URI_FILE || uri->protocol ==
URI_HTTP)
{
@@ -362,10 +362,10 @@ transformLocationUris(List *locs, bool isweb, bool
iswritable)
char *uri_str_orig;
char *uri_str_final;
char *uri_str_escape;
- Value *v = lfirst(cell);
+ String *v = lfirst(cell);
/* get the current URI string from the command */
- uri_str_orig = v->val.str;
+ uri_str_orig = v->sval;
/* parse it to its components */
uri = ParseExternalTableUri(uri_str_orig);
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 6a95cc0e0b7..2bca6b1090f 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -129,7 +129,7 @@ static void SetCreateExtTableForRole(List* allow,
static char *daysofweek[] = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday",
"Saturday"};
-static int16 ExtractAuthInterpretDay(Value * day);
+static int16 ExtractAuthInterpretDay(Node * day);
static void ExtractAuthIntervalClause(DefElem *defel,
authInterval *authInterval);
static void AddRoleDenials(const char *rolename, Oid roleid,
@@ -3537,7 +3537,7 @@ ExtractAuthIntervalClause(DefElem *defel, authInterval
*interval)
* or a string giving name of day in English
*/
static int16
-ExtractAuthInterpretDay(Value * day)
+ExtractAuthInterpretDay(Node * day)
{
int16 ret;
if (day->type == T_Integer)
diff --git a/src/backend/executor/nodeAssertOp.c
b/src/backend/executor/nodeAssertOp.c
index 8603492403f..e9a4479a8c7 100644
--- a/src/backend/executor/nodeAssertOp.c
+++ b/src/backend/executor/nodeAssertOp.c
@@ -45,7 +45,7 @@ CheckForAssertViolations(AssertOpState* node, TupleTableSlot*
slot)
if (!isNull && !DatumGetBool(expr_value))
{
- Value *valErrorMessage = (Value*)
list_nth(plannode->errmessage, 0);
+ String *valErrorMessage = list_nth(plannode->errmessage, 0);
Assert(NULL != valErrorMessage && IsA(valErrorMessage, String)
&&
0 < strlen(strVal(valErrorMessage)));
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 04fe72e2e86..a978e5d36db 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -6240,34 +6240,6 @@ _copyExtensibleNode(const ExtensibleNode *from)
* value.h copy functions
* ****************************************************************
*/
-static Value *
-_copyValue(const Value *from)
-{
- Value *newnode = makeNode(Value);
-
- /* See also _copyAConst when changing this code! */
-
- COPY_SCALAR_FIELD(type);
- switch (from->type)
- {
- case T_Integer:
- COPY_SCALAR_FIELD(val.ival);
- break;
- case T_Float:
- case T_String:
- case T_BitString:
- COPY_STRING_FIELD(val.str);
- break;
- case T_Null:
- /* nothing to do */
- break;
- default:
- elog(ERROR, "unrecognized node type: %d",
- (int) from->type);
- break;
- }
- return newnode;
-}
static ForeignKeyCacheInfo *
@@ -6922,9 +6894,6 @@ copyObjectImpl(const void *from)
case T_BitString:
retval = _copyBitString(from);
break;
- case T_Null:
- retval = _copyValue(from);
- break;
/*
* LIST NODES
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 19027a82f6f..80cf44578c9 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -3599,33 +3599,6 @@ _equalList(const List *a, const List *b)
* Stuff from value.h
*/
-static bool
-_equalValue(const Value *a, const Value *b)
-{
- COMPARE_SCALAR_FIELD(type);
-
- switch (a->type)
- {
- case T_Integer:
- COMPARE_SCALAR_FIELD(val.ival);
- break;
- case T_Float:
- case T_String:
- case T_BitString:
- COMPARE_STRING_FIELD(val.str);
- break;
- case T_Null:
- /* nothing to do */
- break;
- default:
- elog(ERROR, "unrecognized node type: %d", (int)
a->type);
- break;
- }
-
- return true;
-}
-
-
static bool
_equalInteger(const Integer *a, const Integer *b)
{
@@ -3918,9 +3891,6 @@ equal(const void *a, const void *b)
case T_BitString:
retval = _equalBitString(a, b);
break;
- case T_Null:
- retval = _equalValue(a, b);
- break;
/*
* EXTENSIBLE NODES
diff --git a/src/backend/nodes/outfast.c b/src/backend/nodes/outfast.c
index 2d1d846a72f..f1437ae8cf9 100644
--- a/src/backend/nodes/outfast.c
+++ b/src/backend/nodes/outfast.c
@@ -427,7 +427,6 @@ _outQuery(StringInfo str, Query *node)
WRITE_ENUM_FIELD(commandType, CmdType);
WRITE_ENUM_FIELD(querySource, QuerySource);
WRITE_BOOL_FIELD(canSetTag);
-
WRITE_NODE_FIELD(utilityStmt);
WRITE_INT_FIELD(resultRelation);
WRITE_BOOL_FIELD(hasAggs);
@@ -443,7 +442,10 @@ _outQuery(StringInfo str, Query *node)
WRITE_BOOL_FIELD(canOptSelectLockingClause);
WRITE_NODE_FIELD(cteList);
WRITE_NODE_FIELD(rtable);
+ WRITE_NODE_FIELD(rteperminfos);
WRITE_NODE_FIELD(jointree);
+ WRITE_NODE_FIELD(mergeActionList);
+ WRITE_BOOL_FIELD(mergeUseOuterJoin);
WRITE_NODE_FIELD(targetList);
WRITE_NODE_FIELD(withCheckOptions);
WRITE_NODE_FIELD(onConflict);
@@ -606,10 +608,9 @@ static void
_outAConst(StringInfo str, A_Const *node)
{
WRITE_NODE_TYPE("A_CONST");
-
+ WRITE_BOOL_FIELD(isnull);
if (!node->isnull)
_outNode(str, &node->val);
-
WRITE_LOCATION_FIELD(location);
}
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index 7bd3533bc34..5d2d41ab97c 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -415,7 +415,6 @@ _outPlannedStmt(StringInfo str, const PlannedStmt *node)
WRITE_NODE_FIELD(paramExecTypes);
WRITE_NODE_FIELD(utilityStmt);
WRITE_LOCATION_FIELD(stmt_location);
-
WRITE_INT_FIELD(stmt_len);
WRITE_INT_ARRAY(subplan_sliceIds, list_length(node->subplans));
diff --git a/src/backend/nodes/outfuncs_common.c
b/src/backend/nodes/outfuncs_common.c
index 46ac6ee8e29..8cfa0c29d3e 100644
--- a/src/backend/nodes/outfuncs_common.c
+++ b/src/backend/nodes/outfuncs_common.c
@@ -738,7 +738,7 @@ unwrapStringList(List *list)
foreach(lc, list)
{
- Value *val = (Value *) lfirst(lc);
+ String *val = lfirst(lc);
lfirst(lc) = strVal(val);
pfree(val);
diff --git a/src/backend/nodes/readfast.c b/src/backend/nodes/readfast.c
index 1ae6fea97c9..e1d1078b935 100644
--- a/src/backend/nodes/readfast.c
+++ b/src/backend/nodes/readfast.c
@@ -466,52 +466,65 @@ _readAConst(void)
{
READ_LOCALS(A_Const);
- READ_ENUM_FIELD(val.node.type, NodeTag);
+ READ_BOOL_FIELD(isnull);
- switch (local_node->val.node.type)
+ if (!local_node->isnull)
{
- case T_Integer:
- memcpy(&local_node->val.ival.ival, read_str_ptr,
sizeof(long)); read_str_ptr+=sizeof(long);
- break;
- case T_Boolean:
- memcpy(&local_node->val.boolval.boolval, read_str_ptr,
sizeof(long)); read_str_ptr+=sizeof(long);
- break;
- case T_Float:
- {
- int slen; char * nn;
- memcpy(&slen, read_str_ptr, sizeof(int));
- read_str_ptr+=sizeof(int);
- nn = palloc(slen+1);
- memcpy(nn,read_str_ptr,slen);
- nn[slen] = '\0';
- local_node->val.fval.fval = nn; read_str_ptr+=slen;
- }
- break;
- case T_String:
- {
- int slen; char * nn;
- memcpy(&slen, read_str_ptr, sizeof(int));
- read_str_ptr+=sizeof(int);
- nn = palloc(slen+1);
- memcpy(nn,read_str_ptr,slen);
- nn[slen] = '\0';
- local_node->val.sval.sval = nn; read_str_ptr+=slen;
- }
- break;
- case T_BitString:
+ union ValUnion *tmp = readNodeBinary();
+
+ switch (nodeTag(tmp))
{
- int slen; char * nn;
- memcpy(&slen, read_str_ptr, sizeof(int));
- read_str_ptr+=sizeof(int);
- nn = palloc(slen+1);
- memcpy(nn,read_str_ptr,slen);
- nn[slen] = '\0';
- local_node->val.bsval.bsval = nn; read_str_ptr+=slen;
+ case T_Integer:
+ memcpy(&local_node->val.ival.ival,
read_str_ptr, sizeof(long));
+ read_str_ptr += sizeof(long);
+ break;
+ case T_Boolean:
+ memcpy(&local_node->val.boolval.boolval,
read_str_ptr, sizeof(long));
+ read_str_ptr += sizeof(long);
+ break;
+ case T_Float:
+ {
+ int slen;
+ char *nn;
+ memcpy(&slen, read_str_ptr, sizeof(int));
+ read_str_ptr += sizeof(int);
+ nn = palloc(slen + 1);
+ memcpy(nn, read_str_ptr, slen);
+ nn[slen] = '\0';
+ local_node->val.fval.fval = nn;
+ read_str_ptr += slen;
+ }
+ break;
+ case T_String:
+ {
+ int slen;
+ char *nn;
+ memcpy(&slen, read_str_ptr, sizeof(int));
+ read_str_ptr += sizeof(int);
+ nn = palloc(slen + 1);
+ memcpy(nn, read_str_ptr, slen);
+ nn[slen] = '\0';
+ local_node->val.sval.sval = nn;
+ read_str_ptr += slen;
+ }
+ break;
+ case T_BitString:
+ {
+ int slen;
+ char *nn;
+ memcpy(&slen, read_str_ptr, sizeof(int));
+ read_str_ptr += sizeof(int);
+ nn = palloc(slen + 1);
+ memcpy(nn, read_str_ptr, slen);
+ nn[slen] = '\0';
+ local_node->val.bsval.bsval = nn;
+ read_str_ptr += slen;
+ }
+ break;
+ case T_Null:
+ default:
+ break;
}
- break;
- case T_Null:
- default:
- break;
}
READ_LOCATION_FIELD(location); /*CDB*/
@@ -1678,59 +1691,6 @@ _readGpDropPartitionCmd(void)
READ_DONE();
}
-static Node *
-_readValue(NodeTag nt)
-{
- Node * result = NULL;
- if (nt == T_Integer)
- {
- long ival;
- memcpy(&ival, read_str_ptr, sizeof(long));
read_str_ptr+=sizeof(long);
- result = (Node *) makeInteger(ival);
- }
- else if (nt == T_Null)
- {
- Value *val = makeNode(Value);
- val->type = T_Null;
- result = (Node *)val;
- }
- else
- {
- int slen;
- char * nn = NULL;
- memcpy(&slen, read_str_ptr, sizeof(int));
- read_str_ptr+=sizeof(int);
-
- /*
- * For the String case we want to create an empty string if
slen is
- * equal to zero, since otherwise we'll set the string to NULL,
which
- * has a different meaning and the NULL case is handed above.
- */
- if (slen > 0 || nt == T_String)
- {
- nn = palloc(slen + 1);
-
- if (slen > 0)
- memcpy(nn, read_str_ptr, slen);
-
- read_str_ptr += (slen);
- nn[slen] = '\0';
- }
-
- if (nt == T_Float)
- result = (Node *) makeFloat(nn);
- else if (nt == T_String)
- result = (Node *) makeString(nn);
- else if (nt == T_BitString)
- result = (Node *) makeBitString(nn);
- else
- elog(ERROR, "unknown Value node type %i", nt);
- }
-
- return result;
-
-}
-
/*
* _readGpPolicy
*/
@@ -1953,12 +1913,6 @@ readNodeBinary(void)
return l;
}
- if (nt == T_Integer || nt == T_Float || nt == T_String ||
- nt == T_BitString || nt == T_Null)
- {
- return _readValue(nt);
- }
-
switch(nt)
{
case T_PlannedStmt:
diff --git a/src/backend/nodes/readfuncs_common.c
b/src/backend/nodes/readfuncs_common.c
index db259750bfd..1b39bbd1abe 100644
--- a/src/backend/nodes/readfuncs_common.c
+++ b/src/backend/nodes/readfuncs_common.c
@@ -38,6 +38,8 @@ static void unwrapStringList(List *list);
/* functions only used for text representation */
#ifndef COMPILING_BINARY_FUNCS
+
+
static A_Const *
_readAConst(void)
{
@@ -1818,7 +1820,7 @@ unwrapStringList(List *list)
foreach(lc, list)
{
- Value *val = (Value *) lfirst(lc);
+ String *val = lfirst(lc);
lfirst(lc) = strVal(val);
pfree(val);
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index ac439cafe8a..1ac7cbf362e 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -2125,8 +2125,8 @@ deny_day_specifier: Sconst { $$ = (Node *)makeString($1);
}
deny_point: DAY_P deny_day_specifier opt_time
{
DenyLoginPoint *n =
makeNode(DenyLoginPoint);
- n->day = (Value *)$2;
- n->time = (Value *)$3;
+ n->day = $2;
+ n->time = $3;
$$ = (Node *)n;
}
;
diff --git a/src/backend/parser/parse_utilcmd.c
b/src/backend/parser/parse_utilcmd.c
index 06b15189948..74a7ef940f9 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -2582,7 +2582,7 @@ transformDistributedBy(ParseState *pstate,
*/
foreach (ip, constraint->keys)
{
- Value *v = lfirst(ip);
+ String *v = lfirst(ip);
ListCell *dkcell;
foreach (dkcell, distrkeys)
@@ -2612,7 +2612,7 @@ transformDistributedBy(ParseState *pstate,
new_distrkeys = NIL;
foreach (ip, constraint->keys)
{
- Value *v = lfirst(ip);
+ String *v = lfirst(ip);
DistributionKeyElem *dk =
makeNode(DistributionKeyElem);
dk->name = strVal(v);
diff --git a/src/backend/postmaster/backoff.c b/src/backend/postmaster/backoff.c
index e3c58b5716a..f8c0bd52171 100644
--- a/src/backend/postmaster/backoff.c
+++ b/src/backend/postmaster/backoff.c
@@ -1410,15 +1410,15 @@ ResourceQueueGetPriorityWeight(Oid queueId)
foreach(le, capabilitiesList)
{
- Value *key = NULL;
+ Integer *key = NULL;
entry = (List *) lfirst(le);
Assert(entry);
- key = (Value *) linitial(entry);
+ key = linitial(entry);
Assert(key->type == T_Integer); /* This is resource type id */
if (intVal(key) == PG_RESRCTYPE_PRIORITY)
{
- Value *val = lsecond(entry);
+ String *val = lsecond(entry);
Assert(val->type == T_String);
weight = BackoffPriorityValueToInt(strVal(val));
diff --git a/src/backend/utils/resscheduler/resqueue.c
b/src/backend/utils/resscheduler/resqueue.c
index 5f1d1772192..893bd43f637 100644
--- a/src/backend/utils/resscheduler/resqueue.c
+++ b/src/backend/utils/resscheduler/resqueue.c
@@ -2355,14 +2355,14 @@ int64 ResourceQueueGetMemoryLimitInCatalog(Oid queueId)
foreach(le, capabilitiesList)
{
List *entry = NULL;
- Value *key = NULL;
+ Integer *key = NULL;
entry = (List *) lfirst(le);
Assert(entry);
- key = (Value *) linitial(entry);
+ key = linitial(entry);
Assert(key->type == T_Integer); /* This is resource type id */
if (intVal(key) == PG_RESRCTYPE_MEMORY_LIMIT)
{
- Value *val = lsecond(entry);
+ String *val = lsecond(entry);
Assert(val->type == T_String);
#ifdef USE_ASSERT_CHECKING
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 5717b79a416..e46fcc2041f 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -3644,8 +3644,8 @@ typedef struct DropProfileStmt
typedef struct DenyLoginPoint
{
NodeTag type;
- Value *day;
- Value *time;
+ Node *day;
+ Node *time;
} DenyLoginPoint;
typedef struct DenyLoginInterval
diff --git a/src/include/nodes/value.h b/src/include/nodes/value.h
index cd6b1229bca..b1750d2bd49 100644
--- a/src/include/nodes/value.h
+++ b/src/include/nodes/value.h
@@ -76,15 +76,15 @@ typedef struct BitString
char *bsval;
} BitString;
-typedef struct Value
-{
- NodeTag type; /* tag appropriately (eg.
T_String) */
- union ValUnion2
- {
- int ival; /* machine integer */
- char *str; /* string */
- } val;
-} Value;
+//typedef struct Value
+//{
+// NodeTag type; /* tag appropriately (eg.
T_String) */
+// union ValUnion2
+// {
+// int ival; /* machine integer */
+// char *str; /* string */
+// } val;
+//} Value;
#define intVal(v) (castNode(Integer, v)->ival)
#define floatVal(v) atof(castNode(Float, v)->fval)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]