sequel-impala 1.0.0

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.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +3 -0
  3. data/LICENSE +462 -0
  4. data/README.rdoc +39 -0
  5. data/Rakefile +39 -0
  6. data/lib/driver/commons-logging-1.2.jar +0 -0
  7. data/lib/driver/hadoop-common-2.6.0.jar +0 -0
  8. data/lib/driver/hadoop-core-2.6.0.jar +0 -0
  9. data/lib/driver/hive-exec-1.1.0.jar +0 -0
  10. data/lib/driver/hive-jdbc-1.1.0.jar +0 -0
  11. data/lib/driver/hive-metastore-1.1.0.jar +0 -0
  12. data/lib/driver/hive-service-1.1.0.jar +0 -0
  13. data/lib/driver/httpclient-4.3.jar +0 -0
  14. data/lib/driver/httpcore-4.3.jar +0 -0
  15. data/lib/driver/libfb303-0.9.0.jar +0 -0
  16. data/lib/driver/slf4j-api-1.7.5.jar +0 -0
  17. data/lib/impala.rb +47 -0
  18. data/lib/impala/connection.rb +117 -0
  19. data/lib/impala/cursor.rb +157 -0
  20. data/lib/impala/protocol.rb +8 -0
  21. data/lib/impala/protocol/beeswax_constants.rb +15 -0
  22. data/lib/impala/protocol/beeswax_service.rb +766 -0
  23. data/lib/impala/protocol/beeswax_types.rb +193 -0
  24. data/lib/impala/protocol/cli_service_constants.rb +60 -0
  25. data/lib/impala/protocol/cli_service_types.rb +1452 -0
  26. data/lib/impala/protocol/facebook_service.rb +706 -0
  27. data/lib/impala/protocol/fb303_constants.rb +15 -0
  28. data/lib/impala/protocol/fb303_types.rb +25 -0
  29. data/lib/impala/protocol/hive_metastore_constants.rb +53 -0
  30. data/lib/impala/protocol/hive_metastore_types.rb +698 -0
  31. data/lib/impala/protocol/impala_hive_server2_service.rb +29 -0
  32. data/lib/impala/protocol/impala_service.rb +377 -0
  33. data/lib/impala/protocol/impala_service_constants.rb +13 -0
  34. data/lib/impala/protocol/impala_service_types.rb +90 -0
  35. data/lib/impala/protocol/status_constants.rb +13 -0
  36. data/lib/impala/protocol/status_types.rb +46 -0
  37. data/lib/impala/protocol/t_c_l_i_service.rb +948 -0
  38. data/lib/impala/protocol/thrift_hive_metastore.rb +4707 -0
  39. data/lib/impala/version.rb +3 -0
  40. data/lib/jdbc/hive2.rb +46 -0
  41. data/lib/sequel/adapters/impala.rb +123 -0
  42. data/lib/sequel/adapters/jdbc/hive2.rb +26 -0
  43. data/lib/sequel/adapters/shared/impala.rb +635 -0
  44. data/lib/sequel/extensions/csv_to_parquet.rb +112 -0
  45. data/spec/database_test.rb +56 -0
  46. data/spec/dataset_test.rb +1268 -0
  47. data/spec/files/bad_down_migration/001_create_alt_basic.rb +4 -0
  48. data/spec/files/bad_down_migration/002_create_alt_advanced.rb +4 -0
  49. data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  50. data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +9 -0
  51. data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +3 -0
  52. data/spec/files/bad_up_migration/001_create_alt_basic.rb +4 -0
  53. data/spec/files/bad_up_migration/002_create_alt_advanced.rb +3 -0
  54. data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +9 -0
  55. data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +9 -0
  56. data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +4 -0
  57. data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +9 -0
  58. data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +9 -0
  59. data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  60. data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +9 -0
  61. data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +4 -0
  62. data/spec/files/integer_migrations/001_create_sessions.rb +9 -0
  63. data/spec/files/integer_migrations/002_create_nodes.rb +9 -0
  64. data/spec/files/integer_migrations/003_3_create_users.rb +4 -0
  65. data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +9 -0
  66. data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +9 -0
  67. data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +9 -0
  68. data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +9 -0
  69. data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +4 -0
  70. data/spec/files/reversible_migrations/001_reversible.rb +5 -0
  71. data/spec/files/reversible_migrations/002_reversible.rb +5 -0
  72. data/spec/files/reversible_migrations/003_reversible.rb +5 -0
  73. data/spec/files/reversible_migrations/004_reversible.rb +5 -0
  74. data/spec/files/reversible_migrations/005_reversible.rb +10 -0
  75. data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +9 -0
  76. data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +9 -0
  77. data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +4 -0
  78. data/spec/impala_test.rb +285 -0
  79. data/spec/migrator_test.rb +240 -0
  80. data/spec/plugin_test.rb +91 -0
  81. data/spec/prepared_statement_test.rb +327 -0
  82. data/spec/schema_test.rb +356 -0
  83. data/spec/spec_helper.rb +15 -0
  84. data/spec/timezone_test.rb +86 -0
  85. data/spec/type_test.rb +99 -0
  86. metadata +239 -0
