Change a package_descriptions index to use MD5 of the description

To avoid the index data being too large.

This was first seen in guix commit 1bb4fd64b7bbe5a17eda6f0ca8105283c038f7c8:

  psql-query-error (fatal-error PGRES_FATAL_ERROR ERROR: index row size 2808
  exceeds maximum 2712 for index "package_descriptions_locale_description_key"
  HINT: Values larger than 1/3 of a buffer page cannot be indexed.
This commit is contained in:
Christopher Baines 2020-08-23 14:40:17 +01:00
parent 599c621b88
commit c7048abe31
4 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,11 @@
-- Deploy guix-data-service:change_package_descriptions_index to pg
BEGIN;
ALTER TABLE package_descriptions DROP CONSTRAINT
package_descriptions_locale_description_key;
CREATE UNIQUE INDEX package_descriptions_locale_description_key
ON package_descriptions USING btree (locale, MD5(description));
COMMIT;

View File

@ -0,0 +1,7 @@
-- Revert guix-data-service:change_package_descriptions_index from pg
BEGIN;
-- XXX Add DDLs here.
COMMIT;

View File

@ -67,3 +67,4 @@ build_status_add_unique_index 2020-06-30T17:19:30Z Christopher Baines <mail@cbai
builds_remove_build_server_id_derivation_unique_constraint 2020-06-30T20:17:48Z Christopher Baines <mail@cbaines.net> # Allow multiple builds of the same derivation per build server
derivation_output_details_sets_derivation_output_details_ids_index 2020-07-04T07:56:49Z Christopher Baines <mail@cbaines.net> # Add GIN index on derivation_output_details_ids
add-tsvectors-per-locale 2020-07-16T18:19:44Z daniela <daniela@linux-ijv5> # Add tsvectors per locale
change_package_descriptions_index 2020-08-23T11:56:00Z Christopher Baines <mail@cbaines.net> # Change the package_descriptions index

View File

@ -0,0 +1,7 @@
-- Verify guix-data-service:change_package_descriptions_index on pg
BEGIN;
-- XXX Add verifications here.
ROLLBACK;