activerecord-jdbcas400-adapter 1.3.17 → 1.3.19
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.
- 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:
|