activerecord-jdbc-adapter 1.3.4 → 1.3.5
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/.travis.yml +5 -2
- data/Gemfile +1 -0
- data/History.md +12 -0
- data/LICENSE.txt +1 -1
- data/README.md +11 -5
- data/activerecord-jdbc-adapter.gemspec +2 -2
- data/lib/arjdbc/db2/adapter.rb +5 -0
- data/lib/arjdbc/db2/connection_methods.rb +8 -2
- data/lib/arjdbc/derby/connection_methods.rb +4 -1
- data/lib/arjdbc/firebird/adapter.rb +31 -1
- data/lib/arjdbc/firebird/connection_methods.rb +4 -1
- data/lib/arjdbc/h2/connection_methods.rb +7 -4
- data/lib/arjdbc/hsqldb/connection_methods.rb +7 -4
- data/lib/arjdbc/jdbc/adapter.rb +5 -2
- data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
- data/lib/arjdbc/jdbc/connection.rb +5 -1
- data/lib/arjdbc/jdbc/connection_methods.rb +10 -3
- data/lib/arjdbc/mssql/connection_methods.rb +10 -4
- data/lib/arjdbc/mysql/adapter.rb +2 -2
- data/lib/arjdbc/mysql/connection_methods.rb +5 -2
- data/lib/arjdbc/oracle/connection_methods.rb +5 -2
- data/lib/arjdbc/postgresql/connection_methods.rb +6 -4
- data/lib/arjdbc/sqlite3/connection_methods.rb +5 -2
- data/lib/arjdbc/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2ea14fa2985e6b568284ddd24df9db9511f6437
|
4
|
+
data.tar.gz: 72570ca5a15d8f3bd04b3efc5c9b3c7b86911215
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72bbce793d260cfdd46f81007543bd0e6aff6a81149b45e0d21de5cef98e0c96b6cdb1127b1dc7ab03a372510a664c70996dd879ca7d7a53f5a3b32f89466a0e
|
7
|
+
data.tar.gz: 07087ad9b681f0c0d6cb4008fc5f432991baf24fd62615e9864d8c420938c8585767c324493c239888ff50550bd76aa1b5a3e943eb0716d4a14615dbd36ad39d
|
data/.travis.yml
CHANGED
@@ -2,6 +2,9 @@ language: ruby
|
|
2
2
|
bundler_args: --without development
|
3
3
|
script: bundle exec rake test_$DB
|
4
4
|
before_script: export JRUBY_OPTS="--server -Xcext.enabled=false -Xcompile.invokedynamic=false"
|
5
|
+
before_install:
|
6
|
+
#- gem update --system 2.1.11
|
7
|
+
#- 'ruby -e "puts RUBY_VERSION" | grep ^1\.8 && gem update --system -v 2.1.11 || true'
|
5
8
|
rvm:
|
6
9
|
- jruby
|
7
10
|
gemfile:
|
@@ -37,8 +40,8 @@ branches:
|
|
37
40
|
- master
|
38
41
|
- 1-2-stable
|
39
42
|
matrix:
|
40
|
-
allow_failures:
|
41
|
-
|
43
|
+
#allow_failures:
|
44
|
+
#- gemfile: gemfiles/rails41.gemfile
|
42
45
|
exclude:
|
43
46
|
# Rails 4 prefers Ruby 2.0 (or at least >= 1.9.3) :
|
44
47
|
- rvm: jruby
|
data/Gemfile
CHANGED
@@ -26,6 +26,7 @@ gem 'mocha', '~> 0.13.1', :require => nil, :group => :test
|
|
26
26
|
|
27
27
|
gem 'simplecov', :require => nil, :group => :test
|
28
28
|
gem 'bcrypt-ruby', '~> 3.0.0', :require => nil, :group => :test
|
29
|
+
#gem 'trinidad_dbpool', :require => nil, :group => :test
|
29
30
|
|
30
31
|
group :rails do
|
31
32
|
gem 'erubis', :require => nil
|
data/History.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 1.3.5 (01/10/14)
|
2
|
+
|
3
|
+
We're now green against Rails 4.1 (master), test and report issues if any.
|
4
|
+
|
5
|
+
- improved support for `config[:jndi]` with all supported custom adapters
|
6
|
+
- [mysql] fix incompatible character encodings: ASCII-8BIT and UTF-8
|
7
|
+
- rails 4.1 - create_table_definition changed from 3 to 4 parameters (#522)
|
8
|
+
- [firebird] Insert quotes for blobs to prevent failed inserts on not-null cols
|
9
|
+
|
10
|
+
Code Contributors: Ray Zane, Gary S. Weaver
|
11
|
+
Code Contributors: @rzane, @garysweaver
|
12
|
+
|
1
13
|
## 1.3.4 (12/12/13)
|
2
14
|
|
3
15
|
- [postgres] unwrap connection instead of casting when adding custom types (#515)
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -95,15 +95,19 @@ development:
|
|
95
95
|
url: jdbc:mysql://localhost:3306/blog_development
|
96
96
|
```
|
97
97
|
|
98
|
-
For JNDI data sources, you may simply specify the JNDI location as follows
|
99
|
-
|
98
|
+
For JNDI data sources, you may simply specify the JNDI location as follows, it's
|
99
|
+
recommended to use the same adapter: setting as one would configure when using
|
100
|
+
"bare" (JDBC) connections e.g. :
|
100
101
|
|
101
102
|
```yml
|
102
103
|
production:
|
103
|
-
adapter:
|
104
|
+
adapter: postgresql
|
104
105
|
jndi: jdbc/PostgreDS
|
105
106
|
```
|
106
107
|
|
108
|
+
**NOTE:** any other settings such as *database:*, *username:*, *properties:* make
|
109
|
+
no difference since everything is already configured on the JNDI DataSource end.
|
110
|
+
|
107
111
|
JDBC driver specific properties might be set if you use an URL to specify the DB
|
108
112
|
or preferably using the *properties:* syntax:
|
109
113
|
|
@@ -238,8 +242,10 @@ ask on the #JRuby IRC channel on http://freenode.net/ (try [web-chat][6]).
|
|
238
242
|
|
239
243
|
## Authors
|
240
244
|
|
241
|
-
This project was written by Nick Sieger
|
242
|
-
|
245
|
+
This project was originally written by [Nick Sieger](http://github.com/nicksieger)
|
246
|
+
and [Ola Bini](http://github.com/olabini) with lots of help from the JRuby community.
|
247
|
+
Polished 3.x compatibility and 4.x support (for AR-JDBC >= 1.3.0) was managed by
|
248
|
+
[Karol Bucek](http://github.com/kares) among others.
|
243
249
|
|
244
250
|
## License
|
245
251
|
|
@@ -6,8 +6,8 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.name = 'activerecord-jdbc-adapter'
|
7
7
|
gem.version = ArJdbc::VERSION
|
8
8
|
gem.platform = Gem::Platform::RUBY
|
9
|
-
gem.authors = ['Nick Sieger, Ola Bini and JRuby contributors']
|
10
|
-
gem.email = ['nick@nicksieger.com', 'ola.bini@gmail.com']
|
9
|
+
gem.authors = ['Nick Sieger, Ola Bini, Karol Bucek and JRuby contributors']
|
10
|
+
gem.email = ['nick@nicksieger.com', 'ola.bini@gmail.com', 'self@kares.org']
|
11
11
|
gem.homepage = 'https://github.com/jruby/activerecord-jdbc-adapter'
|
12
12
|
gem.license = "BSD"
|
13
13
|
gem.summary = 'JDBC adapter for ActiveRecord, for use within JRuby on Rails.'
|
data/lib/arjdbc/db2/adapter.rb
CHANGED
@@ -428,6 +428,11 @@ module ArJdbc
|
|
428
428
|
@connection.execute_update "call sysproc.admin_cmd('RUNSTATS ON TABLE #{tablename} WITH DISTRIBUTION AND DETAILED INDEXES ALL UTIL_IMPACT_PRIORITY #{priority}')"
|
429
429
|
end
|
430
430
|
|
431
|
+
def select(sql, name, binds)
|
432
|
+
# DB2 does not like "= NULL", "!= NULL", or "<> NULL".
|
433
|
+
exec_query(to_sql(sql.gsub(/(!=|<>)\s*null/i, "IS NOT NULL").gsub(/=\s*null/i, "IS NULL"), binds), name, binds)
|
434
|
+
end
|
435
|
+
|
431
436
|
def add_index(table_name, column_name, options = {})
|
432
437
|
if ! zos? || ( table_name.to_s == ActiveRecord::Migrator.schema_migrations_table_name.to_s )
|
433
438
|
column_name = column_name.to_s if column_name.is_a?(Symbol)
|
@@ -1,6 +1,10 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
# @note Assumes DB2 driver (*db2jcc.jar*) is on class-path.
|
3
3
|
def db2_connection(config)
|
4
|
+
config[:adapter_spec] ||= ::ArJdbc::DB2
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
4
8
|
config[:url] ||= begin
|
5
9
|
if config[:host] # Type 4 URL: jdbc:db2://server:port/database
|
6
10
|
config[:port] ||= 50000
|
@@ -10,7 +14,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
10
14
|
end
|
11
15
|
end
|
12
16
|
config[:driver] ||= ::ArJdbc::DB2::DRIVER_NAME
|
13
|
-
config[:adapter_spec] ||= ::ArJdbc::DB2
|
14
17
|
config[:connection_alive_sql] ||= 'SELECT 1 FROM syscat.tables FETCH FIRST 1 ROWS ONLY'
|
15
18
|
jdbc_connection(config)
|
16
19
|
end
|
@@ -18,6 +21,10 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
18
21
|
|
19
22
|
# @note Assumes AS400 driver (*jt400.jar*) is on class-path.
|
20
23
|
def as400_connection(config)
|
24
|
+
config[:adapter_spec] ||= ::ArJdbc::AS400
|
25
|
+
|
26
|
+
return jndi_connection(config) if config[:jndi]
|
27
|
+
|
21
28
|
config[:url] ||= begin
|
22
29
|
# jdbc:as400://[host]
|
23
30
|
url = 'jdbc:as400://'
|
@@ -30,7 +37,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
30
37
|
end
|
31
38
|
require 'arjdbc/db2/as400'
|
32
39
|
config[:driver] ||= ::ArJdbc::AS400::DRIVER_NAME
|
33
|
-
config[:adapter_spec] ||= ::ArJdbc::AS400
|
34
40
|
config[:connection_alive_sql] ||= 'SELECT 1 FROM sysibm.tables FETCH FIRST 1 ROWS ONLY'
|
35
41
|
jdbc_connection(config)
|
36
42
|
end
|
@@ -1,5 +1,9 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def derby_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::Derby
|
4
|
+
|
5
|
+
return jndi_connection(config) if jndi_config?(config)
|
6
|
+
|
3
7
|
begin
|
4
8
|
require 'jdbc/derby'
|
5
9
|
::Jdbc::Derby.load_driver(:require) if defined?(::Jdbc::Derby.load_driver)
|
@@ -9,7 +13,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
9
13
|
config[:url] ||= "jdbc:derby:#{config[:database]};create=true"
|
10
14
|
config[:driver] ||= defined?(::Jdbc::Derby.driver_name) ?
|
11
15
|
::Jdbc::Derby.driver_name : 'org.apache.derby.jdbc.EmbeddedDriver'
|
12
|
-
config[:adapter_spec] ||= ::ArJdbc::Derby
|
13
16
|
|
14
17
|
embedded_driver(config)
|
15
18
|
end
|
@@ -75,6 +75,24 @@ module ArJdbc
|
|
75
75
|
# @see #emulate_booleans?
|
76
76
|
def self.emulate_booleans=(emulate); @@emulate_booleans = emulate; end
|
77
77
|
|
78
|
+
|
79
|
+
@@update_lob_values = true
|
80
|
+
|
81
|
+
# Updating records with LOB values (binary/text columns) in a separate
|
82
|
+
# statement can be disabled using :
|
83
|
+
#
|
84
|
+
# ArJdbc::Firebird.update_lob_values = false
|
85
|
+
def self.update_lob_values?; @@update_lob_values; end
|
86
|
+
# @see #update_lob_values?
|
87
|
+
def self.update_lob_values=(update); @@update_lob_values = update; end
|
88
|
+
|
89
|
+
# @see #update_lob_values?
|
90
|
+
def update_lob_values?; Firebird.update_lob_values?; end
|
91
|
+
|
92
|
+
# @see #quote
|
93
|
+
# @private
|
94
|
+
BLOB_VALUE_MARKER = "''"
|
95
|
+
|
78
96
|
ADAPTER_NAME = 'Firebird'.freeze
|
79
97
|
|
80
98
|
def adapter_name
|
@@ -222,8 +240,15 @@ module ArJdbc
|
|
222
240
|
return value if sql_literal?(value)
|
223
241
|
|
224
242
|
type = column && column.type
|
243
|
+
|
225
244
|
# BLOBs are updated separately by an after_save trigger.
|
226
|
-
|
245
|
+
if type == :binary || type == :text
|
246
|
+
if update_lob_values?
|
247
|
+
return value.nil? ? "NULL" : BLOB_VALUE_MARKER
|
248
|
+
else
|
249
|
+
return "'#{quote_string(value)}'"
|
250
|
+
end
|
251
|
+
end
|
227
252
|
|
228
253
|
case value
|
229
254
|
when String, ActiveSupport::Multibyte::Chars
|
@@ -279,6 +304,11 @@ module ArJdbc
|
|
279
304
|
quote(0)
|
280
305
|
end
|
281
306
|
|
307
|
+
# @override
|
308
|
+
def quote_table_name_for_assignment(table, attr)
|
309
|
+
quote_column_name(attr)
|
310
|
+
end if ::ActiveRecord::VERSION::MAJOR >= 4
|
311
|
+
|
282
312
|
# @override
|
283
313
|
def quote_column_name(column_name)
|
284
314
|
column_name = column_name.to_s
|
@@ -1,5 +1,9 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def firebird_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::Firebird
|
4
|
+
|
5
|
+
return jndi_connection(config) if jndi_config?(config)
|
6
|
+
|
3
7
|
begin
|
4
8
|
require 'jdbc/firebird'
|
5
9
|
::Jdbc::Firebird.load_driver(:require)
|
@@ -12,7 +16,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
12
16
|
"jdbc:firebirdsql://#{config[:host]}:#{config[:port]}/#{config[:database]}"
|
13
17
|
end
|
14
18
|
config[:driver] ||= ::Jdbc::Firebird.driver_name
|
15
|
-
config[:adapter_spec] ||= ::ArJdbc::Firebird
|
16
19
|
|
17
20
|
jdbc_connection(config)
|
18
21
|
end
|
@@ -1,11 +1,16 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def h2_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::H2
|
4
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::H2Adapter unless config.key?(:adapter_class)
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
3
8
|
begin
|
4
9
|
require 'jdbc/h2'
|
5
10
|
::Jdbc::H2.load_driver(:require) if defined?(::Jdbc::H2.load_driver)
|
6
11
|
rescue LoadError # assuming driver.jar is on the class-path
|
7
12
|
end
|
8
|
-
|
13
|
+
|
9
14
|
config[:url] ||= begin
|
10
15
|
db = config[:database]
|
11
16
|
if db[0, 4] == 'mem:' || db[0, 5] == 'file:' || db[0, 5] == 'hsql:'
|
@@ -15,9 +20,7 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
15
20
|
end
|
16
21
|
end
|
17
22
|
config[:driver] ||= defined?(::Jdbc::H2.driver_name) ? ::Jdbc::H2.driver_name : 'org.h2.Driver'
|
18
|
-
|
19
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::H2Adapter unless config.key?(:adapter_class)
|
20
|
-
|
23
|
+
|
21
24
|
embedded_driver(config)
|
22
25
|
end
|
23
26
|
alias_method :jdbch2_connection, :h2_connection
|
@@ -1,11 +1,16 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def hsqldb_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::HSQLDB
|
4
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::HsqldbAdapter unless config.key?(:adapter_class)
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
3
8
|
begin
|
4
9
|
require 'jdbc/hsqldb'
|
5
10
|
::Jdbc::HSQLDB.load_driver(:require) if defined?(::Jdbc::HSQLDB.load_driver)
|
6
11
|
rescue LoadError # assuming driver.jar is on the class-path
|
7
12
|
end
|
8
|
-
|
13
|
+
|
9
14
|
config[:url] ||= begin
|
10
15
|
db = config[:database]
|
11
16
|
if db[0, 4] == 'mem:' || db[0, 5] == 'file:' || db[0, 5] == 'hsql:'
|
@@ -15,10 +20,8 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
15
20
|
end
|
16
21
|
end
|
17
22
|
config[:driver] ||= defined?(::Jdbc::HSQLDB.driver_name) ? ::Jdbc::HSQLDB.driver_name : 'org.hsqldb.jdbcDriver'
|
18
|
-
config[:adapter_spec] ||= ::ArJdbc::HSQLDB
|
19
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::HsqldbAdapter unless config.key?(:adapter_class)
|
20
23
|
config[:connection_alive_sql] ||= 'CALL PI()' # does not like 'SELECT 1'
|
21
|
-
|
24
|
+
|
22
25
|
embedded_driver(config)
|
23
26
|
end
|
24
27
|
alias_method :jdbchsqldb_connection, :hsqldb_connection
|
data/lib/arjdbc/jdbc/adapter.rb
CHANGED
@@ -699,9 +699,12 @@ module ActiveRecord
|
|
699
699
|
alias table_definition create_table_definition
|
700
700
|
|
701
701
|
# `TableDefinition.new native_database_types, name, temporary, options`
|
702
|
+
# and ActiveRecord 4.1 supports optional `as` argument (which defaults
|
703
|
+
# to nil) to provide the SQL to use to generate the table:
|
704
|
+
# `TableDefinition.new native_database_types, name, temporary, options, as`
|
702
705
|
# @private
|
703
|
-
def create_table_definition(
|
704
|
-
table_definition(
|
706
|
+
def create_table_definition(*args)
|
707
|
+
table_definition(*args)
|
705
708
|
end
|
706
709
|
|
707
710
|
# @note AR-4x arguments expected: `(name, temporary, options)`
|
Binary file
|
@@ -36,6 +36,10 @@ module ActiveRecord
|
|
36
36
|
# @deprecated no longer used - only kept for compatibility
|
37
37
|
def set_native_database_types; end
|
38
38
|
|
39
|
+
def self.jndi_config?(config)
|
40
|
+
config[:jndi] || config[:data_source]
|
41
|
+
end
|
42
|
+
|
39
43
|
def jndi?; @jndi; end
|
40
44
|
alias_method :jndi_connection?, :jndi?
|
41
45
|
|
@@ -46,7 +50,7 @@ module ActiveRecord
|
|
46
50
|
# @note this has nothing to do with the configure_connection implemented
|
47
51
|
# on some of the concrete adapters (e.g. {#ArJdbc::Postgres})
|
48
52
|
def setup_connection_factory
|
49
|
-
if config
|
53
|
+
if self.class.jndi_config?(config)
|
50
54
|
begin
|
51
55
|
setup_jndi_factory
|
52
56
|
rescue => e
|
@@ -5,19 +5,26 @@ module ArJdbc
|
|
5
5
|
ConnectionMethods = (class << ActiveRecord::Base; self; end)
|
6
6
|
end
|
7
7
|
ConnectionMethods.module_eval do
|
8
|
-
|
8
|
+
|
9
9
|
def jdbc_connection(config)
|
10
10
|
adapter_class = config[:adapter_class]
|
11
11
|
adapter_class ||= ::ActiveRecord::ConnectionAdapters::JdbcAdapter
|
12
12
|
adapter_class.new(nil, logger, config)
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
|
+
def jndi_connection(config); jdbc_connection(config) end
|
15
16
|
|
16
17
|
def embedded_driver(config)
|
17
18
|
config[:username] ||= "sa"
|
18
19
|
config[:password] ||= ""
|
19
20
|
jdbc_connection(config)
|
20
21
|
end
|
21
|
-
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def jndi_config?(config)
|
26
|
+
::ActiveRecord::ConnectionAdapters::JdbcConnection.jndi_config?(config)
|
27
|
+
end
|
28
|
+
|
22
29
|
end
|
23
30
|
end
|
@@ -11,6 +11,11 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
11
11
|
return sqlserver_connection(config)
|
12
12
|
end
|
13
13
|
|
14
|
+
config[:adapter_spec] ||= ::ArJdbc::MSSQL
|
15
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MSSQLAdapter unless config.key?(:adapter_class)
|
16
|
+
|
17
|
+
return jndi_connection(config) if jndi_config?(config)
|
18
|
+
|
14
19
|
begin
|
15
20
|
require 'jdbc/jtds'
|
16
21
|
# NOTE: the adapter has only support for working with the
|
@@ -23,8 +28,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
23
28
|
config[:host] ||= 'localhost'
|
24
29
|
config[:port] ||= 1433
|
25
30
|
config[:driver] ||= defined?(::Jdbc::JTDS.driver_name) ? ::Jdbc::JTDS.driver_name : 'net.sourceforge.jtds.jdbc.Driver'
|
26
|
-
config[:adapter_spec] ||= ::ArJdbc::MSSQL
|
27
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MSSQLAdapter unless config.key?(:adapter_class)
|
28
31
|
config[:connection_alive_sql] ||= 'SELECT 1'
|
29
32
|
|
30
33
|
config[:url] ||= begin
|
@@ -49,10 +52,13 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
49
52
|
|
50
53
|
# @note Assumes SQLServer SQL-JDBC driver on the class-path.
|
51
54
|
def sqlserver_connection(config)
|
52
|
-
config[:host] ||= 'localhost'
|
53
|
-
config[:driver] ||= 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
|
54
55
|
config[:adapter_spec] ||= ::ArJdbc::MSSQL
|
55
56
|
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MSSQLAdapter unless config.key?(:adapter_class)
|
57
|
+
|
58
|
+
return jndi_connection(config) if jndi_config?(config)
|
59
|
+
|
60
|
+
config[:host] ||= 'localhost'
|
61
|
+
config[:driver] ||= 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
|
56
62
|
config[:connection_alive_sql] ||= 'SELECT 1'
|
57
63
|
|
58
64
|
config[:url] ||= begin
|
data/lib/arjdbc/mysql/adapter.rb
CHANGED
@@ -152,8 +152,8 @@ module ArJdbc
|
|
152
152
|
return value if sql_literal?(value)
|
153
153
|
return value.to_s if column && column.type == :primary_key
|
154
154
|
|
155
|
-
if value.kind_of?(String) && column && column.type == :binary
|
156
|
-
"x'#{
|
155
|
+
if value.kind_of?(String) && column && column.type == :binary
|
156
|
+
"x'#{value.unpack("H*")[0]}'"
|
157
157
|
elsif value.kind_of?(BigDecimal)
|
158
158
|
value.to_s("F")
|
159
159
|
else
|
@@ -1,5 +1,10 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def mysql_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::MySQL
|
4
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MysqlAdapter unless config.key?(:adapter_class)
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
3
8
|
begin
|
4
9
|
require 'jdbc/mysql'
|
5
10
|
::Jdbc::MySQL.load_driver(:require) if defined?(::Jdbc::MySQL.load_driver)
|
@@ -19,8 +24,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
19
24
|
config[:url] = url
|
20
25
|
end
|
21
26
|
config[:driver] ||= defined?(::Jdbc::MySQL.driver_name) ? ::Jdbc::MySQL.driver_name : 'com.mysql.jdbc.Driver'
|
22
|
-
config[:adapter_spec] ||= ::ArJdbc::MySQL
|
23
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MysqlAdapter unless config.key?(:adapter_class)
|
24
27
|
|
25
28
|
properties = ( config[:properties] ||= {} )
|
26
29
|
properties['zeroDateTimeBehavior'] ||= 'convertToNull'
|
@@ -3,11 +3,14 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
3
3
|
# *thin* method to connect to the Oracle DB.
|
4
4
|
# @note Oracle's JDBC driver should be on the class-path.
|
5
5
|
def oracle_connection(config)
|
6
|
+
config[:adapter_spec] ||= ::ArJdbc::Oracle
|
7
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::OracleAdapter unless config.key?(:adapter_class)
|
8
|
+
|
9
|
+
return jndi_connection(config) if jndi_config?(config)
|
10
|
+
|
6
11
|
config[:port] ||= 1521
|
7
12
|
config[:url] ||= "jdbc:oracle:thin:@#{config[:host]}:#{config[:port]}:#{config[:database]}"
|
8
13
|
config[:driver] ||= "oracle.jdbc.driver.OracleDriver"
|
9
|
-
config[:adapter_spec] ||= ::ArJdbc::Oracle
|
10
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::OracleAdapter unless config.key?(:adapter_class)
|
11
14
|
config[:connection_alive_sql] ||= 'SELECT 1 FROM DUAL'
|
12
15
|
jdbc_connection(config)
|
13
16
|
end
|
@@ -1,10 +1,16 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def postgresql_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::PostgreSQL
|
4
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter unless config.key?(:adapter_class)
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
3
8
|
begin
|
4
9
|
require 'jdbc/postgres'
|
5
10
|
::Jdbc::Postgres.load_driver(:require) if defined?(::Jdbc::Postgres.load_driver)
|
6
11
|
rescue LoadError # assuming driver.jar is on the class-path
|
7
12
|
end
|
13
|
+
config[:driver] ||= defined?(::Jdbc::Postgres.driver_name) ? ::Jdbc::Postgres.driver_name : 'org.postgresql.Driver'
|
8
14
|
|
9
15
|
host = config[:host] ||= ( config[:hostaddr] || ENV['PGHOST'] || 'localhost' )
|
10
16
|
port = config[:port] ||= ( ENV['PGPORT'] || 5432 )
|
@@ -36,10 +42,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
36
42
|
properties['tcpKeepAlive'] ||= config[:keepalives] if config.key?(:keepalives)
|
37
43
|
properties['kerberosServerName'] ||= config[:krbsrvname] if config[:krbsrvname]
|
38
44
|
|
39
|
-
config[:driver] ||= defined?(::Jdbc::Postgres.driver_name) ? ::Jdbc::Postgres.driver_name : 'org.postgresql.Driver'
|
40
|
-
config[:adapter_spec] ||= ::ArJdbc::PostgreSQL
|
41
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter unless config.key?(:adapter_class)
|
42
|
-
|
43
45
|
jdbc_connection(config)
|
44
46
|
end
|
45
47
|
alias_method :jdbcpostgresql_connection, :postgresql_connection
|
@@ -1,5 +1,10 @@
|
|
1
1
|
ArJdbc::ConnectionMethods.module_eval do
|
2
2
|
def sqlite3_connection(config)
|
3
|
+
config[:adapter_spec] ||= ::ArJdbc::SQLite3
|
4
|
+
config[:adapter_class] = ActiveRecord::ConnectionAdapters::SQLite3Adapter unless config.key?(:adapter_class)
|
5
|
+
|
6
|
+
return jndi_connection(config) if jndi_config?(config)
|
7
|
+
|
3
8
|
begin
|
4
9
|
require 'jdbc/sqlite3'
|
5
10
|
::Jdbc::SQLite3.load_driver(:require) if defined?(::Jdbc::SQLite3.load_driver)
|
@@ -10,8 +15,6 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
10
15
|
database = config[:database] # NOTE: "jdbc:sqlite::memory:" syntax is supported
|
11
16
|
config[:url] ||= "jdbc:sqlite:#{database == ':memory:' ? '' : database}"
|
12
17
|
config[:driver] ||= defined?(::Jdbc::SQLite3.driver_name) ? ::Jdbc::SQLite3.driver_name : 'org.sqlite.JDBC'
|
13
|
-
config[:adapter_spec] ||= ::ArJdbc::SQLite3
|
14
|
-
config[:adapter_class] = ActiveRecord::ConnectionAdapters::SQLite3Adapter unless config.key?(:adapter_class)
|
15
18
|
config[:connection_alive_sql] ||= 'SELECT 1'
|
16
19
|
|
17
20
|
options = ( config[:properties] ||= {} )
|
data/lib/arjdbc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-jdbc-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Nick Sieger, Ola Bini and JRuby contributors
|
7
|
+
- Nick Sieger, Ola Bini, Karol Bucek and JRuby contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -33,6 +33,7 @@ description: 'AR-JDBC is a database adapter for Rails'' ActiveRecord component d
|
|
33
33
|
email:
|
34
34
|
- nick@nicksieger.com
|
35
35
|
- ola.bini@gmail.com
|
36
|
+
- self@kares.org
|
36
37
|
executables: []
|
37
38
|
extensions: []
|
38
39
|
extra_rdoc_files: []
|