Hello, We right now don't support TRUNCATE on foreign tables. It may be a strange missing piece and restriction of operations. For example, if a partitioned table contains some foreign tables in its leaf, user cannot use TRUNCATE command to clean up the partitioned table.
Probably, API design is not complicated. We add a new callback for truncate on the FdwRoutine, and ExecuteTruncateGuts() calls it if relation is foreign- table. In case of postgres_fdw, it also issues "TRUNCATE" command on the remote side in the transaction block [*1]. [*1] But I hope oracle_fdw does not follow this implementation as is. :-) How about your thought? I noticed this restriction when I'm working on Arrow_Fdw enhancement for "writable" capability. Because Apache Arrow [*2] is a columnar file format, it is not designed for UPDATE/DELETE, but capable to bulk-INSERT. It is straightforward idea to support only INSERT, and clear data by TRUNCATE. [*2] Apache Arrow - https://arrow.apache.org/docs/format/Columnar.html Best regards, -- HeteroDB, Inc / The PG-Strom Project KaiGai Kohei <kai...@heterodb.com>