Skip to content

Commit 9e84ce7

Browse files
committed
feat: optimise latest_verification_ids_for_consumer_version_tags
1 parent a3ea6fc commit 9e84ce7

4 files changed

+31
-0
lines changed

db/ddl_statements/latest_pact_consumer_version_orders.rb

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# The consumer id, provider id, and consumer version order
2+
# for the latest consumer version that has a pact with that provider.
3+
14
def latest_pact_consumer_version_orders_v1(connection = nil)
25
"select provider_id, consumer_id, max(consumer_version_order) as latest_consumer_version_order
36
from all_pact_publications

db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb

+15
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,18 @@
3636
join versions pv
3737
on v.provider_version_id = pv.id
3838
group by pv.pacticipant_id, lpp.consumer_id, t.name"
39+
40+
LATEST_VERIFICATION_IDS_FOR_CONSUMER_VERSION_TAGS_V3 = "select
41+
pv.pacticipant_id as provider_id,
42+
lpp.consumer_id,
43+
t.name as consumer_version_tag_name,
44+
max(v.id) as latest_verification_id
45+
from verifications v
46+
join latest_pact_publication_ids_for_consumer_versions lpp
47+
on v.pact_version_id = lpp.pact_version_id
48+
join tags t
49+
on lpp.consumer_version_id = t.version_id
50+
join versions pv
51+
on v.provider_version_id = pv.id
52+
where v.id in (select latest_verification_id from latest_verification_ids_for_pact_versions)
53+
group by pv.pacticipant_id, lpp.consumer_id, t.name"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require_relative '../ddl_statements'
2+
3+
Sequel.migration do
4+
up do
5+
create_or_replace_view(:latest_verification_ids_for_consumer_version_tags,
6+
LATEST_VERIFICATION_IDS_FOR_CONSUMER_VERSION_TAGS_V3)
7+
end
8+
9+
down do
10+
create_or_replace_view(:latest_verification_ids_for_consumer_version_tags,
11+
LATEST_VERIFICATION_IDS_FOR_CONSUMER_VERSION_TAGS_V2)
12+
end
13+
end

0 commit comments

Comments
 (0)