Optimizes search by avoiding usage of COALESCE for filtering searches
This commit is contained in:
4
IDHANMigration/src/100-active_tag_mappings.sql
Normal file
4
IDHANMigration/src/100-active_tag_mappings.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
CREATE INDEX ON active_tag_mappings (tag_id) INCLUDE (record_id) WHERE ideal_tag_id IS NULL;
|
||||
CREATE INDEX ON active_tag_mappings (ideal_tag_id) INCLUDE (record_id) WHERE ideal_tag_id IS NOT NULL;
|
||||
|
||||
CREATE INDEX ON active_tag_mappings_parents (tag_id) INCLUDE (record_id);
|
||||
1
IDHANMigration/src/101-file_info.sql
Normal file
1
IDHANMigration/src/101-file_info.sql
Normal file
@@ -0,0 +1 @@
|
||||
DROP INDEX file_info_record_id_idx; -- Not needed because file_info_pkey exists
|
||||
@@ -28,14 +28,14 @@ std::string SearchBuilder::construct(
|
||||
}
|
||||
|
||||
constexpr std::string_view domain_filter_template {
|
||||
"filter_{0} AS (SELECT record_id FROM active_tag_mappings WHERE effective_tag_id = {1} AND tag_domain_id = "
|
||||
"ANY($1) UNION DISTINCT SELECT record_id FROM active_tag_mappings_parents WHERE tag_id = {1} AND tag_domain_id "
|
||||
"= ANY($1))"
|
||||
"filter_{0} AS ( SELECT DISTINCT record_id FROM active_tag_mappings WHERE tag_id = {1} AND ideal_tag_id IS NULL AND tag_domain_id = ANY($1) UNION DISTINCT SELECT DISTINCT record_id FROM active_tag_mappings WHERE ideal_tag_id = {1} AND tag_domain_id = ANY($1) UNION DISTINCT SELECT DISTINCT record_id FROM active_tag_mappings_parents WHERE tag_id = {1} AND tag_domain_id = ANY($1) )"
|
||||
// "filter_{0} AS (SELECT record_id FROM active_tag_mappings WHERE ideal_tag_id IS NULL AND tag_id = {1} AND tag_domain_id = "
|
||||
// "ANY($1) UNION DISTINCT SELECT record_id FROM active_tag_mappings_parents WHERE tag_id = {1} AND tag_domain_id "
|
||||
// "= ANY($1))"
|
||||
};
|
||||
|
||||
constexpr std::string_view domainless_filter_template {
|
||||
"filter_{0} AS (SELECT record_id FROM active_tag_mappings WHERE effective_tag_id = {1} UNION DISTINCT SELECT "
|
||||
"record_id FROM active_tag_mappings_parents WHERE tag_id = {1})"
|
||||
"filter_{0} AS ( SELECT DISTINCT record_id FROM active_tag_mappings WHERE tag_id = {1} AND ideal_tag_id IS NULL UNION DISTINCT SELECT DISTINCT record_id FROM active_tag_mappings WHERE ideal_tag_id = {1} UNION DISTINCT SELECT DISTINCT record_id FROM active_tag_mappings_parents WHERE tag_id = {1} )"
|
||||
};
|
||||
|
||||
m_bind_domains = filter_domains;
|
||||
|
||||
Reference in New Issue
Block a user