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.
Files changed (268) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +33 -0
  3. data/.travis.yml +79 -0
  4. data/.yardopts +4 -0
  5. data/CONTRIBUTING.md +50 -0
  6. data/Gemfile +91 -0
  7. data/History.md +1191 -0
  8. data/LICENSE.txt +22 -17
  9. data/README.md +169 -0
  10. data/RUNNING_TESTS.md +127 -0
  11. data/Rakefile +294 -5
  12. data/Rakefile.jdbc +20 -0
  13. data/activerecord-jdbc-adapter.gemspec +55 -0
  14. data/lib/active_record/connection_adapters/as400_adapter.rb +2 -0
  15. data/lib/active_record/connection_adapters/db2_adapter.rb +1 -0
  16. data/lib/active_record/connection_adapters/firebird_adapter.rb +1 -0
  17. data/lib/active_record/connection_adapters/mariadb_adapter.rb +1 -0
  18. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
  19. data/lib/activerecord-jdbc-adapter.rb +0 -5
  20. data/lib/arel/visitors/compat.rb +60 -0
  21. data/lib/arel/visitors/db2.rb +128 -6
  22. data/lib/arel/visitors/derby.rb +103 -10
  23. data/lib/arel/visitors/firebird.rb +79 -0
  24. data/lib/arel/visitors/h2.rb +25 -0
  25. data/lib/arel/visitors/hsqldb.rb +18 -10
  26. data/lib/arel/visitors/postgresql_jdbc.rb +6 -0
  27. data/lib/arel/visitors/sql_server.rb +225 -0
  28. data/lib/arel/visitors/sql_server/ng42.rb +293 -0
  29. data/lib/arjdbc.rb +11 -21
  30. data/lib/arjdbc/abstract/connection_management.rb +35 -0
  31. data/lib/arjdbc/abstract/core.rb +64 -0
  32. data/lib/arjdbc/abstract/database_statements.rb +64 -0
  33. data/lib/arjdbc/abstract/statement_cache.rb +58 -0
  34. data/lib/arjdbc/abstract/transaction_support.rb +86 -0
  35. data/lib/arjdbc/db2.rb +3 -1
  36. data/lib/arjdbc/db2/adapter.rb +630 -250
  37. data/lib/arjdbc/db2/as400.rb +130 -0
  38. data/lib/arjdbc/db2/column.rb +167 -0
  39. data/lib/arjdbc/db2/connection_methods.rb +44 -0
  40. data/lib/arjdbc/derby.rb +1 -5
  41. data/lib/arjdbc/derby/active_record_patch.rb +13 -0
  42. data/lib/arjdbc/derby/adapter.rb +409 -217
  43. data/lib/arjdbc/derby/connection_methods.rb +16 -14
  44. data/lib/arjdbc/derby/schema_creation.rb +15 -0
  45. data/lib/arjdbc/discover.rb +62 -50
  46. data/lib/arjdbc/firebird.rb +3 -1
  47. data/lib/arjdbc/firebird/adapter.rb +365 -62
  48. data/lib/arjdbc/firebird/connection_methods.rb +23 -0
  49. data/lib/arjdbc/h2.rb +2 -3
  50. data/lib/arjdbc/h2/adapter.rb +273 -6
  51. data/lib/arjdbc/h2/connection_methods.rb +23 -8
  52. data/lib/arjdbc/hsqldb.rb +2 -3
  53. data/lib/arjdbc/hsqldb/adapter.rb +204 -77
  54. data/lib/arjdbc/hsqldb/connection_methods.rb +24 -10
  55. data/lib/arjdbc/hsqldb/explain_support.rb +35 -0
  56. data/lib/arjdbc/hsqldb/schema_creation.rb +11 -0
  57. data/lib/arjdbc/informix.rb +4 -2
  58. data/lib/arjdbc/informix/adapter.rb +78 -54
  59. data/lib/arjdbc/informix/connection_methods.rb +8 -9
  60. data/lib/arjdbc/jdbc.rb +59 -2
  61. data/lib/arjdbc/jdbc/adapter.rb +356 -166
  62. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  63. data/lib/arjdbc/jdbc/adapter_require.rb +46 -0
  64. data/lib/arjdbc/jdbc/base_ext.rb +15 -0
  65. data/lib/arjdbc/jdbc/callbacks.rb +27 -18
  66. data/lib/arjdbc/jdbc/column.rb +79 -20
  67. data/lib/arjdbc/jdbc/connection.rb +5 -119
  68. data/lib/arjdbc/jdbc/connection_methods.rb +32 -4
  69. data/lib/arjdbc/jdbc/error.rb +65 -0
  70. data/lib/arjdbc/jdbc/extension.rb +41 -29
  71. data/lib/arjdbc/jdbc/java.rb +5 -6
  72. data/lib/arjdbc/jdbc/jdbc.rake +3 -126
  73. data/lib/arjdbc/jdbc/railtie.rb +2 -9
  74. data/lib/arjdbc/jdbc/rake_tasks.rb +3 -10
  75. data/lib/arjdbc/jdbc/serialized_attributes_helper.rb +3 -0
  76. data/lib/arjdbc/jdbc/type_cast.rb +166 -0
  77. data/lib/arjdbc/jdbc/type_converter.rb +35 -19
  78. data/lib/arjdbc/mssql.rb +6 -3
  79. data/lib/arjdbc/mssql/adapter.rb +630 -298
  80. data/lib/arjdbc/mssql/column.rb +200 -0
  81. data/lib/arjdbc/mssql/connection_methods.rb +66 -17
  82. data/lib/arjdbc/mssql/explain_support.rb +99 -0
  83. data/lib/arjdbc/mssql/limit_helpers.rb +189 -50
  84. data/lib/arjdbc/mssql/lock_methods.rb +77 -0
  85. data/lib/arjdbc/mssql/types.rb +343 -0
  86. data/lib/arjdbc/mssql/utils.rb +82 -0
  87. data/lib/arjdbc/mysql.rb +2 -3
  88. data/lib/arjdbc/mysql/adapter.rb +86 -356
  89. data/lib/arjdbc/mysql/connection_methods.rb +159 -23
  90. data/lib/arjdbc/oracle/adapter.rb +714 -263
  91. data/lib/arjdbc/postgresql.rb +2 -3
  92. data/lib/arjdbc/postgresql/_bc_time_cast_patch.rb +24 -0
  93. data/lib/arjdbc/postgresql/adapter.rb +570 -400
  94. data/lib/arjdbc/postgresql/base/array_decoder.rb +26 -0
  95. data/lib/arjdbc/postgresql/base/array_encoder.rb +25 -0
  96. data/lib/arjdbc/postgresql/base/array_parser.rb +95 -0
  97. data/lib/arjdbc/postgresql/base/pgconn.rb +11 -0
  98. data/lib/arjdbc/postgresql/column.rb +51 -0
  99. data/lib/arjdbc/postgresql/connection_methods.rb +57 -18
  100. data/lib/arjdbc/postgresql/name.rb +24 -0
  101. data/lib/arjdbc/postgresql/oid_types.rb +192 -0
  102. data/lib/arjdbc/railtie.rb +11 -0
  103. data/lib/arjdbc/sqlite3.rb +2 -3
  104. data/lib/arjdbc/sqlite3/adapter.rb +518 -198
  105. data/lib/arjdbc/sqlite3/connection_methods.rb +49 -24
  106. data/lib/arjdbc/sybase.rb +2 -2
  107. data/lib/arjdbc/sybase/adapter.rb +7 -6
  108. data/lib/arjdbc/tasks.rb +13 -0
  109. data/lib/arjdbc/tasks/database_tasks.rb +52 -0
  110. data/lib/arjdbc/tasks/databases.rake +91 -0
  111. data/lib/arjdbc/tasks/databases3.rake +215 -0
  112. data/lib/arjdbc/tasks/databases4.rake +39 -0
  113. data/lib/arjdbc/tasks/db2_database_tasks.rb +104 -0
  114. data/lib/arjdbc/tasks/derby_database_tasks.rb +95 -0
  115. data/lib/arjdbc/tasks/h2_database_tasks.rb +31 -0
  116. data/lib/arjdbc/tasks/hsqldb_database_tasks.rb +70 -0
  117. data/lib/arjdbc/tasks/jdbc_database_tasks.rb +169 -0
  118. data/lib/arjdbc/tasks/mssql_database_tasks.rb +46 -0
  119. data/lib/arjdbc/util/quoted_cache.rb +60 -0
  120. data/lib/arjdbc/util/serialized_attributes.rb +98 -0
  121. data/lib/arjdbc/util/table_copier.rb +110 -0
  122. data/lib/arjdbc/version.rb +1 -6
  123. data/lib/generators/jdbc/USAGE +9 -0
  124. data/lib/generators/jdbc/jdbc_generator.rb +8 -0
  125. data/lib/jdbc_adapter.rb +1 -1
  126. data/lib/jdbc_adapter/rake_tasks.rb +3 -2
  127. data/lib/jdbc_adapter/version.rb +2 -1
  128. data/pom.xml +114 -0
  129. data/rails_generators/jdbc_generator.rb +1 -1
  130. data/rails_generators/templates/config/initializers/jdbc.rb +8 -5
  131. data/rails_generators/templates/lib/tasks/jdbc.rake +7 -4
  132. data/rakelib/01-tomcat.rake +51 -0
  133. data/rakelib/02-test.rake +132 -0
  134. data/rakelib/bundler_ext.rb +11 -0
  135. data/rakelib/compile.rake +67 -22
  136. data/rakelib/db.rake +61 -0
  137. data/rakelib/rails.rake +204 -29
  138. data/src/java/arjdbc/ArJdbcModule.java +286 -0
  139. data/src/java/arjdbc/db2/DB2Module.java +76 -0
  140. data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +126 -0
  141. data/src/java/arjdbc/derby/DerbyModule.java +99 -243
  142. data/src/java/arjdbc/derby/DerbyRubyJdbcConnection.java +152 -0
  143. data/src/java/arjdbc/firebird/FirebirdRubyJdbcConnection.java +174 -0
  144. data/src/java/arjdbc/{jdbc/JdbcConnectionFactory.java → h2/H2Module.java} +20 -6
  145. data/src/java/arjdbc/h2/H2RubyJdbcConnection.java +27 -12
  146. data/src/java/arjdbc/hsqldb/HSQLDBModule.java +73 -0
  147. data/src/java/arjdbc/informix/InformixRubyJdbcConnection.java +7 -6
  148. data/src/java/arjdbc/jdbc/AdapterJavaService.java +7 -29
  149. data/src/java/arjdbc/jdbc/Callable.java +44 -0
  150. data/src/java/arjdbc/jdbc/ConnectionFactory.java +132 -0
  151. data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +157 -0
  152. data/src/java/arjdbc/jdbc/DriverConnectionFactory.java +63 -0
  153. data/src/java/arjdbc/jdbc/DriverWrapper.java +119 -0
  154. data/src/java/arjdbc/jdbc/JdbcResult.java +130 -0
  155. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +3622 -948
  156. data/src/java/arjdbc/mssql/MSSQLModule.java +90 -0
  157. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +181 -0
  158. data/src/java/arjdbc/mysql/MySQLModule.java +99 -81
  159. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +294 -0
  160. data/src/java/arjdbc/oracle/OracleModule.java +80 -0
  161. data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +387 -17
  162. data/src/java/arjdbc/postgresql/ByteaUtils.java +157 -0
  163. data/src/java/arjdbc/postgresql/PgResultSetMetaDataWrapper.java +23 -0
  164. data/src/java/arjdbc/postgresql/PostgreSQLModule.java +77 -0
  165. data/src/java/arjdbc/postgresql/PostgreSQLResult.java +184 -0
  166. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +952 -0
  167. data/src/java/arjdbc/sqlite3/SQLite3Module.java +73 -0
  168. data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +525 -0
  169. data/src/java/arjdbc/util/CallResultSet.java +826 -0
  170. data/src/java/arjdbc/util/DateTimeUtils.java +580 -0
  171. data/src/java/arjdbc/util/ObjectSupport.java +65 -0
  172. data/src/java/arjdbc/util/QuotingUtils.java +138 -0
  173. data/src/java/arjdbc/util/StringCache.java +63 -0
  174. data/src/java/arjdbc/util/StringHelper.java +159 -0
  175. metadata +245 -268
  176. data/History.txt +0 -369
  177. data/Manifest.txt +0 -180
  178. data/README.txt +0 -181
  179. data/lib/active_record/connection_adapters/oracle_adapter.rb +0 -1
  180. data/lib/arel/engines/sql/compilers/db2_compiler.rb +0 -9
  181. data/lib/arel/engines/sql/compilers/derby_compiler.rb +0 -6
  182. data/lib/arel/engines/sql/compilers/h2_compiler.rb +0 -6
  183. data/lib/arel/engines/sql/compilers/hsqldb_compiler.rb +0 -15
  184. data/lib/arel/engines/sql/compilers/jdbc_compiler.rb +0 -6
  185. data/lib/arel/engines/sql/compilers/mssql_compiler.rb +0 -46
  186. data/lib/arel/visitors/mssql.rb +0 -44
  187. data/lib/arjdbc/jdbc/compatibility.rb +0 -51
  188. data/lib/arjdbc/jdbc/core_ext.rb +0 -24
  189. data/lib/arjdbc/jdbc/discover.rb +0 -18
  190. data/lib/arjdbc/jdbc/driver.rb +0 -44
  191. data/lib/arjdbc/jdbc/missing_functionality_helper.rb +0 -87
  192. data/lib/arjdbc/jdbc/quoted_primary_key.rb +0 -28
  193. data/lib/arjdbc/jdbc/require_driver.rb +0 -16
  194. data/lib/arjdbc/mimer.rb +0 -2
  195. data/lib/arjdbc/mimer/adapter.rb +0 -142
  196. data/lib/arjdbc/mssql/tsql_helper.rb +0 -61
  197. data/lib/arjdbc/oracle.rb +0 -3
  198. data/lib/arjdbc/oracle/connection_methods.rb +0 -11
  199. data/lib/pg.rb +0 -4
  200. data/rakelib/package.rake +0 -92
  201. data/rakelib/test.rake +0 -81
  202. data/src/java/arjdbc/jdbc/SQLBlock.java +0 -48
  203. data/src/java/arjdbc/mssql/MssqlRubyJdbcConnection.java +0 -127
  204. data/src/java/arjdbc/postgresql/PostgresqlRubyJdbcConnection.java +0 -57
  205. data/src/java/arjdbc/sqlite3/Sqlite3RubyJdbcConnection.java +0 -64
  206. data/test/abstract_db_create.rb +0 -117
  207. data/test/activerecord/connection_adapters/type_conversion_test.rb +0 -31
  208. data/test/activerecord/connections/native_jdbc_mysql/connection.rb +0 -25
  209. data/test/db/db2.rb +0 -11
  210. data/test/db/derby.rb +0 -12
  211. data/test/db/h2.rb +0 -11
  212. data/test/db/hsqldb.rb +0 -13
  213. data/test/db/informix.rb +0 -11
  214. data/test/db/jdbc.rb +0 -11
  215. data/test/db/jndi_config.rb +0 -40
  216. data/test/db/logger.rb +0 -3
  217. data/test/db/mssql.rb +0 -9
  218. data/test/db/mysql.rb +0 -10
  219. data/test/db/oracle.rb +0 -34
  220. data/test/db/postgres.rb +0 -9
  221. data/test/db/sqlite3.rb +0 -11
  222. data/test/db2_simple_test.rb +0 -66
  223. data/test/derby_migration_test.rb +0 -68
  224. data/test/derby_multibyte_test.rb +0 -12
  225. data/test/derby_simple_test.rb +0 -99
  226. data/test/generic_jdbc_connection_test.rb +0 -29
  227. data/test/h2_simple_test.rb +0 -41
  228. data/test/has_many_through.rb +0 -79
  229. data/test/helper.rb +0 -5
  230. data/test/hsqldb_simple_test.rb +0 -6
  231. data/test/informix_simple_test.rb +0 -48
  232. data/test/jdbc_common.rb +0 -25
  233. data/test/jndi_callbacks_test.rb +0 -40
  234. data/test/jndi_test.rb +0 -25
  235. data/test/manualTestDatabase.rb +0 -191
  236. data/test/models/add_not_null_column_to_table.rb +0 -12
  237. data/test/models/auto_id.rb +0 -18
  238. data/test/models/data_types.rb +0 -28
  239. data/test/models/entry.rb +0 -43
  240. data/test/models/mixed_case.rb +0 -25
  241. data/test/models/reserved_word.rb +0 -18
  242. data/test/models/string_id.rb +0 -18
  243. data/test/models/validates_uniqueness_of_string.rb +0 -19
  244. data/test/mssql_db_create_test.rb +0 -26
  245. data/test/mssql_identity_insert_test.rb +0 -19
  246. data/test/mssql_legacy_types_test.rb +0 -58
  247. data/test/mssql_limit_offset_test.rb +0 -136
  248. data/test/mssql_multibyte_test.rb +0 -18
  249. data/test/mssql_simple_test.rb +0 -55
  250. data/test/mysql_db_create_test.rb +0 -27
  251. data/test/mysql_info_test.rb +0 -113
  252. data/test/mysql_multibyte_test.rb +0 -10
  253. data/test/mysql_nonstandard_primary_key_test.rb +0 -42
  254. data/test/mysql_simple_test.rb +0 -49
  255. data/test/oracle_simple_test.rb +0 -18
  256. data/test/oracle_specific_test.rb +0 -83
  257. data/test/pick_rails_version.rb +0 -3
  258. data/test/postgres_db_create_test.rb +0 -32
  259. data/test/postgres_drop_db_test.rb +0 -16
  260. data/test/postgres_mixed_case_test.rb +0 -29
  261. data/test/postgres_nonseq_pkey_test.rb +0 -38
  262. data/test/postgres_reserved_test.rb +0 -22
  263. data/test/postgres_schema_search_path_test.rb +0 -44
  264. data/test/postgres_simple_test.rb +0 -51
  265. data/test/postgres_table_alias_length_test.rb +0 -15
  266. data/test/simple.rb +0 -546
  267. data/test/sqlite3_simple_test.rb +0 -233
  268. 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
