@@ -1349,6 +1349,7 @@ _copyTableFunc(const TableFunc *from)
1349
1349
{
1350
1350
TableFunc * newnode = makeNode (TableFunc );
1351
1351
1352
+ COPY_SCALAR_FIELD (functype );
1352
1353
COPY_NODE_FIELD (ns_uris );
1353
1354
COPY_NODE_FIELD (ns_names );
1354
1355
COPY_NODE_FIELD (docexpr );
@@ -1359,7 +1360,9 @@ _copyTableFunc(const TableFunc *from)
1359
1360
COPY_NODE_FIELD (colcollations );
1360
1361
COPY_NODE_FIELD (colexprs );
1361
1362
COPY_NODE_FIELD (coldefexprs );
1363
+ COPY_NODE_FIELD (colvalexprs );
1362
1364
COPY_BITMAPSET_FIELD (notnulls );
1365
+ COPY_NODE_FIELD (plan );
1363
1366
COPY_SCALAR_FIELD (ordinalitycol );
1364
1367
COPY_LOCATION_FIELD (location );
1365
1368
@@ -2615,6 +2618,76 @@ _copyJsonArgument(const JsonArgument *from)
2615
2618
return newnode ;
2616
2619
}
2617
2620
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
+
2618
2691
/* ****************************************************************
2619
2692
* pathnodes.h copy functions
2620
2693
*
@@ -5578,6 +5651,18 @@ copyObjectImpl(const void *from)
5578
5651
case T_JsonItemCoercions :
5579
5652
retval = _copyJsonItemCoercions (from );
5580
5653
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 ;
5581
5666
5582
5667
/*
5583
5668
* RELATION NODES
0 commit comments