From 64be52844e679d205d959ea06d50c44366c39097 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 23 May 2022 19:10:25 +0100 Subject: Partition the package_derivations_by_guix_revision_range table And create a proper git_branches table in the process. I'm hoping this will help with slow deletions from the package_derivations_by_guix_revision_range table in the case where there are lots of branches, since it'll separate the data for one branch from another. These migrations will remove the existing data, so rebuild-package-derivations-table will currently need manually running to regenerate it. --- tests/model-git-branch.scm | 30 ++++---------------------- tests/model-git-commit.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 26 deletions(-) create mode 100644 tests/model-git-commit.scm (limited to 'tests') diff --git a/tests/model-git-branch.scm b/tests/model-git-branch.scm index 46412bc..1bcc1c3 100644 --- a/tests/model-git-branch.scm +++ b/tests/model-git-branch.scm @@ -17,32 +17,10 @@ conn (lambda (conn) (let* ((url "test-url") - (id (git-repository-url->git-repository-id conn url))) - (insert-git-branch-entry conn - "master" - "test-commit" - id - (current-date))) - #t) - #:always-rollback? #t)) - - (test-assert "insert-git-branch-entry works twice" - (with-postgresql-transaction - conn - (lambda (conn) - (let* ((url "test-url") - (id (git-repository-url->git-repository-id conn url))) - (insert-git-branch-entry conn - "master" - "test-commit" - id - (current-date)) - (insert-git-branch-entry conn - "master" - "test-commit" - id - (current-date))) - #t) + (git-repository-id + (git-repository-url->git-repository-id conn url))) + (insert-git-branch-entry conn git-repository-id "master") + #t)) #:always-rollback? #t)))) (test-end) diff --git a/tests/model-git-commit.scm b/tests/model-git-commit.scm new file mode 100644 index 0000000..b8bc3d8 --- /dev/null +++ b/tests/model-git-commit.scm @@ -0,0 +1,52 @@ +(define-module (test-model-git-commit) + #:use-module (srfi srfi-19) + #:use-module (srfi srfi-64) + #:use-module (guix-data-service database) + #:use-module (guix-data-service model git-repository) + #:use-module (guix-data-service model git-branch) + #:use-module (guix-data-service model git-commit)) + +(test-begin "test-model-git-commit") + +(with-postgresql-connection + "test-module-git-commit" + (lambda (conn) + (check-test-database! conn) + + (test-assert "insert-git-commit-entry works" + (with-postgresql-transaction + conn + (lambda (conn) + (let* ((url "test-url") + (git-repository-id + (git-repository-url->git-repository-id conn url)) + (git-branch-id + (insert-git-branch-entry conn git-repository-id "master"))) + (insert-git-commit-entry conn + git-branch-id + "test-commit" + (current-date))) + #t) + #:always-rollback? #t)) + + (test-assert "insert-git-commit-entry works twice" + (with-postgresql-transaction + conn + (lambda (conn) + (let* ((url "test-url") + (git-repository-id + (git-repository-url->git-repository-id conn url)) + (git-branch-id + (insert-git-branch-entry conn git-repository-id "master"))) + (insert-git-commit-entry conn + git-branch-id + "test-commit" + (current-date)) + (insert-git-commit-entry conn + git-branch-id + "test-commit" + (current-date))) + #t) + #:always-rollback? #t)))) + +(test-end) -- cgit v1.2.3