@@ -1297,6 +1297,7 @@ _copyTableFunc(const TableFunc *from)
12971297{
12981298 TableFunc * newnode = makeNode (TableFunc );
12991299
1300+ COPY_SCALAR_FIELD (functype );
13001301 COPY_NODE_FIELD (ns_uris );
13011302 COPY_NODE_FIELD (ns_names );
13021303 COPY_NODE_FIELD (docexpr );
@@ -1307,7 +1308,9 @@ _copyTableFunc(const TableFunc *from)
13071308 COPY_NODE_FIELD (colcollations );
13081309 COPY_NODE_FIELD (colexprs );
13091310 COPY_NODE_FIELD (coldefexprs );
1311+ COPY_NODE_FIELD (colvalexprs );
13101312 COPY_BITMAPSET_FIELD (notnulls );
1313+ COPY_NODE_FIELD (plan );
13111314 COPY_SCALAR_FIELD (ordinalitycol );
13121315 COPY_LOCATION_FIELD (location );
13131316
@@ -2514,6 +2517,99 @@ _copyJsonArgument(const JsonArgument *from)
25142517 return newnode ;
25152518}
25162519
2520+ /*
2521+ * _copyJsonTable
2522+ */
2523+ static JsonTable *
2524+ _copyJsonTable (const JsonTable * from )
2525+ {
2526+ JsonTable * newnode = makeNode (JsonTable );
2527+
2528+ COPY_NODE_FIELD (common );
2529+ COPY_NODE_FIELD (columns );
2530+ COPY_NODE_FIELD (plan );
2531+ COPY_NODE_FIELD (on_error );
2532+ COPY_NODE_FIELD (alias );
2533+ COPY_SCALAR_FIELD (location );
2534+
2535+ return newnode ;
2536+ }
2537+
2538+ /*
2539+ * _copyJsonTableColumn
2540+ */
2541+ static JsonTableColumn *
2542+ _copyJsonTableColumn (const JsonTableColumn * from )
2543+ {
2544+ JsonTableColumn * newnode = makeNode (JsonTableColumn );
2545+
2546+ COPY_SCALAR_FIELD (coltype );
2547+ COPY_STRING_FIELD (name );
2548+ COPY_NODE_FIELD (typeName );
2549+ COPY_STRING_FIELD (pathspec );
2550+ COPY_STRING_FIELD (pathname );
2551+ COPY_SCALAR_FIELD (format );
2552+ COPY_SCALAR_FIELD (wrapper );
2553+ COPY_SCALAR_FIELD (omit_quotes );
2554+ COPY_NODE_FIELD (columns );
2555+ COPY_NODE_FIELD (on_empty );
2556+ COPY_NODE_FIELD (on_error );
2557+ COPY_SCALAR_FIELD (location );
2558+
2559+ return newnode ;
2560+ }
2561+
2562+ /*
2563+ * _copyJsonTablePlan
2564+ */
2565+ static JsonTablePlan *
2566+ _copyJsonTablePlan (const JsonTablePlan * from )
2567+ {
2568+ JsonTablePlan * newnode = makeNode (JsonTablePlan );
2569+
2570+ COPY_SCALAR_FIELD (plan_type );
2571+ COPY_SCALAR_FIELD (join_type );
2572+ COPY_STRING_FIELD (pathname );
2573+ COPY_NODE_FIELD (plan1 );
2574+ COPY_NODE_FIELD (plan2 );
2575+ COPY_SCALAR_FIELD (location );
2576+
2577+ return newnode ;
2578+ }
2579+
2580+ /*
2581+ * _copyJsonTableParentNode
2582+ */
2583+ static JsonTableParentNode *
2584+ _copyJsonTableParentNode (const JsonTableParentNode * from )
2585+ {
2586+ JsonTableParentNode * newnode = makeNode (JsonTableParentNode );
2587+
2588+ COPY_NODE_FIELD (path );
2589+ COPY_STRING_FIELD (name );
2590+ COPY_NODE_FIELD (child );
2591+ COPY_SCALAR_FIELD (outerJoin );
2592+ COPY_SCALAR_FIELD (colMin );
2593+ COPY_SCALAR_FIELD (colMax );
2594+
2595+ return newnode ;
2596+ }
2597+
2598+ /*
2599+ * _copyJsonTableSiblingNode
2600+ */
2601+ static JsonTableSiblingNode *
2602+ _copyJsonTableSiblingNode (const JsonTableSiblingNode * from )
2603+ {
2604+ JsonTableSiblingNode * newnode = makeNode (JsonTableSiblingNode );
2605+
2606+ COPY_NODE_FIELD (larg );
2607+ COPY_NODE_FIELD (rarg );
2608+ COPY_SCALAR_FIELD (cross );
2609+
2610+ return newnode ;
2611+ }
2612+
25172613/* ****************************************************************
25182614 * relation.h copy functions
25192615 *
@@ -5459,6 +5555,21 @@ copyObjectImpl(const void *from)
54595555 case T_JsonItemCoercions :
54605556 retval = _copyJsonItemCoercions (from );
54615557 break ;
5558+ case T_JsonTable :
5559+ retval = _copyJsonTable (from );
5560+ break ;
5561+ case T_JsonTableColumn :
5562+ retval = _copyJsonTableColumn (from );
5563+ break ;
5564+ case T_JsonTablePlan :
5565+ retval = _copyJsonTablePlan (from );
5566+ break ;
5567+ case T_JsonTableParentNode :
5568+ retval = _copyJsonTableParentNode (from );
5569+ break ;
5570+ case T_JsonTableSiblingNode :
5571+ retval = _copyJsonTableSiblingNode (from );
5572+ break ;
54625573
54635574 /*
54645575 * RELATION NODES
0 commit comments