implications: refactor calculation of implied tags.

Refactor to use a recursive CTE to calculate implied tags in SQL, rather
than storing them in a descendant_names field. This avoids the
complexity of keeping the stored field up to date. It's also more
flexible, since it allows us to find both descendant tags (tags that
imply a given tag) as well as ancestor tags (tags that are implied by a
given tag).
This commit is contained in:
evazion
2020-02-22 22:12:49 -06:00
parent 83a3ed85dd
commit a8e5412d9c
7 changed files with 66 additions and 135 deletions

View File

@@ -63,6 +63,9 @@ GEM
activerecord (6.0.2.1)
activemodel (= 6.0.2.1)
activesupport (= 6.0.2.1)
activerecord-hierarchical_query (1.2.3)
activerecord (>= 5.0, < 6.1)
pg (>= 0.21, < 1.3)
activestorage (6.0.2.1)
actionpack (= 6.0.2.1)
activejob (= 6.0.2.1)
@@ -402,6 +405,7 @@ PLATFORMS
DEPENDENCIES
activemodel-serializers-xml
activerecord-hierarchical_query
addressable
awesome_print
aws-sdk-sqs (~> 1)
@@ -473,4 +477,4 @@ DEPENDENCIES
whenever
BUNDLED WITH
2.0.2
2.1.2