On 2025-Dec-17, jian he wrote:

> diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
> index bc7adba4a0f..326d30cfb2f 100644
> --- a/src/include/nodes/parsenodes.h
> +++ b/src/include/nodes/parsenodes.h
> @@ -3551,6 +3551,10 @@ typedef struct CreateStatsStmt
>       List       *stat_types;         /* stat types (list of String) */
>       List       *exprs;                      /* expressions to build 
> statistics on */
>       List       *relations;          /* rels to build stats on (list of 
> RangeVar) */
> +     List       *from_clause;        /* FROM clause ((list of RangeVar)) */
> +     List       *rtable;                     /* It’s not derived directly 
> from the
> +                                                              * parser, 
> instead it comes from parse
> +                                                              * analysis. 
> (list of RangeTblEntry) */
>       char       *stxcomment;         /* comment to apply to stats, or NULL */
>       bool            transformed;    /* true when transformStatsStmt is 
> finished */
>       bool            if_not_exists;  /* do nothing if stats name already 
> exists */

I'm unconvinced about this, and I wonder if it would make sense to have
two separate nodes, one which is pre-transform (direct out of parser)
and another which is post-transform.  Would that things a bit simpler?

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"We have labored long to build a heaven, only            (Prof. Milton Glass)
 to find it populated with horrors"                    (Watchmen, Alan Moore)


Reply via email to