fix query plans with IDX_instance_host_key
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: hazelnoot and other Sharkey contributors
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class FixIDXInstanceHostKey1748990662839 {
|
||||||
|
async up(queryRunner) {
|
||||||
|
// must include host for index-only scans: https://www.postgresql.org/docs/current/indexes-index-only-scans.html
|
||||||
|
await queryRunner.query(`DROP INDEX "public"."IDX_instance_host_key"`);
|
||||||
|
await queryRunner.query(`
|
||||||
|
create index "IDX_instance_host_key"
|
||||||
|
on "instance" ((lower(reverse("host"::text)) || '.'::text) text_pattern_ops)
|
||||||
|
include ("host")
|
||||||
|
`);
|
||||||
|
await queryRunner.query(`comment on index "IDX_instance_host_key" is 'Expression index for finding instances by base domain'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
async down(queryRunner) {
|
||||||
|
await queryRunner.query(`DROP INDEX "public"."IDX_instance_host_key"`);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_instance_host_key" ON "instance" (((lower(reverse("host")) || '.')::text) text_pattern_ops)`);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user