- )
@@ -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)
@@ -1,12 +0,0 @@
1
- config = {
2
- :adapter => 'derby',
3
- :database => "derby-testdb"
4
- }
5
-
6
- ActiveRecord::Base.establish_connection(config)
7
-
8
- at_exit {
9
- # Clean up derby files
10
- require 'fileutils'
11
- FileUtils.rm_rf('derby-testdb')
12
- }
@@ -1,11 +0,0 @@
1
- config = {
2
- :adapter => 'h2',
3
- :database => 'test.db'
4
- }
5
-
6
- ActiveRecord::Base.establish_connection(config)
7
-
8
- at_exit {
9
- # Clean up hsqldb when done
10
- Dir['test.db*'].each {|f| File.delete(f)}
11
- }
@@ -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
- }
@@ -1,11 +0,0 @@
1
- config = {
2
- :username => 'blog',
3
- :password => 'blog',
4
- :adapter => 'informix',
5
- :servername => 'ol_weblog',
6
- :database => 'weblog_development',
7
- :host => 'localhost',
8
- :port => '9088'
9
- }
10
-
11
- ActiveRecord::Base.establish_connection(config)
@@ -1,11 +0,0 @@
1
- require 'jdbc/mysql'
2
-
3
- config = {
4
- :username => 'blog',
5
- :password => '',
6
- :adapter => 'jdbc',
7
- :driver => 'com.mysql.jdbc.Driver',
8
- :url => 'jdbc:mysql://localhost:3306/weblog_development'
9
- }
10
-
11
- ActiveRecord::Base.establish_connection(config)
@@ -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)
@@ -1,3 +0,0 @@
1
- require 'logger'
2
- ActiveRecord::Base.logger = Logger.new($stdout)
3
- ActiveRecord::Base.logger.level = Logger::DEBUG
@@ -1,9 +0,0 @@
1
- MSSQL_CONFIG = {
2
- :username => 'blog',
3
- :password => '',
4
- :adapter => 'mssql',
5
- :database => 'weblog_development'
6
- }
7
- MSSQL_CONFIG[:host] = ENV['SQLHOST'] if ENV['SQLHOST']
8
-
9
- ActiveRecord::Base.establish_connection(MSSQL_CONFIG)
@@ -1,10 +0,0 @@
1
- MYSQL_CONFIG = {
2
- :username => 'blog',
3
- :password => '',
4
- :adapter => 'mysql',
5
- :database => 'weblog_development',
6
- :host => 'localhost'
7
- }
8
-
9
- ActiveRecord::Base.establish_connection(MYSQL_CONFIG)
10
-
@@ -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;
@@ -1,9 +0,0 @@
1
- POSTGRES_CONFIG = {
2
- :adapter => 'postgresql',
3
- :database => 'weblog_development',
4
- :host => 'localhost',
5
- :username => 'blog',
6
- :password => ''
7
- }
8
-
9
- ActiveRecord::Base.establish_connection(POSTGRES_CONFIG)
@@ -1,11 +0,0 @@
1
- config = {
2
- :adapter => 'sqlite3',
3
- :database => 'test.sqlite3.db'
4
- }
5
-
6
- ActiveRecord::Base.establish_connection(config)
7
-
8
- at_exit {
9
- # Clean up sqlite3 db when done
10
- Dir['test.sqlite3*'].each {|f| File.delete(f)}
11
- }
@@ -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
@@ -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