Jak utworzyć klucz obcy z ograniczeniem do przywoływanej tabeli w PostgreSQL

Załóżmy, że mam następujące tabele

CREATE TABLE plugins (
id int primary key,
type text);

insert into plugins values (1,'matrix');
insert into plugins values (2,'matrix');
insert into plugins values (3,'function');
insert into plugins values (4,'function');

CREATE TABLE matrix_params (
id int primary key,
pluginid int references plugins (id)
);

To wszystko działa zgodnie z oczekiwaniami, ale chciałbym dodać dodatkowe ograniczenie, że matrix_param może odnosić się tylko do pluginidu, który ma typ „matrix”. Więc

insert into matrix_params values (1,1);

Powinien odnieść sukces, ale

insert into matrix_params values (2,3);

Powinien zawieść.

Proste ograniczenie dla matrycy_params nie działa, ponieważ nie ma możliwości sprawdzenia, jaki jest odpowiedni typ w tabeli wtyczek.