masamune 0.13.1 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49fdc180c59d4179763efd965d946c93fb864dcf
4
- data.tar.gz: 0765d61a7a7247c7bb5eb0d70d17c7edb5e5fcf5
3
+ metadata.gz: 8fa6da8799159be2bb3472751c15650fee02f59f
4
+ data.tar.gz: ea974ce24ad0a23c35b74c9d1c7088c7bbce01c3
5
5
  SHA512:
6
- metadata.gz: 7a121d38a8d42a7e0c255ba17e523e1520da7016e0a87d553adcd32c67f6af21eb2ffc81cbcda1123e286fd93cdde8b31177affa30e17314497248d820fea989
7
- data.tar.gz: 93ab83f1f5804d0b3bf25970a665d63f3e7099c43ec6c817e8a04ee30ad3dde348aa4a2515a1a8518e76aeb0150eed04a77cf1a568710f806dbe4582f1502259
6
+ metadata.gz: 2e7b57261f2885aab5bfdbd3d4fa6cfceddeda92dc5d6919d9526107e04da9f99774ca1186a32f11391ef8e4f287ea5c300c0f8f8c3d226f5be1d446ebcbb50f
7
+ data.tar.gz: 1fd79cfc1578985db4d2d64cfc84197f8071497cd351c875aa5b50930263e14a119f095307bea842ea50508ad79bce17acd967dbfba53d60a217c8fc188c1e28
@@ -61,6 +61,6 @@ WHERE
61
61
  ;
62
62
  <%- end -%>
63
63
 
64
- ANALYZE <%= target.name %>;
64
+ VACUUM FULL ANALYZE <%= target.name %>;
65
65
 
66
66
  COMMIT;
@@ -113,7 +113,7 @@ WHERE NOT EXISTS (SELECT 1 FROM <%= target.name %> WHERE <%= row.insert_constrai
113
113
  <%- end -%>
114
114
 
115
115
  <%- if helper.perform_analyze? -%>
116
- ANALYZE <%= target.name %>;
116
+ VACUUM FULL ANALYZE <%= target.name %>;
117
117
  <%- end -%>
118
118
 
119
119
  <%- if helper.define_functions? -%>
@@ -39,7 +39,7 @@ WHERE
39
39
  <%- end -%>
40
40
  ;
41
41
 
42
- ANALYZE <%= target.stage_table.name %>;
42
+ VACUUM FULL ANALYZE <%= target.stage_table.name %>;
43
43
 
44
44
  <%= target.bulk_upsert(target.stage_table, target) %>
45
45
  <%- end -%>
@@ -49,7 +49,7 @@ ALTER TABLE <%= source.name %> RENAME TO <%= target.name %>;
49
49
 
50
50
  <%= render 'define_index.psql.erb', target: target, skip_check_exist: true %>
51
51
 
52
- ANALYZE <%= target.name %>;
52
+ VACUUM FULL ANALYZE <%= target.name %>;
53
53
 
54
54
  COMMIT;
55
55
 
@@ -38,4 +38,4 @@ ON
38
38
  <%- end -%>
39
39
  ;
40
40
 
41
- ANALYZE <%= target.stage_table.name %>;
41
+ VACUUM FULL ANALYZE <%= target.stage_table.name %>;
@@ -73,6 +73,7 @@ module Masamune::Transform
73
73
  next if column.degenerate?
74
74
  dependencies[reference_name] ||= []
75
75
  cross_references = cross_references(column)
76
+
76
77
  coalesce_values = []
77
78
 
78
79
  if cross_references.any?
@@ -80,8 +81,13 @@ module Masamune::Transform
80
81
  coalesce_values << cross_references.map { |reference, column| column.qualified_name(reference.label) }
81
82
  end
82
83
 
83
- if column.reference && !column.reference.default.nil?
84
- coalesce_values << column.reference.default(column.adjacent) if column.adjacent.natural_key
84
+ column.reference.auto_surrogate_keys.each do |auto_surrogate_key|
85
+ next unless auto_surrogate_key.default
86
+ conditions[reference_name] << "#{auto_surrogate_key.qualified_name(reference.label)} = #{auto_surrogate_key.default}"
87
+ end if column.reference
88
+
89
+ if column.reference && !column.reference.default.nil? && column.adjacent.natural_key
90
+ coalesce_values << column.reference.default(column.adjacent)
85
91
  elsif column.adjacent && !column.adjacent.default.nil?
86
92
  coalesce_values << column.adjacent.sql_value(column.adjacent.default)
87
93
  end
@@ -90,11 +96,14 @@ module Masamune::Transform
90
96
  "#{column.foreign_key_name} = COALESCE(#{column.qualified_name}, #{coalesce_values.join(', ')})" :
91
97
  "#{column.foreign_key_name} = #{column.qualified_name}")
