masamune 0.13.1 → 0.13.2

Sign up to get free protection for your applications and to get access to all the features.
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