bingo/postgres/sql/common/mango_pg.sql.in (178 lines of code) (raw):
CREATE TYPE sub AS (query_mol text, query_options text);
CREATE OR REPLACE FUNCTION matchSub(text, sub)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._sub_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION matchSub(bytea, sub)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._sub_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE TYPE exact AS (query_mol text, query_options text);
CREATE OR REPLACE FUNCTION matchExact(text, exact)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._exact_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION matchExact(bytea, exact)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._exact_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE TYPE smarts AS (query_mol text, query_options text);
CREATE OR REPLACE FUNCTION matchSmarts(text, smarts)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._smarts_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION matchSmarts(bytea, smarts)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._smarts_internal($2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE TYPE gross AS (sign text, query_mol text);
CREATE OR REPLACE FUNCTION matchGross(bytea, gross)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._gross_internal($2.sign, $2.query_mol, $1);
END;
$$ LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION matchGross(text, gross)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._gross_internal($2.sign, $2.query_mol, $1);
END;
$$ LANGUAGE 'plpgsql';
CREATE OPERATOR public.@ (
LEFTARG = text,
RIGHTARG = sub,
PROCEDURE = matchSub,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = bytea,
RIGHTARG = sub,
PROCEDURE = matchSub,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = text,
RIGHTARG = exact,
PROCEDURE = matchExact,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = bytea,
RIGHTARG = exact,
PROCEDURE = matchExact,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = text,
RIGHTARG = smarts,
PROCEDURE = matchSmarts,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = bytea,
RIGHTARG = smarts,
PROCEDURE = matchSmarts,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = text,
RIGHTARG = gross,
PROCEDURE = matchGross,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = bytea,
RIGHTARG = gross,
PROCEDURE = matchGross,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
--******************* MASS *******************
CREATE OPERATOR public.< (
LEFTARG = text,
RIGHTARG = mass,
PROCEDURE = _match_mass_less,
COMMUTATOR = '<',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.< (
LEFTARG = bytea,
RIGHTARG = mass,
PROCEDURE = _match_mass_less,
COMMUTATOR = '<',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.> (
LEFTARG = text,
RIGHTARG = mass,
PROCEDURE = _match_mass_great,
COMMUTATOR = '>',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.> (
LEFTARG = bytea,
RIGHTARG = mass,
PROCEDURE = _match_mass_great,
COMMUTATOR = '>',
RESTRICT = contsel,
JOIN = contjoinsel
);
--******************* SIMILARITY *******************
CREATE OR REPLACE FUNCTION matchSim(text, sim)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._sim_internal($2.min_bound, $2.max_bound, $2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION matchSim(bytea, sim)
RETURNS boolean AS $$
BEGIN
RETURN BINGO_SCHEMANAME._sim_internal($2.min_bound, $2.max_bound, $2.query_mol, $1, $2.query_options);
END;
$$ LANGUAGE 'plpgsql';
CREATE OPERATOR public.@ (
LEFTARG = text,
RIGHTARG = sim,
PROCEDURE = matchSim,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);
CREATE OPERATOR public.@ (
LEFTARG = bytea,
RIGHTARG = sim,
PROCEDURE = matchSim,
COMMUTATOR = '@',
RESTRICT = contsel,
JOIN = contjoinsel
);