Skip to content

Untrack external_pull_requests row deletions

What does this MR do and why?

This MR finalizes the loose foreign key removal. Previous MR: !81866 (merged)

This MR does the following:

  • Remove the deletion tracking trigger.
  • Remove the pending rows in external_pull_requests. This is safe because we still have the foreign key on ci_pipelines in place.

Database

Delete query: https://console.postgres.ai/gitlab/gitlab-production-tunnel-pg12/sessions/9070/commands/31958

Up:

== 20220309084838 RemoveExternalPullRequestTracking: migrating ================
-- execute("DROP TRIGGER IF EXISTS external_pull_requests_loose_fk_trigger ON external_pull_requests")
   -> 0.0017s
== 20220309084838 RemoveExternalPullRequestTracking: migrated (0.0017s) =======

== 20220309084954 RemoveLeftoverExternalPullRequestDeletions: migrating =======
-- execute("DELETE FROM \"loose_foreign_keys_deleted_records\"\nWHERE\n(\"loose_foreign_keys_deleted_records\".\"partition\", \"loose_foreign_keys_deleted_records\".\"id\") IN (\n  SELECT \"loose_foreign_keys_deleted_records\".\"partition\", \"loose_foreign_keys_deleted_records\".\"id\"\n  FROM \"loose_foreign_keys_deleted_records\"\n  WHERE\n  \"loose_foreign_keys_deleted_records\".\"fully_qualified_table_name\" = 'public.external_pull_requests' AND\n  \"loose_foreign_keys_deleted_records\".\"status\" = 1\n  LIMIT 100\n)\n")
   -> 0.0014s
== 20220309084954 RemoveLeftoverExternalPullRequestDeletions: migrated (0.0015s)

Down:

== 20220309084954 RemoveLeftoverExternalPullRequestDeletions: reverting =======
== 20220309084954 RemoveLeftoverExternalPullRequestDeletions: reverted (0.0000s)

== 20220309084838 RemoveExternalPullRequestTracking: reverting ================
-- execute("CREATE TRIGGER external_pull_requests_loose_fk_trigger\nAFTER DELETE ON external_pull_requests REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")
   -> 0.0036s
== 20220309084838 RemoveExternalPullRequestTracking: reverted (0.0037s) =======

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Adam Hegyi

Merge request reports