Skip to content

Commit 718b09a

Browse files
committed
one dimensions merge now
1 parent a6d2076 commit 718b09a

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

lib/manifold/terraform/workspace_configuration.rb

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,36 +68,32 @@ def table_config
6868
def routine_config
6969
return nil if @vectors.empty? || @merge_config.nil?
7070

71-
routines = @vectors.map { |vector| build_routine(vector) }
72-
routines.to_h
73-
end
74-
75-
def build_routine(vector)
76-
routine_name = "merge_#{vector["name"].downcase}_dimensions"
77-
[routine_name, routine_attributes(routine_name, vector)]
71+
{
72+
"merge_dimensions" => routine_attributes
73+
}
7874
end
7975

80-
def routine_attributes(routine_name, vector)
76+
def routine_attributes
8177
{
8278
"dataset_id" => name,
8379
"project" => "${var.project_id}",
84-
"routine_id" => routine_name,
80+
"routine_id" => "merge_dimensions",
8581
"routine_type" => "PROCEDURE",
8682
"language" => "SQL",
87-
"definition_body" => merge_routine_definition(vector),
83+
"definition_body" => merge_routine_definition,
8884
"depends_on" => ["google_bigquery_dataset.#{name}"]
8985
}
9086
end
9187

92-
def merge_routine_definition(vector)
88+
def merge_routine_definition
9389
source_sql = read_source_sql(@merge_config["source"])
9490
<<~SQL
9591
MERGE #{name}.Dimensions AS TARGET
9692
USING (
9793
#{source_sql}
9894
) AS source
9995
ON source.id = target.id
100-
WHEN MATCHED THEN UPDATE SET target.#{vector["name"].downcase} = source.dimensions
96+
WHEN MATCHED THEN UPDATE SET target.dimensions = source.dimensions
10197
WHEN NOT MATCHED THEN INSERT ROW;
10298
SQL
10399
end

spec/manifold/terraform/workspace_configuration_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
it "includes routine configuration" do
4242
expect(json["resource"]["google_bigquery_routine"]).to include(
43-
"merge_page_dimensions" => expected_routine_config
43+
"merge_dimensions" => expected_routine_config
4444
)
4545
end
4646
end
@@ -75,7 +75,7 @@ def expected_routine_config
7575
{
7676
"dataset_id" => name,
7777
"project" => "${var.project_id}",
78-
"routine_id" => "merge_page_dimensions",
78+
"routine_id" => "merge_dimensions",
7979
"routine_type" => "PROCEDURE",
8080
"language" => "SQL",
8181
"definition_body" => expected_merge_routine,
@@ -90,7 +90,7 @@ def expected_merge_routine
9090
#{source_sql}
9191
) AS source
9292
ON source.id = target.id
93-
WHEN MATCHED THEN UPDATE SET target.page = source.dimensions
93+
WHEN MATCHED THEN UPDATE SET target.dimensions = source.dimensions
9494
WHEN NOT MATCHED THEN INSERT ROW;
9595
SQL
9696
end

0 commit comments

Comments
 (0)