diff --git a/docs/schema-upgrade-1.30-1.31.sql b/docs/schema-upgrade-1.30-1.31.sql index 2d311f4f..eee9e74a 100644 --- a/docs/schema-upgrade-1.30-1.31.sql +++ b/docs/schema-upgrade-1.30-1.31.sql @@ -2,6 +2,16 @@ -- from version 1.30 to 1.31 BEGIN; - -- index for default search method for rpms - CREATE INDEX rpminfo_filename ON rpminfo((name || '-' || version || '-' || release || '.' || arch || '.rpm')) INCLUDE (id); + -- index for default search method for rpms, PG11+ can benefit from new include method + DO $$ + DECLARE version integer; + BEGIN + SELECT current_setting('server_version_num')::integer INTO version; + IF version >= 110000 THEN + EXECUTE 'CREATE INDEX rpminfo_filename ON rpminfo((name || ''-'' || version || ''-'' || release || ''.'' || arch || ''.rpm'')) INCLUDE (id);'; + ELSE + EXECUTE 'CREATE INDEX rpminfo_filename ON rpminfo((name || ''-'' || version || ''-'' || release || ''.'' || arch || ''.rpm''));'; + END IF; + END + $$; COMMIT; diff --git a/docs/schema.sql b/docs/schema.sql index 39b78931..c2ea6950 100644 --- a/docs/schema.sql +++ b/docs/schema.sql @@ -734,7 +734,18 @@ CREATE TABLE rpminfo ( CONSTRAINT rpminfo_unique_nvra UNIQUE (name,version,release,arch,external_repo_id) ) WITHOUT OIDS; CREATE INDEX rpminfo_build ON rpminfo(build_id); -CREATE INDEX rpminfo_filename ON rpminfo((name || '-' || version || '-' || release || '.' || arch || '.rpm')) INCLUDE (id); +-- index for default search method for rpms, PG11+ can benefit from new include method +DO $$ + DECLARE version integer; + BEGIN + SELECT current_setting('server_version_num')::integer INTO version; + IF version >= 110000 THEN + EXECUTE 'CREATE INDEX rpminfo_filename ON rpminfo((name || ''-'' || version || ''-'' || release || ''.'' || arch || ''.rpm'')) INCLUDE (id);'; + ELSE + EXECUTE 'CREATE INDEX rpminfo_filename ON rpminfo((name || ''-'' || version || ''-'' || release || ''.'' || arch || ''.rpm''));'; + END IF; + END +$$; -- sighash is the checksum of the signature header CREATE TABLE rpmsigs (