92
98
  end
99
+
93
100
  if reference.type == :two || reference.type == :four
94
101
  join_key_a = "TO_TIMESTAMP(#{source.time_key.qualified_name}) BETWEEN #{reference.start_key.qualified_name(reference.label)} AND COALESCE(#{reference.end_key.qualified_name(reference.label)}, 'INFINITY')"
95
102
  join_key_b = "TO_TIMESTAMP(#{source.time_key.qualified_name}) < #{reference.start_key.qualified_name(reference.label)} AND #{reference.version_key.qualified_name(reference.label)} = 1"
96
103
  conditions[reference_name] << "((#{join_key_a}) OR (#{join_key_b}))"
97
104
  end
105
+
106
+ conditions[reference_name].uniq!
98
107
  end
99
108
  conditions.slice(*dependencies.tsort)
100
109
  end
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Masamune
24
- VERSION = '0.13.1'
24
+ VERSION = '0.13.2'
25
25
  end
@@ -127,7 +127,7 @@ describe Masamune::Transform::BulkUpsert do
127
127
  user_dimension.start_at IS NULL
128
128
  ;
129
129
 
130
- ANALYZE user_dimension;
130
+ VACUUM FULL ANALYZE user_dimension;
131
131
 
132
132
  COMMIT;
133
133
  EOS
@@ -193,7 +193,7 @@ describe Masamune::Transform::BulkUpsert do
193
193
  user_dimension_ledger.start_at IS NULL
194
194
  ;
195
195
 
196
- ANALYZE user_dimension_ledger;
196
+ VACUUM FULL ANALYZE user_dimension_ledger;
197
197
 
198
198
  COMMIT;
199
199
  EOS
@@ -198,7 +198,7 @@ describe Masamune::Transform::DefineTable do
198
198
  CREATE INDEX visits_file_fact_stage_0fe2101_index ON visits_file_fact_stage (user_agent_type_version, time_key);
199
199
  CREATE INDEX visits_file_fact_stage_b0abfed_index ON visits_file_fact_stage (user_dimension_user_id, time_key);
200
200
 
201
- ANALYZE visits_file_fact_stage;
201
+ VACUUM FULL ANALYZE visits_file_fact_stage;
202
202
  EOS
203
203
  end
204
204
 
@@ -474,7 +474,7 @@ describe Masamune::Transform::DefineTable do
474
474
  SELECT 'active'
475
475
  WHERE NOT EXISTS (SELECT 1 FROM user_table WHERE name = 'active');
476
476
 
477
- ANALYZE user_table;
477
+ VACUUM FULL ANALYZE user_table;
478
478
  EOS
479
479
  end
480
480
  end
@@ -574,7 +574,7 @@ describe Masamune::Transform::DefineTable do
574
574
  SELECT default_tenant_id(), -2
575
575
  WHERE NOT EXISTS (SELECT 1 FROM user_table WHERE tenant_id = default_tenant_id() AND user_id = -2);
576
576
 
577
- ANALYZE user_table;
577
+ VACUUM FULL ANALYZE user_table;
578
578
 
579
579
  CREATE OR REPLACE FUNCTION default_user_table_user_id()
580
580
  RETURNS INTEGER IMMUTABLE AS $$
@@ -902,7 +902,7 @@ describe Masamune::Transform::DefineTable do
902
902
  ALTER TABLE user_table ADD CONSTRAINT user_table_3854361_key UNIQUE(tenant_id);
903
903
  END IF; END $$;
904
904
 
905
- ANALYZE user_table;
905
+ VACUUM FULL ANALYZE user_table;
906
906
  EOS
907
907
  end
908
908
  end
@@ -937,7 +937,7 @@ describe Masamune::Transform::DefineTable do
937
937
  CREATE INDEX user_table_e8701ad_index ON user_table (user_id);
938
938
  END IF; END $$;
939
939
 
940
- ANALYZE user_table;
940
+ VACUUM FULL ANALYZE user_table;
941
941
  EOS
942
942
  end
943
943
  end
@@ -975,7 +975,7 @@ describe Masamune::Transform::DefineTable do
975
975
  ALTER TABLE user_table ADD CONSTRAINT user_table_bd2027e_fkey FOREIGN KEY (user_account_state_table_id) REFERENCES user_account_state_table(id);
