@@ -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
@@ -2403,6 +2406,99 @@ _copyJsonArgument(const JsonArgument *from)
24032406 return newnode ;
24042407}
24052408
2409+ /*
2410+ * _copyJsonTable
2411+ */
2412+ static JsonTable *
2413+ _copyJsonTable (const JsonTable * from )
2414+ {
2415+ JsonTable * newnode = makeNode (JsonTable );
2416+
2417+ COPY_NODE_FIELD (common );
2418+ COPY_NODE_FIELD (columns );
2419+ COPY_NODE_FIELD (plan );
2420+ COPY_NODE_FIELD (on_error );
2421+ COPY_NODE_FIELD (alias );
2422+ COPY_SCALAR_FIELD (location );
2423+
2424+ return newnode ;
2425+ }
2426+
2427+ /*
2428+ * _copyJsonTableColumn
2429+ */
2430+ static JsonTableColumn *
2431+ _copyJsonTableColumn (const JsonTableColumn * from )
2432+ {
2433+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2434+
2435+ COPY_SCALAR_FIELD (coltype );
2436+ COPY_STRING_FIELD (name );
2437+ COPY_NODE_FIELD (typename );
2438+ COPY_STRING_FIELD (pathspec );
2439+ COPY_STRING_FIELD (pathname );
2440+ COPY_SCALAR_FIELD (format );
2441+ COPY_SCALAR_FIELD (wrapper );
2442+ COPY_SCALAR_FIELD (omit_quotes );
2443+ COPY_NODE_FIELD (columns );
2444+ COPY_NODE_FIELD (on_empty );
2445+ COPY_NODE_FIELD (on_error );
2446+ COPY_SCALAR_FIELD (location );
2447+
2448+ return newnode ;
2449+ }
2450+
2451+ /*
2452+ * _copyJsonTablePlan
2453+ */
2454+ static JsonTablePlan *
2455+ _copyJsonTablePlan (const JsonTablePlan * from )
2456+ {
2457+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2458+
2459+ COPY_SCALAR_FIELD (plan_type );
2460+ COPY_SCALAR_FIELD (join_type );
2461+ COPY_STRING_FIELD (pathname );
2462+ COPY_NODE_FIELD (plan1 );
2463+ COPY_NODE_FIELD (plan2 );
2464+ COPY_SCALAR_FIELD (location );
2465+
2466+ return newnode ;
2467+ }
2468+
2469+ /*
2470+ * _copyJsonTableParentNode
2471+ */
2472+ static JsonTableParentNode *
2473+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2474+ {
2475+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2476+
2477+ COPY_NODE_FIELD (path );
2478+ COPY_STRING_FIELD (name );
2479+ COPY_NODE_FIELD (child );
2480+ COPY_SCALAR_FIELD (outerJoin );
2481+ COPY_SCALAR_FIELD (colMin );
2482+ COPY_SCALAR_FIELD (colMax );
2483+
2484+ return newnode ;
2485+ }
2486+
2487+ /*
2488+ * _copyJsonTableSiblingNode
2489+ */
2490+ static JsonTableSiblingNode *
2491+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2492+ {
2493+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2494+
2495+ COPY_NODE_FIELD (larg );
2496+ COPY_NODE_FIELD (rarg );
2497+ COPY_SCALAR_FIELD (cross );
2498+
2499+ return newnode ;
2500+ }
2501+
24062502/* ****************************************************************
24072503 * relation.h copy functions
24082504 *
@@ -5320,6 +5416,21 @@ copyObjectImpl(const void *from)
53205416 case T_JsonArgument :
53215417 retval = _copyJsonArgument (from );
53225418 break ;
5419+ case T_JsonTable :
5420+ retval = _copyJsonTable (from );
5421+ break ;
5422+ case T_JsonTableColumn :
5423+ retval = _copyJsonTableColumn (from );
5424+ break ;
5425+ case T_JsonTablePlan :
5426+ retval = _copyJsonTablePlan (from );
5427+ break ;
5428+ case T_JsonTableParentNode :
5429+ retval = _copyJsonTableParentNode (from );
5430+ break ;
5431+ case T_JsonTableSiblingNode :
5432+ retval = _copyJsonTableSiblingNode (from );
5433+ break ;
53235434
53245435 /*
53255436 * RELATION NODES
0 commit comments