@@ -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
@@ -2364,6 +2367,99 @@ _copyJsonArgument(const JsonArgument *from)
23642367 return newnode ;
23652368}
23662369
2370+ /*
2371+ * _copyJsonTable
2372+ */
2373+ static JsonTable *
2374+ _copyJsonTable (const JsonTable * from )
2375+ {
2376+ JsonTable * newnode = makeNode (JsonTable );
2377+
2378+ COPY_NODE_FIELD (common );
2379+ COPY_NODE_FIELD (columns );
2380+ COPY_NODE_FIELD (plan );
2381+ COPY_NODE_FIELD (on_error );
2382+ COPY_NODE_FIELD (alias );
2383+ COPY_SCALAR_FIELD (location );
2384+
2385+ return newnode ;
2386+ }
2387+
2388+ /*
2389+ * _copyJsonTableColumn
2390+ */
2391+ static JsonTableColumn *
2392+ _copyJsonTableColumn (const JsonTableColumn * from )
2393+ {
2394+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2395+
2396+ COPY_SCALAR_FIELD (coltype );
2397+ COPY_STRING_FIELD (name );
2398+ COPY_NODE_FIELD (typename );
2399+ COPY_STRING_FIELD (pathspec );
2400+ COPY_STRING_FIELD (pathname );
2401+ COPY_SCALAR_FIELD (format );
2402+ COPY_SCALAR_FIELD (wrapper );
2403+ COPY_SCALAR_FIELD (omit_quotes );
2404+ COPY_NODE_FIELD (columns );
2405+ COPY_NODE_FIELD (on_empty );
2406+ COPY_NODE_FIELD (on_error );
2407+ COPY_SCALAR_FIELD (location );
2408+
2409+ return newnode ;
2410+ }
2411+
2412+ /*
2413+ * _copyJsonTablePlan
2414+ */
2415+ static JsonTablePlan *
2416+ _copyJsonTablePlan (const JsonTablePlan * from )
2417+ {
2418+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2419+
2420+ COPY_SCALAR_FIELD (plan_type );
2421+ COPY_SCALAR_FIELD (join_type );
2422+ COPY_STRING_FIELD (pathname );
2423+ COPY_NODE_FIELD (plan1 );
2424+ COPY_NODE_FIELD (plan2 );
2425+ COPY_SCALAR_FIELD (location );
2426+
2427+ return newnode ;
2428+ }
2429+
2430+ /*
2431+ * _copyJsonTableParentNode
2432+ */
2433+ static JsonTableParentNode *
2434+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2435+ {
2436+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2437+
2438+ COPY_NODE_FIELD (path );
2439+ COPY_STRING_FIELD (name );
2440+ COPY_NODE_FIELD (child );
2441+ COPY_SCALAR_FIELD (outerJoin );
2442+ COPY_SCALAR_FIELD (colMin );
2443+ COPY_SCALAR_FIELD (colMax );
2444+
2445+ return newnode ;
2446+ }
2447+
2448+ /*
2449+ * _copyJsonTableSiblingNode
2450+ */
2451+ static JsonTableSiblingNode *
2452+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2453+ {
2454+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2455+
2456+ COPY_NODE_FIELD (larg );
2457+ COPY_NODE_FIELD (rarg );
2458+ COPY_SCALAR_FIELD (cross );
2459+
2460+ return newnode ;
2461+ }
2462+
23672463/* ****************************************************************
23682464 * relation.h copy functions
23692465 *
@@ -5273,6 +5369,21 @@ copyObjectImpl(const void *from)
52735369 case T_JsonArgument :
52745370 retval = _copyJsonArgument (from );
52755371 break ;
5372+ case T_JsonTable :
5373+ retval = _copyJsonTable (from );
5374+ break ;
5375+ case T_JsonTableColumn :
5376+ retval = _copyJsonTableColumn (from );
5377+ break ;
5378+ case T_JsonTablePlan :
5379+ retval = _copyJsonTablePlan (from );
5380+ break ;
5381+ case T_JsonTableParentNode :
5382+ retval = _copyJsonTableParentNode (from );
5383+ break ;
5384+ case T_JsonTableSiblingNode :
5385+ retval = _copyJsonTableSiblingNode (from );
5386+ break ;
52765387
52775388 /*
52785389 * RELATION NODES
0 commit comments