activerecord-jdbc-adapter 1.0.3-java → 50.1-java
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 +7 -0
- data/.gitignore +33 -0
- data/.travis.yml +79 -0
- data/.yardopts +4 -0
- data/CONTRIBUTING.md +50 -0
- data/Gemfile +91 -0
- data/History.md +1191 -0
- data/LICENSE.txt +22 -17
- data/README.md +169 -0
- data/RUNNING_TESTS.md +127 -0
- data/Rakefile +294 -5
- data/Rakefile.jdbc +20 -0
- data/activerecord-jdbc-adapter.gemspec +55 -0
- data/lib/active_record/connection_adapters/as400_adapter.rb +2 -0
- data/lib/active_record/connection_adapters/db2_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/firebird_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/mariadb_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
- data/lib/activerecord-jdbc-adapter.rb +0 -5
- data/lib/arel/visitors/compat.rb +60 -0
- data/lib/arel/visitors/db2.rb +128 -6
- data/lib/arel/visitors/derby.rb +103 -10
- data/lib/arel/visitors/firebird.rb +79 -0
- data/lib/arel/visitors/h2.rb +25 -0
- data/lib/arel/visitors/hsqldb.rb +18 -10
- data/lib/arel/visitors/postgresql_jdbc.rb +6 -0
- data/lib/arel/visitors/sql_server.rb +225 -0
- data/lib/arel/visitors/sql_server/ng42.rb +293 -0
- data/lib/arjdbc.rb +11 -21
- data/lib/arjdbc/abstract/connection_management.rb +35 -0
- data/lib/arjdbc/abstract/core.rb +64 -0
- data/lib/arjdbc/abstract/database_statements.rb +64 -0
- data/lib/arjdbc/abstract/statement_cache.rb +58 -0
- data/lib/arjdbc/abstract/transaction_support.rb +86 -0
- data/lib/arjdbc/db2.rb +3 -1
- data/lib/arjdbc/db2/adapter.rb +630 -250
- data/lib/arjdbc/db2/as400.rb +130 -0
- data/lib/arjdbc/db2/column.rb +167 -0
- data/lib/arjdbc/db2/connection_methods.rb +44 -0
- data/lib/arjdbc/derby.rb +1 -5
- data/lib/arjdbc/derby/active_record_patch.rb +13 -0
- data/lib/arjdbc/derby/adapter.rb +409 -217
- data/lib/arjdbc/derby/connection_methods.rb +16 -14
- data/lib/arjdbc/derby/schema_creation.rb +15 -0
- data/lib/arjdbc/discover.rb +62 -50
- data/lib/arjdbc/firebird.rb +3 -1
- data/lib/arjdbc/firebird/adapter.rb +365 -62
- data/lib/arjdbc/firebird/connection_methods.rb +23 -0
- data/lib/arjdbc/h2.rb +2 -3
- data/lib/arjdbc/h2/adapter.rb +273 -6
- data/lib/arjdbc/h2/connection_methods.rb +23 -8
- data/lib/arjdbc/hsqldb.rb +2 -3
- data/lib/arjdbc/hsqldb/adapter.rb +204 -77
- data/lib/arjdbc/hsqldb/connection_methods.rb +24 -10
- data/lib/arjdbc/hsqldb/explain_support.rb +35 -0
- data/lib/arjdbc/hsqldb/schema_creation.rb +11 -0
- data/lib/arjdbc/informix.rb +4 -2
- data/lib/arjdbc/informix/adapter.rb +78 -54
- data/lib/arjdbc/informix/connection_methods.rb +8 -9
- data/lib/arjdbc/jdbc.rb +59 -2
- data/lib/arjdbc/jdbc/adapter.rb +356 -166
- data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
- data/lib/arjdbc/jdbc/adapter_require.rb +46 -0
- data/lib/arjdbc/jdbc/base_ext.rb +15 -0
- data/lib/arjdbc/jdbc/callbacks.rb +27 -18
- data/lib/arjdbc/jdbc/column.rb +79 -20
- data/lib/arjdbc/jdbc/connection.rb +5 -119
- data/lib/arjdbc/jdbc/connection_methods.rb +32 -4
- data/lib/arjdbc/jdbc/error.rb +65 -0
- data/lib/arjdbc/jdbc/extension.rb +41 -29
- data/lib/arjdbc/jdbc/java.rb +5 -6
- data/lib/arjdbc/jdbc/jdbc.rake +3 -126
- data/lib/arjdbc/jdbc/railtie.rb +2 -9
- data/lib/arjdbc/jdbc/rake_tasks.rb +3 -10
- data/lib/arjdbc/jdbc/serialized_attributes_helper.rb +3 -0
- data/lib/arjdbc/jdbc/type_cast.rb +166 -0
- data/lib/arjdbc/jdbc/type_converter.rb +35 -19
- data/lib/arjdbc/mssql.rb +6 -3
- data/lib/arjdbc/mssql/adapter.rb +630 -298
- data/lib/arjdbc/mssql/column.rb +200 -0
- data/lib/arjdbc/mssql/connection_methods.rb +66 -17
- data/lib/arjdbc/mssql/explain_support.rb +99 -0
- data/lib/arjdbc/mssql/limit_helpers.rb +189 -50
- data/lib/arjdbc/mssql/lock_methods.rb +77 -0
- data/lib/arjdbc/mssql/types.rb +343 -0
- data/lib/arjdbc/mssql/utils.rb +82 -0
- data/lib/arjdbc/mysql.rb +2 -3
- data/lib/arjdbc/mysql/adapter.rb +86 -356
- data/lib/arjdbc/mysql/connection_methods.rb +159 -23
- data/lib/arjdbc/oracle/adapter.rb +714 -263
- data/lib/arjdbc/postgresql.rb +2 -3
- data/lib/arjdbc/postgresql/_bc_time_cast_patch.rb +24 -0
- data/lib/arjdbc/postgresql/adapter.rb +570 -400
- data/lib/arjdbc/postgresql/base/array_decoder.rb +26 -0
- data/lib/arjdbc/postgresql/base/array_encoder.rb +25 -0
- data/lib/arjdbc/postgresql/base/array_parser.rb +95 -0
- data/lib/arjdbc/postgresql/base/pgconn.rb +11 -0
- data/lib/arjdbc/postgresql/column.rb +51 -0
- data/lib/arjdbc/postgresql/connection_methods.rb +57 -18
- data/lib/arjdbc/postgresql/name.rb +24 -0
- data/lib/arjdbc/postgresql/oid_types.rb +192 -0
- data/lib/arjdbc/railtie.rb +11 -0
- data/lib/arjdbc/sqlite3.rb +2 -3
- data/lib/arjdbc/sqlite3/adapter.rb +518 -198
- data/lib/arjdbc/sqlite3/connection_methods.rb +49 -24
- data/lib/arjdbc/sybase.rb +2 -2
- data/lib/arjdbc/sybase/adapter.rb +7 -6
- data/lib/arjdbc/tasks.rb +13 -0
- data/lib/arjdbc/tasks/database_tasks.rb +52 -0
- data/lib/arjdbc/tasks/databases.rake +91 -0
- data/lib/arjdbc/tasks/databases3.rake +215 -0
- data/lib/arjdbc/tasks/databases4.rake +39 -0
- data/lib/arjdbc/tasks/db2_database_tasks.rb +104 -0
- data/lib/arjdbc/tasks/derby_database_tasks.rb +95 -0
- data/lib/arjdbc/tasks/h2_database_tasks.rb +31 -0
- data/lib/arjdbc/tasks/hsqldb_database_tasks.rb +70 -0
- data/lib/arjdbc/tasks/jdbc_database_tasks.rb +169 -0
- data/lib/arjdbc/tasks/mssql_database_tasks.rb +46 -0
- data/lib/arjdbc/util/quoted_cache.rb +60 -0
- data/lib/arjdbc/util/serialized_attributes.rb +98 -0
- data/lib/arjdbc/util/table_copier.rb +110 -0
- data/lib/arjdbc/version.rb +1 -6
- data/lib/generators/jdbc/USAGE +9 -0
- data/lib/generators/jdbc/jdbc_generator.rb +8 -0
- data/lib/jdbc_adapter.rb +1 -1
- data/lib/jdbc_adapter/rake_tasks.rb +3 -2
- data/lib/jdbc_adapter/version.rb +2 -1
- data/pom.xml +114 -0
- data/rails_generators/jdbc_generator.rb +1 -1
- data/rails_generators/templates/config/initializers/jdbc.rb +8 -5
- data/rails_generators/templates/lib/tasks/jdbc.rake +7 -4
- data/rakelib/01-tomcat.rake +51 -0
- data/rakelib/02-test.rake +132 -0
- data/rakelib/bundler_ext.rb +11 -0
- data/rakelib/compile.rake +67 -22
- data/rakelib/db.rake +61 -0
- data/rakelib/rails.rake +204 -29
- data/src/java/arjdbc/ArJdbcModule.java +286 -0
- data/src/java/arjdbc/db2/DB2Module.java +76 -0
- data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +126 -0
- data/src/java/arjdbc/derby/DerbyModule.java +99 -243
- data/src/java/arjdbc/derby/DerbyRubyJdbcConnection.java +152 -0
- data/src/java/arjdbc/firebird/FirebirdRubyJdbcConnection.java +174 -0
- data/src/java/arjdbc/{jdbc/JdbcConnectionFactory.java → h2/H2Module.java} +20 -6
- data/src/java/arjdbc/h2/H2RubyJdbcConnection.java +27 -12
- data/src/java/arjdbc/hsqldb/HSQLDBModule.java +73 -0
- data/src/java/arjdbc/informix/InformixRubyJdbcConnection.java +7 -6
- data/src/java/arjdbc/jdbc/AdapterJavaService.java +7 -29
- data/src/java/arjdbc/jdbc/Callable.java +44 -0
- data/src/java/arjdbc/jdbc/ConnectionFactory.java +132 -0
- data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +157 -0
- data/src/java/arjdbc/jdbc/DriverConnectionFactory.java +63 -0
- data/src/java/arjdbc/jdbc/DriverWrapper.java +119 -0
- data/src/java/arjdbc/jdbc/JdbcResult.java +130 -0
- data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +3622 -948
- data/src/java/arjdbc/mssql/MSSQLModule.java +90 -0
- data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +181 -0
- data/src/java/arjdbc/mysql/MySQLModule.java +99 -81
- data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +294 -0
- data/src/java/arjdbc/oracle/OracleModule.java +80 -0
- data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +387 -17
- data/src/java/arjdbc/postgresql/ByteaUtils.java +157 -0
- data/src/java/arjdbc/postgresql/PgResultSetMetaDataWrapper.java +23 -0
- data/src/java/arjdbc/postgresql/PostgreSQLModule.java +77 -0
- data/src/java/arjdbc/postgresql/PostgreSQLResult.java +184 -0
- data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +952 -0
- data/src/java/arjdbc/sqlite3/SQLite3Module.java +73 -0
- data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +525 -0
- data/src/java/arjdbc/util/CallResultSet.java +826 -0
- data/src/java/arjdbc/util/DateTimeUtils.java +580 -0
- data/src/java/arjdbc/util/ObjectSupport.java +65 -0
- data/src/java/arjdbc/util/QuotingUtils.java +138 -0
- data/src/java/arjdbc/util/StringCache.java +63 -0
- data/src/java/arjdbc/util/StringHelper.java +159 -0
- metadata +245 -268
- data/History.txt +0 -369
- data/Manifest.txt +0 -180
- data/README.txt +0 -181
- data/lib/active_record/connection_adapters/oracle_adapter.rb +0 -1
- data/lib/arel/engines/sql/compilers/db2_compiler.rb +0 -9
- data/lib/arel/engines/sql/compilers/derby_compiler.rb +0 -6
- data/lib/arel/engines/sql/compilers/h2_compiler.rb +0 -6
- data/lib/arel/engines/sql/compilers/hsqldb_compiler.rb +0 -15
- data/lib/arel/engines/sql/compilers/jdbc_compiler.rb +0 -6
- data/lib/arel/engines/sql/compilers/mssql_compiler.rb +0 -46
- data/lib/arel/visitors/mssql.rb +0 -44
- data/lib/arjdbc/jdbc/compatibility.rb +0 -51
- data/lib/arjdbc/jdbc/core_ext.rb +0 -24
- data/lib/arjdbc/jdbc/discover.rb +0 -18
- data/lib/arjdbc/jdbc/driver.rb +0 -44
- data/lib/arjdbc/jdbc/missing_functionality_helper.rb +0 -87
- data/lib/arjdbc/jdbc/quoted_primary_key.rb +0 -28
- data/lib/arjdbc/jdbc/require_driver.rb +0 -16
- data/lib/arjdbc/mimer.rb +0 -2
- data/lib/arjdbc/mimer/adapter.rb +0 -142
- data/lib/arjdbc/mssql/tsql_helper.rb +0 -61
- data/lib/arjdbc/oracle.rb +0 -3
- data/lib/arjdbc/oracle/connection_methods.rb +0 -11
- data/lib/pg.rb +0 -4
- data/rakelib/package.rake +0 -92
- data/rakelib/test.rake +0 -81
- data/src/java/arjdbc/jdbc/SQLBlock.java +0 -48
- data/src/java/arjdbc/mssql/MssqlRubyJdbcConnection.java +0 -127
- data/src/java/arjdbc/postgresql/PostgresqlRubyJdbcConnection.java +0 -57
- data/src/java/arjdbc/sqlite3/Sqlite3RubyJdbcConnection.java +0 -64
- data/test/abstract_db_create.rb +0 -117
- data/test/activerecord/connection_adapters/type_conversion_test.rb +0 -31
- data/test/activerecord/connections/native_jdbc_mysql/connection.rb +0 -25
- data/test/db/db2.rb +0 -11
- data/test/db/derby.rb +0 -12
- data/test/db/h2.rb +0 -11
- data/test/db/hsqldb.rb +0 -13
- data/test/db/informix.rb +0 -11
- data/test/db/jdbc.rb +0 -11
- data/test/db/jndi_config.rb +0 -40
- data/test/db/logger.rb +0 -3
- data/test/db/mssql.rb +0 -9
- data/test/db/mysql.rb +0 -10
- data/test/db/oracle.rb +0 -34
- data/test/db/postgres.rb +0 -9
- data/test/db/sqlite3.rb +0 -11
- data/test/db2_simple_test.rb +0 -66
- data/test/derby_migration_test.rb +0 -68
- data/test/derby_multibyte_test.rb +0 -12
- data/test/derby_simple_test.rb +0 -99
- data/test/generic_jdbc_connection_test.rb +0 -29
- data/test/h2_simple_test.rb +0 -41
- data/test/has_many_through.rb +0 -79
- data/test/helper.rb +0 -5
- data/test/hsqldb_simple_test.rb +0 -6
- data/test/informix_simple_test.rb +0 -48
- data/test/jdbc_common.rb +0 -25
- data/test/jndi_callbacks_test.rb +0 -40
- data/test/jndi_test.rb +0 -25
- data/test/manualTestDatabase.rb +0 -191
- data/test/models/add_not_null_column_to_table.rb +0 -12
- data/test/models/auto_id.rb +0 -18
- data/test/models/data_types.rb +0 -28
- data/test/models/entry.rb +0 -43
- data/test/models/mixed_case.rb +0 -25
- data/test/models/reserved_word.rb +0 -18
- data/test/models/string_id.rb +0 -18
- data/test/models/validates_uniqueness_of_string.rb +0 -19
- data/test/mssql_db_create_test.rb +0 -26
- data/test/mssql_identity_insert_test.rb +0 -19
- data/test/mssql_legacy_types_test.rb +0 -58
- data/test/mssql_limit_offset_test.rb +0 -136
- data/test/mssql_multibyte_test.rb +0 -18
- data/test/mssql_simple_test.rb +0 -55
- data/test/mysql_db_create_test.rb +0 -27
- data/test/mysql_info_test.rb +0 -113
- data/test/mysql_multibyte_test.rb +0 -10
- data/test/mysql_nonstandard_primary_key_test.rb +0 -42
- data/test/mysql_simple_test.rb +0 -49
- data/test/oracle_simple_test.rb +0 -18
- data/test/oracle_specific_test.rb +0 -83
- data/test/pick_rails_version.rb +0 -3
- data/test/postgres_db_create_test.rb +0 -32
- data/test/postgres_drop_db_test.rb +0 -16
- data/test/postgres_mixed_case_test.rb +0 -29
- data/test/postgres_nonseq_pkey_test.rb +0 -38
- data/test/postgres_reserved_test.rb +0 -22
- data/test/postgres_schema_search_path_test.rb +0 -44
- data/test/postgres_simple_test.rb +0 -51
- data/test/postgres_table_alias_length_test.rb +0 -15
- data/test/simple.rb +0 -546
- data/test/sqlite3_simple_test.rb +0 -233
- data/test/sybase_jtds_simple_test.rb +0 -28
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
require 'java'
|
|
2
|
-
require 'models/data_types'
|
|
3
|
-
require 'arjdbc'
|
|
4
|
-
require 'db/derby'
|
|
5
|
-
require 'test/unit'
|
|
6
|
-
|
|
7
|
-
JInteger = java.lang.Integer
|
|
8
|
-
|
|
9
|
-
class TypeConversionTest < Test::Unit::TestCase
|
|
10
|
-
TEST_TIME = Time.at(1169964202).gmtime
|
|
11
|
-
def setup
|
|
12
|
-
DbTypeMigration.up
|
|
13
|
-
DbType.create(
|
|
14
|
-
:sample_timestamp => TEST_TIME,
|
|
15
|
-
:sample_decimal => JInteger::MAX_VALUE + 1)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def teardown
|
|
19
|
-
DbTypeMigration.down
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def test_timestamp
|
|
23
|
-
types = DbType.find(:first)
|
|
24
|
-
assert_equal TEST_TIME, types.sample_timestamp.getutc
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_decimal
|
|
28
|
-
types = DbType.find(:first)
|
|
29
|
-
assert_equal((JInteger::MAX_VALUE + 1), types.sample_decimal)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
print "Using native JDBC (MySQL)\n"
|
|
2
|
-
require_dependency 'fixtures/course'
|
|
3
|
-
require 'logger'
|
|
4
|
-
|
|
5
|
-
RAILS_CONNECTION_ADAPTERS << 'jdbc'
|
|
6
|
-
require "active_record/connection_adapters/jdbc_adapter"
|
|
7
|
-
|
|
8
|
-
ActiveRecord::Base.logger = Logger.new("debug.log")
|
|
9
|
-
|
|
10
|
-
db1 = 'activerecord_unittest'
|
|
11
|
-
db2 = 'activerecord_unittest2'
|
|
12
|
-
|
|
13
|
-
ActiveRecord::Base.establish_connection(
|
|
14
|
-
:adapter => "jdbc",
|
|
15
|
-
:driver => "com.mysql.jdbc.Driver",
|
|
16
|
-
:url => "jdbc:mysql://localhost:3306/#{db1}",
|
|
17
|
-
:username => "rails"
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
Course.establish_connection(
|
|
21
|
-
:adapter => "jdbc",
|
|
22
|
-
:driver => "com.mysql.jdbc.Driver",
|
|
23
|
-
:url => "jdbc:mysql://localhost:3306/#{db2}",
|
|
24
|
-
:username => "rails"
|
|
25
|
-
)
|
data/test/db/db2.rb
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
config = {
|
|
2
|
-
# DB2 uses $USER if running locally, just add
|
|
3
|
-
# yourself to your db2 groups in /etc/group
|
|
4
|
-
# :username => "blog",
|
|
5
|
-
# :password => "",
|
|
6
|
-
:adapter => "jdbc",
|
|
7
|
-
:driver => "com.ibm.db2.jcc.DB2Driver",
|
|
8
|
-
:url => "jdbc:db2:weblog_development"
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
ActiveRecord::Base.establish_connection(config)
|
data/test/db/derby.rb
DELETED
data/test/db/h2.rb
DELETED
data/test/db/hsqldb.rb
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
config = {
|
|
2
|
-
:adapter => 'hsqldb',
|
|
3
|
-
:database => 'test.db'
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
ActiveRecord::Base.establish_connection(config)
|
|
7
|
-
|
|
8
|
-
at_exit {
|
|
9
|
-
# Clean up hsqldb when done
|
|
10
|
-
require "fileutils"
|
|
11
|
-
Dir['test.db*'].each {|f| FileUtils.rm_rf(f)}
|
|
12
|
-
FileUtils.rm_rf('hsqldb-testdb.log') rescue nil #can't delete on windows
|
|
13
|
-
}
|
data/test/db/informix.rb
DELETED
data/test/db/jdbc.rb
DELETED
data/test/db/jndi_config.rb
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
require 'fileutils'
|
|
2
|
-
require 'arjdbc'
|
|
3
|
-
|
|
4
|
-
JNDI_CONFIG = {
|
|
5
|
-
:adapter => "jdbc",
|
|
6
|
-
:jndi => 'jdbc/derbydb'
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
# To test JNDI, grab fscontext-1_2-beta3.zip from
|
|
10
|
-
# http://java.sun.com/products/jndi/downloads/index.html
|
|
11
|
-
# and put fscontext.jar and providerutil.jar in test/
|
|
12
|
-
require 'test/fscontext.jar'
|
|
13
|
-
require 'test/providerutil.jar'
|
|
14
|
-
require 'jdbc/derby'
|
|
15
|
-
|
|
16
|
-
System = java.lang.System
|
|
17
|
-
Context = javax.naming.Context
|
|
18
|
-
InitialContext = javax.naming.InitialContext
|
|
19
|
-
Reference = javax.naming.Reference
|
|
20
|
-
StringRefAddr = javax.naming.StringRefAddr
|
|
21
|
-
|
|
22
|
-
System.set_property(Context::INITIAL_CONTEXT_FACTORY,
|
|
23
|
-
'com.sun.jndi.fscontext.RefFSContextFactory')
|
|
24
|
-
project_path = File.expand_path(File.dirname(__FILE__) + '/../..')
|
|
25
|
-
jndi_dir = project_path + '/jndi_test'
|
|
26
|
-
jdbc_dir = jndi_dir + '/jdbc'
|
|
27
|
-
FileUtils.mkdir_p jdbc_dir unless File.exist?(jdbc_dir)
|
|
28
|
-
|
|
29
|
-
System.set_property(Context::PROVIDER_URL, "file://#{jndi_dir}")
|
|
30
|
-
|
|
31
|
-
ic = InitialContext.new
|
|
32
|
-
ic.rebind(JNDI_CONFIG[:jndi],
|
|
33
|
-
org.apache.derby.jdbc.EmbeddedDataSource.new.tap {|ds|
|
|
34
|
-
ds.database_name = "derby-testdb-jndi"
|
|
35
|
-
ds.create_database = "create"
|
|
36
|
-
ds.user = "sa"
|
|
37
|
-
ds.password = ""})
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
ActiveRecord::Base.establish_connection(JNDI_CONFIG)
|
data/test/db/logger.rb
DELETED
data/test/db/mssql.rb
DELETED
data/test/db/mysql.rb
DELETED
data/test/db/oracle.rb
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
config = {
|
|
2
|
-
:username => 'blog',
|
|
3
|
-
:password => 'blog',
|
|
4
|
-
:adapter => 'oracle',
|
|
5
|
-
:host => ENV["ORACLE_HOST"] || 'localhost',
|
|
6
|
-
:database => ENV["ORACLE_SID"] || 'XE' # XE is the default SID for oracle xe
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
ActiveRecord::Base.establish_connection(config)
|
|
10
|
-
|
|
11
|
-
# Here are some notes of things I had to do to get running on Oracle
|
|
12
|
-
# XE.
|
|
13
|
-
#
|
|
14
|
-
# ON Linux:
|
|
15
|
-
# create tablespace weblog_development
|
|
16
|
-
# datafile '/usr/lib/oracle/xe/oradata/XE/weblog_development.dbf';
|
|
17
|
-
# ON Windows XP:
|
|
18
|
-
# create tablespace weblog_development
|
|
19
|
-
# datafile 'C:\ORACLEXE\ORADATA\XE\WEBLOGD.DBF' size 16m;
|
|
20
|
-
#
|
|
21
|
-
# create user blog identified by blog
|
|
22
|
-
# default tablespace weblog_development;
|
|
23
|
-
# grant all privileges to blog;
|
|
24
|
-
#
|
|
25
|
-
# You might need to up the number of processes and restart the
|
|
26
|
-
# listener. (In my case, I had to reboot.) See
|
|
27
|
-
# http://it.newinstance.it/2007/06/01/ora-12519-tnsno-appropriate-service-handler-found/
|
|
28
|
-
#
|
|
29
|
-
# alter system set PROCESSES=150 scope=SPFILE;
|
|
30
|
-
#
|
|
31
|
-
# These might be helpful too (numbers are rather arbitrary...)
|
|
32
|
-
#
|
|
33
|
-
# alter system set TRANSACTIONS=126 scope=SPFILE;
|
|
34
|
-
# alter system set SESSIONS=115 scope=SPFILE;
|
data/test/db/postgres.rb
DELETED
data/test/db/sqlite3.rb
DELETED
data/test/db2_simple_test.rb
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/db2'
|
|
3
|
-
|
|
4
|
-
class DB2SimpleTest < Test::Unit::TestCase
|
|
5
|
-
include SimpleTestMethods
|
|
6
|
-
|
|
7
|
-
# For backwards compatibility with how the DB2 code in
|
|
8
|
-
# jdbc_adapter 0.9.x handled booleans.
|
|
9
|
-
#
|
|
10
|
-
# The old DB2 jdbc_db2.rb driver was broken enough that
|
|
11
|
-
# applications were exposed to the underlying type (was DECIMAL)
|
|
12
|
-
# and used 0 and 1 as false and true, respectively.
|
|
13
|
-
#
|
|
14
|
-
# This driver now uses SMALLINT as a boolean, and properly
|
|
15
|
-
# type cast's it to a Ruby boolean. Need to make sure we don't
|
|
16
|
-
# break existing apps!
|
|
17
|
-
def test_boolean_as_integer
|
|
18
|
-
e = DbType.find(:first)
|
|
19
|
-
|
|
20
|
-
# true
|
|
21
|
-
e.sample_boolean = 1
|
|
22
|
-
assert_equal true, e.sample_boolean
|
|
23
|
-
assert_equal true, e.sample_boolean?
|
|
24
|
-
e.save!
|
|
25
|
-
|
|
26
|
-
e = DbType.find(:first)
|
|
27
|
-
assert_equal true, e.sample_boolean
|
|
28
|
-
assert_equal true, e.sample_boolean?
|
|
29
|
-
|
|
30
|
-
# false
|
|
31
|
-
e.sample_boolean = 0
|
|
32
|
-
assert_equal false, e.sample_boolean
|
|
33
|
-
assert_equal false, e.sample_boolean?
|
|
34
|
-
e.save!
|
|
35
|
-
|
|
36
|
-
e = DbType.find(:first)
|
|
37
|
-
assert_equal false, e.sample_boolean
|
|
38
|
-
assert_equal false, e.sample_boolean?
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
class DB2HasManyThroughTest < Test::Unit::TestCase
|
|
43
|
-
include HasManyThroughMethods
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
class DB2Test < Test::Unit::TestCase
|
|
47
|
-
def setup
|
|
48
|
-
@inst = Object.new
|
|
49
|
-
@inst.extend ArJdbc::DB2
|
|
50
|
-
@column = Object.new
|
|
51
|
-
class << @column
|
|
52
|
-
attr_accessor :type
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def test_quote_decimal
|
|
57
|
-
assert_equal %q{'123.45'}, @inst.quote("123.45")
|
|
58
|
-
@column.type = :decimal
|
|
59
|
-
assert_equal %q{123.45}, @inst.quote("123.45", @column), "decimal columns should not have quotes"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def test_primary_key_generation
|
|
63
|
-
@column.type = :primary_key
|
|
64
|
-
assert_equal 'int not null generated by default as identity (start with 1) primary key', @inst.modify_types({:string => {}, :integer => {}, :boolean => {}})[:primary_key]
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/derby'
|
|
3
|
-
|
|
4
|
-
class CreateDummies < ActiveRecord::Migration
|
|
5
|
-
def self.up
|
|
6
|
-
create_table :dummies, :force => true do |t|
|
|
7
|
-
t.string :year, :default => "", :null => false
|
|
8
|
-
end
|
|
9
|
-
add_index :dummies, :year, :unique => true
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class ChangeColumn < ActiveRecord::Migration
|
|
15
|
-
def self.up
|
|
16
|
-
create_table :people, :id => false, :force => true do |t|
|
|
17
|
-
t.string :id, :limit => 22, :null => false
|
|
18
|
-
t.string :name, :null => false
|
|
19
|
-
end
|
|
20
|
-
change_column(:people, :name, :string, {:limit=>22})
|
|
21
|
-
execute("SELECT id FROM people WHERE id = 'some string'")
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def self.down
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
class CreateIndex < ActiveRecord::Migration
|
|
30
|
-
def self.up
|
|
31
|
-
create_table :people, :id => false, :force => true do |t|
|
|
32
|
-
t.string :id, :limit => 22, :null => false
|
|
33
|
-
t.string :first_name, :null => false
|
|
34
|
-
t.string :last_name, :null => false
|
|
35
|
-
t.string :nickname, :null => false
|
|
36
|
-
t.string :long_name, :null => false
|
|
37
|
-
t.string :very_long_name, :null => false
|
|
38
|
-
t.string :extremely_long_name, :null => false
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
add_index(:people, [:first_name, :last_name, :nickname, :long_name, :very_long_name, :extremely_long_name], :unique => true)
|
|
42
|
-
|
|
43
|
-
remove_index(:people, [:first_name, :last_name, :nickname, :long_name, :very_long_name, :extremely_long_name])
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.down
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class DerbyMigrationTest < Test::Unit::TestCase
|
|
52
|
-
include FixtureSetup
|
|
53
|
-
|
|
54
|
-
def test_create_table_column_quoting_vs_keywords
|
|
55
|
-
CreateDummies.up
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_migrate_change_column_for_non_standard_id
|
|
59
|
-
ChangeColumn.up
|
|
60
|
-
ChangeColumn.down
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def test_migrate_create_index
|
|
64
|
-
CreateIndex.up
|
|
65
|
-
CreateIndex.down
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# To run this script, run the following in a mysql instance:
|
|
2
|
-
#
|
|
3
|
-
# drop database if exists weblog_development;
|
|
4
|
-
# create database weblog_development;
|
|
5
|
-
# grant all on weblog_development.* to blog@localhost;
|
|
6
|
-
|
|
7
|
-
require 'jdbc_common'
|
|
8
|
-
require 'db/derby'
|
|
9
|
-
|
|
10
|
-
class DerbyMultibyteTest < Test::Unit::TestCase
|
|
11
|
-
include MultibyteTestMethods
|
|
12
|
-
end
|
data/test/derby_simple_test.rb
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# To run this script, run the following in a mysql instance:
|
|
2
|
-
#
|
|
3
|
-
# drop database if exists weblog_development;
|
|
4
|
-
# create database weblog_development;
|
|
5
|
-
# grant all on weblog_development.* to blog@localhost;
|
|
6
|
-
|
|
7
|
-
require 'jdbc_common'
|
|
8
|
-
require 'db/derby'
|
|
9
|
-
|
|
10
|
-
class DerbySimpleTest < Test::Unit::TestCase
|
|
11
|
-
include SimpleTestMethods
|
|
12
|
-
|
|
13
|
-
# Check that a table-less VALUES(xxx) query (like SELECT works.
|
|
14
|
-
def test_values
|
|
15
|
-
value = nil
|
|
16
|
-
assert_nothing_raised do
|
|
17
|
-
value = ActiveRecord::Base.connection.send(:select_rows, "VALUES('ur', 'doin', 'it', 'right')")
|
|
18
|
-
end
|
|
19
|
-
assert_equal [['ur', 'doin', 'it', 'right']], value
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def test_find_with_include_and_order
|
|
23
|
-
users = User.find(:all, :include=>[:entries], :order=>"entries.rating DESC", :limit=>2)
|
|
24
|
-
|
|
25
|
-
assert users.include?(@user)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def test_text_and_string_conversions
|
|
29
|
-
e = DbType.find(:first)
|
|
30
|
-
|
|
31
|
-
# Derby will normally reject any non text value.
|
|
32
|
-
# The adapter has been patched to convert non text values to strings
|
|
33
|
-
['string', 45, 4.3, 18488425889503641645].each do |value|
|
|
34
|
-
assert_nothing_raised do
|
|
35
|
-
e.sample_string = value
|
|
36
|
-
e.sample_text = value
|
|
37
|
-
e.save!
|
|
38
|
-
e.reload
|
|
39
|
-
assert_equal [value.to_s]*2, [e.sample_string, e.sample_text]
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
[true, false].each do |value|
|
|
43
|
-
assert_nothing_raised do
|
|
44
|
-
e.sample_string = value
|
|
45
|
-
e.sample_text = value
|
|
46
|
-
e.save!
|
|
47
|
-
e.reload
|
|
48
|
-
assert_equal [value ? "1" : "0"]*2, [e.sample_string, e.sample_text]
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
assert_nothing_raised do
|
|
52
|
-
value = Time.now
|
|
53
|
-
if ActiveRecord::VERSION::MAJOR >= 3
|
|
54
|
-
str = value.utc.to_s(:db)
|
|
55
|
-
else # AR 2 #quoted_date did not do TZ conversions
|
|
56
|
-
str = value.to_s(:db)
|
|
57
|
-
end
|
|
58
|
-
e.sample_string = value
|
|
59
|
-
e.sample_text = value
|
|
60
|
-
e.save!
|
|
61
|
-
e.reload
|
|
62
|
-
assert_equal [str]*2, [e.sample_string, e.sample_text]
|
|
63
|
-
end
|
|
64
|
-
assert_nothing_raised do
|
|
65
|
-
value = Date.today
|
|
66
|
-
e.sample_string = value
|
|
67
|
-
e.sample_text = value
|
|
68
|
-
e.save!
|
|
69
|
-
e.reload
|
|
70
|
-
assert_equal [value.to_s(:db)]*2, [e.sample_string, e.sample_text]
|
|
71
|
-
end
|
|
72
|
-
value = {'a' => 7}
|
|
73
|
-
assert_nothing_raised do
|
|
74
|
-
e.sample_string = value
|
|
75
|
-
e.sample_text = value
|
|
76
|
-
e.save!
|
|
77
|
-
e.reload
|
|
78
|
-
assert_equal [value.to_yaml]*2, [e.sample_string, e.sample_text]
|
|
79
|
-
end
|
|
80
|
-
value = BigDecimal.new("0")
|
|
81
|
-
assert_nothing_raised do
|
|
82
|
-
e.sample_string = value
|
|
83
|
-
e.sample_text = value
|
|
84
|
-
e.save!
|
|
85
|
-
e.reload
|
|
86
|
-
assert_equal ['0.0']*2, [e.sample_string, e.sample_text]
|
|
87
|
-
end
|
|
88
|
-
# An empty string is treated as a null value in Oracle: http://www.techonthenet.com/oracle/questions/empty_null.php
|
|
89
|
-
unless ActiveRecord::Base.connection.adapter_name =~ /oracle/i
|
|
90
|
-
assert_nothing_raised do
|
|
91
|
-
e.sample_string = nil
|
|
92
|
-
e.sample_text = nil
|
|
93
|
-
e.save!
|
|
94
|
-
e.reload
|
|
95
|
-
assert_equal [nil]*2, [e.sample_string, e.sample_text]
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|