Fix ExecMakeTableFunctionResult to verify that all rows returned by a SRF returning "record" actually do have the same rowtype.  This is needed because the parser can't realistically enforce that they will all have the same typmod, as seen in a recent example from David Wheeler.
Fix ExecMakeTableFunctionResult to verify that all rows returned by a SRF
returning "record" actually do have the same rowtype.  This is needed because
the parser can't realistically enforce that they will all have the same typmod,
as seen in a recent example from David Wheeler.

Back-patch to 8.0, which is as far back as we have the notion of RECORD
subtypes being distinguished by typmod.  Wheeler's example depends on
8.4-and-up features, but I suspect there may be ways to provoke similar
failures before 8.4.

tpostgres-projects/tPostgres,jmcatamney/gpdb,greenplum-db/gpdb,ashwinstar/gpdb,yazun/postgres-xl,oberstet/postgres-xl,arcivanov/postgres-xl,greenplum-db/gpdb,yazun/postgres-xl,adam8157/gpdb,techdragon/Postgres-XL,xinzweb/gpdb,50wu/gpdb,xinzweb/gpdb,xinzweb/gpdb,snaga/postgres-xl,jmcatamney/gpdb,postmind-net/postgres-xl,zeroae/postgres-xl,ovr/postgres-xl,postmind-net/postgres-xl,lisakowen/gpdb,postmind-net/postgres-xl,ovr/postgres-xl,jmcatamney/gpdb,arcivanov/postgres-xl,yazun/postgres-xl,snaga/postgres-xl,Postgres-XL/Postgres-XL,greenplum-db/gpdb,50wu/gpdb,pavanvd/postgres-xl,lisakowen/gpdb,xinzweb/gpdb,adam8157/gpdb,techdragon/Postgres-XL,ovr/postgres-xl,pavanvd/postgres-xl,zeroae/postgres-xl,xinzweb/gpdb,jmcatamney/gpdb,lisakowen/gpdb,ashwinstar/gpdb,50wu/gpdb,greenplum-db/gpdb,oberstet/postgres-xl,adam8157/gpdb,kmjungersen/PostgresXL,xinzweb/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,pavanvd/postgres-xl,arcivanov/postgres-xl,techdragon/Postgres-XL,jmcatamney/gpdb,zeroae/postgres-xl,adam8157/gpdb,pavanvd/postgres-xl,postmind-net/postgres-xl,tpostgres-projects/tPostgres,snaga/postgres-xl,jmcatamney/gpdb,yazun/postgres-xl,xinzweb/gpdb,ashwinstar/gpdb,adam8157/gpdb,adam8157/gpdb,Postgres-XL/Postgres-XL,lisakowen/gpdb,ovr/postgres-xl,kmjungersen/PostgresXL,adam8157/gpdb,Postgres-XL/Postgres-XL,50wu/gpdb,lisakowen/gpdb,kmjungersen/PostgresXL,greenplum-db/gpdb,yazun/postgres-xl,50wu/gpdb,lisakowen/gpdb,ovr/postgres-xl,50wu/gpdb,ashwinstar/gpdb,lisakowen/gpdb,oberstet/postgres-xl,snaga/postgres-xl,ashwinstar/gpdb,kmjungersen/PostgresXL,zeroae/postgres-xl,arcivanov/postgres-xl,arcivanov/postgres-xl,ashwinstar/gpdb,techdragon/Postgres-XL,Postgres-XL/Postgres-XL,kmjungersen/PostgresXL,lisakowen/gpdb,jmcatamney/gpdb,arcivanov/postgres-xl,tpostgres-projects/tPostgres,greenplum-db/gpdb,50wu/gpdb,postmind-net/postgres-xl,pavanvd/postgres-xl,Postgres-XL/Postgres-XL,zeroae/postgres-xl,snaga/postgres-xl,ashwinstar/gpdb,ashwinstar/gpdb,xinzweb/gpdb,techdragon/Postgres-XL,greenplum-db/gpdb,oberstet/postgres-xl,adam8157/gpdb,50wu/gpdb,tpostgres-projects/tPostgres,oberstet/postgres-xl,tpostgres-projects/tPostgres