976
976
  END IF; END $$;
977
977
 
978
- ANALYZE user_table;
978
+ VACUUM FULL ANALYZE user_table;
979
979
  EOS
980
980
  end
981
981
  end
@@ -74,7 +74,7 @@ describe Masamune::Transform::InsertReferenceValues do
74
74
  department_type_department_id IS NOT NULL
75
75
  ;
76
76
 
77
- ANALYZE department_type_stage;
77
+ VACUUM FULL ANALYZE department_type_stage;
78
78
 
79
79
  BEGIN;
80
80
  LOCK TABLE department_type IN EXCLUSIVE MODE;
@@ -96,7 +96,7 @@ describe Masamune::Transform::InsertReferenceValues do
96
96
  department_type.department_id IS NULL
97
97
  ;
98
98
 
99
- ANALYZE department_type;
99
+ VACUUM FULL ANALYZE department_type;
100
100
 
101
101
  COMMIT;
102
102
  EOS
@@ -91,7 +91,7 @@ describe Masamune::Transform::InsertReferenceValues do
91
91
  user_agent_type_name IS NOT NULL
92
92
  ;
93
93
 
94
- ANALYZE user_agent_type_stage;
94
+ VACUUM FULL ANALYZE user_agent_type_stage;
95
95
 
96
96
  BEGIN;
97
97
  LOCK TABLE user_agent_type IN EXCLUSIVE MODE;
@@ -113,7 +113,7 @@ describe Masamune::Transform::InsertReferenceValues do
113
113
  user_agent_type.version IS NULL
114
114
  ;
115
115
 
116
- ANALYZE user_agent_type;
116
+ VACUUM FULL ANALYZE user_agent_type;
117
117
 
118
118
  COMMIT;
119
119
 
@@ -129,7 +129,7 @@ describe Masamune::Transform::InsertReferenceValues do
129
129
  feature_type_name IS NOT NULL
130
130
  ;
131
131
 
132
- ANALYZE feature_type_stage;
132
+ VACUUM FULL ANALYZE feature_type_stage;
133
133
 
134
134
  BEGIN;
135
135
  LOCK TABLE feature_type IN EXCLUSIVE MODE;
@@ -148,7 +148,7 @@ describe Masamune::Transform::InsertReferenceValues do
148
148
  feature_type.name IS NULL
149
149
  ;
150
150
 
151
- ANALYZE feature_type;
151
+ VACUUM FULL ANALYZE feature_type;
152
152
 
153
153
  COMMIT;
154
154
  EOS
@@ -172,7 +172,7 @@ describe Masamune::Transform::RollupFact do
172
172
  CREATE INDEX visits_hourly_fact_y2014m08_d8b1c3e_index ON visits_hourly_fact_y2014m08 (user_agent_type_id);
173
173
  CREATE INDEX visits_hourly_fact_y2014m08_39f0fdd_index ON visits_hourly_fact_y2014m08 (user_dimension_id);
174
174
 
175
- ANALYZE visits_hourly_fact_y2014m08;
175
+ VACUUM FULL ANALYZE visits_hourly_fact_y2014m08;
176
176
 
177
177
  COMMIT;
178
178
 
@@ -274,7 +274,7 @@ describe Masamune::Transform::RollupFact do
274
274
  CREATE INDEX visits_daily_fact_y2014m08_d8b1c3e_index ON visits_daily_fact_y2014m08 (user_agent_type_id);
275
275
  CREATE INDEX visits_daily_fact_y2014m08_39f0fdd_index ON visits_daily_fact_y2014m08 (user_dimension_id);
276
276
 
277
- ANALYZE visits_daily_fact_y2014m08;
277
+ VACUUM FULL ANALYZE visits_daily_fact_y2014m08;
278
278
 
279
279
  COMMIT;
280
280
 
@@ -376,7 +376,7 @@ describe Masamune::Transform::RollupFact do
376
376
  CREATE INDEX visits_monthly_fact_y2014m08_d8b1c3e_index ON visits_monthly_fact_y2014m08 (user_agent_type_id);
377
377
  CREATE INDEX visits_monthly_fact_y2014m08_39f0fdd_index ON visits_monthly_fact_y2014m08 (user_dimension_id);
378
378
 
379
- ANALYZE visits_monthly_fact_y2014m08;
379
+ VACUUM FULL ANALYZE visits_monthly_fact_y2014m08;
380
380
 
