Skip to content

Commit 8684627

Browse files
committed
feat: optimise latest_pact_publications_by_consumer_versions
1 parent b4b0324 commit 8684627

4 files changed

+34
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def latest_pact_publications_by_consumer_versions_v2(connection = nil)
2+
"select app.*
3+
from latest_pact_publication_ids_for_consumer_versions lpp
4+
inner join all_pact_publications app
5+
on lpp.consumer_version_id = app.consumer_version_id
6+
and lpp.pact_publication_id = app.id
7+
and lpp.provider_id = app.provider_id"
8+
end
9+
10+
# Don't need all the join keys, just pact_publication_id
11+
def latest_pact_publications_by_consumer_versions_v3(connection)
12+
"select app.*
13+
from latest_pact_publication_ids_for_consumer_versions lpp
14+
inner join all_pact_publications app
15+
on lpp.pact_publication_id = app.id"
16+
end

db/migrations/000028_create_all_pact_publications.rb

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
# Latest pact_publication (revision) for each provider/consumer version
2525
# updated in 20180519_recreate_views.rb
26+
# latest_pact_publications_by_consumer_versions_v1
2627
create_view(:latest_pact_publications_by_consumer_versions,
2728
"select app.*
2829
from all_pact_publications app

db/migrations/20180722_recreate_views.rb

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1+
require_relative '../ddl_statements'
2+
13
Sequel.migration do
24
up do
35
# Latest pact_publication details for each provider/consumer version
46
create_or_replace_view(:latest_pact_publications_by_consumer_versions,
5-
"select app.*
6-
from latest_pact_publication_ids_for_consumer_versions lpp
7-
inner join all_pact_publications app
8-
on lpp.consumer_version_id = app.consumer_version_id
9-
and lpp.pact_publication_id = app.id
10-
and lpp.provider_id = app.provider_id"
11-
)
7+
latest_pact_publications_by_consumer_versions_v2(self))
128

139
# Latest consumer version order for consumer/provider
1410
# Recreate latest_pact_publication_ids_for_consumer_versions view
@@ -17,6 +13,7 @@
1713

1814
down do
1915
# Latest pact_publication details for each provider/consumer version
16+
# latest_pact_publications_by_consumer_versions_v1
2017
create_or_replace_view(:latest_pact_publications_by_consumer_versions,
2118
"select app.*
2219
from all_pact_publications app
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_pact_publications_by_consumer_versions,
6+
latest_pact_publications_by_consumer_versions_v3(self))
7+
end
8+
9+
down do
10+
create_or_replace_view(:latest_pact_publications_by_consumer_versions,
11+
latest_pact_publications_by_consumer_versions_v2(self))
12+
end
13+
end

0 commit comments

Comments
 (0)