Thread: How do I get the name of the relation on which FDW has been called?
SELECT * FROM table1; If,for above command,fdw1 is invoked,how do I get the name/Oid of the table(i.e. table1) in fdw1? Atri -- Regards, Atri l'apprenant
Hi Atri, (2012/05/30 19:49), Atri Sharma wrote: > SELECT * FROM table1; > > If,for above command,fdw1 is invoked,how do I get the name/Oid of the > table(i.e. table1) in fdw1? For 9.1 and 9.0, you can get foreign table's oid as the first parameter of PlanForeignScan function. For 9.2, you can get it as the third parameter of GetForeignRelSize, GetForeignPaths, and GetForeignPlan functions. In other functions, calling RelationGetRelid(ForeignScanState->ss.ss_currentRelation) returns the oid of the foreign table. Once you obtained oid of a foreign table, you can get the name of the foreign table by calling get_rel_name function with the oid, as same as ordinary tables. Regards, -- Shigeru HANADA
On Wed, May 30, 2012 at 5:15 PM, Shigeru HANADA <shigeru.hanada@gmail.com> wrote: > Hi Atri, > > (2012/05/30 19:49), Atri Sharma wrote: >> SELECT * FROM table1; >> >> If,for above command,fdw1 is invoked,how do I get the name/Oid of the >> table(i.e. table1) in fdw1? > > For 9.1 and 9.0, you can get foreign table's oid as the first parameter > of PlanForeignScan function. For 9.2, you can get it as the third > parameter of GetForeignRelSize, GetForeignPaths, and GetForeignPlan > functions. In other functions, calling > RelationGetRelid(ForeignScanState->ss.ss_currentRelation) returns the > oid of the foreign table. > > Once you obtained oid of a foreign table, you can get the name of the > foreign table by calling get_rel_name function with the oid, as same as > ordinary tables. > > Regards, > -- > Shigeru HANADA Thanks a ton Shigeru!!! It is really helpful... -- Regards, Atri l'apprenant