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 5ae354540cc Fix some compile error for optimizer path
5ae354540cc is described below

commit 5ae354540cc67cd7afa5c1f7bef9f73c8e263077
Author: Jinbao Chen <chenjinbao1...@gmail.com>
AuthorDate: Thu Sep 25 10:57:36 2025 +0800

    Fix some compile error for optimizer path
---
 src/backend/optimizer/path/allpaths.c | 12 ++++++------
 src/backend/optimizer/path/costsize.c |  7 ++++---
 src/include/access/appendonlytid.h    |  1 +
 src/include/commands/vacuum.h         |  2 +-
 src/include/nodes/nodes.h             |  7 ++++---
 5 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/backend/optimizer/path/allpaths.c 
b/src/backend/optimizer/path/allpaths.c
index 3efb15af077..33d6aa26876 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -3083,7 +3083,7 @@ set_subquery_pathlist(PlannerInfo *root, RelOptInfo *rel,
                                                                                
         subpath->pathkeys,
                                                                                
         make_tlist_from_pathtarget(subpath->pathtarget));
 
-               path = (Path *) create_subqueryscan_path(root, rel, subpath,
+               path = (Path *) create_subqueryscan_path(root, rel, subpath, 
trivial_pathtarget,
                                                                                
                 pathkeys, locus, required_outer);
 
                /*
@@ -3598,7 +3598,6 @@ set_cte_pathlist(PlannerInfo *root, RelOptInfo *rel, 
RangeTblEntry *rte)
        foreach(lc, sub_final_rel->pathlist)
        {
                Path       *subpath = (Path *) lfirst(lc);
-               List       *pathkeys;
                CdbPathLocus locus;
 
                locus = cdbpathlocus_from_subquery(root, rel, subpath);
@@ -4383,8 +4382,8 @@ push_down_restrict(PlannerInfo *root, RelOptInfo *rel,
         * unsafe to use in a pushed-down qual.
         */
        memset(&safetyInfo, 0, sizeof(safetyInfo));
-       safetyInfo.unsafeColumns = (bool *)
-               palloc0((list_length(subquery->targetList) + 1) * sizeof(bool));
+       safetyInfo.unsafeFlags = (unsigned char *)
+               palloc0((list_length(subquery->targetList) + 1) * 
sizeof(unsigned char));
 
        /*
         * If the subquery has the "security_barrier" flag, it means the 
subquery
@@ -4422,7 +4421,7 @@ push_down_restrict(PlannerInfo *root, RelOptInfo *rel,
                /* We don't bother recomputing baserestrict_min_security */
        }
 
-       pfree(safetyInfo.unsafeColumns);
+       pfree(safetyInfo.unsafeFlags);
 
        return subquery;
 }
@@ -4688,7 +4687,8 @@ check_output_expressions(Query *subquery, 
pushdown_safety_info *safetyInfo)
                /* Refuse subplans */
                if (contain_subplans((Node *) tle->expr))
                {
-                       safetyInfo->unsafeColumns[tle->resno] = true;
+                       /*.MERGE16_FIXME: should we add a new unsafe type? */
+                       safetyInfo->unsafeFlags[tle->resno] |= 
UNSAFE_NOTIN_PARTITIONBY_CLAUSE;
                        continue;
                }
        }
diff --git a/src/backend/optimizer/path/costsize.c 
b/src/backend/optimizer/path/costsize.c
index 72abd7280bb..2d54c863eac 100644
--- a/src/backend/optimizer/path/costsize.c
+++ b/src/backend/optimizer/path/costsize.c
@@ -1598,7 +1598,8 @@ cost_subqueryscan(SubqueryScanPath *path, PlannerInfo 
*root,
                                                                                
                                   qpquals,
                                                                                
                                   0,
                                                                                
                                   JOIN_INNER,
-                                                                               
                                   NULL));
+                                                                               
                                   NULL,
+                                                                               
                                   false));
 
        /*
         * Cost of path is cost of evaluating the subplan, plus cost of 
evaluating
@@ -3328,8 +3329,8 @@ final_cost_nestloop(PlannerInfo *root, NestPath *path,
        if (inner_path_rows <= 0)
                inner_path_rows = 1;
 
-       if (CdbPathLocus_IsPartitioned(path->path.locus))
-               numsegments = CdbPathLocus_NumSegments(path->path.locus);
+       if (CdbPathLocus_IsPartitioned(path->jpath.path.locus))
+               numsegments = CdbPathLocus_NumSegments(path->jpath.path.locus);
        else
                numsegments = 1;
 
diff --git a/src/include/access/appendonlytid.h 
b/src/include/access/appendonlytid.h
index 8ad70b6ec95..224552183ac 100755
--- a/src/include/access/appendonlytid.h
+++ b/src/include/access/appendonlytid.h
@@ -15,6 +15,7 @@
 #define APPENDONLYTID_H
 
 #include "c.h"
+#include "storage/itemptr.h"
 
 /*
  * AOTupleId is a unique tuple id, specific to AO relation tuples, of the
diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
index aeb5f1ef533..38bf39ba069 100644
--- a/src/include/commands/vacuum.h
+++ b/src/include/commands/vacuum.h
@@ -209,7 +209,7 @@ typedef enum VacuumOption
        VACOPT_ROOTONLY = 1 << 10,
        VACOPT_FULLSCAN = 1 << 11,
        VACOPT_SKIP_DATABASE_STATS = 1 << 12,
-       VACOPT_ONLY_DATABASE_STATS = 1 << 13
+       VACOPT_ONLY_DATABASE_STATS = 1 << 13,
 
        /* AO vacuum phases. Mutually exclusive */
        VACOPT_AO_PRE_CLEANUP_PHASE = 1 << 14,
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 17288f7a3dd..00ba1ce18dc 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -690,9 +690,10 @@ typedef enum NodeTag
        T_SupportRequestSelectivity,    /* in nodes/supportnodes.h */
        T_SupportRequestCost,           /* in nodes/supportnodes.h */
        T_SupportRequestRows,           /* in nodes/supportnodes.h */
-       T_SupportRequestIndexCondition  /* in nodes/supportnodes.h */
+       T_SupportRequestIndexCondition, /* in nodes/supportnodes.h */
+       T_SupportRequestWFuncMonotonic,
+       T_SupportRequestOptimizeWindowClause,
 
-       ,
     T_StreamBitmap,             /* in nodes/tidbitmap.h */
        T_FormatterData,            /* in access/formatter.h */
        T_ExtProtocolData,          /* in access/extprotocol.h */
@@ -1055,7 +1056,7 @@ typedef enum JoinType
           (1 << JOIN_FULL) | \
           (1 << JOIN_RIGHT) | \
           (1 << JOIN_ANTI) | \
-          (1 << JOIN_LASJ_NOTIN))) != 0) | \
+          (1 << JOIN_LASJ_NOTIN) | \
           (1 << JOIN_RIGHT_ANTI))) != 0)
 
 /*


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cloudberry.apache.org
For additional commands, e-mail: commits-h...@cloudberry.apache.org

Reply via email to