381
381
  COMMIT;
382
382
 
@@ -110,7 +110,7 @@ describe Masamune::Transform::StageDimension do
110
110
  hr_user_account_state_type.name = user_file_dimension_ledger_stage.hr_user_account_state_type_name
111
111
  ;
112
112
 
113
- ANALYZE user_dimension_ledger_stage;
113
+ VACUUM FULL ANALYZE user_dimension_ledger_stage;
114
114
  EOS
115
115
  end
116
116
  end
@@ -145,28 +145,33 @@ describe Masamune::Transform::StageFact do
145
145
  JOIN
146
146
  user_dimension
147
147
  ON
148
+ user_dimension.cluster_type_id = default_cluster_type_id() AND
148
149
  user_dimension.user_id = visits_hourly_file_fact_stage.user_dimension_user_id AND
149
150
  ((TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) BETWEEN user_dimension.start_at AND COALESCE(user_dimension.end_at, 'INFINITY')) OR (TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) < user_dimension.start_at AND user_dimension.version = 1))
150
151
  JOIN
151
152
  group_dimension AS from_group_dimension
152
153
  ON
154
+ from_group_dimension.cluster_type_id = default_cluster_type_id() AND
153
155
  from_group_dimension.group_id = COALESCE(visits_hourly_file_fact_stage.from_group_dimension_group_id, missing_group_dimension_group_id()) AND
154
156
  from_group_dimension.group_mode = COALESCE(visits_hourly_file_fact_stage.from_group_dimension_group_mode, missing_group_dimension_group_mode()) AND
155
157
  ((TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) BETWEEN from_group_dimension.start_at AND COALESCE(from_group_dimension.end_at, 'INFINITY')) OR (TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) < from_group_dimension.start_at AND from_group_dimension.version = 1))
156
158
  JOIN
157
159
  group_dimension
158
160
  ON
161
+ group_dimension.cluster_type_id = default_cluster_type_id() AND
159
162
  group_dimension.group_id = COALESCE(visits_hourly_file_fact_stage.group_dimension_group_id, missing_group_dimension_group_id()) AND
160
163
  group_dimension.group_mode = COALESCE(visits_hourly_file_fact_stage.group_dimension_group_mode, missing_group_dimension_group_mode()) AND
161
164
  ((TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) BETWEEN group_dimension.start_at AND COALESCE(group_dimension.end_at, 'INFINITY')) OR (TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) < group_dimension.start_at AND group_dimension.version = 1))
162
165
  JOIN
163
166
  tenant_dimension
164
167
  ON
168
+ tenant_dimension.cluster_type_id = default_cluster_type_id() AND
165
169
  tenant_dimension.tenant_id = COALESCE(visits_hourly_file_fact_stage.tenant_dimension_tenant_id, user_dimension.tenant_id, from_group_dimension.tenant_id, group_dimension.tenant_id) AND
166
170
  ((TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) BETWEEN tenant_dimension.start_at AND COALESCE(tenant_dimension.end_at, 'INFINITY')) OR (TO_TIMESTAMP(visits_hourly_file_fact_stage.time_key) < tenant_dimension.start_at AND tenant_dimension.version = 1))
167
171
  JOIN
168
172
  user_agent_type
169
173
  ON
174
+ user_agent_type.cluster_type_id = default_cluster_type_id() AND
170
175
  user_agent_type.name = visits_hourly_file_fact_stage.user_agent_type_name AND
171
176
  user_agent_type.version = COALESCE(visits_hourly_file_fact_stage.user_agent_type_version, 'Unknown') AND
172
177
  user_agent_type.mobile = COALESCE(visits_hourly_file_fact_stage.user_agent_type_mobile, FALSE)
@@ -232,7 +237,7 @@ describe Masamune::Transform::StageFact do
232
237
  CREATE INDEX visits_hourly_fact_y2014m08_d8b1c3e_index ON visits_hourly_fact_y2014m08 (user_agent_type_id);
233
238
  CREATE INDEX visits_hourly_fact_y2014m08_39f0fdd_index ON visits_hourly_fact_y2014m08 (user_dimension_id);
234
239
 
235
- ANALYZE visits_hourly_fact_y2014m08;
240
+ VACUUM FULL ANALYZE visits_hourly_fact_y2014m08;
236
241
 
237
242
  COMMIT;
238
243
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: masamune
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Andrews
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-28 00:00:00.000000000 Z
11
+ date: 2015-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor