CREATE TABLE meta_alias ( id UUID DEFAULT gen_random_uuid(), pattern BPCHAR NOT NULL, alias BPCHAR NOT NULL, CONSTRAINT unique_aliases UNIQUE (alias), PRIMARY KEY (id) ); CREATE TABLE meta_link ( id UUID DEFAULT gen_random_uuid(), pattern BPCHAR NOT NULL, rel BPCHAR NOT NULL, type BPCHAR, href BPCHAR, PRIMARY KEY (id) ); CREATE TABLE meta_link_property ( id UUID DEFAULT gen_random_uuid(), link UUID REFERENCES meta_link (id), rel BPCHAR NOT NULL, value BPCHAR, PRIMARY KEY (id) ); CREATE TABLE meta_property ( id UUID DEFAULT gen_random_uuid(), pattern BPCHAR NOT NULL, value BPCHAR, PRIMARY KEY (id) ); CREATE FUNCTION get_meta_aliases(BPCHAR) RETURNS SETOF meta_alias AS $$ SELECT * FROM meta_alias WHERE meta_alias.pattern ILIKE $1; $$ LANGUAGE SQL; CREATE FUNCTION get_meta_link(BPCHAR) RETURNS SETOF meta_link AS $$ SELECT * FROM meta_link WHERE meta_link.pattern ILIKE $1; $$ LANGUAGE SQL; CREATE FUNCTION get_meta_property(BPCHAR) RETURNS SETOF meta_property AS $$ SELECT * FROM meta_property WHERE meta_property.pattern ILIKE $1; $$ LANGUAGE SQL;