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 dbd89994d25 Fix compile errors for parser
dbd89994d25 is described below
commit dbd89994d25ba109010740627df48dedbda9c34a
Author: Jinbao Chen <[email protected]>
AuthorDate: Sat Oct 4 16:35:13 2025 +0800
Fix compile errors for parser
---
src/backend/libpq/pqsignal.c | 40 ---------------------------------
src/backend/parser/analyze.c | 10 ++++-----
src/backend/parser/gram.y | 10 ++++-----
src/backend/parser/parse_agg.c | 8 +++----
src/backend/parser/parse_clause.c | 2 +-
src/backend/parser/parse_cte.c | 2 +-
src/backend/parser/parse_partition_gp.c | 1 +
src/backend/parser/parse_relation.c | 1 -
src/backend/parser/parse_utilcmd.c | 18 ++++++++++-----
src/include/nodes/nodes.h | 3 +++
src/interfaces/libpq/fe-protocol3.c | 15 +------------
src/port/pqsignal.c | 17 --------------
12 files changed, 32 insertions(+), 95 deletions(-)
diff --git a/src/backend/libpq/pqsignal.c b/src/backend/libpq/pqsignal.c
index b815be6eeab..d233e3a2fd7 100644
--- a/src/backend/libpq/pqsignal.c
+++ b/src/backend/libpq/pqsignal.c
@@ -97,43 +97,3 @@ pqinitmask(void)
sigdelset(&StartupBlockSig, SIGALRM);
#endif
}
-
-/*
- * Set up a postmaster signal handler for signal "signo"
- *
- * Returns the previous handler.
- *
- * This is used only in the postmaster, which has its own odd approach to
- * signal handling. For signals with handlers, we block all signals for the
- * duration of signal handler execution. We also do not set the SA_RESTART
- * flag; this should be safe given the tiny range of code in which the
- * postmaster ever unblocks signals.
- *
- * pqinitmask() must have been invoked previously.
- */
-pqsigfunc
-pqsignal_pm(int signo, pqsigfunc func)
-{
- struct sigaction act,
- oact;
-
- act.sa_handler = func;
- if (func == SIG_IGN || func == SIG_DFL)
- {
- /* in these cases, act the same as pqsignal() */
- sigemptyset(&act.sa_mask);
- act.sa_flags = SA_RESTART;
- }
- else
- {
- act.sa_mask = BlockSig;
- act.sa_flags = 0;
- }
-#ifdef SA_NOCLDSTOP
- if (signo == SIGCHLD)
- act.sa_flags |= SA_NOCLDSTOP;
-#endif
- if (sigaction(signo, &act, &oact) < 0)
- return SIG_ERR;
- return oact.sa_handler;
-}
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 7fdfe7d4cce..b75bf05c21b 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -173,7 +173,7 @@ parse_analyze_fixedparams(RawStmt *parseTree, const char
*sourceText,
query = transformTopLevelStmt(pstate, parseTree);
if (IsQueryIdEnabled())
- jstate = JumbleQuery(query);
+ jstate = JumbleQuery(query, sourceText);
if (post_parse_analyze_hook)
(*post_parse_analyze_hook) (pstate, query, jstate);
@@ -215,7 +215,7 @@ parse_analyze_varparams(RawStmt *parseTree, const char
*sourceText,
check_variable_parameters(pstate, query);
if (IsQueryIdEnabled())
- jstate = JumbleQuery(query);
+ jstate = JumbleQuery(query, sourceText);
if (post_parse_analyze_hook)
(*post_parse_analyze_hook) (pstate, query, jstate);
@@ -252,7 +252,7 @@ parse_analyze_withcb(RawStmt *parseTree, const char
*sourceText,
query = transformTopLevelStmt(pstate, parseTree);
if (IsQueryIdEnabled())
- jstate = JumbleQuery(query);
+ jstate = JumbleQuery(query, sourceText);
if (post_parse_analyze_hook)
(*post_parse_analyze_hook) (pstate, query, jstate);
@@ -1111,7 +1111,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
* This fixes the github issue:
https://github.com/greenplum-db/gpdb/issues/9444
*/
if (isOnConflictUpdate)
- sanity_check_on_conflict_update(rte->relid,
+
sanity_check_on_conflict_update(pstate->p_target_nsitem->p_rte->relid,
qry->onConflict->onConflictSet,
qry->onConflict->onConflictWhere);
@@ -3914,7 +3914,7 @@ transformLockingClause(ParseState *pstate, Query *qry,
LockingClause *lc,
/*
* A join RTE without an alias is not visible
as a relation
* name and needs to be skipped (otherwise it
might hide a
- /*
+ *
* base relation with the same name), except if
it has a USING
* alias, which *is* visible.
*
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index e2a309b3125..ac439cafe8a 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -4506,7 +4506,6 @@ alter_table_partition_id_spec:
| FOR '(' func_name '(' func_arg_list opt_sort_clause ')' ')'
{
Node *arg;
- Value *val;
Node *fname;
/* allow RANK only */
@@ -4523,8 +4522,7 @@ alter_table_partition_id_spec:
arg = linitial($5);
if (!IsA(arg, A_Const))
parser_yyerror("syntax error");
- val = &((A_Const *) arg)->val;
- if (!IsA(val, Integer) && !IsA(val,
Float))
+ if (!IsA(&((A_Const *) arg)->val,
Integer) && !IsA(&((A_Const *) arg)->val, Float))
parser_yyerror("syntax error");
/* we don't want a sort clause */
@@ -6374,7 +6372,7 @@ OptSecondPartitionSpec:
{
PartitionSpec *n =
makeNode(PartitionSpec);
- n->strategy = $3;
+ n->strategy =
parsePartitionStrategy($3);
n->partParams = $5;
n->gpPartDef = (GpPartitionDefinition
*) $8;
n->subPartSpec = (PartitionSpec *) $7;
@@ -6970,7 +6968,7 @@ TabSubPartitionBy: SUBPARTITION BY
{
PartitionSpec *n =
makeNode(PartitionSpec);
- n->strategy = $3;
+ n->strategy =
parsePartitionStrategy($3);
n->partParams = $5;
n->location = @1;
@@ -19464,7 +19462,7 @@ func_expr_common_subexpr:
n = makeNode(FuncCall);
n->funcname = SystemFuncName("median");
- n->args =
list_make1(makeAConst(makeFloat(pstrdup("0.5")), @1));
+ n->args = list_make1(makeAConst((Node*)
makeFloat(pstrdup("0.5")), @1));
sortby = makeNode(SortBy);
sortby->node = $3;
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index c351536755a..3177b2b032a 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -1245,7 +1245,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
* entries are RTE_JOIN kind.
*/
if (hasJoinRTEs)
- groupClauses = (List *) flatten_join_alias_vars(NULL, qry,
+ groupClauses = (List *) flatten_join_alias_vars(qry,
(Node *) groupClauses);
/*
@@ -1289,7 +1289,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
groupClauses,
hasJoinRTEs,
have_non_var_grouping);
if (hasJoinRTEs)
- clause = flatten_join_alias_vars(NULL, qry, clause);
+ clause = flatten_join_alias_vars(qry, clause);
check_ungrouped_columns(clause, pstate, qry,
groupClauses,
groupClauseCommonVars,
have_non_var_grouping,
@@ -1300,7 +1300,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
groupClauses,
hasJoinRTEs,
have_non_var_grouping);
if (hasJoinRTEs)
- clause = flatten_join_alias_vars(NULL, qry, clause);
+ clause = flatten_join_alias_vars(qry, clause);
check_ungrouped_columns(clause, pstate, qry,
groupClauses,
groupClauseCommonVars,
have_non_var_grouping,
@@ -1639,7 +1639,7 @@ finalize_grouping_exprs_walker(Node *node,
Index ref = 0;
if (context->hasJoinRTEs)
- expr = flatten_join_alias_vars(NULL,
context->qry, expr);
+ expr =
flatten_join_alias_vars(context->qry, expr);
/*
* Each expression must match a grouping entry
at the current
diff --git a/src/backend/parser/parse_clause.c
b/src/backend/parser/parse_clause.c
index b04f8257769..f96caa0dce8 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -663,7 +663,7 @@ transformRangeFunction(ParseState *pstate, RangeFunction *r)
}
/* Build the RTE for the table. */
- qualified_name_list =
stringToQualifiedNameList(strVal(&arg_val->val));
+ qualified_name_list =
stringToQualifiedNameList(strVal(&arg_val->val), NULL);
rel =
makeRangeVarFromNameList(qualified_name_list);
rel->location = arg_val->location;
diff --git a/src/backend/parser/parse_cte.c b/src/backend/parser/parse_cte.c
index e3ea88a273b..8559088df23 100644
--- a/src/backend/parser/parse_cte.c
+++ b/src/backend/parser/parse_cte.c
@@ -281,7 +281,7 @@ analyzeCTE(ParseState *pstate, CommonTableExpr *cte)
/* Analysis not done already */
Assert(!IsA(cte->ctequery, Query));
-、 query = parse_sub_analyze(cte->ctequery, pstate, cte, NULL, true);
+ query = parse_sub_analyze(cte->ctequery, pstate, cte, NULL, true);
cte->ctequery = (Node *) query;
/*
diff --git a/src/backend/parser/parse_partition_gp.c
b/src/backend/parser/parse_partition_gp.c
index 747f1940eac..a57eb10679f 100644
--- a/src/backend/parser/parse_partition_gp.c
+++ b/src/backend/parser/parse_partition_gp.c
@@ -34,6 +34,7 @@
#include "utils/builtins.h"
#include "utils/date.h"
#include "utils/datum.h"
+#include "utils/guc.h"
#include "utils/lsyscache.h"
#include "utils/partcache.h"
#include "utils/rel.h"
diff --git a/src/backend/parser/parse_relation.c
b/src/backend/parser/parse_relation.c
index 950ebe5ae7e..32f920872d6 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -1957,7 +1957,6 @@ addRangeTableEntryForFunction(ParseState *pstate,
{
FuncExpr *func = (FuncExpr *) funcexpr;
Datum d;
- int i;
Assert(TypeSupportsDescribe(funcrettype));
diff --git a/src/backend/parser/parse_utilcmd.c
b/src/backend/parser/parse_utilcmd.c
index a9088ce68b5..06b15189948 100644
--- a/src/backend/parser/parse_utilcmd.c
+++ b/src/backend/parser/parse_utilcmd.c
@@ -1346,9 +1346,19 @@ transformTableLikeClause(CreateStmtContext *cxt,
TableLikeClause *table_like_cla
{
List *parent_extstats;
ListCell *l;
+ AttrMap *attmap;
parent_extstats = RelationGetStatExtList(relation);
+ /*
+ * Construct a map from the LIKE relation's attnos to the child
rel's.
+ * This re-checks type match etc, although it shouldn't be
possible to
+ * have a failure since both tables are locked.
+ */
+ attmap = build_attrmap_by_name(RelationGetDescr(relation),
+
tupleDesc,
+
false);
+
foreach(l, parent_extstats)
{
Oid parent_stat_oid = lfirst_oid(l);
@@ -1356,7 +1366,8 @@ transformTableLikeClause(CreateStmtContext *cxt,
TableLikeClause *table_like_cla
stats_stmt = generateClonedExtStatsStmt(cxt->relation,
RelationGetRelid(relation),
-
parent_stat_oid);
+
parent_stat_oid,
+
attmap);
/* Copy comment on statistics object, if requested */
if (table_like_clause->options &
CREATE_TABLE_LIKE_COMMENTS)
@@ -1369,8 +1380,6 @@ transformTableLikeClause(CreateStmtContext *cxt,
TableLikeClause *table_like_cla
*/
stats_stmt->stxcomment = comment;
}
-
- cxt->extstats = lappend(cxt->extstats, stats_stmt);
}
list_free(parent_extstats);
@@ -2189,7 +2198,6 @@ generateClonedExtStatsStmt(RangeVar *heapRel, Oid
heapRelid,
exprs = (List *) stringToNode(exprsString);
foreach(lc, exprs)
{
- Node *expr = (Node *) lfirst(lc);
StatsElem *selem = makeNode(StatsElem);
selem->name = NULL;
selem->expr = (Node *) lfirst(lc);
@@ -4853,8 +4861,6 @@ transformAlterTableStmt(Oid relid, AlterTableStmt *stmt,
newcmds = lappend(newcmds, newcmd);
}
- /* Append extended statistics objects */
- transformExtendedStatistics(&cxt);
/* Close rel */
relation_close(rel, NoLock);
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 5149e52cf47..21b7da55347 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -408,6 +408,7 @@ typedef enum NodeTag
* TAGS FOR EXTENSIBLE NODES (extensible.h)
*/
T_ExtensibleNode,
+ T_ErrorSaveContext,
/*
* TAGS FOR STATEMENT NODES (mostly in parsenodes.h)
@@ -488,6 +489,7 @@ typedef enum NodeTag
T_AlterTagStmt,
T_DropTagStmt,
T_AlterDatabaseStmt,
+ T_AlterDatabaseRefreshCollStmt,
T_AlterDatabaseSetStmt,
T_AlterRoleSetStmt,
T_CreateConversionStmt,
@@ -515,6 +517,7 @@ typedef enum NodeTag
T_AlterTSDictionaryStmt,
T_AlterTSConfigurationStmt,
T_PublicationTable,
+ T_PublicationObjSpec,
T_CreateFdwStmt,
T_AlterFdwStmt,
T_CreateForeignServerStmt,
diff --git a/src/interfaces/libpq/fe-protocol3.c
b/src/interfaces/libpq/fe-protocol3.c
index 1894d800502..8e8a8e69cae 100644
--- a/src/interfaces/libpq/fe-protocol3.c
+++ b/src/interfaces/libpq/fe-protocol3.c
@@ -3,12 +3,8 @@
* fe-protocol3.c
* functions that are specific to frontend/backend protocol version 3
*
-<<<<<<< HEAD
* Portions Copyright (c) 2012-Present VMware, Inc. or its affiliates.
- * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
-=======
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
->>>>>>> REL_16_9
* Portions Copyright (c) 1994, Regents of the University of California
*
*
@@ -275,7 +271,7 @@ pqParseInput3(PGconn *conn)
else
{
/* Advance the command queue
and set us idle */
- pqCommandQueueAdvance(conn,
true, false);
+ pqCommandQueueAdvance(conn);
conn->asyncStatus =
PGASYNC_IDLE;
}
break;
@@ -1088,7 +1084,6 @@ pqGetErrorNotice3(PGconn *conn, bool isError)
*/
if (isError)
{
-<<<<<<< HEAD
if (res)
res->errMsg = pqResultStrdup(res, workBuf.data);
@@ -1114,9 +1109,6 @@ pqGetErrorNotice3(PGconn *conn, bool isError)
res->cdbstats = prev;
}
-
-=======
->>>>>>> REL_16_9
pqClearAsyncResult(conn); /* redundant, but be safe */
if (res)
{
@@ -1130,12 +1122,7 @@ pqGetErrorNotice3(PGconn *conn, bool isError)
}
if (PQExpBufferDataBroken(workBuf))
-<<<<<<< HEAD
- appendPQExpBufferStr(&conn->errorMessage,
-
libpq_gettext("out of memory\n"));
-=======
libpq_append_conn_error(conn, "out of memory");
->>>>>>> REL_16_9
else
appendPQExpBufferStr(&conn->errorMessage, workBuf.data);
}
diff --git a/src/port/pqsignal.c b/src/port/pqsignal.c
index 6289f966497..33db61f3687 100644
--- a/src/port/pqsignal.c
+++ b/src/port/pqsignal.c
@@ -34,7 +34,6 @@
#ifndef FRONTEND
#include "libpq/pqsignal.h"
-<<<<<<< HEAD
#include "miscadmin.h"
#endif
@@ -90,16 +89,12 @@ wrapper_handler(SIGNAL_ARGS)
(*pqsignal_handlers[postgres_signal_arg]) (postgres_signal_arg);
}
-=======
-#endif
->>>>>>> REL_16_9
/*
* Set up a signal handler, with SA_RESTART, for signal "signo"
*
* Returns the previous handler.
*
-<<<<<<< HEAD
* NB: If called within a signal handler, race conditions may lead to bogus
* return values. You should either avoid calling this within signal handlers
* or ignore the return value.
@@ -109,19 +104,14 @@ wrapper_handler(SIGNAL_ARGS)
* function instead of providing potentially-bogus return values.
* Unfortunately, that requires modifying the pqsignal() in legacy-pqsignal.c,
* which in turn requires an SONAME bump, which is probably not worth it.
-=======
* Note: the actual name of this function is either pqsignal_fe when
* compiled with -DFRONTEND, or pqsignal when compiled without that.
* This is to avoid a name collision with libpq's legacy-pqsignal.c.
->>>>>>> REL_16_9
*/
pqsigfunc
pqsignal(int signo, pqsigfunc func)
{
-<<<<<<< HEAD
pqsigfunc orig_func = pqsignal_handlers[signo]; /* assumed
atomic */
-=======
->>>>>>> REL_16_9
#if !(defined(WIN32) && defined(FRONTEND))
struct sigaction act,
oact;
@@ -147,7 +137,6 @@ pqsignal(int signo, pqsigfunc func)
#endif
if (sigaction(signo, &act, &oact) < 0)
return SIG_ERR;
-<<<<<<< HEAD
else if (oact.sa_handler == wrapper_handler)
return orig_func;
else
@@ -158,11 +147,5 @@ pqsignal(int signo, pqsigfunc func)
return orig_func;
else
return ret;
-=======
- return oact.sa_handler;
-#else
- /* Forward to Windows native signal system. */
- return signal(signo, func);
->>>>>>> REL_16_9
#endif
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]