Browse Source

提交代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.3.2^2
zouap 4 years ago
parent
commit
1c664e99f9
4 changed files with 327 additions and 4 deletions
  1. +3
    -3
      models/dbsql/dateset_foreigntable_for_es.sql
  2. +200
    -0
      models/dbsql/issue_foreigntable_for_es.sql
  3. +123
    -0
      models/dbsql/pr_foreigntable_for_es.sql
  4. +1
    -1
      models/user_business_analysis.go

+ 3
- 3
models/dbsql/dateset_foreigntable_for_es.sql View File

@@ -27,7 +27,7 @@ OPTIONS
CREATE OR REPLACE FUNCTION public.insert_dataset_data() RETURNS trigger AS
$def$
BEGIN
INSERT INTO public.dataset(
INSERT INTO public.dataset_es(
id,
title,
status,
@@ -70,9 +70,9 @@ CREATE OR REPLACE FUNCTION public.udpate_dataset_file_name() RETURNS trigger AS
$def$
BEGIN
if (TG_OP = 'DELETE') then
update public.dataset_es SET file_name=(select string_agg(name, ',') from public.attachment where dataset_id=OLD.dataset_id order by created_unix desc) where id=OLD.dataset_id;
update public.dataset_es SET file_name=(select array_to_string(array_agg(name order by created_unix desc),',') from public.attachment where dataset_id=OLD.dataset_id order by created_unix desc) where id=OLD.dataset_id;
elsif (TG_OP = 'INSERT') then
update public.dataset_es SET file_name=(select string_agg(name, ',') from public.attachment where dataset_id=NEW.dataset_id order by created_unix desc) where id=NEW.dataset_id;
update public.dataset_es SET file_name=(select array_to_string(array_agg(name order by created_unix desc),',') from public.attachment where dataset_id=NEW.dataset_id order by created_unix desc) where id=NEW.dataset_id;
end if;
return null;


+ 200
- 0
models/dbsql/issue_foreigntable_for_es.sql View File

@@ -0,0 +1,200 @@
CREATE FOREIGN TABLE public.issue_es
(
id bigint NOT NULL,
repo_id bigint,
index bigint,
poster_id bigint,
original_author character varying(255),
original_author_id bigint,
name character varying(255) ,
content text,
comment text,
milestone_id bigint,
priority integer,
is_closed boolean,
is_pull boolean,
pr_id bigint,
num_comments integer,
ref character varying(255),
deadline_unix bigint,
created_unix bigint,
updated_unix bigint,
closed_unix bigint,
is_locked boolean NOT NULL,
amount bigint,
is_transformed boolean NOT NULL,
)SERVER multicorn_es
OPTIONS
(
host '192.168.207.94',
port '9200',
index 'user_es-index',
rowid_column 'id'
)
;

CREATE OR REPLACE FUNCTION public.insert_issue_data() RETURNS trigger AS
$def$
BEGIN
INSERT INTO public.issue_es(
id,
repo_id,
index,
poster_id,
original_author,
original_author_id,
name,
content,
milestone_id,
priority,
is_closed,
is_pull,
num_comments,
ref,
deadline_unix,
created_unix,
updated_unix,
closed_unix,
is_locked,
amount,
is_transformed)
VALUES (
NEW.id,
NEW.repo_id,
NEW.index,
NEW.poster_id,
NEW.original_author,
NEW.original_author_id,
NEW.name,
NEW.content,
NEW.milestone_id,
NEW.priority,
NEW.is_closed,
NEW.is_pull,
NEW.num_comments,
NEW.ref,
NEW.deadline_unix,
NEW.created_unix,
NEW.updated_unix,
NEW.closed_unix,
NEW.is_locked,
NEW.amount,
NEW.is_transformed
);
RETURN NEW;
END;
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_insert_issue on public.issue;

CREATE TRIGGER es_insert_issue
AFTER INSERT ON public.issue
FOR EACH ROW EXECUTE PROCEDURE insert_issue_data();



CREATE OR REPLACE FUNCTION public.udpate_issue_comment() RETURNS trigger AS
$def$
BEGIN
if (TG_OP = 'DELETE') then
update public.issue_es SET comment=(select array_to_string(array_agg(content order by created_unix desc),',') from public.comment where issue_id=OLD.issue_id order by created_unix desc) where id=OLD.issue_id;
elsif (TG_OP = 'INSERT') then
update public.issue_es SET comment=(select array_to_string(array_agg(content order by created_unix desc),',') from public.comment where issue_id=NEW.issue_id order by created_unix desc) where id=NEW.issue_id;
elsif (TG_OP = 'UPDATE') then
update public.issue_es SET comment=(select array_to_string(array_agg(content order by created_unix desc),',') from public.comment where issue_id=NEW.issue_id order by created_unix desc) where id=NEW.issue_id;
end if;
return null;
END;
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_udpate_issue_comment on public.comment;
CREATE TRIGGER es_udpate_issue_comment
AFTER INSERT OR DELETE OR UPDATE ON public.comment
FOR EACH ROW EXECUTE PROCEDURE udpate_issue_comment();


CREATE OR REPLACE FUNCTION public.update_issue_content() RETURNS trigger AS
$def$
declare
BEGIN
UPDATE public.issue_es SET content=NEW.content where id=NEW.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_update_issue_content on public.issue;

CREATE TRIGGER es_update_issue_content
AFTER UPDATE OF "content" ON public.issue
FOR EACH ROW EXECUTE PROCEDURE update_issue_content();


CREATE OR REPLACE FUNCTION public.update_issue_name() RETURNS trigger AS
$def$
declare
BEGIN
UPDATE public.issue_es SET name=NEW.name where id=NEW.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_update_issue_name on public.issue;

CREATE TRIGGER es_update_issue_name
AFTER UPDATE OF "name" ON public.issue
FOR EACH ROW EXECUTE PROCEDURE update_issue_name();


CREATE OR REPLACE FUNCTION public.update_issue_is_closed() RETURNS trigger AS
$def$
declare
BEGIN
UPDATE public.issue_es SET is_closed=NEW.is_closed where id=NEW.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_update_issue_is_closed on public.issue;

CREATE TRIGGER es_update_issue_is_closed
AFTER UPDATE OF "is_closed" ON public.issue
FOR EACH ROW EXECUTE PROCEDURE update_issue_is_closed();

CREATE OR REPLACE FUNCTION public.update_issue_num_comments() RETURNS trigger AS
$def$
declare
BEGIN
UPDATE public.issue_es SET num_comments=NEW.num_comments where id=NEW.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_update_issue_num_comments on public.issue;

CREATE TRIGGER es_update_issue_num_comments
AFTER UPDATE OF "num_comments" ON public.issue
FOR EACH ROW EXECUTE PROCEDURE update_issue_num_comments();


CREATE OR REPLACE FUNCTION public.delete_issue() RETURNS trigger AS
$def$
declare
BEGIN
DELETE FROM public.issue_es where id=OLD.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_delete_issue on public.issue;
CREATE TRIGGER es_delete_issue
AFTER DELETE ON public.issue
FOR EACH ROW EXECUTE PROCEDURE delete_issue();

+ 123
- 0
models/dbsql/pr_foreigntable_for_es.sql View File

@@ -0,0 +1,123 @@
CREATE FOREIGN TABLE public.pull_request_es
(
id bigint NOT NULL,
type integer,
status integer,
conflicted_files json,
commits_ahead integer,
commits_behind integer,
issue_id bigint,
index bigint,
head_repo_id bigint,
base_repo_id bigint,
head_branch character varying(255),
base_branch character varying(255),
merge_base character varying(40),
has_merged boolean,
merged_commit_id character varying(40),
merger_id bigint,
merged_unix bigint,
is_transformed boolean NOT NULL DEFAULT false,
amount integer NOT NULL DEFAULT 0
)SERVER multicorn_es
OPTIONS
(
host '192.168.207.94',
port '9200',
index 'user_es-index',
rowid_column 'id'
)
;

CREATE OR REPLACE FUNCTION public.insert_pull_request_data() RETURNS trigger AS
$def$
BEGIN
INSERT INTO public.pull_request_es(
id,
type,
status,
conflicted_files,
commits_ahead,
commits_behind,
issue_id,
index,
head_repo_id,
base_repo_id,
head_branch,
base_branch,
merge_base,
has_merged,
merged_commit_id,
merger_id,
merged_unix,
is_transformed,
amount)
VALUES (
NEW.id,
NEW.type,
NEW.status,
NEW.conflicted_files,
NEW.commits_ahead,
NEW.commits_behind,
NEW.issue_id,
NEW.index,
NEW.head_repo_id,
NEW.base_repo_id,
NEW.head_branch,
NEW.base_branch,
NEW.merge_base,
NEW.has_merged,
NEW.merged_commit_id,
NEW.merger_id,
NEW.merged_unix,
NEW.is_transformed,
NEW.amount
);
--update issue
UPDATE public.issue_es SET pr_id=NEW.id where id=NEW.issue_id;

RETURN NEW;
END;
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_insert_pull_request on public.pull_request;

CREATE TRIGGER es_insert_pull_request
AFTER INSERT ON public.pull_request
FOR EACH ROW EXECUTE PROCEDURE insert_pull_request_data();



CREATE OR REPLACE FUNCTION public.update_pull_request_has_merged() RETURNS trigger AS
$def$
declare
BEGIN
UPDATE public.pull_request_es SET has_merged=NEW.has_merged where id=NEW.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_update_pull_request_has_merged on public.pull_request;

CREATE TRIGGER es_update_pull_request_has_merged
AFTER UPDATE OF "has_merged" ON public.pull_request
FOR EACH ROW EXECUTE PROCEDURE update_pull_request_has_merged();


CREATE OR REPLACE FUNCTION public.delete_pull_request() RETURNS trigger AS
$def$
declare
BEGIN
DELETE FROM public.pull_request_es where id=OLD.id;
return new;
END
$def$
LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS es_delete_pull_request on public.pull_request;
CREATE TRIGGER es_delete_pull_request
AFTER DELETE ON public.pull_request
FOR EACH ROW EXECUTE PROCEDURE delete_pull_request();

+ 1
- 1
models/user_business_analysis.go View File

@@ -1135,7 +1135,7 @@ func queryLoginCount(start_unix int64, end_unix int64) map[int64]int {
break
}
}
log.Info("user login size=" + fmt.Sprint(len(resultMap)))
return resultMap
}



Loading…
Cancel
Save