@@ -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
@@ -2404,6 +2407,99 @@ _copyJsonArgument(const JsonArgument *from)
24042407 return newnode ;
24052408}
24062409
2410+ /*
2411+ * _copyJsonTable
2412+ */
2413+ static JsonTable *
2414+ _copyJsonTable (const JsonTable * from )
2415+ {
2416+ JsonTable * newnode = makeNode (JsonTable );
2417+
2418+ COPY_NODE_FIELD (common );
2419+ COPY_NODE_FIELD (columns );
2420+ COPY_NODE_FIELD (plan );
2421+ COPY_NODE_FIELD (on_error );
2422+ COPY_NODE_FIELD (alias );
2423+ COPY_SCALAR_FIELD (location );
2424+
2425+ return newnode ;
2426+ }
2427+
2428+ /*
2429+ * _copyJsonTableColumn
2430+ */
2431+ static JsonTableColumn *
2432+ _copyJsonTableColumn (const JsonTableColumn * from )
2433+ {
2434+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2435+
2436+ COPY_SCALAR_FIELD (coltype );
2437+ COPY_STRING_FIELD (name );
2438+ COPY_NODE_FIELD (typename );
2439+ COPY_STRING_FIELD (pathspec );
2440+ COPY_STRING_FIELD (pathname );
2441+ COPY_SCALAR_FIELD (format );
2442+ COPY_SCALAR_FIELD (wrapper );
2443+ COPY_SCALAR_FIELD (omit_quotes );
2444+ COPY_NODE_FIELD (columns );
2445+ COPY_NODE_FIELD (on_empty );
2446+ COPY_NODE_FIELD (on_error );
2447+ COPY_SCALAR_FIELD (location );
2448+
2449+ return newnode ;
2450+ }
2451+
2452+ /*
2453+ * _copyJsonTablePlan
2454+ */
2455+ static JsonTablePlan *
2456+ _copyJsonTablePlan (const JsonTablePlan * from )
2457+ {
2458+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2459+
2460+ COPY_SCALAR_FIELD (plan_type );
2461+ COPY_SCALAR_FIELD (join_type );
2462+ COPY_STRING_FIELD (pathname );
2463+ COPY_NODE_FIELD (plan1 );
2464+ COPY_NODE_FIELD (plan2 );
2465+ COPY_SCALAR_FIELD (location );
2466+
2467+ return newnode ;
2468+ }
2469+
2470+ /*
2471+ * _copyJsonTableParentNode
2472+ */
2473+ static JsonTableParentNode *
2474+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2475+ {
2476+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2477+
2478+ COPY_NODE_FIELD (path );
2479+ COPY_STRING_FIELD (name );
2480+ COPY_NODE_FIELD (child );
2481+ COPY_SCALAR_FIELD (outerJoin );
2482+ COPY_SCALAR_FIELD (colMin );
2483+ COPY_SCALAR_FIELD (colMax );
2484+
2485+ return newnode ;
2486+ }
2487+
2488+ /*
2489+ * _copyJsonTableSiblingNode
2490+ */
2491+ static JsonTableSiblingNode *
2492+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2493+ {
2494+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2495+
2496+ COPY_NODE_FIELD (larg );
2497+ COPY_NODE_FIELD (rarg );
2498+ COPY_SCALAR_FIELD (cross );
2499+
2500+ return newnode ;
2501+ }
2502+
24072503/* ****************************************************************
24082504 * relation.h copy functions
24092505 *
@@ -5304,6 +5400,21 @@ copyObjectImpl(const void *from)
53045400 case T_JsonArgument :
53055401 retval = _copyJsonArgument (from );
53065402 break ;
5403+ case T_JsonTable :
5404+ retval = _copyJsonTable (from );
5405+ break ;
5406+ case T_JsonTableColumn :
5407+ retval = _copyJsonTableColumn (from );
5408+ break ;
5409+ case T_JsonTablePlan :
5410+ retval = _copyJsonTablePlan (from );
5411+ break ;
5412+ case T_JsonTableParentNode :
5413+ retval = _copyJsonTableParentNode (from );
5414+ break ;
5415+ case T_JsonTableSiblingNode :
5416+ retval = _copyJsonTableSiblingNode (from );
5417+ break ;
53075418
53085419 /*
53095420 * RELATION NODES
0 commit comments