@@ -1349,6 +1349,7 @@ _copyTableFunc(const TableFunc *from)
13491349{
13501350 TableFunc * newnode = makeNode (TableFunc );
13511351
1352+ COPY_SCALAR_FIELD (functype );
13521353 COPY_NODE_FIELD (ns_uris );
13531354 COPY_NODE_FIELD (ns_names );
13541355 COPY_NODE_FIELD (docexpr );
@@ -1359,7 +1360,9 @@ _copyTableFunc(const TableFunc *from)
13591360 COPY_NODE_FIELD (colcollations );
13601361 COPY_NODE_FIELD (colexprs );
13611362 COPY_NODE_FIELD (coldefexprs );
1363+ COPY_NODE_FIELD (colvalexprs );
13621364 COPY_BITMAPSET_FIELD (notnulls );
1365+ COPY_NODE_FIELD (plan );
13631366 COPY_SCALAR_FIELD (ordinalitycol );
13641367 COPY_LOCATION_FIELD (location );
13651368
@@ -2615,6 +2618,76 @@ _copyJsonArgument(const JsonArgument *from)
26152618 return newnode ;
26162619}
26172620
2621+ /*
2622+ * _copyJsonTable
2623+ */
2624+ static JsonTable *
2625+ _copyJsonTable (const JsonTable * from )
2626+ {
2627+ JsonTable * newnode = makeNode (JsonTable );
2628+
2629+ COPY_NODE_FIELD (common );
2630+ COPY_NODE_FIELD (columns );
2631+ COPY_NODE_FIELD (on_error );
2632+ COPY_NODE_FIELD (alias );
2633+ COPY_SCALAR_FIELD (location );
2634+
2635+ return newnode ;
2636+ }
2637+
2638+ /*
2639+ * _copyJsonTableColumn
2640+ */
2641+ static JsonTableColumn *
2642+ _copyJsonTableColumn (const JsonTableColumn * from )
2643+ {
2644+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2645+
2646+ COPY_SCALAR_FIELD (coltype );
2647+ COPY_STRING_FIELD (name );
2648+ COPY_NODE_FIELD (typeName );
2649+ COPY_STRING_FIELD (pathspec );
2650+ COPY_SCALAR_FIELD (format );
2651+ COPY_SCALAR_FIELD (wrapper );
2652+ COPY_SCALAR_FIELD (omit_quotes );
2653+ COPY_NODE_FIELD (columns );
2654+ COPY_NODE_FIELD (on_empty );
2655+ COPY_NODE_FIELD (on_error );
2656+ COPY_SCALAR_FIELD (location );
2657+
2658+ return newnode ;
2659+ }
2660+
2661+ /*
2662+ * _copyJsonTableParentNode
2663+ */
2664+ static JsonTableParentNode *
2665+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2666+ {
2667+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2668+
2669+ COPY_NODE_FIELD (path );
2670+ COPY_NODE_FIELD (child );
2671+ COPY_SCALAR_FIELD (colMin );
2672+ COPY_SCALAR_FIELD (colMax );
2673+
2674+ return newnode ;
2675+ }
2676+
2677+ /*
2678+ * _copyJsonTableSiblingNode
2679+ */
2680+ static JsonTableSiblingNode *
2681+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2682+ {
2683+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2684+
2685+ COPY_NODE_FIELD (larg );
2686+ COPY_NODE_FIELD (rarg );
2687+
2688+ return newnode ;
2689+ }
2690+
26182691/* ****************************************************************
26192692 * pathnodes.h copy functions
26202693 *
@@ -5578,6 +5651,18 @@ copyObjectImpl(const void *from)
55785651 case T_JsonItemCoercions :
55795652 retval = _copyJsonItemCoercions (from );
55805653 break ;
5654+ case T_JsonTable :
5655+ retval = _copyJsonTable (from );
5656+ break ;
5657+ case T_JsonTableColumn :
5658+ retval = _copyJsonTableColumn (from );
5659+ break ;
5660+ case T_JsonTableParentNode :
5661+ retval = _copyJsonTableParentNode (from );
5662+ break ;
5663+ case T_JsonTableSiblingNode :
5664+ retval = _copyJsonTableSiblingNode (from );
5665+ break ;
55815666
55825667 /*
55835668 * RELATION NODES
0 commit comments