@@ -1288,6 +1288,7 @@ _copyTableFunc(const TableFunc *from)
12881288{
12891289 TableFunc * newnode = makeNode (TableFunc );
12901290
1291+ COPY_SCALAR_FIELD (functype );
12911292 COPY_NODE_FIELD (ns_uris );
12921293 COPY_NODE_FIELD (ns_names );
12931294 COPY_NODE_FIELD (docexpr );
@@ -1298,7 +1299,9 @@ _copyTableFunc(const TableFunc *from)
12981299 COPY_NODE_FIELD (colcollations );
12991300 COPY_NODE_FIELD (colexprs );
13001301 COPY_NODE_FIELD (coldefexprs );
1302+ COPY_NODE_FIELD (colvalexprs );
13011303 COPY_BITMAPSET_FIELD (notnulls );
1304+ COPY_NODE_FIELD (plan );
13021305 COPY_SCALAR_FIELD (ordinalitycol );
13031306 COPY_LOCATION_FIELD (location );
13041307
@@ -2505,6 +2508,99 @@ _copyJsonArgument(const JsonArgument *from)
25052508 return newnode ;
25062509}
25072510
2511+ /*
2512+ * _copyJsonTable
2513+ */
2514+ static JsonTable *
2515+ _copyJsonTable (const JsonTable * from )
2516+ {
2517+ JsonTable * newnode = makeNode (JsonTable );
2518+
2519+ COPY_NODE_FIELD (common );
2520+ COPY_NODE_FIELD (columns );
2521+ COPY_NODE_FIELD (plan );
2522+ COPY_NODE_FIELD (on_error );
2523+ COPY_NODE_FIELD (alias );
2524+ COPY_SCALAR_FIELD (location );
2525+
2526+ return newnode ;
2527+ }
2528+
2529+ /*
2530+ * _copyJsonTableColumn
2531+ */
2532+ static JsonTableColumn *
2533+ _copyJsonTableColumn (const JsonTableColumn * from )
2534+ {
2535+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2536+
2537+ COPY_SCALAR_FIELD (coltype );
2538+ COPY_STRING_FIELD (name );
2539+ COPY_NODE_FIELD (typename );
2540+ COPY_STRING_FIELD (pathspec );
2541+ COPY_STRING_FIELD (pathname );
2542+ COPY_SCALAR_FIELD (format );
2543+ COPY_SCALAR_FIELD (wrapper );
2544+ COPY_SCALAR_FIELD (omit_quotes );
2545+ COPY_NODE_FIELD (columns );
2546+ COPY_NODE_FIELD (on_empty );
2547+ COPY_NODE_FIELD (on_error );
2548+ COPY_SCALAR_FIELD (location );
2549+
2550+ return newnode ;
2551+ }
2552+
2553+ /*
2554+ * _copyJsonTablePlan
2555+ */
2556+ static JsonTablePlan *
2557+ _copyJsonTablePlan (const JsonTablePlan * from )
2558+ {
2559+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2560+
2561+ COPY_SCALAR_FIELD (plan_type );
2562+ COPY_SCALAR_FIELD (join_type );
2563+ COPY_STRING_FIELD (pathname );
2564+ COPY_NODE_FIELD (plan1 );
2565+ COPY_NODE_FIELD (plan2 );
2566+ COPY_SCALAR_FIELD (location );
2567+
2568+ return newnode ;
2569+ }
2570+
2571+ /*
2572+ * _copyJsonTableParentNode
2573+ */
2574+ static JsonTableParentNode *
2575+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2576+ {
2577+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2578+
2579+ COPY_NODE_FIELD (path );
2580+ COPY_STRING_FIELD (name );
2581+ COPY_NODE_FIELD (child );
2582+ COPY_SCALAR_FIELD (outerJoin );
2583+ COPY_SCALAR_FIELD (colMin );
2584+ COPY_SCALAR_FIELD (colMax );
2585+
2586+ return newnode ;
2587+ }
2588+
2589+ /*
2590+ * _copyJsonTableSiblingNode
2591+ */
2592+ static JsonTableSiblingNode *
2593+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2594+ {
2595+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2596+
2597+ COPY_NODE_FIELD (larg );
2598+ COPY_NODE_FIELD (rarg );
2599+ COPY_SCALAR_FIELD (cross );
2600+
2601+ return newnode ;
2602+ }
2603+
25082604/* ****************************************************************
25092605 * relation.h copy functions
25102606 *
@@ -5446,6 +5542,21 @@ copyObjectImpl(const void *from)
54465542 case T_JsonItemCoercions :
54475543 retval = _copyJsonItemCoercions (from );
54485544 break ;
5545+ case T_JsonTable :
5546+ retval = _copyJsonTable (from );
5547+ break ;
5548+ case T_JsonTableColumn :
5549+ retval = _copyJsonTableColumn (from );
5550+ break ;
5551+ case T_JsonTablePlan :
5552+ retval = _copyJsonTablePlan (from );
5553+ break ;
5554+ case T_JsonTableParentNode :
5555+ retval = _copyJsonTableParentNode (from );
5556+ break ;
5557+ case T_JsonTableSiblingNode :
5558+ retval = _copyJsonTableSiblingNode (from );
5559+ break ;
54495560
54505561 /*
54515562 * RELATION NODES
0 commit comments