@@ -1222,6 +1222,7 @@ _copyTableFunc(const TableFunc *from)
12221222{
12231223 TableFunc * newnode = makeNode (TableFunc );
12241224
1225+ COPY_SCALAR_FIELD (functype );
12251226 COPY_NODE_FIELD (ns_uris );
12261227 COPY_NODE_FIELD (ns_names );
12271228 COPY_NODE_FIELD (docexpr );
@@ -1232,7 +1233,9 @@ _copyTableFunc(const TableFunc *from)
12321233 COPY_NODE_FIELD (colcollations );
12331234 COPY_NODE_FIELD (colexprs );
12341235 COPY_NODE_FIELD (coldefexprs );
1236+ COPY_NODE_FIELD (colvalexprs );
12351237 COPY_BITMAPSET_FIELD (notnulls );
1238+ COPY_NODE_FIELD (plan );
12361239 COPY_SCALAR_FIELD (ordinalitycol );
12371240 COPY_LOCATION_FIELD (location );
12381241
@@ -2363,6 +2366,99 @@ _copyJsonArgument(const JsonArgument *from)
23632366 return newnode ;
23642367}
23652368
2369+ /*
2370+ * _copyJsonTable
2371+ */
2372+ static JsonTable *
2373+ _copyJsonTable (const JsonTable * from )
2374+ {
2375+ JsonTable * newnode = makeNode (JsonTable );
2376+
2377+ COPY_NODE_FIELD (common );
2378+ COPY_NODE_FIELD (columns );
2379+ COPY_NODE_FIELD (plan );
2380+ COPY_NODE_FIELD (on_error );
2381+ COPY_NODE_FIELD (alias );
2382+ COPY_SCALAR_FIELD (location );
2383+
2384+ return newnode ;
2385+ }
2386+
2387+ /*
2388+ * _copyJsonTableColumn
2389+ */
2390+ static JsonTableColumn *
2391+ _copyJsonTableColumn (const JsonTableColumn * from )
2392+ {
2393+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2394+
2395+ COPY_SCALAR_FIELD (coltype );
2396+ COPY_STRING_FIELD (name );
2397+ COPY_NODE_FIELD (typename );
2398+ COPY_STRING_FIELD (pathspec );
2399+ COPY_STRING_FIELD (pathname );
2400+ COPY_SCALAR_FIELD (format );
2401+ COPY_SCALAR_FIELD (wrapper );
2402+ COPY_SCALAR_FIELD (omit_quotes );
2403+ COPY_NODE_FIELD (columns );
2404+ COPY_NODE_FIELD (on_empty );
2405+ COPY_NODE_FIELD (on_error );
2406+ COPY_SCALAR_FIELD (location );
2407+
2408+ return newnode ;
2409+ }
2410+
2411+ /*
2412+ * _copyJsonTablePlan
2413+ */
2414+ static JsonTablePlan *
2415+ _copyJsonTablePlan (const JsonTablePlan * from )
2416+ {
2417+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2418+
2419+ COPY_SCALAR_FIELD (plan_type );
2420+ COPY_SCALAR_FIELD (join_type );
2421+ COPY_STRING_FIELD (pathname );
2422+ COPY_NODE_FIELD (plan1 );
2423+ COPY_NODE_FIELD (plan2 );
2424+ COPY_SCALAR_FIELD (location );
2425+
2426+ return newnode ;
2427+ }
2428+
2429+ /*
2430+ * _copyJsonTableParentNode
2431+ */
2432+ static JsonTableParentNode *
2433+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2434+ {
2435+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2436+
2437+ COPY_NODE_FIELD (path );
2438+ COPY_STRING_FIELD (name );
2439+ COPY_NODE_FIELD (child );
2440+ COPY_SCALAR_FIELD (outerJoin );
2441+ COPY_SCALAR_FIELD (colMin );
2442+ COPY_SCALAR_FIELD (colMax );
2443+
2444+ return newnode ;
2445+ }
2446+
2447+ /*
2448+ * _copyJsonTableSiblingNode
2449+ */
2450+ static JsonTableSiblingNode *
2451+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2452+ {
2453+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2454+
2455+ COPY_NODE_FIELD (larg );
2456+ COPY_NODE_FIELD (rarg );
2457+ COPY_SCALAR_FIELD (cross );
2458+
2459+ return newnode ;
2460+ }
2461+
23662462/* ****************************************************************
23672463 * relation.h copy functions
23682464 *
@@ -5257,6 +5353,21 @@ copyObjectImpl(const void *from)
52575353 case T_JsonArgument :
52585354 retval = _copyJsonArgument (from );
52595355 break ;
5356+ case T_JsonTable :
5357+ retval = _copyJsonTable (from );
5358+ break ;
5359+ case T_JsonTableColumn :
5360+ retval = _copyJsonTableColumn (from );
5361+ break ;
5362+ case T_JsonTablePlan :
5363+ retval = _copyJsonTablePlan (from );
5364+ break ;
5365+ case T_JsonTableParentNode :
5366+ retval = _copyJsonTableParentNode (from );
5367+ break ;
5368+ case T_JsonTableSiblingNode :
5369+ retval = _copyJsonTableSiblingNode (from );
5370+ break ;
52605371
52615372 /*
52625373 * RELATION NODES
0 commit comments