flydata 0.1.7 → 0.1.8

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.
@@ -0,0 +1,54 @@
1
+ require_relative '../../../spec_helper'
2
+
3
+ module Mysql
4
+ describe AlterTableAddColumnParser do
5
+ describe '#parse' do
6
+ let(:query) { "" }
7
+ subject { AlterTableAddColumnParser.new.parse(query) }
8
+
9
+ context 'with normal alter table query' do
10
+ let(:query) { "alter table test_table add column value varchar(26)" }
11
+ it do
12
+ expect(subject).to eq([{
13
+ :subtype => :add_column,
14
+ :table_name => "test_table",
15
+ :column => {
16
+ :name => "value",
17
+ :type => "varchar(78)"
18
+ }
19
+ }])
20
+ end
21
+ end
22
+
23
+ context 'with after option' do
24
+ let(:query) { "alter table test_table add column value varchar(26) after id" }
25
+ it do
26
+ expect(subject).to eq([{
27
+ :subtype => :add_column,
28
+ :table_name => "test_table",
29
+ :column => {
30
+ :name => "value",
31
+ :type => "varchar(78)",
32
+ :after => "id"
33
+ }
34
+ }])
35
+ end
36
+ end
37
+
38
+ context 'with first option' do
39
+ let(:query) { "alter table test_table add column value varchar(26) first" }
40
+ it do
41
+ expect(subject).to eq([{
42
+ :subtype => :add_column,
43
+ :table_name => "test_table",
44
+ :column => {
45
+ :name => "value",
46
+ :type => "varchar(78)",
47
+ :position => :first
48
+ }
49
+ }])
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -34,7 +34,7 @@ describe MysqlTableDef do
34
34
  {:name=>"col_binary", :type=>"binary(100)", :default=>nil},
35
35
  {:name=>"col_blob", :type=>"varbinary"},
36
36
  {:name=>"col_bool", :type=>"int1(1)", :default=>"0"},
37
- {:name=>"col_char", :type=>"varchar(6)", :default=>nil},
37
+ {:name=>"col_char", :type=>"varchar(18)", :default=>nil},
38
38
  {:name=>"col_date", :type=>"date", :default=>nil},
39
39
  {:name=>"col_datetime", :type=>"datetime", :default=>nil},
40
40
  {:name=>"col_decimal", :type=>"numeric(5,2)", :default=>nil},
@@ -56,7 +56,7 @@ describe MysqlTableDef do
56
56
  {:name=>"col_tinyint", :type=>"int1(4)", :default=>nil},
57
57
  {:name=>"col_tinytext", :type=>"text"},
58
58
  {:name=>"col_varbinary", :type=>"varbinary(255)", :default=>nil},
59
- {:name=>"col_varchar", :type=>"varchar(124)", :default=>nil}
59
+ {:name=>"col_varchar", :type=>"varchar(372)", :default=>nil}
60
60
  ]
61
61
  )
62
62
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ require 'flydata/table_def'
3
+
4
+ module Flydata
5
+ module TableDef
6
+
7
+ describe RedshiftTableDef do
8
+
9
+ describe '.column_def_sql' do
10
+ let(:column) { {} }
11
+ subject { described_class.column_def_sql(column) }
12
+
13
+ context 'with varchar column def' do
14
+ context 'when size is smaller than max size' do
15
+ let(:column) { {:name=>"col_char", :type=>"varchar(18)", :default=>nil} }
16
+ it do
17
+ expect(subject).to eq(' "col_char" varchar(18) DEFAULT NULL')
18
+ end
19
+ end
20
+
21
+ context 'when size exceeds varchar max size' do
22
+ let(:column) { {:name=>"col_char", :type=>"varchar(1000000000)", :default=>nil} }
23
+ it do
24
+ expect(subject).to eq(' "col_char" varchar(65535) DEFAULT NULL')
25
+ end
26
+ end
27
+
28
+ context 'when size is max size' do
29
+ let(:column) { {:name=>"col_char", :type=>"varchar(max)", :default=>nil} }
30
+ it do
31
+ expect(subject).to eq(' "col_char" varchar(max) DEFAULT NULL')
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flydata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
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: 2014-06-01 00:00:00.000000000 Z
12
+ date: 2014-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -343,6 +343,15 @@ files:
343
343
  - lib/flydata/credentials.rb
344
344
  - lib/flydata/cron.rb
345
345
  - lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb
346
+ - lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
347
+ - lib/flydata/fluent-plugins/mysql/binlog_position.rb
348
+ - lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
349
+ - lib/flydata/fluent-plugins/mysql/binlog_query_handler.rb
350
+ - lib/flydata/fluent-plugins/mysql/binlog_record_dispatcher.rb
351
+ - lib/flydata/fluent-plugins/mysql/binlog_record_handler.rb
352
+ - lib/flydata/fluent-plugins/mysql/context.rb
353
+ - lib/flydata/fluent-plugins/mysql/dml_record_handler.rb
354
+ - lib/flydata/fluent-plugins/mysql/query_parser.rb
346
355
  - lib/flydata/fluent-plugins/out_forward_ssl.rb
347
356
  - lib/flydata/fluent-plugins/preference.rb
348
357
  - lib/flydata/flydata_crontab.sh
@@ -364,6 +373,8 @@ files:
364
373
  - spec/flydata/command/sender_spec.rb
365
374
  - spec/flydata/command/sync_spec.rb
366
375
  - spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb
376
+ - spec/flydata/fluent-plugins/mysql/binlog_position_spec.rb
377
+ - spec/flydata/fluent-plugins/mysql/query_parser_spec.rb
367
378
  - spec/flydata/heroku_spec.rb
368
379
  - spec/flydata/table_def/mysql_table_def_spec.rb
369
380
  - spec/flydata/table_def/mysqldump_test_foreign_key.dump
@@ -372,6 +383,7 @@ files:
372
383
  - spec/flydata/table_def/mysqldump_test_table_enum.dump
373
384
  - spec/flydata/table_def/mysqldump_test_table_multi_pk.dump
374
385
  - spec/flydata/table_def/mysqldump_test_table_no_pk.dump
386
+ - spec/flydata/table_def/redshift_table_def_spec.rb
375
387
  - spec/flydata/util/encryptor_spec.rb
376
388
  - spec/flydata_spec.rb
377
389
  - spec/spec_helper.rb
@@ -391,7 +403,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
391
403
  version: '0'
392
404
  segments:
393
405
  - 0
394
- hash: 4300353101989721136
406
+ hash: 1038365382785755967
395
407
  required_rubygems_version: !ruby/object:Gem::Requirement
396
408
  none: false
397
409
  requirements:
@@ -400,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
412
  version: '0'
401
413
  requirements: []
402
414
  rubyforge_project:
403
- rubygems_version: 1.8.24
415
+ rubygems_version: 1.8.23
404
416
  signing_key:
405
417
  specification_version: 3
406
418
  summary: FlyData CLI