47 lines
1.1 KiB
PL/PgSQL
47 lines
1.1 KiB
PL/PgSQL
CREATE TABLE meta_aliases (
|
|
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_links (
|
|
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_properties (
|
|
id UUID DEFAULT gen_random_uuid(),
|
|
meta_link_id UUID REFERENCES meta_links (id) NOT NULL,
|
|
rel BPCHAR NOT NULL,
|
|
value BPCHAR,
|
|
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE meta_properties (
|
|
id UUID DEFAULT gen_random_uuid(),
|
|
pattern BPCHAR NOT NULL,
|
|
value BPCHAR,
|
|
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE FUNCTION get_meta_aliases(BPCHAR) RETURNS SETOF meta_aliases AS $$
|
|
SELECT * FROM meta_aliases WHERE meta_aliases.pattern ILIKE $1;
|
|
$$ LANGUAGE SQL;
|
|
|
|
CREATE FUNCTION get_meta_links(BPCHAR) RETURNS SETOF meta_links AS $$
|
|
SELECT * FROM meta_links WHERE meta_links.pattern ILIKE $1;
|
|
$$ LANGUAGE SQL;
|
|
|
|
CREATE FUNCTION get_meta_properties(BPCHAR) RETURNS SETOF meta_properties AS $$
|
|
SELECT * FROM meta_properties WHERE meta_properties.pattern ILIKE $1;
|
|
$$ LANGUAGE SQL;
|