@@ -0,0 +1,99 @@
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper.rb')
2
+
3
+ describe "Supported types" do
4
+ def create_items_table_with_column(name, type, opts={})
5
+ DB.create_table!(:items){column name, type, opts}
6
+ DB[:items]
7
+ end
8
+
9
+ after(:all) do
10
+ DB.drop_table?(:items)
11
+ end
12
+
13
+ it "should support casting correctly" do
14
+ ds = create_items_table_with_column(:number, Integer)
15
+ ds.insert(:number => 1)
16
+ ds.select(Sequel.cast(:number, String).as(:n)).map(:n).must_equal %w'1'
17
+ ds = create_items_table_with_column(:name, String)
18
+ ds.insert(:name=> '1')
19
+ ds.select(Sequel.cast(:name, Integer).as(:n)).map(:n).must_equal [1]
20
+ end
21
+
22
+ it "should support NULL correctly" do
23
+ ds = create_items_table_with_column(:number, Integer)
24
+ ds.insert(:number => nil)
25
+ ds.all.must_equal [{:number=>nil}]
26
+ end
27
+
28
+ it "should support generic integer type" do
29
+ ds = create_items_table_with_column(:number, Integer)
30
+ ds.insert(:number => 2)
31
+ ds.all.must_equal [{:number=>2}]
32
+ end
33
+
34
+ it "should support generic fixnum type" do
35
+ ds = create_items_table_with_column(:number, Fixnum)
36
+ ds.insert(:number => 2)
37
+ ds.all.must_equal [{:number=>2}]
38
+ end
39
+
40
+ it "should support generic bignum type" do
41
+ ds = create_items_table_with_column(:number, Bignum)
42
+ ds.insert(:number => 2**34)
43
+ ds.all.must_equal [{:number=>2**34}]
44
+ end
45
+
46
+ it "should support generic float type" do
47
+ ds = create_items_table_with_column(:number, Float)
48
+ ds.insert(:number => 2.1)
49
+ ds.all.must_equal [{:number=>2.1}]
50
+ end
51
+
52
+ it "should support generic numeric type" do
53
+ ds = create_items_table_with_column(:number, Numeric, :size=>[15, 10])
54
+ ds.insert(:number => BigDecimal.new('2.123456789'))
55
+ ds.all.must_equal [{:number=>BigDecimal.new('2.123456789')}]
56
+ ds = create_items_table_with_column(:number, BigDecimal, :size=>[15, 10])
57
+ ds.insert(:number => BigDecimal.new('2.123456789'))
58
+ ds.all.must_equal [{:number=>BigDecimal.new('2.123456789')}]
59
+ end
60
+
61
+ it "should support generic string type" do
62
+ ds = create_items_table_with_column(:name, String)
63
+ ds.insert(:name => 'Test User')
64
+ ds.all.must_equal [{:name=>'Test User'}]
65
+ end
66
+
67
+ it "should support generic string type with size" do
68
+ ds = create_items_table_with_column(:name, String, :size=>100)
69
+ ds.insert(:name => Sequel.cast('Test User', 'varchar(100)'))
70
+ ds.all.must_equal [{:name=>'Test User'}]
71
+ end
72
+
73
+ it "should support generic datetime type" do
74
+ ds = create_items_table_with_column(:tim, DateTime)
75
+ t = DateTime.now
76
+ ds.insert(:tim => t)
77
+ ds.first[:tim].strftime('%Y%m%d%H%M%S').must_equal t.strftime('%Y%m%d%H%M%S')
78
+ ds = create_items_table_with_column(:tim, Time)
79
+ t = Time.now
80
+ ds.insert(:tim => t)
81
+ ds.first[:tim].strftime('%Y%m%d%H%M%S').must_equal t.strftime('%Y%m%d%H%M%S')
82
+ end
83
+
84
+ it "should support generic date type" do
85
+ ds = create_items_table_with_column(:d, Date)
86
+ t = Date.today
87
+ ds.insert(:d => t)
88
+ ds.first[:d].strftime('%Y%m%d').must_equal t.strftime('%Y%m%d')
89
+ end
90
+
91
+ it "should support generic boolean type" do
92
+ ds = create_items_table_with_column(:number, TrueClass)
93
+ ds.insert(:number => true)
94
+ ds.all.must_equal [{:number=>true}]
95
+ ds = create_items_table_with_column(:number, FalseClass)
96
+ ds.insert(:number => true)
97
+ ds.all.must_equal [{:number=>true}]
98
+ end
99
+ end
metadata ADDED
@@ -0,0 +1,239 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sequel-impala
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Evans
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sequel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thrift
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 5.7.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 5.7.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-hooks
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest-shared_description
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: |
112
+ sequel-impala adds an Impala shared adapter, impala adapter,
113
+ and jdbc/hive2 adapter for connecting to Impala. It includes
114
+ modified versions of the impala and jdbc-hive2 gems that have
115
+ been updated, tested, and optimized.
116
+ email: code@jeremyevans.net
117
+ executables: []
118
+ extensions: []
119
+ extra_rdoc_files:
120
+ - README.rdoc
121
+ - CHANGELOG
122
+ - LICENSE
123
+ files:
124
+ - CHANGELOG
125
+ - LICENSE
126
+ - README.rdoc
127
+ - Rakefile
128
+ - lib/driver/commons-logging-1.2.jar
129
+ - lib/driver/hadoop-common-2.6.0.jar
130
+ - lib/driver/hadoop-core-2.6.0.jar
131
+ - lib/driver/hive-exec-1.1.0.jar
132
+ - lib/driver/hive-jdbc-1.1.0.jar
133
+ - lib/driver/hive-metastore-1.1.0.jar
134
+ - lib/driver/hive-service-1.1.0.jar
135
+ - lib/driver/httpclient-4.3.jar
136
+ - lib/driver/httpcore-4.3.jar
137
+ - lib/driver/libfb303-0.9.0.jar
138
+ - lib/driver/slf4j-api-1.7.5.jar
139
+ - lib/impala.rb
140
+ - lib/impala/connection.rb
141
+ - lib/impala/cursor.rb
142
+ - lib/impala/protocol.rb
143
+ - lib/impala/protocol/beeswax_constants.rb
144
+ - lib/impala/protocol/beeswax_service.rb
145
+ - lib/impala/protocol/beeswax_types.rb
146
+ - lib/impala/protocol/cli_service_constants.rb
147
+ - lib/impala/protocol/cli_service_types.rb
148
+ - lib/impala/protocol/facebook_service.rb
149
+ - lib/impala/protocol/fb303_constants.rb
150
+ - lib/impala/protocol/fb303_types.rb
151
+ - lib/impala/protocol/hive_metastore_constants.rb
152
+ - lib/impala/protocol/hive_metastore_types.rb
153
+ - lib/impala/protocol/impala_hive_server2_service.rb
154
+ - lib/impala/protocol/impala_service.rb
155
+ - lib/impala/protocol/impala_service_constants.rb
156
+ - lib/impala/protocol/impala_service_types.rb
157
+ - lib/impala/protocol/status_constants.rb
158
+ - lib/impala/protocol/status_types.rb
159
+ - lib/impala/protocol/t_c_l_i_service.rb
160
+ - lib/impala/protocol/thrift_hive_metastore.rb
161
+ - lib/impala/version.rb
162
+ - lib/jdbc/hive2.rb
163
+ - lib/sequel/adapters/impala.rb
164
+ - lib/sequel/adapters/jdbc/hive2.rb
165
+ - lib/sequel/adapters/shared/impala.rb
166
+ - lib/sequel/extensions/csv_to_parquet.rb
167
+ - spec/database_test.rb
168
+ - spec/dataset_test.rb
169
+ - spec/files/bad_down_migration/001_create_alt_basic.rb
170
+ - spec/files/bad_down_migration/002_create_alt_advanced.rb
171
+ - spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb
172
+ - spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb
173
+ - spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb
174
+ - spec/files/bad_up_migration/001_create_alt_basic.rb
175
+ - spec/files/bad_up_migration/002_create_alt_advanced.rb
176
+ - spec/files/convert_to_timestamp_migrations/001_create_sessions.rb
177
+ - spec/files/convert_to_timestamp_migrations/002_create_nodes.rb
178
+ - spec/files/convert_to_timestamp_migrations/003_3_create_users.rb
179
+ - spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb
180
+ - spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb
181
+ - spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb
182
+ - spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb
183
+ - spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb
184
+ - spec/files/integer_migrations/001_create_sessions.rb
185
+ - spec/files/integer_migrations/002_create_nodes.rb
186
+ - spec/files/integer_migrations/003_3_create_users.rb
187
+ - spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb
188
+ - spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb
189
+ - spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb
190
+ - spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb
191
+ - spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb
192
+ - spec/files/reversible_migrations/001_reversible.rb
193
+ - spec/files/reversible_migrations/002_reversible.rb
194
+ - spec/files/reversible_migrations/003_reversible.rb
195
+ - spec/files/reversible_migrations/004_reversible.rb
196
+ - spec/files/reversible_migrations/005_reversible.rb
197
+ - spec/files/timestamped_migrations/1273253849_create_sessions.rb
198
+ - spec/files/timestamped_migrations/1273253851_create_nodes.rb
199
+ - spec/files/timestamped_migrations/1273253853_3_create_users.rb
200
+ - spec/impala_test.rb
201
+ - spec/migrator_test.rb
202
+ - spec/plugin_test.rb
203
+ - spec/prepared_statement_test.rb
204
+ - spec/schema_test.rb
205
+ - spec/spec_helper.rb
206
+ - spec/timezone_test.rb
207
+ - spec/type_test.rb
208
+ homepage: http://github.com/jeremyevans/sequel-impala
209
+ licenses:
210
+ - MIT
211
+ metadata: {}
212
+ post_install_message:
213
+ rdoc_options:
214
+ - "--quiet"
215
+ - "--line-numbers"
216
+ - "--inline-source"
217
+ - "--title"
218
+ - 'sequel-impala: Sequel support for Impala database'
219
+ - "--main"
220
+ - README.rdoc
221
+ require_paths:
222
+ - lib
223
+ required_ruby_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ requirements: []
234
+ rubyforge_project:
235
+ rubygems_version: 2.4.5.1
236
+ signing_key:
237
+ specification_version: 4
238
+ summary: Sequel support for Impala database
239
+ test_files: []