Overview
Comment: | now mark function returns id of site added |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
318311c7d23fc99c81f72c000c1fe41e |
User & Date: | c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 on 2009-10-27 15:27:33.000 |
Other Links: | branch diff | manifest | tags |
Context
2009-12-15
| ||
20:57 | functions reorderd, added missing letter to declaration check-in: 12c35e5674 user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
2009-10-27
| ||
15:27 | now mark function returns id of site added check-in: 318311c7d2 user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
2009-10-14
| ||
14:16 | Finally reactor support. Plain and threaded are tested and working good. Kqueue not ready for use. check-in: ed7808827d user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
Changes
Modified database.sql
from [0101122ebb]
to [c376e51c3f].
︙ | ︙ | |||
34 35 36 37 38 39 40 | create or replace function get_site(domain text) returns integer language sql immutable strict as $$ select get_site(tripdomain($1)) as result; $$; -- this function adds tag to domain | | | > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | create or replace function get_site(domain text) returns integer language sql immutable strict as $$ select get_site(tripdomain($1)) as result; $$; -- this function adds tag to domain CREATE or replace FUNCTION mark(domain text, new_tag text) RETURNS integer LANGUAGE sql immutable STRICT AS $$ select mark(get_site($1), $2) as result; $$; -- this function adds tag to site by site id CREATE or replace FUNCTION mark(my_id_site integer, new_tag text) RETURNS integer LANGUAGE plpgsql STRICT AS $$ declare -- maybe check should be added to make sure supplied site id really exists my_tag text[]; my_tag_id integer; begin -- selecting tags site already have and adding new tag to them -- note that tags should be sorted to eliminate permutations select coalesce(tag, '{}'::text[]) from urls natural left join tag where id_site = my_id_site into my_tag; if not found then -- no records found - creating new tag insert into urls (id_site, id_tag) values (my_id_site, get_tag(array[new_tag])); else -- joining tags select usort(my_tag || array[new_tag]) into my_tag; -- updating existing record update urls set id_tag = get_tag(my_tag || array[new_tag]) where id_site = my_id_site; end if; return my_id_site; end; $$; -- this function returns id of tag array create or replace function get_tag(my_tag text[]) returns integer language plpgsql strict as $$ |
︙ | ︙ |