activerecord-jdbcas400-adapter 1.3.17 → 1.3.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/arjdbc/as400/adapter.rb +23 -6
- data/test/adapter_test.rb +17 -0
- data/test/test_helper.rb +2 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7c9181a3a661ce9e1b9264e06b22c26ac9cbf40
|
4
|
+
data.tar.gz: 3885e230dfcd4a88ab88ed44c6be08d8d45064a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdb11030d59143c8069ab0da0c7aade664d35d88372d1990927779407728af9ad8d111931a95f0600521d07d984dbfdffe3db141e494c362511ad838742ffc3c
|
7
|
+
data.tar.gz: 55c30fb2e15856e5a60e70dce44afe077c0f9165402e7bac272c6f1a92714f85be0dd96681eaae2a5cffedef6a0785b95d09a0af3eefd46cf3517deca803ae11
|
data/lib/arjdbc/as400/adapter.rb
CHANGED
@@ -16,12 +16,9 @@ module ArJdbc
|
|
16
16
|
def self.arel_visitor_type(config = nil); DB2.arel_visitor_type(config); end
|
17
17
|
|
18
18
|
def self.column_selector
|
19
|
-
[ /as400/i, lambda { |config, column| column.extend(
|
19
|
+
[ /as400/i, lambda { |config, column| column.extend(ColumnMethods) } ]
|
20
20
|
end
|
21
21
|
|
22
|
-
# @private
|
23
|
-
Column = DB2::Column
|
24
|
-
|
25
22
|
# Boolean emulation can be disabled using :
|
26
23
|
#
|
27
24
|
# ArJdbc::AS400.emulate_booleans = false
|
@@ -43,6 +40,13 @@ module ArJdbc
|
|
43
40
|
change_current_library(config[:current_library]) if config[:current_library]
|
44
41
|
end
|
45
42
|
|
43
|
+
def os400_version
|
44
|
+
metadata = jdbc_connection.getMetaData()
|
45
|
+
major = metadata.getDatabaseMajorVersion()
|
46
|
+
minor = metadata.getDatabaseMinorVersion()
|
47
|
+
{ major: major, minor: minor }
|
48
|
+
end
|
49
|
+
|
46
50
|
# Do not return *LIBL as schema
|
47
51
|
def schema
|
48
52
|
db2_schema
|
@@ -65,11 +69,24 @@ module ArJdbc
|
|
65
69
|
!(system_naming? && !current_library?)
|
66
70
|
end
|
67
71
|
|
68
|
-
#
|
72
|
+
# If true, next_sequence_value is called before each insert statement
|
73
|
+
# to set the record's primary key.
|
74
|
+
# By default DB2 for i supports IDENTITY_VAL_LOCAL for tables that have
|
75
|
+
# one primary key.
|
69
76
|
def prefetch_primary_key?(table_name = nil)
|
70
77
|
return true if table_name.nil?
|
71
78
|
table_name = table_name.to_s
|
72
|
-
|
79
|
+
primary_keys(table_name.to_s).size == 0
|
80
|
+
end
|
81
|
+
|
82
|
+
# TRUNCATE only works with V7R2+
|
83
|
+
# @override
|
84
|
+
def truncate(table_name, name = nil)
|
85
|
+
if os400_version[:major] < 7 || (os400_version[:major] == 7 && os400_version[:minor] < 2)
|
86
|
+
raise NotImplementedError
|
87
|
+
else
|
88
|
+
super
|
89
|
+
end
|
73
90
|
end
|
74
91
|
|
75
92
|
# @override
|
data/test/adapter_test.rb
CHANGED
@@ -38,6 +38,23 @@ class TestAdapter < Test::Unit::TestCase
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
def test_truncate
|
42
|
+
begin
|
43
|
+
connection.execute('CREATE TABLE test_table (test_column INTEGER)')
|
44
|
+
ensure
|
45
|
+
if connection.os400_version[:major] < 7 || (connection.os400_version[:major] == 7 && connection.os400_version[:minor] < 2)
|
46
|
+
assert_raise NotImplementedError do
|
47
|
+
connection.truncate 'test_table'
|
48
|
+
end
|
49
|
+
else
|
50
|
+
assert_nothing_raised do
|
51
|
+
connection.truncate 'test_table'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
connection.execute('DROP TABLE test_table')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
41
58
|
def test_rename_column
|
42
59
|
begin
|
43
60
|
connection.execute('CREATE TABLE test_table (test_column INTEGER)')
|
data/test/test_helper.rb
CHANGED
@@ -24,6 +24,8 @@ class Test::Unit::TestCase
|
|
24
24
|
rescue LoadError # assuming driver.jar is on the class-path
|
25
25
|
end
|
26
26
|
|
27
|
+
require 'java'
|
28
|
+
|
27
29
|
# Create a data source to the iSeries database.
|
28
30
|
datasource = com.ibm.as400.access.AS400JDBCDataSource.new
|
29
31
|
datasource.setServerName(config[:host])
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-jdbcas400-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sieger, Ola Bini, Pierrick Rouxel and JRuby contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- -
|
16
|
+
- - '>='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version:
|
18
|
+
version: 3.0.0
|
19
19
|
name: activerecord
|
20
20
|
prerelease: false
|
21
21
|
type: :runtime
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|