You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

pr_foreigntable_for_es.sql 3.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. CREATE FOREIGN TABLE public.pull_request_es
  2. (
  3. id bigint NOT NULL,
  4. type integer,
  5. status integer,
  6. conflicted_files json,
  7. commits_ahead integer,
  8. commits_behind integer,
  9. issue_id bigint,
  10. index bigint,
  11. head_repo_id bigint,
  12. base_repo_id bigint,
  13. head_branch character varying(255),
  14. base_branch character varying(255),
  15. merge_base character varying(40),
  16. has_merged boolean,
  17. merged_commit_id character varying(40),
  18. merger_id bigint,
  19. merged_unix bigint,
  20. is_transformed boolean NOT NULL DEFAULT false,
  21. amount integer NOT NULL DEFAULT 0
  22. )SERVER multicorn_es
  23. OPTIONS
  24. (
  25. host '192.168.207.94',
  26. port '9200',
  27. index 'user_es-index',
  28. rowid_column 'id'
  29. )
  30. ;
  31. CREATE OR REPLACE FUNCTION public.insert_pull_request_data() RETURNS trigger AS
  32. $def$
  33. BEGIN
  34. INSERT INTO public.pull_request_es(
  35. id,
  36. type,
  37. status,
  38. conflicted_files,
  39. commits_ahead,
  40. commits_behind,
  41. issue_id,
  42. index,
  43. head_repo_id,
  44. base_repo_id,
  45. head_branch,
  46. base_branch,
  47. merge_base,
  48. has_merged,
  49. merged_commit_id,
  50. merger_id,
  51. merged_unix,
  52. is_transformed,
  53. amount)
  54. VALUES (
  55. NEW.id,
  56. NEW.type,
  57. NEW.status,
  58. NEW.conflicted_files,
  59. NEW.commits_ahead,
  60. NEW.commits_behind,
  61. NEW.issue_id,
  62. NEW.index,
  63. NEW.head_repo_id,
  64. NEW.base_repo_id,
  65. NEW.head_branch,
  66. NEW.base_branch,
  67. NEW.merge_base,
  68. NEW.has_merged,
  69. NEW.merged_commit_id,
  70. NEW.merger_id,
  71. NEW.merged_unix,
  72. NEW.is_transformed,
  73. NEW.amount
  74. );
  75. --update issue
  76. UPDATE public.issue_es SET pr_id=NEW.id where id=NEW.issue_id;
  77. RETURN NEW;
  78. END;
  79. $def$
  80. LANGUAGE plpgsql;
  81. DROP TRIGGER IF EXISTS es_insert_pull_request on public.pull_request;
  82. CREATE TRIGGER es_insert_pull_request
  83. AFTER INSERT ON public.pull_request
  84. FOR EACH ROW EXECUTE PROCEDURE insert_pull_request_data();
  85. CREATE OR REPLACE FUNCTION public.update_pull_request_has_merged() RETURNS trigger AS
  86. $def$
  87. declare
  88. BEGIN
  89. UPDATE public.pull_request_es SET has_merged=NEW.has_merged where id=NEW.id;
  90. return new;
  91. END
  92. $def$
  93. LANGUAGE plpgsql;
  94. DROP TRIGGER IF EXISTS es_update_pull_request_has_merged on public.pull_request;
  95. CREATE TRIGGER es_update_pull_request_has_merged
  96. AFTER UPDATE OF "has_merged" ON public.pull_request
  97. FOR EACH ROW EXECUTE PROCEDURE update_pull_request_has_merged();
  98. CREATE OR REPLACE FUNCTION public.delete_pull_request() RETURNS trigger AS
  99. $def$
  100. declare
  101. BEGIN
  102. DELETE FROM public.pull_request_es where id=OLD.id;
  103. return new;
  104. END
  105. $def$
  106. LANGUAGE plpgsql;
  107. DROP TRIGGER IF EXISTS es_delete_pull_request on public.pull_request;
  108. CREATE TRIGGER es_delete_pull_request
  109. AFTER DELETE ON public.pull_request
  110. FOR EACH ROW EXECUTE PROCEDURE delete_pull_request();