forked from UTulsa-Research/ag_gen
27 lines
843 B
PL/PgSQL
Executable File
27 lines
843 B
PL/PgSQL
Executable File
CREATE FUNCTION new_factbase(myhash TEXT) RETURNS INTEGER AS $$
|
|
DECLARE
|
|
myid INTEGER;
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM factbase WHERE hash = myhash) THEN
|
|
INSERT INTO factbase VALUES (DEFAULT, myhash) RETURNING id INTO myid;
|
|
ELSE
|
|
SELECT id INTO myid FROM factbase WHERE hash = myhash;
|
|
END IF;
|
|
|
|
RETURN myid;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE FUNCTION new_edge(from_id INTEGER, to_id INTEGER, exploit INTEGER) RETURNS INTEGER AS $$
|
|
DECLARE
|
|
myid INTEGER;
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM edge WHERE from_node = from_id AND to_node = to_id AND exploit_id = exploit) THEN
|
|
INSERT INTO edge VALUES (DEFAULT, from_id, to_id, exploit) RETURNING id INTO myid;
|
|
ELSE
|
|
SELECT id INTO myid FROM edge WHERE from_node = from_id AND to_node = to_id AND exploit_id = exploit;
|
|
END IF;
|
|
|
|
RETURN myid;
|
|
END;
|
|
$$ LANGUAGE plpgsql; |