de-deduplicate code in DML execution hooks in postgres_fdw
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
From: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-18T10:34:17Z
Lists: pgsql-hackers
Attachments
- Refactor-postgres_fdw-s-DML-execution-hook-functions.patch (text/x-patch) patch 0002
Hi, While working on a fix related to non-direct DML [1], I noticed that postgresExecForeignInsert(), postgresExecForeignUpdate() and postgresExecForeignDelete() functions are almost identical except that postgresExecForeignInsert() doesn't require ctid. The fix that I was working is applicable to Delete and Update but can be useful for Insert as well. I had to add the same code to two places at least and might have missed fixing one of them. Why don't we have a single function which prepares the statement, extract parameters, executes the prepared statement and checks for the results, returned rows etc? It's been a while that these functions are there and haven't produced code which is a lot different for each of these cases. Here's a patch to extract that code into a separate function and use it in all the three hook implementations. [1] https://www.postgresql.org/message-id/CAFjFpRfcgwsHRmpvoOK-GUQi-n8MgAS+OxcQo=aBDn1COywmcg@mail.gmail.com -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company
Commits
-
postgres_fdw: Remove duplicate code in DML execution callback functions.
- 6c61d7c59357 12.0 landed