@ -1231,9 +1231,9 @@ ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate)
{
{
/*
/*
* The columns are stored in the range table entry . If this ResultRelInfo
* The columns are stored in the range table entry . If this ResultRelInfo
* doesn ' t have an entry in the range table ( i . e . if it represents a
* represents a partition routing target , and doesn ' t have an entry of its
* partition routing target ) , fetch the parent ' s RTE and map the columns
* own in the range table , fetch the parent ' s RTE and map the columns to
* to t he order they are in the partition .
* the order they are in the partition .
*/
*/
if ( relinfo - > ri_RangeTableIndex ! = 0 )
if ( relinfo - > ri_RangeTableIndex ! = 0 )
{
{
@ -1241,7 +1241,7 @@ ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate)
return rte - > insertedCols ;
return rte - > insertedCols ;
}
}
else
else if ( relinfo - > ri_RootResultRelInfo )
{
{
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
@ -1252,6 +1252,16 @@ ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate)
else
else
return rte - > insertedCols ;
return rte - > insertedCols ;
}
}
else
{
/*
* The relation isn ' t in the range table and it isn ' t a partition
* routing target . This ResultRelInfo must ' ve been created only for
* firing triggers and the relation is not being inserted into . ( See
* ExecGetTriggerResultRel . )
*/
return NULL ;
}
}
}
/* Return a bitmap representing columns being updated */
/* Return a bitmap representing columns being updated */
@ -1265,7 +1275,7 @@ ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate)
return rte - > updatedCols ;
return rte - > updatedCols ;
}
}
else
else if ( relinfo - > ri_RootResultRelInfo )
{
{
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
@ -1276,6 +1286,8 @@ ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate)
else
else
return rte - > updatedCols ;
return rte - > updatedCols ;
}
}
else
return NULL ;
}
}
/* Return a bitmap representing generated columns being updated */
/* Return a bitmap representing generated columns being updated */
@ -1289,7 +1301,7 @@ ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate)
return rte - > extraUpdatedCols ;
return rte - > extraUpdatedCols ;
}
}
else
else if ( relinfo - > ri_RootResultRelInfo )
{
{
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
ResultRelInfo * rootRelInfo = relinfo - > ri_RootResultRelInfo ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
RangeTblEntry * rte = exec_rt_fetch ( rootRelInfo - > ri_RangeTableIndex , estate ) ;
@ -1300,6 +1312,8 @@ ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate)
else
else
return rte - > extraUpdatedCols ;
return rte - > extraUpdatedCols ;
}
}
else
return NULL ;
}
}
/* Return columns being updated, including generated columns */
/* Return columns being updated, including generated columns */