myreplicator 1.1.46 → 1.1.47

Sign up to get free protection for your applications and to get access to all the features.
@@ -86,38 +86,42 @@ module Myreplicator
86
86
  @file_name ||= "#{source_schema}_#{table_name}_#{Time.now.to_i}.tsv"
87
87
  end
88
88
 
89
- def destination_max_incremental_value
90
- sql = SqlCommands.max_value_sql(:incremental_col => self.incremental_column,
91
- :max_incremental_value => self.max_incremental_value,
92
- :db => self.destination_schema,
93
- :table => self.table_name)
94
- puts sql
89
+ def destination_max_incremental_value
95
90
  if self.export_to == 'vertica'
91
+ sql = SqlCommands.max_value_vsql(:incremental_col => self.incremental_column,
92
+ :max_incremental_value => self.max_incremental_value,
93
+ :db => self.destination_schema,
94
+ :incremental_col_type => self.incremental_column_type,
95
+ :table => self.table_name)
96
+ puts sql
96
97
  begin
97
98
  result = Myreplicator::DB.exec_sql('vertica',sql)
98
- if result.rows.first[:COALESCE].blank?
99
+ if result.rows.first[:max].blank?
99
100
  return "0"
100
101
  else
101
- case result.rows.first[:COALESCE].class.to_s
102
+ case result.rows.first[:max].class.to_s
102
103
  when "DateTime"
103
- return result.rows.first[:COALESCE].strftime('%Y-%m-%d %H:%M:%S')
104
+ return result.rows.first[:max].strftime('%Y-%m-%d %H:%M:%S')
104
105
  else
105
- return result.rows.first[:COALESCE].to_s
106
+ return result.rows.first[:max].to_s
106
107
  end
107
108
  end
108
109
  rescue Exception => e
109
110
  puts "Vertica Table Not Existed"
110
111
  end
111
112
  else
112
- result = Myreplicator::DB.exec_sql(self.destination_schema,sql)
113
- if result.first.nil?
114
- return ""
115
- else
116
- case result.first.first.class.to_s
117
- when "Symbol", "Fixnum"
118
- return result.first.first.to_s
113
+ begin
114
+ sql = SqlCommands.max_value_sql(:incremental_col => self.incremental_column,
115
+ :max_incremental_value => self.max_incremental_value,
116
+ :db => self.source_schema,
117
+ :incremental_col_type => self.incremental_column_type,
118
+ :table => self.table_name)
119
+ puts sql
120
+ result = Myreplicator::DB.exec_sql(self.destination_schema,sql)
121
+ if result.first.nil?
122
+ return "0"
119
123
  else
120
- return result.first.first.to_s(:db)
124
+ return result.first.first
121
125
  end
122
126
  end
123
127
  end
@@ -128,17 +132,12 @@ module Myreplicator
128
132
  sql = SqlCommands.max_value_sql(:incremental_col => self.incremental_column,
129
133
  :max_incremental_value => self.max_incremental_value,
130
134
  :db => self.source_schema,
135
+ :incremental_col_type => self.incremental_column_type,
131
136
  :table => self.table_name)
132
137
  result = exec_on_source(sql)
133
138
  if result.first.nil?
134
- return ""
139
+ return "0"
135
140
  else
136
- #case result.first.first.class.to_s
137
- #when "Symbol", "Fixnum"
138
- # return result.first.first.to_s
139
- #else
140
- # return result.first.first.to_s(:db)
141
- #end
142
141
  return result.first.first
143
142
  end
144
143
  end
@@ -172,7 +171,8 @@ module Myreplicator
172
171
  ##
173
172
  def connection_factory type
174
173
  config = Myreplicator.configs[self.source_schema]
175
-
174
+ puts self.source_schema
175
+ puts config
176
176
  case type
177
177
  when :ssh
178
178
  if config.has_key? "ssh_password"
@@ -237,6 +237,10 @@ module Myreplicator
237
237
  sql = ""
238
238
 
239
239
  if options[:incremental_col]
240
+
241
+ if options[:incremental_col_type] == "datetime" && options[:max_incremental_value] == '0'
242
+ options[:max_incremental_value] = "1900-01-01 00:00:00"
243
+ end
240
244
  sql = "SELECT COALESCE(max(#{options[:incremental_col]}),'#{options[:max_incremental_value]}') FROM #{options[:db]}.#{options[:table]}"
241
245
  else
242
246
  raise Myreplicator::Exceptions::MissingArgs.new("Missing Incremental Column Parameter")
@@ -244,6 +248,19 @@ module Myreplicator
244
248
 
245
249
  return sql
246
250
  end
247
-
251
+
252
+ def self.max_value_vsql *args
253
+ options = args.extract_options!
254
+ sql = ""
255
+
256
+ if options[:incremental_col]
257
+ sql = "SELECT max(#{options[:incremental_col]}) FROM #{options[:db]}.#{options[:table]}"
258
+ else
259
+ raise Myreplicator::Exceptions::MissingArgs.new("Missing Incremental Column Parameter")
260
+ end
261
+
262
+ return sql
263
+ end
264
+
248
265
  end
249
266
  end
@@ -1,3 +1,3 @@
1
1
  module Myreplicator
2
- VERSION = "1.1.46"
2
+ VERSION = "1.1.47"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myreplicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.46
4
+ version: 1.1.47
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-06 00:00:00.000000000 Z
12
+ date: 2013-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -352,7 +352,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
352
352
  version: '0'
353
353
  segments:
354
354
  - 0
355
- hash: 3606855221214584877
355
+ hash: 3374412953550352773
356
356
  required_rubygems_version: !ruby/object:Gem::Requirement
357
357
  none: false
358
358
  requirements:
@@ -361,7 +361,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
361
361
  version: '0'
362
362
  segments:
363
363
  - 0
364
- hash: 3606855221214584877
364
+ hash: 3374412953550352773
365
365
  requirements: []
366
366
  rubyforge_project:
367
367
  rubygems_version: 1.8.24