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
data/test/mssql_simple_test.rb
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/mssql'
|
|
3
|
-
|
|
4
|
-
class MsSQLSimpleTest < Test::Unit::TestCase
|
|
5
|
-
|
|
6
|
-
include SimpleTestMethods
|
|
7
|
-
|
|
8
|
-
# MS SQL 2005 doesn't have a DATE class, only TIMESTAMP.
|
|
9
|
-
undef_method :test_save_date
|
|
10
|
-
|
|
11
|
-
# String comparisons are insensitive by default
|
|
12
|
-
undef_method :test_validates_uniqueness_of_strings_case_sensitive
|
|
13
|
-
|
|
14
|
-
def test_does_not_munge_quoted_strings
|
|
15
|
-
example_quoted_values = [%{'quoted'}, %{D\'oh!}]
|
|
16
|
-
example_quoted_values.each do |value|
|
|
17
|
-
entry = Entry.create!(:title => value)
|
|
18
|
-
entry.reload
|
|
19
|
-
assert_equal(value, entry.title)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_change_column_default
|
|
24
|
-
|
|
25
|
-
Entry.connection.change_column "entries", "title", :string, :default => "new default"
|
|
26
|
-
Entry.reset_column_information
|
|
27
|
-
assert_equal("new default", Entry.new.title)
|
|
28
|
-
|
|
29
|
-
Entry.connection.change_column "entries", "title", :string, :default => nil
|
|
30
|
-
Entry.reset_column_information
|
|
31
|
-
assert_equal(nil, Entry.new.title)
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def test_change_column_nullability
|
|
36
|
-
|
|
37
|
-
Entry.connection.change_column "entries", "title", :string, :null => true
|
|
38
|
-
Entry.reset_column_information
|
|
39
|
-
title_column = Entry.columns.find { |c| c.name == "title" }
|
|
40
|
-
assert(title_column.null)
|
|
41
|
-
|
|
42
|
-
Entry.connection.change_column "entries", "title", :string, :null => false
|
|
43
|
-
Entry.reset_column_information
|
|
44
|
-
title_column = Entry.columns.find { |c| c.name == "title" }
|
|
45
|
-
assert(!title_column.null)
|
|
46
|
-
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# ACTIVERECORD_JDBC-124
|
|
50
|
-
def test_model_does_not_have_row_num_column
|
|
51
|
-
entry = Entry.first
|
|
52
|
-
assert !entry.attributes.keys.include?("_row_num")
|
|
53
|
-
assert !entry.respond_to?(:_row_num)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
require 'abstract_db_create'
|
|
2
|
-
require 'db/mysql'
|
|
3
|
-
|
|
4
|
-
class MysqlDbCreateTest < Test::Unit::TestCase
|
|
5
|
-
include AbstractDbCreate
|
|
6
|
-
|
|
7
|
-
def db_config
|
|
8
|
-
MYSQL_CONFIG
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_rake_db_create
|
|
12
|
-
Rake::Task["db:create"].invoke
|
|
13
|
-
if find_executable?("mysql")
|
|
14
|
-
output = nil
|
|
15
|
-
IO.popen("mysql -u #{MYSQL_CONFIG[:username]} --password=#{MYSQL_CONFIG[:password]}", "r+") do |mysql|
|
|
16
|
-
mysql << "show databases where `Database` = '#{@db_name}';"
|
|
17
|
-
mysql.close_write
|
|
18
|
-
assert mysql.read =~ /#{@db_name}/m
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_rake_db_test_purge
|
|
24
|
-
Rake::Task["db:create"].invoke
|
|
25
|
-
Rake::Task["db:test:purge"].invoke
|
|
26
|
-
end
|
|
27
|
-
end
|
data/test/mysql_info_test.rb
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/mysql'
|
|
3
|
-
begin; require 'active_support/core_ext/numeric/bytes'; rescue LoadError; end
|
|
4
|
-
|
|
5
|
-
class DBSetup < ActiveRecord::Migration
|
|
6
|
-
|
|
7
|
-
def self.up
|
|
8
|
-
create_table :books do |t|
|
|
9
|
-
t.string :title
|
|
10
|
-
t.timestamps
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
create_table :cars, :primary_key => 'legacy_id' do |t|
|
|
14
|
-
t.string :name
|
|
15
|
-
t.date :production_started_on
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
create_table :cats, :id => false do |t|
|
|
19
|
-
t.string :name
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
create_table :memos do |t|
|
|
23
|
-
t.text :text, :limit => 16.megabytes
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.down
|
|
28
|
-
drop_table :books
|
|
29
|
-
drop_table :cars
|
|
30
|
-
drop_table :cats
|
|
31
|
-
drop_table :memos
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
class MysqlInfoTest < Test::Unit::TestCase
|
|
37
|
-
|
|
38
|
-
def setup
|
|
39
|
-
DBSetup.up
|
|
40
|
-
@connection = ActiveRecord::Base.connection
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def teardown
|
|
44
|
-
DBSetup.down
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
## primary_key
|
|
48
|
-
def test_should_return_the_primary_key_of_a_table
|
|
49
|
-
assert_equal 'id', @connection.primary_key('books')
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_should_be_able_to_return_a_custom_primary_key
|
|
53
|
-
assert_equal 'legacy_id', @connection.primary_key('cars')
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def test_should_return_nil_for_a_table_without_a_primary_key
|
|
57
|
-
assert_nil @connection.primary_key('cats')
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
## structure_dump
|
|
61
|
-
def test_should_include_the_tables_in_a_structure_dump
|
|
62
|
-
# TODO: Improve these tests, I added this one because no other tests exists for this method.
|
|
63
|
-
dump = @connection.structure_dump
|
|
64
|
-
assert dump.include?('CREATE TABLE `books`')
|
|
65
|
-
assert dump.include?('CREATE TABLE `cars`')
|
|
66
|
-
assert dump.include?('CREATE TABLE `cats`')
|
|
67
|
-
assert dump.include?('CREATE TABLE `memos`')
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def test_should_include_longtext_in_schema_dump
|
|
71
|
-
strio = StringIO.new
|
|
72
|
-
ActiveRecord::SchemaDumper::dump(@connection, strio)
|
|
73
|
-
dump = strio.string
|
|
74
|
-
assert_match %r{t.text\s+"text",\s+:limit => 2147483647$}, dump
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# JRUBY-5040
|
|
78
|
-
def test_schema_dump_should_not_have_limits_on_datetime
|
|
79
|
-
strio = StringIO.new
|
|
80
|
-
ActiveRecord::SchemaDumper::dump(@connection, strio)
|
|
81
|
-
dump = strio.string
|
|
82
|
-
dump.grep(/datetime/).each {|line| assert line !~ /limit/ }
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def test_schema_dump_should_not_have_limits_on_date
|
|
86
|
-
strio = StringIO.new
|
|
87
|
-
ActiveRecord::SchemaDumper::dump(@connection, strio)
|
|
88
|
-
dump = strio.string
|
|
89
|
-
dump.grep(/date/).each {|line| assert line !~ /limit/ }
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def test_should_include_limit
|
|
93
|
-
text_column = @connection.columns('memos').find { |c| c.name == 'text' }
|
|
94
|
-
assert_equal 2147483647, text_column.limit
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def test_should_set_sqltype_to_longtext
|
|
98
|
-
text_column = @connection.columns('memos').find { |c| c.name == 'text' }
|
|
99
|
-
assert text_column.sql_type =~ /^longtext/
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def test_should_set_type_to_text
|
|
103
|
-
text_column = @connection.columns('memos').find { |c| c.name == 'text' }
|
|
104
|
-
assert_equal :text, text_column.type
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def test_verify_url_has_options
|
|
108
|
-
url = @connection.config[:url]
|
|
109
|
-
assert url =~ /characterEncoding=utf8/
|
|
110
|
-
assert url =~ /useUnicode=true/
|
|
111
|
-
assert url =~ /zeroDateTimeBehavior=convertToNull/
|
|
112
|
-
end
|
|
113
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/mysql'
|
|
3
|
-
|
|
4
|
-
class Project < ActiveRecord::Migration
|
|
5
|
-
def self.up
|
|
6
|
-
create_table :project, :primary_key => "project_id" do |t|
|
|
7
|
-
t.string :projectType, :limit => 31
|
|
8
|
-
t.boolean :published
|
|
9
|
-
t.datetime :created_date
|
|
10
|
-
t.text :abstract, :title
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def self.down
|
|
15
|
-
drop_table :project
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class MysqlNonstandardPrimaryKeyTest < Test::Unit::TestCase
|
|
21
|
-
|
|
22
|
-
def setup
|
|
23
|
-
Project.up
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def teardown
|
|
27
|
-
Project.down
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def standard_dump
|
|
31
|
-
stream = StringIO.new
|
|
32
|
-
ActiveRecord::SchemaDumper.ignore_tables = []
|
|
33
|
-
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
|
|
34
|
-
stream.string
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def test_nonstandard_primary_key
|
|
38
|
-
output = standard_dump
|
|
39
|
-
assert_match %r(:primary_key => "project_id"), output, "non-standard primary key not preserved"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
end
|
data/test/mysql_simple_test.rb
DELETED
|
@@ -1,49 +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
|
-
# flush privileges;
|
|
7
|
-
|
|
8
|
-
require 'jdbc_common'
|
|
9
|
-
require 'db/mysql'
|
|
10
|
-
|
|
11
|
-
class MysqlSimpleTest < Test::Unit::TestCase
|
|
12
|
-
include SimpleTestMethods
|
|
13
|
-
include ActiveRecord3TestMethods
|
|
14
|
-
|
|
15
|
-
def test_string_quoting_oddity
|
|
16
|
-
s = "0123456789a'a"
|
|
17
|
-
assert_equal "'0123456789a\\'a'", ActiveRecord::Base.connection.quote(s)
|
|
18
|
-
|
|
19
|
-
s2 = s[10,3]
|
|
20
|
-
assert_equal "a'a", s2
|
|
21
|
-
assert_equal "'a\\'a'", ActiveRecord::Base.connection.quote(s2)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def test_table_name_quoting_with_dot
|
|
25
|
-
s = "weblog_development.posts"
|
|
26
|
-
assert_equal "`weblog_development`.`posts`", ActiveRecord::Base.connection.quote_table_name(s)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def test_update_all_with_limit
|
|
30
|
-
assert_nothing_raised { Entry.update_all({:title => "test"}, {}, {:limit => 1}) }
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_find_in_other_schema_with_include
|
|
34
|
-
old_entries_table_name = Entry.table_name
|
|
35
|
-
old_users_table_name = User.table_name
|
|
36
|
-
begin
|
|
37
|
-
User.set_table_name 'weblog_development.users'
|
|
38
|
-
Entry.set_table_name 'weblog_development.entries'
|
|
39
|
-
assert !Entry.all(:include => :user).empty?
|
|
40
|
-
ensure
|
|
41
|
-
Entry.set_table_name old_entries_table_name
|
|
42
|
-
User.set_table_name old_users_table_name
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
class MysqlHasManyThroughTest < Test::Unit::TestCase
|
|
48
|
-
include HasManyThroughMethods
|
|
49
|
-
end
|
data/test/oracle_simple_test.rb
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/oracle'
|
|
3
|
-
|
|
4
|
-
class OracleSimpleTest < Test::Unit::TestCase
|
|
5
|
-
include SimpleTestMethods
|
|
6
|
-
|
|
7
|
-
def test_default_id_type_is_integer
|
|
8
|
-
assert Integer === Entry.first.id
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_sequences_are_not_cached
|
|
12
|
-
ActiveRecord::Base.transaction do
|
|
13
|
-
e1 = Entry.create :title => "hello1"
|
|
14
|
-
e2 = Entry.create :title => "hello2"
|
|
15
|
-
assert e1.id != e2.id
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
require 'jdbc_common'
|
|
2
|
-
require 'db/oracle'
|
|
3
|
-
|
|
4
|
-
class DefaultNumber < ActiveRecord::Base
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
class OracleSpecificTest < Test::Unit::TestCase
|
|
8
|
-
include MultibyteTestMethods # so we can get @java_con
|
|
9
|
-
|
|
10
|
-
def setup
|
|
11
|
-
super
|
|
12
|
-
@java_con.createStatement.execute "
|
|
13
|
-
CREATE TABLE DEFAULT_NUMBERS (
|
|
14
|
-
ID INTEGER NOT NULL PRIMARY KEY, VALUE NUMBER, DATUM DATE, FPOINT NUMBER(10,2), VALUE2 NUMBER(15)
|
|
15
|
-
)"
|
|
16
|
-
@java_con.createStatement.execute "
|
|
17
|
-
INSERT INTO DEFAULT_NUMBERS (ID, VALUE, DATUM, FPOINT, VALUE2)
|
|
18
|
-
VALUES (1, 0.076, TIMESTAMP'2009-11-05 00:00:00', 1000.01, 1234)"
|
|
19
|
-
@java_con.createStatement.execute "CREATE SYNONYM POSTS FOR ENTRIES"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def teardown
|
|
23
|
-
@java_con.createStatement.execute "DROP TABLE DEFAULT_NUMBERS"
|
|
24
|
-
@java_con.createStatement.execute "DROP SYNONYM POSTS"
|
|
25
|
-
super
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def test_default_number_precision
|
|
29
|
-
assert_equal 0.076, DefaultNumber.find(:first).value
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_number_with_precision_and_scale
|
|
33
|
-
assert_equal 1000.01, DefaultNumber.find(:first).fpoint
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def test_number_with_precision
|
|
37
|
-
assert_equal 1234, DefaultNumber.find(:first).value2
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def test_number_type_with_precision_and_scale_is_reported_correctly
|
|
41
|
-
assert_equal 'NUMBER', DefaultNumber.columns_hash['value'].sql_type
|
|
42
|
-
assert_equal 'NUMBER(10,2)', DefaultNumber.columns_hash['fpoint'].sql_type
|
|
43
|
-
assert_equal 'NUMBER(15)', DefaultNumber.columns_hash['value2'].sql_type
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# JRUBY-3675, ACTIVERECORD_JDBC-22
|
|
47
|
-
def test_load_date
|
|
48
|
-
obj = DefaultNumber.find(:first)
|
|
49
|
-
assert_not_nil obj.datum, "no date"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# ACTIVERECORD_JDBC-127
|
|
53
|
-
def test_save_date
|
|
54
|
-
obj = DefaultNumber.find(:first)
|
|
55
|
-
obj.datum = '01Jan2010'
|
|
56
|
-
obj.save!
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def test_save_timestamp
|
|
60
|
-
obj = DefaultNumber.find(:first)
|
|
61
|
-
obj.datum = Time.now
|
|
62
|
-
obj.save!
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def test_load_null_date
|
|
66
|
-
@java_con.createStatement.execute "UPDATE DEFAULT_NUMBERS SET DATUM = NULL"
|
|
67
|
-
obj = DefaultNumber.find(:first)
|
|
68
|
-
assert obj.datum.nil?
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def test_model_access_by_synonym
|
|
72
|
-
@klass = Class.new(ActiveRecord::Base)
|
|
73
|
-
@klass.set_table_name "POSTS"
|
|
74
|
-
entry_columns = Entry.columns_hash
|
|
75
|
-
@klass.columns.each do |c|
|
|
76
|
-
ec = entry_columns[c.name]
|
|
77
|
-
assert ec
|
|
78
|
-
assert_equal ec.sql_type, c.sql_type
|
|
79
|
-
assert_equal ec.type, c.type
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
end if defined?(JRUBY_VERSION)
|
data/test/pick_rails_version.rb
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
require 'abstract_db_create'
|
|
2
|
-
require 'db/postgres'
|
|
3
|
-
|
|
4
|
-
class PostgresDbCreateTest < Test::Unit::TestCase
|
|
5
|
-
include AbstractDbCreate
|
|
6
|
-
|
|
7
|
-
def db_config
|
|
8
|
-
POSTGRES_CONFIG
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
if find_executable?("psql")
|
|
12
|
-
def test_rake_db_create
|
|
13
|
-
Rake::Task["db:create"].invoke
|
|
14
|
-
output = `psql -c '\\l'`
|
|
15
|
-
assert output =~ /#{@db_name}/m
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def test_rake_db_test_purge
|
|
19
|
-
Rake::Task["db:create"].invoke
|
|
20
|
-
Rake::Task["db:test:purge"].invoke
|
|
21
|
-
end
|
|
22
|
-
else
|
|
23
|
-
def test_skipped
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_rake_db_create_does_not_load_full_environment
|
|
28
|
-
Rake::Task["db:create"].invoke
|
|
29
|
-
assert @rails_env_set
|
|
30
|
-
assert !@full_environment_loaded
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
require 'abstract_db_create'
|
|
2
|
-
require 'db/postgres'
|
|
3
|
-
|
|
4
|
-
class PostgresDbDropTest < Test::Unit::TestCase
|
|
5
|
-
include AbstractDbCreate
|
|
6
|
-
|
|
7
|
-
def db_config
|
|
8
|
-
POSTGRES_CONFIG
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_dropping_nonexistent_database_does_not_raise_exception
|
|
12
|
-
assert_nothing_raised do
|
|
13
|
-
Rake::Task["db:drop"].invoke
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|