@@ -1224,6 +1224,7 @@ _copyTableFunc(const TableFunc *from)
12241224{
12251225 TableFunc * newnode = makeNode (TableFunc );
12261226
1227+ COPY_SCALAR_FIELD (functype );
12271228 COPY_NODE_FIELD (ns_uris );
12281229 COPY_NODE_FIELD (ns_names );
12291230 COPY_NODE_FIELD (docexpr );
@@ -1234,7 +1235,9 @@ _copyTableFunc(const TableFunc *from)
12341235 COPY_NODE_FIELD (colcollations );
12351236 COPY_NODE_FIELD (colexprs );
12361237 COPY_NODE_FIELD (coldefexprs );
1238+ COPY_NODE_FIELD (colvalexprs );
12371239 COPY_BITMAPSET_FIELD (notnulls );
1240+ COPY_NODE_FIELD (plan );
12381241 COPY_SCALAR_FIELD (ordinalitycol );
12391242 COPY_LOCATION_FIELD (location );
12401243
@@ -2442,6 +2445,99 @@ _copyJsonArgument(const JsonArgument *from)
24422445 return newnode ;
24432446}
24442447
2448+ /*
2449+ * _copyJsonTable
2450+ */
2451+ static JsonTable *
2452+ _copyJsonTable (const JsonTable * from )
2453+ {
2454+ JsonTable * newnode = makeNode (JsonTable );
2455+
2456+ COPY_NODE_FIELD (common );
2457+ COPY_NODE_FIELD (columns );
2458+ COPY_NODE_FIELD (plan );
2459+ COPY_NODE_FIELD (on_error );
2460+ COPY_NODE_FIELD (alias );
2461+ COPY_SCALAR_FIELD (location );
2462+
2463+ return newnode ;
2464+ }
2465+
2466+ /*
2467+ * _copyJsonTableColumn
2468+ */
2469+ static JsonTableColumn *
2470+ _copyJsonTableColumn (const JsonTableColumn * from )
2471+ {
2472+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2473+
2474+ COPY_SCALAR_FIELD (coltype );
2475+ COPY_STRING_FIELD (name );
2476+ COPY_NODE_FIELD (typename );
2477+ COPY_STRING_FIELD (pathspec );
2478+ COPY_STRING_FIELD (pathname );
2479+ COPY_SCALAR_FIELD (format );
2480+ COPY_SCALAR_FIELD (wrapper );
2481+ COPY_SCALAR_FIELD (omit_quotes );
2482+ COPY_NODE_FIELD (columns );
2483+ COPY_NODE_FIELD (on_empty );
2484+ COPY_NODE_FIELD (on_error );
2485+ COPY_SCALAR_FIELD (location );
2486+
2487+ return newnode ;
2488+ }
2489+
2490+ /*
2491+ * _copyJsonTablePlan
2492+ */
2493+ static JsonTablePlan *
2494+ _copyJsonTablePlan (const JsonTablePlan * from )
2495+ {
2496+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2497+
2498+ COPY_SCALAR_FIELD (plan_type );
2499+ COPY_SCALAR_FIELD (join_type );
2500+ COPY_STRING_FIELD (pathname );
2501+ COPY_NODE_FIELD (plan1 );
2502+ COPY_NODE_FIELD (plan2 );
2503+ COPY_SCALAR_FIELD (location );
2504+
2505+ return newnode ;
2506+ }
2507+
2508+ /*
2509+ * _copyJsonTableParentNode
2510+ */
2511+ static JsonTableParentNode *
2512+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2513+ {
2514+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2515+
2516+ COPY_NODE_FIELD (path );
2517+ COPY_STRING_FIELD (name );
2518+ COPY_NODE_FIELD (child );
2519+ COPY_SCALAR_FIELD (outerJoin );
2520+ COPY_SCALAR_FIELD (colMin );
2521+ COPY_SCALAR_FIELD (colMax );
2522+
2523+ return newnode ;
2524+ }
2525+
2526+ /*
2527+ * _copyJsonTableSiblingNode
2528+ */
2529+ static JsonTableSiblingNode *
2530+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2531+ {
2532+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2533+
2534+ COPY_NODE_FIELD (larg );
2535+ COPY_NODE_FIELD (rarg );
2536+ COPY_SCALAR_FIELD (cross );
2537+
2538+ return newnode ;
2539+ }
2540+
24452541/* ****************************************************************
24462542 * relation.h copy functions
24472543 *
@@ -5348,6 +5444,21 @@ copyObjectImpl(const void *from)
53485444 case T_JsonItemCoercions :
53495445 retval = _copyJsonItemCoercions (from );
53505446 break ;
5447+ case T_JsonTable :
5448+ retval = _copyJsonTable (from );
5449+ break ;
5450+ case T_JsonTableColumn :
5451+ retval = _copyJsonTableColumn (from );
5452+ break ;
5453+ case T_JsonTablePlan :
5454+ retval = _copyJsonTablePlan (from );
5455+ break ;
5456+ case T_JsonTableParentNode :
5457+ retval = _copyJsonTableParentNode (from );
5458+ break ;
5459+ case T_JsonTableSiblingNode :
5460+ retval = _copyJsonTableSiblingNode (from );
5461+ break ;
53515462
53525463 /*
53535464 * RELATION NODES
0 commit comments