On Thu, Jan 28, 2016 at 11:33 AM, Etsuro Fujita <fujita.ets...@lab.ntt.co.jp > wrote:
> On 2016/01/27 21:23, Rushabh Lathia wrote: > >> If I understood correctly, above documentation means, that if FDW have >> DMLPushdown APIs that is enough. But in reality thats not the case, we >> need ExecForeignInsert, ExecForeignUpdate, or ExecForeignDelete in case >> DML is not pushable. >> >> And here fact is DMLPushdown APIs are optional for FDW, so that if FDW >> don't have DMLPushdown APIs they can still very well perform the DML >> operations using ExecForeignInsert, ExecForeignUpdate, or >> ExecForeignDelete. >> > > I agree with you. I guess I was wrong. sorry. > > So documentation should be like: >> >> If the IsForeignRelUpdatable pointer is set to NULL, foreign tables are >> assumed to be insertable, updatable, or deletable if the FDW provides >> ExecForeignInsert, ExecForeignUpdate, or ExecForeignDelete respectively, >> >> If FDW provides DMLPushdown APIs and the DML are pushable to the foreign >> server, then FDW still needs ExecForeignInsert, ExecForeignUpdate, or >> ExecForeignDelete for the non-pushable DML operation. >> >> What's your opinion ? >> > > I agree that we should add this to the documentation, too. > > BTW, if I understand correctly, I think we should also modify > relation_is_updatabale() accordingly. Am I right? > Yep, we need to modify relation_is_updatable(). > > Best regards, > Etsuro Fujita > > > -- Rushabh Lathia