One minor difference is, in my scenario - my source table field is defined as BIGINT (not serial) - though it does have a default nextval on a sequence, so ultimately - the same dependence.
The primary difference (IMHO), is that I am actually foreign keying on a local materialised view of the fdw'ed foreign table.
On the foreign host: Table "live.devices" Column | Type | Modifiers ------------+--------+----------------------------------------------------------- device_id | bigint | not null default nextval('devices_id_sequence'::regclass)
On the local host:
CREATE FOREIGN TABLE IF NOT EXISTS live.devices ( device_id bigint NOT NULL );
ERROR: referenced relation "devices" is not a table
Though this is a similar scenario to the previous thread, I would have expected foreign keying from a materialised view to behave independently of the FDW, as if from a regular local table.