activerecord-jdbc-adapter 1.0.3-java → 50.1-java

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5b084099c62150191b20ce945af56f678dbea01a
4
+ data.tar.gz: 503f2431a2d3d8a2a9f8aed698dea351cead1e91
5
+ SHA512:
6
+ metadata.gz: ccda53ecea8b3f8d2107ceba72c66a927168d4a9ea3fbb2e06c548276401e69a9b6ffbfaa737a92a2617b8ac2a7295555d09b73dc98c431fbf0f5e19456aa6e2
7
+ data.tar.gz: 9b8efb23326005581ec55a168175e366af08b3025f4ca025a7cc6f391a3b6484889257b9b61fce0baa9746a8339598edbd298e6939b82e90e8c1cf71185d4dd4
@@ -0,0 +1,33 @@
1
+ *.gem
2
+ *.tgz
3
+ *~
4
+ *.log
5
+ patches*
6
+ *#
7
+ TAGS
8
+ MANIFEST.MF
9
+ bin
10
+ pkg
11
+ doc
12
+ target
13
+ coverage
14
+ build.xml
15
+ nbproject
16
+ .classpath
17
+ .project
18
+ *.sqlite
19
+ *.sqlite3
20
+ *.derby
21
+ derby.log
22
+ test.hsqldb*
23
+ test*.db
24
+ *test_*.out
25
+ test/jars/*.jar
26
+ jndi_test/jdbc/.bindings
27
+ .yardoc
28
+ .bundle/config
29
+ Gemfile.lock
30
+ .idea
31
+ .settings
32
+ activerecord-jdbc.iml
33
+ lib/arjdbc/jdbc/adapter_java.jar
@@ -0,0 +1,79 @@
1
+ language: ruby
2
+ sudo: false
3
+ bundler_args: --without development
4
+ script: bundle exec rake ${TEST_PREFIX}test_$DB
5
+ before_install:
6
+ - unset _JAVA_OPTIONS
7
+ before_script:
8
+ - echo "JAVA_OPTS=$JAVA_OPTS"
9
+ - export JRUBY_OPTS="-J-Xms64M -J-Xmx1024M"
10
+ - rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
11
+ - mysql --version || true # to see if we're using MySQL or MariaDB
12
+ - '[ "$DB" == "postgresql" ] && [ "$TEST_PREFIX" == "" ] && rake db:postgresql || true'
13
+ - '[ "$DB" == "mysql2" ] && [ "$TEST_PREFIX" == "" ] && rake db:mysql || true'
14
+ - '[ "$DB" == "mariadb" ] && [ "$TEST_PREFIX" == "" ] && rake db:mysql || true'
15
+ - '[ "$DB" == "jdbc" ] && rake db:mysql || true'
16
+ - '[ "$DB" == "jndi" ] && rake db:mysql || true'
17
+ # rails:test setups :
18
+ - |
19
+ [ "$DB" == "mysql2" ] && [ "$TEST_PREFIX" == "rails:" ] && \
20
+ mysql -e "CREATE USER rails@localhost;" && \
21
+ mysql -e "grant all privileges on activerecord_unittest.* to rails@localhost;" && \
22
+ mysql -e "grant all privileges on activerecord_unittest2.* to rails@localhost;" && \
23
+ mysql -e "grant all privileges on inexistent_activerecord_unittest.* to rails@localhost;" && \
24
+ mysql -e "CREATE DATABASE activerecord_unittest;" && \
25
+ mysql -e "CREATE DATABASE activerecord_unittest2;" \
26
+ || true
27
+ - |
28
+ [ "$DB" == "postgresql" ] && [ "$TEST_PREFIX" == "rails:" ] && \
29
+ psql -c "create database activerecord_unittest;" -U postgres && \
30
+ psql -c "create database activerecord_unittest2;" -U postgres \
31
+ || true
32
+ rvm:
33
+ - jruby-9.1.16.0
34
+ jdk:
35
+ - openjdk8
36
+ env:
37
+ - DB=mysql2 PREPARED_STATEMENTS=false
38
+ - DB=mysql2 PREPARED_STATEMENTS=true
39
+ - DB=mysql2 DRIVER=MariaDB
40
+ - DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=false
41
+ - DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=true
42
+ - DB=postgresql PREPARED_STATEMENTS=true
43
+ - DB=postgresql PREPARED_STATEMENTS=true INSERT_RETURNING=true
44
+ - DB=sqlite3 PREPARED_STATEMENTS=false
45
+ - DB=sqlite3 PREPARED_STATEMENTS=true
46
+ #- DB=jndi PREPARED_STATEMENTS=false
47
+ #- DB=jndi PREPARED_STATEMENTS=true
48
+ branches:
49
+ only:
50
+ - master
51
+ - /.*-stable$/
52
+ - /^test-.*/
53
+ - /maintenance|support/
54
+ - /.*dev$/
55
+ matrix:
56
+ allow_failures:
57
+ - rvm: jruby-head
58
+ include:
59
+ # jruby-head
60
+ - rvm: jruby-head
61
+ env: DB=mysql2
62
+ - rvm: jruby-head
63
+ env: DB=postgresql
64
+ - rvm: jruby-head
65
+ env: DB=sqlite3
66
+ # testing against MariaDB
67
+ - addons:
68
+ mariadb: '10.0'
69
+ env: DB=mariadb PREPARED_STATEMENTS=false
70
+ - addons:
71
+ mariadb: '10.1'
72
+ env: DB=mariadb PREPARED_STATEMENTS=true
73
+ # Rails test-suite :
74
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.0.7" # PS off by default
75
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.0.7" PREPARED_STATEMENTS=true
76
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.0.7" DRIVER=MariaDB
77
+ - env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="v5.0.7" # PS on by default
78
+ - env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="v5.0.7" PREPARED_STATEMENTS=false
79
+ - env: DB=sqlite3 TEST_PREFIX="rails:" AR_VERSION="v5.0.7"
@@ -0,0 +1,4 @@
1
+ --markup=markdown --markup-provider=kramdown
2
+ --plugin method-overrides
3
+ --title "ActiveRecord JDBC Adapter"
4
+ --no-private --protected lib/**/*.rb - README.md RUNNING_TESTS.md LICENSE.txt
@@ -0,0 +1,50 @@
1
+
2
+ ## Contributing to ActiveRecord JDBC Adapter
3
+
4
+ AR-JDBC is (currently) a volunteer effort, it is not backed by any company ...
5
+ You can contribute and make a difference for all JRuby on Rails sites out there.
6
+
7
+ ### Building
8
+
9
+ Part of AR-JDBC is a native JRuby extension written in .java, compiling (or even
10
+ using) the project requires that you have `javac` on your path for building the gem.
11
+ This means a JRE isn't sufficient and you will be forced to install a JDK.
12
+
13
+ ### Reporting Issues
14
+
15
+ We encourage you to try looking into reported issues, esp. if the new issue is about
16
+ (Rails) incompatibility with MRI - as it might be fixed with some copy-paste magic.
17
+
18
+ Please consider testing against **master**, if you're in doubt whether it might
19
+ have been [fixed](History.md) already, change the following in your *Gemfile* :
20
+
21
+ gem 'activerecord-jdbc-adapter', :github => 'jruby/activerecord-jdbc-adapter'
22
+
23
+ Do not forget to **include the following with your bug report** :
24
+
25
+ * AR-JDBC's version used (if you've tested against master mention it)
26
+
27
+ * version of Rails / ActiveRecord you're running with
28
+
29
+ * JRuby version (you might include your Java version as well) - `jruby -v`
30
+
31
+ * if you've setup the JDBC driver yourself please mention that (+ it's version)
32
+
33
+ * include any (related) back-traces (or Java stack-traces) you've seen in the logs
34
+
35
+ * ... a way to reproduce :)
36
+
37
+ ### Pull Requests
38
+
39
+ You're code will end up on upstream faster if you provide tests as well, read on
40
+ how to [run AR-JDBC tests](RUNNING_TESTS.md).
41
+
42
+ When fixing issues for a particular Rails version please be aware that we support
43
+ multiple AR versions from a single code-base (and that means supporting Ruby 1.8
44
+ as well - esp. targeting 4.x **we can not use the 1.9 syntax** yet).
45
+
46
+ Please keep our [test-suite](https://travis-ci.org/jruby/activerecord-jdbc-adapter)
47
+ green (been funky for a while and it's been hard-work getting in back to shape),
48
+ while making changes, if they're related to an adapter covered by those.
49
+
50
+ :heart: JRuby-Up!
data/Gemfile ADDED
@@ -0,0 +1,91 @@
1
+ source "https://rubygems.org"
2
+
3
+ if ENV['RAILS'] # Use local clone of Rails
4
+ rails_dir = ENV['RAILS']
5
+ activerecord_dir = ::File.join(rails_dir, 'activerecord')
6
+
7
+ if !::File.exist?(rails_dir) && !::File.exist?(activerecord_dir)
8
+ raise "ENV['RAILS'] set but does not point at a valid rails clone"
9
+ end
10
+
11
+ activemodel_dir = ::File.join(rails_dir, 'activemodel')
12
+ activesupport_dir = ::File.join(rails_dir, 'activesupport')
13
+
14
+ gem 'activerecord', require: false, path: activerecord_dir
15
+ gem 'activemodel', require: false, path: activemodel_dir
16
+ gem 'activesupport', require: false, path: activesupport_dir
17
+ elsif ENV['AR_VERSION'] # Use specific version of AR and not .gemspec version
18
+ version = ENV['AR_VERSION']
19
+
20
+ if !version.eql?('false') # Don't bundle any versions of AR; use LOAD_PATH
21
+ # Specified as raw number. Use normal gem require.
22
+ if version =~ /^([0-9.])+(_)?(rc|RC|beta|BETA|PR|pre)*([0-9.])*$/
23
+ gem 'activerecord', version, require: nil
24
+ else # Asking for git clone specific version
25
+ if version =~ /^[0-9abcdef]+$/ || # SHA
26
+ version =~ /^v([0-9.])+(_)?(rc|RC|beta|BETA|PR|pre)*([0-9.])*$/# tag
27
+ opts = {ref: version}
28
+ else # branch
29
+ opts = {branch: version}
30
+ end
31
+
32
+ git 'https://github.com/rails/rails.git', **opts do
33
+ gem 'activerecord', require: false
34
+ gem 'activemodel', require: false
35
+ gem 'activesupport', require: false
36
+ end
37
+ end
38
+ end
39
+ else
40
+ gemspec name: 'activerecord-jdbc-adapter' # Use versiom from .gemspec
41
+ end
42
+
43
+ gem 'rake', '>= 11.1', require: nil
44
+
45
+ group :test do
46
+ gem 'test-unit', '~> 2.5.4', require: nil
47
+ gem 'test-unit-context', '>= 0.4.0', require: nil
48
+ gem 'mocha', '~> 1.2', require: false # Rails has '~> 0.14'
49
+
50
+ gem 'bcrypt', '~> 3.1.11', require: false
51
+ gem 'builder', require: false
52
+ end
53
+
54
+ group :rails do
55
+ group :test do
56
+ # FIX: Our test suite isn't ready to run in random order yet.
57
+ gem 'minitest', '< 5.3.4', require: nil
58
+ gem 'minitest-excludes', '~> 2.0.1', require: nil
59
+ gem 'minitest-rg', require: nil
60
+
61
+ gem 'benchmark-ips', require: nil
62
+ end
63
+
64
+ gem 'erubis', require: nil # "~> 2.7.0"
65
+ # NOTE: due rails/activerecord/test/cases/connection_management_test.rb
66
+ gem 'rack', require: nil
67
+ end
68
+
69
+ group :development do
70
+ gem 'ruby-debug', require: nil # if ENV['DEBUG']
71
+ group :doc do
72
+ gem 'yard', require: nil
73
+ gem 'kramdown', require: nil
74
+ end
75
+ end
76
+
77
+ group :test do
78
+ # for testing against different version(s)
79
+ if sqlite_version = ENV['JDBC_SQLITE_VERSION']
80
+ gem 'jdbc-sqlite3', sqlite_version, require: nil, platform: :jruby
81
+ end
82
+
83
+ gem 'mysql2', '>= 0.4.4', require: nil, platform: :mri
84
+ gem 'pg', '>= 0.18.0', require: nil, platform: :mri
85
+ gem 'sqlite3', '~> 1.3.6', require: nil, platform: :mri
86
+
87
+ # group :mssql do
88
+ # gem 'tiny_tds', require: nil, platform: :mri
89
+ # gem 'activerecord-sqlserver-adapter', require: nil, platform: :mri
90
+ # end
91
+ end
@@ -0,0 +1,1191 @@
1
+ ## 1.3.20 (03/09/16)
2
+
3
+ - Retrieve AM::Type::Boolean::FALSE_VALUES for Rails 5 (#705)
4
+ - [mysql] only mock mysql / mysql2 error under adapter /mysql/
5
+ and make sure db:create works (#702)
6
+ - use system instead of `` to run dumps (on < 4.0) as it has issues under 1.7.x
7
+ - avoid column.default type_cast-ing on AR 4.2 (#715)
8
+ - [postgres] data_sources support - backport on AR 4.2
9
+ - add support for data sources (backport on AR 4.2) in base (jdbc) adapter
10
+ - [derby] Enable DDL transaction on Derby (#714)
11
+ - [db2] support for DB2 big integer (BIGINT) data type
12
+ - [mysql] Fixed MySQL primary key for MySQL >= 5.7.3 (#695)
13
+ - [sqlite] on AR 4.2 is not supposed to have an implicit string limit: 255
14
+ - [postgres] on AR 4.2 is not supposed to have an implicit string limit: 255
15
+
16
+ ## 1.3.19 (11/02/15)
17
+
18
+ - [sqlite] add supports_partial_index? and remove duplicate support_index_sort_order?
19
+ - [sqlite] fix missing save-point removal in release_savepoint
20
+ - test and fix current savepoint_name compatibility with AR versions (mostly 4.2)
21
+ * adjust returned current savepoint name to better match with AR (< 4.2)
22
+ * make sure savepoint rollback behave AR compatibly
23
+ - [mysql] revert to extracting BIT into an int as tinyint(1) (#687)
24
+ - [mysql] do not validate connection_alive_sql as there's a special /* ping */ query
25
+ - support timeouts on connection validation with `config[:connection_alive_timeout]`
26
+
27
+ ## 1.3.18 (09/14/15)
28
+
29
+ - since arel visitor instances might get re-used we need to avoid the @instance
30
+ - [postgres] work-around BC time parsing issue (on JRuby 1.7.x) by a patch
31
+ - [mssql] fix broken ordering on an aggregate queries (from #646 closing #532)
32
+ - [mssql] default to using a string limit: 4000 with newer AR
33
+ - [mssql] setup type map for SQLServer ... backwards compat as much as possible
34
+ - for better AR alignment on 4.2 shall do the AR type-casting of booleans/dates
35
+ - [mssql] ... port over visitor from sqlserver-adapter (to be used on AR 4.2)
36
+ - [mssql] allow to tune collation equality operator with *cs_equality_operator*
37
+ - [mssql] setup BINARY/TEXT types as binary_basic/text_basic (needed on 4.2)
38
+ - [mssql] setup a NATIVE_DATABASE_TYPES constant (for SQLServer > 2K) (#508)
39
+ - [jdbc] prefer BIT(1) as a better match for :boolean type than TINYINT
40
+ - [mssql] get_table_name bug with unusual queries has been fixed (#583)
41
+ - [mssql] make sure we set @primary on column instances even on AR 4.2
42
+ - [mssql] issue when using joins with distinct (#590) ... fixed with #608
43
+ - [firebird] tune arel visitor (limit/offset handling) to work on AR 4.2
44
+ - [firebird] avoid prefetch_primary_key? depending on column.primary due AR 4.2
45
+ - [firebird] introduce type map on AR 4.2 (not sure about :timestamp handling
46
+ - [firebird] boolean parameter with prepared-statements should be set as CHAR
47
+ - [firebird] standalone column and adapter classes +
48
+ standalone custom (native) JdbcConnection class for firebird due CHAR handling
49
+ - [firebird] handle schema-prefixed table names in default_sequence_name
50
+ - [oracle] support for handling NUMBER(1) type as boolean just like on AR < 4.2
51
+ - [oracle] generic optimized NUMBER type extraction (with scale == 0 as integer)
52
+ - [oracle] support XMLTYPE as a custom type on AR 4.2
53
+ - [oracle] add disable_referential_integrity helper (for the duration of a block)
54
+ - base (adapter: jdbc) foreign_keys support for all (for AR 4.2 compatibility)
55
+ - [oracle] AR 4.2 type map support (ported over from oracle-enhanced adapter)
56
+ - [oracle] avoid error logging optional DROP SEQUENCE on drop_table
57
+ - [oracle] default config[:database] (when not provided) to **XE**
58
+ - [oracle] improved index + primary_key (detection) support not just for AR 4.2
59
+ - [oracle] update default_sequence_name to strip prefix + add trigger name
60
+ - [oracle] set statement_escape_processing: true by default on AR 4.x (#479)
61
+ - handle serialized attributes the AR 4.2 way (serialized_attributes deprecated)
62
+ - [db2] custom type map for AR 4.2 based on IBM_DB gem
63
+ - [db2] support XML as type on AR 4.2
64
+ - type-casting on our native side should now handle AR 4.2 right!
65
+ - jdbc connection should not attempt to type-cast date/time on AR 4.2
66
+ - [db2] arel visitor + handle basic type mapping the AR 4.2 way
67
+ - no longer warn on 4.2 + but still warn with (unsupported) adapters
68
+ - restore Ruby 1.8 (syntax) compatibility - was broken for MySQL/Derby
69
+ - use standard AREL with H2/HSQLDB as H2/HSQLDB support standard LIMIT and OFFSET
70
+ - [h2] working AR 4.2 support
71
+ - [hsqldb] working AR 4.2 support
72
+ - [rake] support adapter: mariadb as if it were mysql (on AR 4.x)
73
+ - [postgres] changes to avoid double cast for AR42 (with prepared statements)
74
+ - [postgres] use standard JDBC bind arguments marker "?" instead of "$n"
75
+ - [postgres] allow reading "infinity" and "BC timestamps on 4.2
76
+ - type cast bind arguments in RubyJdbcConnection (prepared statements)
77
+ - [derby] ActiveRecord 4.2 reports xml columns as XML(2147483647)
78
+ - [derby] working AR 4.2 support
79
+ - support cast_type on the JdbcConnection side for improved AR 4.2 compatibility
80
+
81
+ ## 1.3.17 (06/30/15)
82
+
83
+ - [mysql] bulk compatibility with AR 4.2 - all _sql helper accept an options (hash)
84
+ - [mysql] back-port case sensitive/insensitive comparison
85
+ - [mysql] handle precision for datetimes when doing type_to_sql (AR 4.2 compat)
86
+ - [mysql] foreign key support based on AR 4.2 (#656)
87
+ - [postgres] foreign_key support back-ported from AR 4.2 (#656)
88
+ - moved jndi callbacks to happen outside adapter's `initialize` (#649, #620)
89
+ - [postgres] AR 4.2 compatibility with SchemaCreation
90
+ - [postgres] re-define `lookup_cast_type` (AR 4.2) + `conn.type_map` is public
91
+ - [postgres] override `valid_type?(type)` (AR 4.2 compatibility)
92
+ - [postgres] back-port change_column updates from AR 4.2 for compatibility
93
+ - [postgres] pass down array_member to hstore_to_string (fixes #647 on AR 4.1)
94
+ - [postgres] on AR 4.2 use core's schema_definitions.rb for improved compat (#644)
95
+ - back-port PGconn hack on AR 4.x (from #655 and following commits)
96
+ to fix #651 as an unfortunate work-around for (non-shareable) AR internals (#652)
97
+ - seems that extension methods won't work in 9K the same as in 1.7.x thus work-around
98
+ (originally reported as https://github.com/jruby/jruby/issues/2533)
99
+ - restore 1.8 compatibility in postgres' adapter (regression in 1.3.16 see #641)
100
+
101
+ ## 1.3.16 (04/13/15)
102
+
103
+ - [h2] allow jdbch2 adapter to use jdbc-h2 1.4 (#639)
104
+ - [postgres] quote and type_cast should not be overriden on 4.2
105
+ - [postgres] fix table column resolution (slightly align it to our needs) on 4.2
106
+ - [postgres] re-arrange Column internals as some helpers end-up on Adapter in 4.2
107
+ - [mysql] change_column table is redefined on AR 4.2 so that it uses _sql version
108
+ - [mysql] more tuning/compatibility backports for AR 4.2 (working booleans #626)
109
+ - [mysql] type-map support copy-pasta from AR 4.2 (closer to full compat) (#617)
110
+ - [postgres] improved support for Amazon Redshift (based on user feedback #403)
111
+ - fixed problem with create table statements with references in MySQL (#629)
112
+ - fix RecordNotUnique reference in ArJdbc::SQlite3 (#634)
113
+ - [postgres] add support for jsonb column type (#633 #635 #637)
114
+
115
+ ## 1.3.15 (03/09/15)
116
+
117
+ - [informix] adapter undefined method 'column_types' with Rails 4.x (#622)
118
+ - improve connection factory Ruby interface impls to match Java method-name (#621)
119
+ - [sqlite] truncate_fake - as due compatibility with do not want a truncate method
120
+ - truncate support 4 all (introduced in AR 4.2 but we let it work in all versions)
121
+ - [postgres] do not double load array_parser (on 4.2)
122
+ - [postgres] connection.truncate impl (AR 4.2 compat)
123
+ - [mysql] back-port missing truncate connection method (since AR 4.2)
124
+ - auto setup type-casting compat (pre 4.2 emulation) 4 all
125
+ - [postgres] backport bigserial key and bigint native type support
126
+
127
+ ## 1.3.14 (01/28/15)
128
+
129
+ - [mysql] Fixed an undefined exception error in type_to_sql for MySQL (#616)
130
+ - [derby] support for empty insert statements (e.g. `DbModel.create!`) on AR 4.x
131
+ - [db2] revert limit/offset OVER( ORDER BY ) matching as it was not complete (#606)
132
+ - [db2] handle empty INSERT statement (default) VALUES in a way that works on AR 4.x
133
+ - [db2] `select` return value should be the same as core AR (Array on 3.2) (#607)
134
+ - [mysql] backport bulk change & schema-creation to be compatible with AR 4.x
135
+ - handle possible null values while extracting from XML columns (#615)
136
+ - DateTime columns are returned always as nil values (on Rails 4.2 #613)
137
+ - [oracle] do not override primary= within column methods on AR 4.2
138
+ - handle removed AR `Column#primary=` method on 4.2 (#609)
139
+ - [oracle] fix missing sequence_name_length method when doing a rename_table
140
+ - [mysql] do not force *DEFAULT CHARSET=utf8* when creating new tables
141
+ - [postgres] rename the primary key index when renaming a table in pg
142
+ - [db2] improve create_table on Z/OS (now supporting AR 4.x TableDefinition) (#581)
143
+
144
+ ## 1.3.13 (11/21/14)
145
+
146
+ - handle ("hacked") date/time/timestamp conversion from the JDBC side on 4.2
147
+ - align SQLite's column class resolution with others in 1.3
148
+ - avoid the Column regressions in 1.3.12 caused by backporting too much (#603)
149
+
150
+ ## 1.3.12 (11/18/14)
151
+
152
+ - [sqlite] support for latest JDBC 3.8
153
+ - [mysql] correctly map config[:encoding] into Connector-J characterEncoding
154
+ - [mysql] backport rename_index from Rails (corectly handling MariaDB as well)
155
+ - [mysql] core adapter compat - missing initialize_schema_migrations_table
156
+ - `supports_views?` is now a method available in 4.2 (most DBs support VIEWs)
157
+ - [postgres] table_exists? fully compatible with Rails 4.1
158
+ - handle pre JDBC 4 driver abstract method errors somehow gracefully
159
+ - tune ArJdbc scoped warnings/deprecations (can be off -J-Darjdbc.warn=false)
160
+
161
+ ## 1.3.11 (10/20/14)
162
+
163
+ - arjdbc: performance improvement - avodinng JRuby's impl iface generation
164
+ - [firebird] Use ampersand literal in limit offset sub to fix FIRST 1/SKIP 1
165
+ - require super call is not needed and causes issues double loading features
166
+
167
+ ## 1.3.10 (08/29/14)
168
+
169
+ - [postgres] preliminary (temp) fix for Marshal.dump broken since 1.3.8 (#573)
170
+ - [postgres] adapter was missing the custom rename_index method (fixes #577)
171
+ - [postgres] user defined types should not raise an error
172
+ - [postgres] align with Rails distict white-space fix (regression in 4.0.10)
173
+ - [mssql] allow for `offset(x)` without `limit(y)` to work ... (fixes #564)
174
+ - [mssql] correctly parse set_table_name string with owner (#574)
175
+ - allow database.yml or config option to set `:insert_returning` (#570)
176
+ - [sqlite3] savepoint without passed explicit name not supported
177
+ - synchronize setting resolved visitor type
178
+ - [mssql] (hopefully) fix ORDER BY mis-detection - closes #532 (improved #549)
179
+ - [mysql] columns were sometimes instantiated with the wrong column class (#566)
180
+
181
+ ## 1.3.9 (07/07/14)
182
+
183
+ - [postgres] improve Range's type cast - fixing minor quoting failure on AR 4.x
184
+ - [postgres] range type's :exclude_start is actually += 1 (align with AR 4.1)
185
+ - [postgres] correctly quote numeric values with string/text column types
186
+ - [postgres] backport CVE-2014-3483 and protect against CVE-2014-3482 (from AR)
187
+
188
+ ## 1.3.8 (06/27/14)
189
+
190
+ - [mysql] updated so that we can run with non-official driver (+ against MariaDB)
191
+ - [postgres] quote fix failure with ColumnDefinition on AR 4.0.6.rc2
192
+ - [mssql] performance improvements :
193
+ * "optimized" quote_name_part in Java + avoid bytes copying in quoteCharWith
194
+ * throwing exceptions in the hot path results in slow code
195
+ * minor performance improvements to mssql type_cast
196
+ - [mssql] fix remove_column on AR < 3.2
197
+ - [mssql] dealing with column that need quoting (e.g. ids with spaces) in ORDER
198
+ special care needs to be performed on AR <= 3.2 - Arel < '4.0' (closing #551)
199
+ - [mssql] correct default value quoting + update on change when non null with default
200
+ - [mssql] backport database ('.' in name) quoting fix from sqlserver adapter
201
+ - get the "correct" (AR::Base) record.class on AR 4.1 (#555)
202
+ - [oracle] support disabling generated keys `-Darjdbc.oracle.generated_keys=false`
203
+ - [postgres] fix returning generated keys + use *arjdbc.postgresql.generated_keys*
204
+ - [oracle] working `config[:insert_returning] = true` support (using prepared calls)
205
+ - [mysql] improve column instantiation - make sure strict/extra passed correctly
206
+ - [postgres] backport rails fix for not quoting array defaults correctly
207
+ - [postgres] handle the accessor (e.g. for hstore) added in AR 4.1 (#535)
208
+ - [postgres] handle oid_types resolution on AR 4.x (compat with MRI on Rails)
209
+ - [postgres] align Column's (string) cast helpers with AR 4.1
210
+ - [postgres] quote/cast compat with 4.x + do not quote default function values
211
+ - [postgres] align array parser with latest from AR 4.1
212
+ - [postgresl] Column AR 4.x compatibility methods: `number?` and `text?`
213
+ - [h2] should have it's own arel visitor class (`Arel::Visitors::H2`)
214
+ - [h2] support for latest beta of next major release - H2 database **1.4**
215
+
216
+ Code Contributors (in no particular order): Michael J. Cohen
217
+
218
+ ## 1.3.7 (04/14/14)
219
+
220
+ - [postgres] set prepared values with array columns on AR < 4.0 correctly
221
+ - [postgres] handle null values in array columns with AR < 4.0 (fixes #548)
222
+ - [mysql] support for config[:reconnect] (might need some fine tuning to match mysql2)
223
+ - fix ordering on an aggregate in MSSQL (#532) (should fix #437 for good)
224
+ - introduce a deprecation (warn) method for AR-JDBC and start using it
225
+ - [mysql] do not set defaults for text/blob columns on rename/change (#543)
226
+ - try resolving config 'database' (if missing) from JDBC url: in rake tasks
227
+ - [mysql] needs to `reconnect!` when recreating database (fixes #539)
228
+ - remove_column compatibility with Rails 4.x for Oracle, Derby and MSSQL (#541)
229
+ - Fix connection without user and password (#542)
230
+ - fix db2 remove_column for ActiveRecord 4 (#537)
231
+ - FireBird's DB meta-identifier is 31 chars maximum, thanks @mariuz (#538)
232
+ - [derby] add emulate booleans option for derby adapter
233
+
234
+ Code Contributors (in no particular order): Mark Fraser, Pierrick Rouxel, @iaddict
235
+
236
+ ## 1.3.6 (02/04/14)
237
+
238
+ - fix rails 4-0-stable compatibility (see #530)
239
+ - [mysql] support "disabling" abandoned connection cleanup thread
240
+ - [mssql] Handling of 'GROUP BY' and selected columns (#529)
241
+ + SELECT DISTINCT clause with ORDER BY for MSSQL (partially fixes #437)
242
+ - [derby] only do the patched select_limited_ids if connection is Derby's
243
+ - [derby] support getting and setting transaction isolation on a connection
244
+ + allow to configure whether isolation will be 'serializable' (work-around for #497)
245
+ - match 'int' as well as 'integer' when converting to SQL types for MSSQL (#527)
246
+
247
+ Code Contributors: Sean McCarthy, Jesko, Konstantin Shabanov
248
+
249
+ ## 1.3.5 (01/10/14)
250
+
251
+ We're now green against Rails 4.1 (master), test and report issues if any.
252
+
253
+ - improved support for `config[:jndi]` with all supported custom adapters
254
+ - [mysql] fix incompatible character encodings: ASCII-8BIT and UTF-8
255
+ - rails 4.1 - create_table_definition changed from 3 to 4 parameters (#522)
256
+ - [firebird] Insert quotes for blobs to prevent failed inserts on not-null cols
257
+
258
+ Code Contributors: Ray Zane, Gary S. Weaver
259
+
260
+ ## 1.3.4 (12/12/13)
261
+
262
+ - [postgres] unwrap connection instead of casting when adding custom types (#515)
263
+ - [postgres] allow returning string values for (JDBC) arrays with (#510)
264
+ - allow for symbol keys with custom JDBC properties in `config[:properties]`
265
+ - replacing use of AR::ConnectionFailed with AR::ConnectionNotEstablished (#513)
266
+ - [firebird] fix for missing args when visit_Arel_Nodes_SelectCore is called
267
+ - [postgres] better column compatibility with 3.x (avoid array/oid_type)
268
+ - [postgres] backport array-parser due `Column#extract_default` (#504)
269
+ - [postgres] backported "Correctly parse bigint defaults in PostgreSQL"
270
+ - [postgres] 4.0 compat - detect default_function just like on MRI
271
+ - [postgres] backport support for negative money values (in parenthesis)
272
+ - [postgres] support :login_timeout as a standalone config option
273
+ - [firebird] align `prefetch_primary_key?` with Oracle (only for simple PKs)
274
+ - [oracle] do not pre-fetch the primary key if multiple primary keys exist (#498)
275
+
276
+ Code Contributors: @andfx, Gavin Stark, Ray Zane, @chapmajs
277
+
278
+ ## 1.3.3 (11/12/13)
279
+
280
+ - [mysql] allow encoding to be server-detected (using `encoding: false`)
281
+ due compatibility we still default to `encoding: utf8` if not set (fixes #481)
282
+ - need to match AR 4.0 built-in patterns to re-define (oracle) tasks correctly
283
+ - [postgres] support some of libpg's ENV variables when connecting
284
+ - [derby] allow multiple parallell nested transactions on DERBY
285
+ - [mssql] when using the Microsoft SQL Server driver, fall back to
286
+ rollback_savepoint when release_savepoint is called (#484)
287
+ - [mysql] only kill the connections cancel timer for driver < 5.1.11
288
+ - [sqlite3] work-around driver ignoring passed schema for table (fixes #483)
289
+ - now using explicit adapter classes with H2/HSQLDB
290
+ - [postgres] Add support for array as root element in JSON (#491)
291
+ - [postgres] MRI compat - make sure we have a `query` method (fixes #486)
292
+ - db:structure:load does not create schema for test db (#480)
293
+
294
+ Code Contributors (in no particular order): Glenn Goodrich, Joao Carlos,
295
+ Jason Franklin, Dominique d'Argent, Sean McCarthy, Uwe Kubosch
296
+
297
+ ## 1.3.2 (10/11/13)
298
+
299
+ - when "pop-ing" current savepoint name - consider open transaction count (#477)
300
+ - [postgres] we should return "raw" hstore values on AR < 4.0 by default
301
+ (regression caused by fixing #454 for AR >= 4.0)
302
+ - [postgres] needs ColumnDefinition.array? method used by SchemaCreation (#474)
303
+ - [mysql] backported bulk change table support from Rails (fixes #469)
304
+ - support MySQL's failover host configurations (multiple hosts specified)
305
+ - set JDBC specific config values as properties instead of URL options
306
+ - SQLite3's version object should return a string on `to_s`
307
+ - [sqlite3] support :timeout option as busy_timeout (similar to Rails)
308
+ - [sqlite3] mkdir for sqlite database (path) - just like AR 4.0 now does
309
+ - [postgres] handle :connect_timeout, :sslmode, :keepalives & :krbsrvname
310
+ - [postgres] support :hostaddr, :user and :dbname options just like Rails does
311
+ - fix rake task name **db:structure:load** - missing db: prefix (#465)
312
+ - Prevent rake from throwing an exception when task w/o comment is redefined
313
+
314
+ Code Contributors (in no particular order): Prathamesh Sonpatki, Stefan Wrobel,
315
+ Micah Jaffe, Rajan Agaskar
316
+
317
+ ## 1.3.1 (09/17/13)
318
+
319
+ - helper gems should contain all files from lib/* (#463)
320
+ - [postgres] hstore values should be returned as Hash instances (#454)
321
+ - we should first allow super AbstractAdapter to initialize then extend spec
322
+ otherwise using *adapter: jdbc* configuration might no work (#457)
323
+ - return early (from `table_exists?`) if table name is nil (#460)
324
+ - [MS-SQL] handle change_column error when column has default binding or indexes
325
+ - AR's `distinct` compatible with 4.x (and 3.x) for Oracle, Derby and Postgres
326
+ - re-invent `add_column_options!` (due next AR 4.1) to provide compatibility
327
+ - backport SchemaCreation (from AR 4.0/master) + support for all adapters
328
+
329
+ Code Contributors (in no particular order): Grant Hutchins, Avin Mathew, @emassip
330
+
331
+ ## 1.3.0 (08/29/13)
332
+
333
+ - [oracle] fix structure_dump: `column['data_default']` might come back as ''
334
+ - [oracle] avoid the JDBC call `connection.getMetaData` with exec_query (#453)
335
+ - review MSSQL/HSQLDB/H2 explain - make sure prepared statements are used
336
+ - [oracle] make sure explain works with prepared statements
337
+ - warn users about using our now deprecated suble_binds "extension"
338
+ - [mysql] username defaults to 'root' on MRI
339
+ - [mysql] match `columns` returned with latest AR 4.0 (collation, strict, extra)
340
+ - only `suble_binds` if not an arel passed + allow to turn bind subling off
341
+ - [postgres] fix `extension_enabled?` to work with raw boolean values
342
+ - [derby] setting true/false into text/string columns values should use `to_s`
343
+ also non-serializable attrs should use `to_s` (instead of `to_yaml`) on 3.x
344
+ - [derby] needs `quote_table_name_for_assignment` (on AR 4.0)
345
+ - [postgres] driver "hooks" to make PG types work with prepared statements, now
346
+ working: ranges, arrays, interval, (ip) addr types, tsvector, json and uuid
347
+ - missing `last_insert_id_result` method on PostgreSQL (#450)
348
+ - emulate pre AR 4.0 behavior with date-times/booleans (in custom SELECTs) they
349
+ will be returned as (raw) strings on AR 3.x
350
+ - warn when driver is not JDBC 4.0 compilant when checking if valid (#445)
351
+ - fix inline rescue syntax - invalid syntax at MSSQL's `string_to_time` (#444)
352
+ - no need to (double) update LOB values when using prepared statements
353
+ - replaced `emulate_booleans` with `emulate_booleans?` on adapter specs
354
+ - [firebird] emulate booleans with char(1) + fix time and review native types
355
+ - [db2] using new `update_lob_values` - now handles null inserts safely (#430)
356
+ - [mssql] configurable `update_lob_values?` - `string_to_binary` no longer abused
357
+ - refactored SerializedAttributesHelper and moved to Util::SerializedAttributes
358
+ there's now a new `update_lob_columns` helper hooked onto AR::Base for adapters
359
+ that send clob/blob values in a separate statement DB2, Oracle, MSSQL, Firebird
360
+
361
+ Code Contributors (in no particular order): Alexandros Giouzenis
362
+
363
+ ## 1.3.0.rc1 (08/03/13)
364
+
365
+ - add activerecord gem as a dependency of the main AR-JDBC gem
366
+ - override `to_sql` due AR 4.0 - we want to consume the passed binds array
367
+ - [sqlite3] introduce Version constant (returned from sqlite_version)
368
+ - `execute` expects `skip_logging` param on AR <= 3.0 (+ does not accept binds)
369
+ - we shall not do any `to_sql` in any of the exec_xxx methods
370
+ - [postgres] array column defaults more reliable (ported from Rails)
371
+ - [mssql] review MSSQL date-time handling - no need for that customized quoting
372
+ - [mssql] MSSQL - `rake db:migrate:reset` can drop database
373
+ - [oracle] handle null strings (e.g. returned on XML columns) instead of NPE
374
+ - [oracle] get rid of oracle's `execute_id_insert` not sure how it ever worked
375
+ - [oracle] sequence quoting + `insert` refactoring + support for RETURNING
376
+ revisit `insert` / `insert_sql` / `exec_insert` to work for all ARs we support
377
+ - [db2] refactor DB2's `last_insert_id` using *IDENTITY_VAL_LOCAL()*
378
+ - [db2] DB2 supports standalone *VALUES* statements (just like Derby does)
379
+ - [derby] last_insert_id for Derby using *IDENTITY_VAL_LOCAL()*
380
+ - [derby] only hookup SQL checks on #execute when no #exec_query etc. available
381
+ - [sqlite] query-ing last_insert_id after each INSERT seems redundant
382
+ - [sqlite] a saner way of getting last_insert_row_id() via the JDBC API
383
+ - better `last_inserted_id` unwrapping on the base (jdbc) adapter level
384
+ - [postgres] support exec_insert with PS + make sure RETURNING works
385
+ - (thread_safe based) quoted column/table name cache implementation
386
+ currently used with PostgreSQL, Oracle and MS-SQL adapter (#432)
387
+ - [mssql] prevent special column corruption of ORDER BY (#431)
388
+ - [db2] fix error with timezone + use default date and time parsing
389
+ - [db2] fix error on named index removing
390
+ - [postgres] fix array values escaping: backslashes should be escaped too
391
+ - [postgres] fix `add_column` / `change_column` with arrays
392
+ - [mssql] support for running with official MSSQL driver *adapter: sqlserver*
393
+ - [mssql] visitor update (based on built-in) to better resolve ORDER BY
394
+ - [mssql] handle SELECT DISTINCT correctly with LIMIT (#154)
395
+ - `add_limit_offset!` / `add_lock!` only to be available before AREL (2.3)
396
+ - remove Arel::SqlCompiler extensions - was only available with AR 3.0.0 pre
397
+ - refactored AREL support - esp. visitor resolution - simpler & more reliable
398
+ - [postgres] handle DISTINCT correctly with backwards-compat (#418)
399
+ - [firebird] full featured support - first class firebird_connection method
400
+ - [jdbc-] jdbc-firebird - packaged JayBird JDBC driver (gem) for FireBird 2.2.3
401
+ - [postgres] fix array quoting
402
+ - implemented support for returning Ruby Date/Time objects from JDBC
403
+ allows such Ruby objects to be returned in custom SELECTs as well (#349)
404
+ - introduce a (better) `update_lob_value` as a `write_large_object` replacement
405
+ - beyond second precision with timestamp values for adapters that support 'em
406
+ - rename `MissingFunctionalityHelper` -> `TableCopier`
407
+ - finishing **prepared statement support** for all (Java API now stable), handles
408
+ `exec_query`, `exec_update`, `exec_delete` and `exec_insert`
409
+ - use `init connection` to check if *connection_alive_sql* needed (old driver)
410
+ - JDBC API based savepoint support (that should work for all adapters)
411
+ - remove `connection.config=` and make sure it does not change `config`
412
+ - avoid executing mysql/sqlite3 JDBC type resolving code (for some speed up)
413
+ - simplify native_database_types - now on adapter + overriden avoids jdbc
414
+ - [mysql] support canceling a timer for wrapped (JNDI) connections as well
415
+ - [mysql] refactor cancel timer (field access) to work correctly (#413)
416
+ - Java API: introduce newConnection + refactor @connection_factory to Java
417
+ - [postgres] missing point casting code + string to bit casts (#60)
418
+ - [derby] tables should only return those from current schema
419
+ - [derby] set current schema thus identifiers get resolved (closes #408)
420
+ - [derby] no *connection_alive_sql* needed since Derby 10.8
421
+ - [postgres] make sure uuid is correctly used/resolved as PK (AR 4.0)
422
+ - [postgres] match pk_and_sequence_for with AR 4.0
423
+
424
+ Code Contributors (in no particular order): Alexey Noskov, Pierrick Rouxel,
425
+ Matías Battocchia, @gapthemind and Sören Mothes
426
+
427
+ ## 1.3.0.beta2 (05/30/13)
428
+
429
+ - only load rake tasks if AR is being used - AR::Railtie is loaded (#234)
430
+ - override #structure_dump so it won't silently return while doing nothing
431
+ - [h2] support empty insert statement (actually used by AR 4.0)
432
+ - [postgres] support 4.0 options for #indexes + dumping partial indexes
433
+ - [oracle] "better" rake tasks (kindly borrowed from the enhanced-adapter)
434
+ - [db2] some database tasks - with a tested (and fixed) structure_dump
435
+ - [db2] should set schema on configure_connection
436
+ - [mssql] Fix SQL server version matching on SQL Azure
437
+ - [mssql] collation and database_exists? helpers for SQLServer
438
+ - [h2] rake db: tasks support (db:structure: dump/load as well as db:drop)
439
+ - [hsqldb] structure:dump structure:load and fixed drop database support
440
+ - [hsqldb] handle config[:database] with db specific prefix
441
+ - [as400] error support for execure_and_auto_confirm
442
+ - [db2] remove unused explain method
443
+ - AR-4.0 inspired rake task impl (usable and shared with Rails 3.x/2.3 tasks)
444
+ - jdbc connection updates to better follow AR semantics
445
+ * #active? should check whether connection is valid
446
+ * #reconnect! should #configure_connection if available
447
+ * use JDBC 4 isValid as alive check fallback (no need for connection_alive_sql)
448
+ - [sqlite3] missing adapter.encoding method
449
+ - [as400] auto discover support (+ current_schema) for AS/400 with jndi
450
+ - use (module) spec.initiialize! convention to perform (lazy) AR initialization
451
+ - allow for (potential) adapter_spec overides by user on connection method
452
+ - [oracle] column/table name (+ raw) quoting - inspired by enhanced adapter
453
+ - [db2] support for `ArJdbc::DB2.emulate_booleans = false`
454
+ - [oracle] support for `ArJdbc::Oracle.emulate_booleans = false` (#225)
455
+ - [mysql] AR::ConnectionAdapters::MysqlAdapter.emulate_booleans support
456
+ - [mysql] #indexes compatible with 4.0 as well as #pk_and_sequence_for
457
+ - add config parameter to disable (JDBC) statement escaping and
458
+ disable statement escape processing by default for all (#243)
459
+ - [as400] add db2_schema to table_exists? + add support for nil schema
460
+ - [mssql] SQLServer visitor compat with next AREL
461
+ - [mssql] quote_table_name_for_assignment for MS-SQL
462
+ - quote_table_name_for_assignment should only be added on AR >= 4.0
463
+ - disable extension auto-discovery for installed gems (unless specified)
464
+ - [as400] fix as400 system schema + re-add jndi schema support
465
+ - [db2] separate AS400 code into a module + stadalone connection method
466
+ - [postgres] quoting that uses column.type (thus works with defs as well)
467
+ only use #sql_type when necessary
468
+ - better compatibility with native MySQL/SQLite3 adapter (constants)
469
+ - [postgres] restore PostgreSQLColumn.new < 4.0 compatibility
470
+ - [h2] allow H2 to set auto increment default value
471
+ - [postgres] make sure intifnite date/time values are handled correctly
472
+ - [postgres] use quote_table_name_for_assignment from AR-4.0
473
+ - [sqlite3] fix remove_column on AR-4.0
474
+ - do not load the AR built-in adapters eagerly - but on demand (#353)
475
+ - [postgres] ignore encoding option, print a warning about it (#376)
476
+ - [h2] check if offset is set, otherwise use the Arel::Node::Offset#expr
477
+ - [as400] adding ordering support when using both limit and offset
478
+ - [as400] force decimal field with 0 scale to be integers
479
+ - [sqlite3] let the JDBC API to figure out indexes (#377)
480
+ - support for loading only the necessary Java parts per adapter (#353)
481
+ - AREL visitors base impl revisited (to fix long broken query cache),
482
+ make sure a visitor is instantiated by the JDBC adapter (2.3 compatible)
483
+ - introduced ArJdbc.modules method that should return adapter modules
484
+ - move mysql gem API faking into (rails loadable) test code
485
+ - there should be no more need to fake out *pg.rb* (due native 'pg' gem)
486
+ - do not fake out SQLite3::Version ... gets only loaded while running tests now
487
+
488
+ Code Contributors (in no particular order): Jason Franklin, Alexey Noskov,
489
+ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
490
+
491
+ ## 1.3.0.beta1 (04/11/13)
492
+
493
+ - [db2] map datetime / timestamp / time types + correct time handling on AS400
494
+ - AREL values passed to #to_sql not handled correctly on AR-3.0 (#365)
495
+ - (Ruby) API cleanup - removed ArJdbc::Jdbc::Mutex and CompatibilityMethods
496
+ - new base implementations for all exec_xxx methods (introduced in AR 3.1)
497
+ - returning AR::Result from #exec_query + #exec_query_raw for old behavior
498
+ - [mssql] #table_exists? does not filter views (only #tables does)
499
+ - [postgres] introduced new types on AR 4.0 - same ones native adapter supports
500
+ (uuid values, arrays, json, hstore, ltree, PG ranges, interval, cidr etc.)
501
+ - Java API - now compiled with Java 1.6 since we're using JDBC 4 API anyways
502
+ - generic #exec_query returning AR::Result + #exec_raw_query for compatibility
503
+ - [postgres] improve #insert_sql (uses primary_key, supports all AR versions)
504
+ - [postgres] support config[:insert_returning]
505
+ - [postgres] always return correct primary key (failing if no sequence)
506
+ - Java API - xxxToRuby refactorings - to allow for more flexible overrides
507
+ - [postgres] support BIT(n) type where n > 1 as "bit strings"
508
+ - [postgres] #disable_referential_integrity on USER level (AR 4.0 compatible)
509
+ - Java API - allow objectToRuby and arrayToRuby overrides
510
+ - allow more-intuitive initialize arguments when sub-classing JdbcColumn
511
+ - do not translate native (Java) exceptions into StatementInvalid (from #log)
512
+ - Java API - replaced #tableLookupBlock with (a new) #matchTables
513
+ - [mssql] better message for jTDS driver bug (support disabling explain)
514
+ - Java API:- accept (and use) catalog as arg[1] in #columns which does leads to
515
+ a refactoring of #extractTableName to accept a catalog name
516
+ - [mssql] current_user and (change-able) default_schema support (#311)
517
+ - [sqlite3] correct empty insert statement value (on AR-4.0)
518
+ - Java API - do not wrap runtime exceptions when handling throwables
519
+ - [mysql] correct empty insert statement value (was not working on 4.0)
520
+ - Java API - handle :xml and :array AR column type to JDBC type conversion
521
+ - Java API - SQL Array and Object JDBC type (to Ruby) mappings
522
+ - Java API - reviewed (and updated) JDBC type handling for adapters :
523
+ * FLOAT/DOUBLE types should be handled (just like REAL) as Double-s
524
+ * NUMERIC/DECIMAL values should be handled as BigDecimal-s
525
+ * BIT/BOOLEAN should be converted to (Ruby) true/false by default
526
+ * NULL should always be returned as nil
527
+ * close binary/character stream & free SQLXML once converted
528
+ * JDBC 4.0 N(CHAR) types should be handled
529
+ - JdbcConnectionFactory.newConnection now throws SQLException - this is backwards
530
+ incompatible but most extension do not need to deal with this interface (#347)
531
+ - (AR 4.0 compatible) transaction isolation support
532
+ - Java API - deprecate SQLBlock class in favor of a parameterized Callable iface
533
+ - Java API - #retry makes no sense during #rollback (should use the same connection)
534
+ - [postgres] session variables support (from configuration)
535
+ - [mysql] session variables support (from configuration)
536
+ - [mysql] :strict config option, for STRICT_ALL_TABLES on AR-4.0
537
+ - AR 4.0 (master) compatible #rename_table_indexes and #renamed_column_indexes
538
+ - [postgres] no need to clear_query_cache after insert on AR-2.3's #insert_sql
539
+ - Java API - connection #execute_delete "alias" for #execute_update
540
+ - [derby] XMLPARSE when inserting into an XML column type ...
541
+ but still can not retrieve XML values using SELECT * FROM
542
+ - [sqlite3] IndexDefinition#unique should be a true/false
543
+ - [mssql] execute_procedure support, AR-SQLServer style (#266)
544
+ - [mssql] #charset, #current_database
545
+ - [mssql] config[:database] support + switching using #use_database (#311)
546
+ - [mssql] explain support
547
+ - [mssql] better query type detection - make sure WITHs work as SELECts
548
+ - [mssql] make sure there's a column class (#269) + better special column magic
549
+ - [mssql] better - working date/time quoting (with some ms precision support)
550
+ - Java API - re-arrange JDBC (to-ruby) type conversion methods
551
+ - [mssql] fix Model.first on SQL Server 2000 when called with only order
552
+ - [oracle] XMLTYPE column support - can't test due bug in driver
553
+ - [db2] working XML column type support
554
+ - [oracle] MATRIALIZED VIEWS/SYNONYMS should be usable on table_exists?
555
+ - a better (default) table_exists? (aligned with columns_internal) for all
556
+ - Java API - add #mapTables for OOP-ish mapping of results from #getTables
557
+ - [db2] [derby] some (working) connection alive sql (db gurus should help)
558
+ - [oracle] a working connection alive sql
559
+ - [db2] seems like DB2 on ZOS used a non-existing get_primary_key method
560
+ - do not call_discovered_column_callbacks for extending column impls
561
+ - [hsqldb] a 'valid' connection alive SQL for HSQLDB
562
+ - ActiveRecord::AbstractAdapter#exec_insert has 5 args in AR 4.0 (master)
563
+ - no need for a ArJdbc::Version module simply use ArJdbc::VERSION
564
+ - support auto-loading of adapter gems e.g. when specified in a Gemfile
565
+ - load out raltie from arjdbc instead of activerecord-jdbc-adapter thus it will
566
+ work consistently even if only a specific adapter gem is specified in Gemfile
567
+ - make sure we require arjdbc instead of just arjdbc/jdbc from adapters
568
+
569
+ ## 1.2.9 (03/20/13)
570
+
571
+ - [oracle] native database types ala oracle-enhanced adapter
572
+ - [oracle] fix #insert (broken since execute+to_sql refactoring) keeping binds
573
+ respect 30 max identifier length with default sequence names
574
+ - [db2] add as400 primary key support and re-add explain method
575
+ - [mssql] fix table/column name quoting - do not quote if quoted already
576
+ - [mssql] change default constrain sql on 2005+ (closes #320)
577
+ - [mssql] fix substring issue that prevents detecting a query that contains *
578
+ - [mssql] adapter code cleanup + refactored (ArJdbc::) MsSQL -> MSSQL
579
+
580
+ ## 1.2.8 (03/13/13)
581
+
582
+ - [derby] native types review & cleanup, externalize AR patch-ing
583
+ - [h2] correct schema dump (jdbc detected sql types)
584
+ - [hsqldb] correct schema dump (jdbc detected sql types)
585
+ - cleanup H2 / HSQLDB adapter - HSQLDB should not know about H2
586
+ - [mssql] [oracle] [db2] [derby] remove_column 3.x compatibility
587
+ - [sqlite3] setup native types + make sure tables accepts table_name as well
588
+ - [mysql] version + support_"feature" (as Rails)
589
+ - jdbc_connection unwrap parameter for unwrapping (pooled) connections
590
+ - (native) connection #columns #columns_internal expects string table_name
591
+ - [postgres] no need to clear_query_cache after insert on AR-2.3's #insert_sql
592
+ - there's still a double bind when "raw" crud methods used (re-closing #322)
593
+
594
+ ## 1.2.7 (02/12/13)
595
+
596
+ - add some (probably redundant) synchronization + "arjdbc.disconnect.debug" flag
597
+ as an attempt to detect when connection is set to null (#197 and #198)
598
+ avoid (deprecated) Java.java_to_ruby when wrapping java.sql.Connection
599
+ - follow Column-naming convention in MySQL adapter ArJdbc module
600
+ - make sure update_sql is public in mysql adapter (Rails compatibility)
601
+ - fix 1.2.6 regression - incorrectly setup to_sql method based on Rails version
602
+ this caused double '?' bind substitution issues (#322)
603
+
604
+ ## 1.2.6 (01/31/13)
605
+
606
+ - [postgres] only set --schema (to search path) for pg_dump if configured (#315)
607
+ - [oracle] id limits + quoting; current user/db/schema + savepoint support
608
+ - execute "log" (sql) name correctly based on AR version
609
+ - deprecate substitute_binds and extract_sql
610
+ - [derby] make sure we never modify the passed sql param
611
+ - [sqlite3] execute on insert_sql + savepoint support
612
+ - [mssql] [firebird] [informix] (shared) serialized attribute support
613
+ - [oracle] shared serialized attribute support
614
+ - [sqlite3] fix binary column handling failure (#51)
615
+ - renamed Sqlite3RubyJdbcConnection to SQLite3RubyJdbcConnection
616
+ - [mysql] re-define remove_index! for "better" AR-2.3 compatibility
617
+ - [derby] avoid failures with #quote when second arg nil + keep string encoding
618
+ - [db2] binary support & improved quoting +
619
+ use lob callback for all since it was failing on BLOB/CLOB inserts otherwise
620
+ - [db2] better (simplified) type handling for DB2
621
+ - JRuby 1.6.8 compatibility when rescue-ing Java exception
622
+ - [mysql] avoid encoding issues with MySQL's quoting methods (#185)
623
+ - [postgres] ignore binary precision / limit for bytea
624
+ - [oracle] explain (query) support
625
+ - [oracle] since Oracle supports TIMESTAMP for quite a while we should not
626
+ create DATE columns for a :timestamp column type
627
+ - [oracle] avoid CREATE DDL failure when BLOB has length specified
628
+ - [jdbc-] review autoloading backwards-incompatible change in jdbc- gems
629
+ auto-load (backwards-compat) can be enabled back using jdbc.driver.autoload
630
+ system property or using the driver specific autoload option as well
631
+ - [jdbc-] Update version handling introduce DRIVER_VERSION constant
632
+ - [oracle] should support WITH statements (as SELECTs)
633
+ - expose select? and insert? helpers on JdbcAdapter class
634
+ - [postgres] bug in create_database without options (#306)
635
+ - [db2] correct DB2 schema selection (when as400 url has parameters)
636
+ - [db2] DB2 becomes a first-class citizen (adapter) `adapter: db2`
637
+ - [h2] [hsqldb] explain support for H2 and HSQLDB
638
+ - [db2] column should be checked if ain't nil when quoting on DB2
639
+ - [mssql] raise exception when offset is specified but limit is not
640
+ - [sqlite3] SQLite3 explain support (Rails style)
641
+ - [postgres] re-usable explain support for PostgreSQL (based on Rails)
642
+ - [h2] update handling of time fields on H2/HSQLDB (#252)
643
+ - rescue (and wrap) only SQLExceptions from driver.connect this caused
644
+ swallowing of runtime exceptions from JDBC drivers
645
+ - support for setting (custom) jdbc driver properties in config
646
+ - when a new adapter (constant) gets loaded column types should pick it up
647
+ - [jdbc-derby] updated to 10.8.3.0
648
+ - raise LoadError with explanation on with jTDS 1.3.0 on non Java 1.7
649
+ - setup the connection methods when adapter is loaded (broken in 1.2.5)
650
+
651
+ ## 1.2.5 (01/02/13)
652
+
653
+ - backwards compat with older jdbc- (driver) gems (#279)
654
+ - no need to set the :driver for jndi config (did not work anyways) when jdbc is being
655
+ configured + do not raise if there's a :driver_instance setup instead of the :driver
656
+ - support extra options with recreate_database (for postgres)
657
+ - [jdbc-derby] update Derby to 10.8.2.2
658
+ - [jdbc-h2] update H2 to 1.3.170
659
+ - no need for poluting Kernel (#jdbc_require_driver) anymore
660
+ - [sqlite3] updated sqlite3 binary handling
661
+ - [jdbc-jtds] upgrade to jtds (driver) 1.3.0
662
+ - JDBC driver names should be on one (re-usable) place
663
+ - make sure that (jdbc-xxx gem) .jars are only loaded (required) when first connection
664
+ is attempted (this avoids e.g. sqlite-jdbc.jar being always among loaded features)
665
+ - jdbc-* gems should expose the driver_jar instead of (auto) loading it
666
+ - [oracle] adding in_clause_limit override to properly handle Oracle's 1000 entry limit
667
+ - [jdbc-mysql] upgrade to mysql connector 5.1.22
668
+ - [jdbc-postgres] upgade to postgresql-9.2 jar version 9.2-1002
669
+ - [postgres] fix standard_conforming_strings's default not being set and
670
+ backslash escaping to account for standard_conforming_strings
671
+ - [jdbc-postgres] upgrade to postgres.jar 9.1.903 driver
672
+ - [jdbc-h2] update h2.jar to 1.3.168
673
+ - [postgres] use newer hex-encoding for postgresql >= 9.0
674
+ - [postgres] use updated postgres string escaping for byte arrays
675
+ - [hsqldb] fix binary data quoting
676
+ - [jdbc-hsqldb] update hsqldb.jar to 2.2.9
677
+ - [db2] if guessing the date or time fails return the value
678
+ - [db2] fix crasher regression on dump of primary keys
679
+ - [db2] fix change_column always executing as as400
680
+ - [db2] add support for primary keys to structure_dump
681
+ - [db2] detect identity columns in db2 structure_dump
682
+ - [mysql] added support for Rails 3.2 explain feature (#159)
683
+ - add support for DB_STRUCTURE in db:structure:dump
684
+ (and db:structure:load task) (#203)
685
+ - [postgres] rename sequence during table rename
686
+ - [db2] iseries returns date with two digit year - leave it as string
687
+ - [mssql] fix pessimistic locking
688
+ - [mssql] fix row_number errors on SQL Server 2000
689
+ - [db2] support WITH statements in select
690
+ - [db2] use DECIMAL(1) for boolean fields
691
+ - [db2] fetch a sequence value manually for tables with no identity columns
692
+ - [postgres] add support for template in PostgreSQLAdapter
693
+ - [db2] add recognition of MQTs and ALIASes as table types for DB2
694
+ - [postgres] remove count distinct restriction to match native ruby adapter
695
+ - [mssql] pull back primary key using table name via AR
696
+ - [db2] return nil if using jndi and schema/user is not set
697
+ - fixed support for AR 3.2.1
698
+ - [postgres] implemented dynamic search path management
699
+
700
+ ## 1.2.2.1 (10/18/12)
701
+
702
+ - [postgresql] fix regression on insert for Rails 2.3 (#173)
703
+
704
+ ## 1.2.2 (01/27/12)
705
+
706
+ - Thanks George Murphy and Dwayne Litzenberger for their significant
707
+ work this release!
708
+ - AR 3.2.x compatibility via #156 (thanks George Murphy)
709
+ - #152: Bunch of derby and mssql fixes (thanks Dwayne Litzenberger)
710
+ - #137: Fix configure_arel2_visitors for vanilla JDBC adapters
711
+ - #136: query cache fix
712
+ - #138: error message improvement for #table_structure (threez)
713
+ - #130, #139: sqlite3 should log inserts (Uwe Kubosch)
714
+ - #141 column queries logging (George Murphy)
715
+ - #142 MySQL fixes for AR 3-1-stable tests (George Murphy)
716
+ - #147, #149 Improve speed of PG metadata queries (George Murphy)
717
+ - #148 PostgreSQL fixes for AR 3-1-stable tests (George Murphy)
718
+ - #128, #129 Fix for invalid :limit on date columns in schema.rb (Lenny Marks)
719
+ - #144 Stop using ParseDate (not 1.9 friendly) (Bill Koch)
720
+ - #146 Upgrade PG drivers (David Kellum)
721
+ - #150 avoid 'TypeError: can't dup Fixnum' for performance (Bruce Adams)
722
+
723
+ ## 1.2.1 (11/23/11)
724
+
725
+ - #117: Skip ? substitution when no bind parameters are given
726
+ - #115: Work around bug in ResultSetMetaData in SQLite
727
+ - Enhance the 'change_column' in H2 adapter to support additional options
728
+ - Deal with changes in RubyBigDecimal in trunk
729
+ - Decimal with scale zero handling (George Murphy)
730
+ - Fix blob handling for SQLite3 since SQLiteJDBC does not support
731
+ getBinary (Jean-Dominique Morani)
732
+
733
+ ## 1.2.0 (09/13/11)
734
+
735
+ - Support for Rails 3.1
736
+ - Improvements to index usage on PostgreSQL (albertosaurus and
737
+ pazustep)
738
+ - Compatibility: tested with Rails 2.3, 3.0 and 3.1
739
+
740
+ ## 1.1.3 (07/26/11)
741
+
742
+ - Remove AR version < 3 guard around some caching methods (sugg. invadersmustdie)
743
+ - Small bug in arjdbc/discover logic, thanks autotelik.
744
+ - Added bigint serial support + some testcases for native type mapping (postgres only)
745
+ - mssql: use subscript instead of #first. (Kim Toms)
746
+ - #71: fix yield called out of block error
747
+ - Silence Rake::DSL warnings for Rake > 0.9
748
+
749
+ ## 1.1.2 (06/20/11)
750
+
751
+ - Update version of H2 driver from 1.1.107 to 1.3.153 (Ketan
752
+ Padegaonkar, Jeremy Stephens)
753
+ - Fix errors in db:test:clone_structure with PostgreSQL (Andrea Campi)
754
+ - Fixing limit for sqlServer2000 if primary key is not named 'id'
755
+ (Luca Simone)
756
+ - DB2: define jdbc_columns (fixes table_exists? bug) (Nick Kreucher)
757
+ - ACTIVERECORD_JDBC-152 - omitting limit when dumping bytea fields
758
+ (Gregor Schmidt)
759
+ - Postgres doesn't support a limit for bytea columns (Alex Tambellini)
760
+ - JRUBY-5642: Default to schema public if no schema given for postgres
761
+ (Anthony Juckel)
762
+ - Sqlite3 supports float data type so use float (Alex Tambellini)
763
+ - GH #21: Now using sqlite3 driver from
764
+ http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC (thanks Ukabu)
765
+ - GH #65: PG: Respect integer sizes (Alex Tambellini)
766
+ - GH #59: PG: Properly escape bytea-escaped string
767
+ - GH #53: oracle: allow configuration of schema through schema: key
768
+ - GH #50: PG: support multiple schema in search_path (Daniel
769
+ Schreiber)
770
+ - GH #25: Reload ArJdbc.column_types if number of constants changed
771
+ - GH #47: Allow table statistics for indexes to be approximate; speeds
772
+ up Oracle
773
+ - GH #67: Change primary_keys to use the same catalog/schema/table
774
+ separation logic as columns_internal (Marcus Brito). This change
775
+ allows set_table_name to specify a custom schema.
776
+ - GH #49: mssql: quote table names like column names
777
+ - GH #56: mssql: Fix 'select 1' behavior introduced by AR 3.0.7
778
+ - GH #55: Make decimal columns with no precision or scale stay
779
+ decimals
780
+ - GH #45: Add Arel limit support for Firebird (Systho))
781
+ - GH #39: PG: allow negative integer default values
782
+ - GH #19: Make a stub Mysql::Error class
783
+ - ACTIVERECORD_JDBC-148: mssql: Ensure regex doesn't match 'from' in a
784
+ field name
785
+ - GH#31: mssql: Remove extra code breaking mssql w/o limit
786
+ - ACTIVERECORD_JDBC-156: mssql: Logic fix for detecting select_count?
787
+
788
+ ## 1.1.1 (01/14/11)
789
+
790
+ - Arel 2.0.7 compatibility: fix bugs arising from use of Arel 2.0.7 +
791
+ ArJdbc 1.1.0.
792
+ - Gracefully handle changes to limit in Arel's AST
793
+ - Avoid conflict with Arel 2.0.7's mssql visitor
794
+ - Upgrade to PostgreSQL 9.0.801 JDBC drivers (David Kellum)
795
+
796
+ ## 1.1.0 (12/09/10)
797
+
798
+ - Don't narrow platform to '-java' only: revert back to 0.9.2 where
799
+ ar-jdbc can be installed under any Ruby (for easier Bundler/Warbler
800
+ usage and less confusion on rubygems.org).
801
+ - Upgrade MySQL execute code to use RETURN_GENERATED_KEYS.
802
+ - Upgrade to MySQL driver version 5.1.13
803
+ - Add multi-statement support, idea from oruen. For databases that
804
+ support it, you can now do:
805
+ results = Model.connection.execute("select 1; select 2")
806
+ and receive back an array of multiple result set arrays. For use with
807
+ MySQL, you need to add
808
+ options:
809
+ allowMultiQueries: true
810
+ in database.yml.
811
+ - ACTIVERECORD_JDBC-144: Fix limits appearing in schema dump for some
812
+ datatypes (Uwe Kubosch)
813
+ - Fixes for DB2 limit/offset
814
+ - Fix rake db:create for 'jdbc' adapter (Joeri Samson)
815
+ - add create/drop database methods to h2 adapter (sahglie)
816
+ - Use connection getDatabaseProductName instead of getClass.getName
817
+ when detecting JNDI dialects (Denis Odorcic)
818
+ - ACTIVERECORD_JDBC-146: Fix create_table to not append encoding (Marc Slemko)
819
+ - All green on SQLite3 Rails master ActiveRecord tests
820
+ - ACTIVERECORD_JDBC-140: Sync postgres add/change column code from Rails master
821
+ - ACTIVERECORD_JDBC-139: TEXT/DATE on PostgreSQL should not have limits
822
+
823
+ ## 1.0.3 (11/29/10)
824
+
825
+ - ACTIVERECORD_JDBC-143: Implement table_exists? fixing association
826
+ table names with schema prefixes
827
+ - Cleanup of column code for hsqldb (Denis Odorcic)
828
+ - Rails 3.0.3 support - add Arel 2 visitors for all adapters
829
+ - Fix MySQL date types to not have limits (Chris Lowder)
830
+ - ACTIVERECORD_JDBC-141: Better schema support in H2
831
+
832
+ ## 1.0.2
833
+
834
+ - ACTIVERECORD_JDBC-134: Fix conflicting adapter/column superclasses
835
+ - ACTIVERECORD_JDBC-135: Fix regression on PG with boolean and :limit
836
+ - Slew of Derby fixes courtesy of Denis Odorcic
837
+
838
+ ## 1.0.1
839
+
840
+ - Fix db:test:purge issue affecting all adapters in 1.0.0 due to
841
+ incorrect fix to JRUBY-5081 in 8b4b9c5
842
+
843
+ ## 1.0.0
844
+
845
+ - Thanks to David Kellum, Dmitry Denisov, Dwayne Litzenberger, Gregor
846
+ Schmidt, James Walker, John Duff, Joshua Suggs, Nicholas J Kreucher,
847
+ Peter Donald, Geoff Longman, Uwe Kubosch, Youhei Kondou, Michael
848
+ Pitman, Alex B, and Ryan Bell for their contributions to this
849
+ release.
850
+ - BIG set of DB2 updates (Thanks Nick Kreucher)
851
+ - Deprecate jdbc_adapter/rake_tasks
852
+ - (1.0.0.beta1)
853
+ - Make database-specific extensions only load when necessary
854
+ - Allow for discovery of database extensions outside of ar-jdbc
855
+ proper. This should allow for custom database development to be
856
+ developed and released without relying on AR-JDBC core.
857
+ - Get AR's own tests running as close to 100% as possible. MySQL is
858
+ currently 100%, SQLite3 is close.
859
+ - JRUBY-4876: Bump up Derby's max index name length (Uwe Kubosch)
860
+ - (1.0.0.beta2)
861
+ - 98 commits since beta1
862
+ - MSSQL updates from dlitz and realityforge
863
+ - ACTIVERECORD_JDBC-131: Fix string slug issue for DB2 (Youhei Kondou)
864
+ - JRUBY-1642: Don't use H2 INFORMATION_SCHEMA in table or column
865
+ searches
866
+ - JRUBY-4972: Attempt to deal with type(0)/:limit => 0 by not setting
867
+ it808e213
868
+ - JRUBY-5040: Fix issue with limits on timestamps in MySQL
869
+ - JRUBY-3555: Allow setting Derby schema with 'schema:' option
870
+ - ACTIVERECORD_JDBC-98: Make sure we actuall raise an error when
871
+ inappropriately configured
872
+ - ACTIVERECORD_JDBC-112: Add schema dumper tests for already-fixed
873
+ MySQL type limits
874
+ - ACTIVERECORD_JDBC-113: Fix PG float precision issue
875
+ - ACTIVERECORD_JDBC-103: Fix decimal options for PG add/change column
876
+ (Michael Pitman)
877
+ - ACTIVERECORD_JDBC-127: Fix quoting of Date vs. Time(stamp) for
878
+ Oracle (Lenny Marks)
879
+ - Oracle: Sort out the NUMBER vs NUMBER(x) vs NUMBER(x,y) situation.
880
+ - JRUBY-3051: Think we finally got the PG mixed-case patches applied.
881
+ - JRUBY-5081: Consolidate code for dropping DB via postgres
882
+ - ACTIVERECORD_JDBC-101: Add override of LONGVARCHAR => CLOB for
883
+ informix
884
+ - ACTIVERECORD_JDBC-107: Fix MySQL update_all issue on AR 2.3
885
+ - ACTIVERECORD_JDBC-124: Filter out special _row_num column
886
+ - ACTIVERECORD_JDBC-126: Fix sql 2000 limit/offset per Michael Pitman
887
+ - ACTIVERECORD_JDBC-125: Add tweak to limit/offset code for HABTM
888
+ queries (alex b)
889
+ - ACTIVERECORD_JDBC-129: Don't have limits for text, binary or bit
890
+ fields
891
+ - (1.0.0 final)
892
+ - Fix a few more SQLite3 AR tests
893
+ - SQLite3: handle ":memory:" database
894
+ - Release new SQLite3 driver 3.6.14.2 and new Derby driver 10.6.2.1
895
+
896
+ ## 0.9.7
897
+
898
+ - JRUBY-4781: Fix multiple database connection collision issue w/
899
+ Oracle
900
+ - ACTIVERECORD_JDBC-115: Support SAVEPOINTS for MySQL and PG so that
901
+ nested transactions can be faked
902
+ - ACTIVERECORD_JDBC-116: Handle schema.table better for MySQL (thanks
903
+ Dilshod Mukhtarov)
904
+ - Fix 'Wrong # of arguments (2 for 1)' issue with #create_database for
905
+ MySQL and AR 3.0
906
+ - SQLServer 2000 support (thanks Jay McGaffigan)
907
+
908
+ ## 0.9.6
909
+
910
+ - The Oracle release!
911
+ - Oracle should be working much better with this release. Also updated
912
+ to work with Rails 3.
913
+ - Get all unit tests running cleanly on Oracle, fixing previous
914
+ datetime/timezone issues.
915
+ - ACTIVERECORD_JDBC-83: Add :sequence_start_value option to
916
+ create_table, following oracle_enhanced adapter
917
+ - ACTIVERECORD_JDBC-33: Don't double-quote table names in oracle
918
+ - ACTIVERECORD_JDBC-17: Fix Oracle primary keys so that /^NUMBER$/ => :integer
919
+ - Fix remaining blockers ACTIVERECORD_JDBC-82, JRUBY-3675,
920
+ ACTIVERECORD_JDBC-22, ACTIVERECORD_JDBC-27, JRUBY-4759
921
+
922
+ ## 0.9.5
923
+
924
+ - The MSSQL release, courtesy of Mike Williams and Lonely
925
+ Planet.
926
+ - JRuby + AR-JDBC is now seen as the hassle-free way of using Rails
927
+ with SQLServer!
928
+ - Many fixes for MSSQL, including ACTIVERECORD_JDBC-18,
929
+ ACTIVERECORD_JDBC-41, ACTIVERECORD_JDBC-56, ACTIVERECORD_JDBC-94,
930
+ ACTIVERECORD_JDBC-99, JRUBY-3805, JRUBY-3793, JRUBY-4221
931
+ - All tests pass on Rails 3.0.0.beta3!
932
+
933
+ ## 0.9.4
934
+
935
+ - ACTIVERECORD_JDBC-96: DB2 JdbcSpec cannot dump schema correctly
936
+ (Youhei Kondou)
937
+ - ACTIVERECORD_JDBC-97: Dont use Rails 3 deprecated constants (David
938
+ Calavera)
939
+ - Updates for rake db:schema:dump compatibility with Rails 2.3+ and
940
+ MySQL (Joakim Kolsj�)
941
+ - Rails 3.0.0.beta2 compatibility
942
+ - Return of Derby, H2, Hsqldb support (requires AR >= 3.0.0.beta2)
943
+
944
+ ## 0.9.3
945
+
946
+ - Rails 3 compatibility
947
+ - PLEASE NOTE: ActiveRecord in Rails 3 has changed in a way that
948
+ doesn't allow non-standard DBs (such as the Derby and H2 embedded
949
+ DBs) to work. We're investigating the effort required to support
950
+ these databases and hope to have something for a future release.
951
+ - ACTIVERECORD_JDBC-91: Fix schema search path for PostgreSQL (Alex
952
+ Kuebo)
953
+ - ACTIVERECORD_JDBC-87: DB2 ID insert fix (Youhei Kondou)
954
+ - ACTIVERECORD_JDBC-90: MSSQL fix for DATEs (jlangenauer)
955
+ - ACTIVERECORD_JDBC-93: Fix string IDs for sqlite3, hsql/h2 (moser)
956
+ - ACTIVERECORD_JDBC-86: Fix Derby queries starting with VALUES (Dwayne Litzenberger)
957
+ - ACTIVERECORD_JDBC-95: Fix INSERT ... RETURNING for PostgreSQL
958
+
959
+ ## 0.9.2
960
+
961
+ - The main, highly awaited fix for this release is a solution to the
962
+ rake db:create/db:drop issue. The main change is a new 'jdbc' rails
963
+ generator that should be run once to prepare a Rails application to
964
+ use JDBC. The upside of this generator is that you no longer will
965
+ need to alter database.yml for JDBC. See the README.txt for details.
966
+ - Cleanup and reconnect if errors occur during begin/rollback
967
+ (Jean-Dominique Morani, Christian Seiler)
968
+ - ACTIVERECORD_JDBC-1: Add #drop_database method for oracle (does the
969
+ same thing as recreate_database)
970
+ - Sqlite3 and MSSQL fixes (Jean-Dominique Morani)
971
+ - JRUBY-3512: Treat LONGVARCHAR as a CLOB for Mssql
972
+ - JRUBY-3624: Upgrade Derby to 10.5.3.0 and add native limit/offset
973
+ support (Christopher Saunders)
974
+ - JRUBY-3616: Fix postgres non-sequence primary keys (David Kellum)
975
+ - JRUBY-3669: Fix Oracle case with unconfigured schema (Dan Powell)
976
+ - Fixed quote_column_name of jdbc_oracle to accept numbers (Marcelo
977
+ Murad)
978
+ - Fix for mysql tables with non standard primary keys such that the
979
+ schema dump is correct (Nick Zalabak)
980
+ - MSSQL fixes from Mike Luu:
981
+ - add support for MSSQL uniqueidentifier datatype
982
+ - always quote strings using unicode identifier for MSSQL
983
+ - Changes primary_key generation to use always instead of by default
984
+ for DB2 (Amos King)
985
+ - Improves the SQLite adapter by fixing rename_column, change_column,
986
+ change_column_default, changing remove_column, and adding
987
+ remove_columns (Ryan Baumann)
988
+ - More oracle love courtesy Ben Browning and Jens Himmelreich
989
+ - JRUBY-3608: Add missing change_column_null method for postgres
990
+ - JRUBY-3508: Fix quoting of integer and float columns
991
+
992
+ ## 0.9.1
993
+
994
+ - We did a lot of internal cleanup this release in the hopes of
995
+ simplifying the code and increasing performance.
996
+ - Many SQLite updates (thanks Nils Christian Haugen)
997
+ - JRUBY-2912: Fix MSSQL create/drop database (Joern Hartmann)
998
+ - JRUBY-2767: Mistake in selecting identity with H2/HSQLDB
999
+ - JRUBY-2884: jdbc_postgre.rb issue handling nil booleans (also a fix
1000
+ for hsqldb/h2) + tests
1001
+ - JRUBY-2995: activerecord jdbc derby adapter should quote columns
1002
+ called 'year'
1003
+ - JRUBY-2897: jdbc_postgre.rb needs microsecond support
1004
+ - JRUBY-3282: Upgrade to derby 10.4.2.0 to allow unique constraints
1005
+ with nullable columns
1006
+ - Update h2 from 1.0.63 to 1.1.107 in driver
1007
+ - JRUBY-3026: [Derby] Allow select/delete/update conditions with
1008
+ comparison to NULL using '='
1009
+ - JRUBY-2996: ...(actually this fixes only remaining issue of this bug
1010
+ which was symbols making into quote were exploding
1011
+ - JRUBY-2691: Update sybase driver to pass simple unit tests with jtds
1012
+ and verify it works with the new dialect keyword. patch by Leigh
1013
+ Kennedy
1014
+ - Make :float type work on h2,hsql [returned as string]. Make :float
1015
+ work on hsqldb (no paren value supported). Make REAL_TYPE just
1016
+ return RubyFloat
1017
+ - JRUBY-3222: Upgrade #type_to_sql to variation of AR 2.1.2 version
1018
+ - Add patch supplied in JRUBY-3489 (patch by Jean-Dominique Morani)
1019
+ - Various Oracle fixes by edsono
1020
+ - JRUBY-2688: Don't hard-code MySQL connection character encoding to
1021
+ utf8
1022
+
1023
+ ## 0.9
1024
+
1025
+ - Now updated to support ActiveRecord 2.2. JNDI-based connections will
1026
+ automatically connect/disconnect for every AR connection pool
1027
+ checkout/checkin. For best results, set your pool: parameter >= the
1028
+ actual maximum size of the JNDI connection pool. (We'll look at how
1029
+ to eliminate the need to configure AR's pool in the future.)
1030
+ - NEW! Informix support courtesy of Javier Fernandez-Ivern.
1031
+ - Backport another Oracle CLOB issue, thanks Edson C�sar.
1032
+ - Rubyforge #22018: chomp final trailing semicolon for oracle
1033
+ - JRUBY-2848: Fix NPE error in set_native_database_types
1034
+ - Rework oracle lob saving callback to be Rails 2.1 friendly (assist
1035
+ from court3nay)
1036
+ - JRUBY-2715: Add create/drop database methods to Postgres (Peter Williams)
1037
+ - JRUBY-3183: Fix structure dump for Postgres (Ryan Bell)
1038
+ - JRUBY-3184: recreate_database for test database working for PG (Ryan Bell)
1039
+ - JRUBY-3186: disable referential integrity for PG (Ryan Bell)
1040
+ - Authoritative repository now hosted at
1041
+ git://github.com/nicksieger/activerecord-jdbc-adapter.git; rubyforge
1042
+ svn trunk cleaned out.
1043
+
1044
+ ## 0.8.2
1045
+
1046
+ - Added an optional config key called :dialect. Using :dialect allows you to
1047
+ override the default SQL dialect for the driver class being used. There are
1048
+ a few cases for this:
1049
+ - Using using Sybase w/ the jTDS driver.
1050
+ - Using rebranded drivers.
1051
+ - It makes more sense to use :dialect, rather then :driver when using JNDI.
1052
+ - JRUBY-2619: Typo with :test config causing problems with dev database (Igor Minar)
1053
+ - 20524, JRUBY-2612: Since when did I think that there was a #true? method on Object?
1054
+
1055
+ ## 0.8.1
1056
+
1057
+ - Now sporting a JDBC sqlite3 adapter! Thanks Joseph Athman.
1058
+ - Added support for InterSystems Cache database (Ryan Bell)
1059
+ - Fix for JRUBY-2256
1060
+ - JRUBY-1638, JRUBY-2404, JRUBY-2463: schema.table handling and Oracle NUMBER fixes (Darcy Schultz & Jesse Hu)
1061
+ - Add structure dump and other DDL-ish for DB2 (courtesy abedra and stuarthalloway)
1062
+ - Fix missing quote_table_name function under Rails 1.2.6 and earlier
1063
+ - Small tweaks to jdbc.rake to select proper config
1064
+ - JRUBY-2011: Fix MSSQL string un-quoting issue (Silvio Fonseca)
1065
+ - JRUBY-1977, 17427: Fix information_schema select issue with MSSQL (Matt Burke)
1066
+ - 20479: Improve get_table_name for MSSQL (Aslak Hellesøy)
1067
+ - 20243: numerics improvements for MSSQL (Aslak Hellesøy)
1068
+ - 20172: don't quote table names for MSSQL (Thor Marius Henrichsen)
1069
+ - 19729: check for primary key existence in postgres during insert (Martin Luder)
1070
+ - JRUBY-2297, 18846: retrying failing SQL statements is harmful when not autocommitting (Craig McMillan)
1071
+ - 10021: very preliminary sybase support. (Mark Atkinson) Not usable until collision w/ sqlserver driver is resolved.
1072
+ - JRUBY-2312, JRUBY-2319, JRUBY-2322: Oracle timestamping issues (Jesse Hu & Michael König)
1073
+ - JRUBY-2422: Fix MySQL referential integrity and rollback issues
1074
+ - JRUBY-2382: mysql string quoting fails with ArrayIndexOutofBoundsException
1075
+
1076
+ ## 0.8
1077
+
1078
+ - NOTE: This release is only compatible with JRuby 1.1RC3 or later.
1079
+ - Because of recent API changes in trunk in preparation for JRuby 1.1, this release is not
1080
+ backward compatible with previous JRuby releases. Hence the version bump.
1081
+ - Internal: convert Java methods to be defined with annotations
1082
+ - Fix problem with reserved words coming back pre-quoted from #indexes in postgres
1083
+ - JRUBY-2205: Fix N^2 allocation of bytelists for mysql quoting (taw)
1084
+ - Attempt a fix for Rubyforge 18059
1085
+ - Upgrade derby to 10.3.2.1
1086
+ - Fix db:create etc. in the case where JDBC is loaded in Rails' preinitializer.rb
1087
+ - Fix db:drop to actually work
1088
+ - Fix for Rubyforge #11567 (Matt Williams)
1089
+
1090
+ ## 0.7.2
1091
+
1092
+ - JRUBY-1905: add_column for derby, hsqldb, and postgresql (Stephen Bannasch)
1093
+ - Fix db:create for JDBC
1094
+ - Support Rails 2 with the old "require 'jdbc_adapter'" approach
1095
+ - JRUBY-1966: Instead of searching for just tables, search for views and tables.
1096
+ - JRUBY-1583: DB2 numeric quoting (Ryan Shillington)
1097
+ - JRUBY-1634: Oracle DATE type mapping (Daniel Wintschel)
1098
+ - JRUBY-1543: rename_column issue with more recent MySQL drivers (Oliver Schmelzle)
1099
+ - Rubyforge #15074: ConnectionAdapters::JdbcAdapter.indexes is missing name and
1100
+ schema_name parameters in the method signature (Igor Minar)
1101
+ - Rubyforge #13558: definition for the indexes method (T Meyarivan)
1102
+ - JRUBY-2051: handle schemaname and tablename more correctly for columns
1103
+ - JRUBY-2102: Postgres Adapter cannot handle datetime type (Rainer Hahnekamp)
1104
+ - JRUBY-2018: Oracle behind ActiveRecord-JDBC fails with "Invalid column index" (K Venkatasubramaniyan)
1105
+ - JRUBY-2012: jdbc_mysql structure dump fails for mysql views (Tyler Jennings)
1106
+
1107
+ ## 0.7.1
1108
+
1109
+ - Add adapter and driver for H2 courtesy of Caleb Land
1110
+ - Fix "undefined method `last' for {}:Hash" error introduced with new Rake 0.8.1 (JRUBY-1859)
1111
+
1112
+ ## 0.7
1113
+
1114
+ - PLEASE NOTE: This release is not compatible with JRuby releases earlier than
1115
+ 1.0.3 or 1.1b2. If you must use JRuby 1.0.2 or earlier, please install the
1116
+ 0.6 release.
1117
+ - Release coincides with JRuby 1.0.3 and JRuby 1.1b2 releases
1118
+ - Simultaneous support for JRuby trunk and 1.0 branch
1119
+ - Get rid of log_no_bench method, so we time SQL execution again.
1120
+ - Implement #select_rows
1121
+ - MySQL migration and quoting updates
1122
+
1123
+ ## 0.6
1124
+
1125
+ - Gem is renamed to "activerecord-jdbc-adapter" to follow new conventions
1126
+ introduced in Rails 2.0 for third-party adapters. Rails 2.0 compatibility is
1127
+ introduced.
1128
+ - Add dependency on ActiveRecord >= 1.14 (from the Rails 1.1.x release)
1129
+ - New drivers (jdbc-XXX) and adapter (activerecord-jdbcXXX-adapter) gems
1130
+ available separately. See the README.txt file for details.
1131
+ - Plain "jdbc" driver is still available if you want to use the full
1132
+ driver/url way of specifying the driver.
1133
+ - More bugfixes to Oracle and SQLServer courtesy of Ola & ThoughtWorks
1134
+
1135
+ ## 0.5
1136
+
1137
+ - Release coincides with JRuby 1.0.1 release
1138
+ - It is no longer necessary to specify :driver and :url configuration
1139
+ parameters for the mysql, postgresql, oracle, derby, hsqldb, and h2
1140
+ adapters. The previous configuration is still valid and compatible, but for
1141
+ new applications, this makes it possible to use the exact same database.yml
1142
+ configuration as Rails applications running under native Ruby.
1143
+ - JDBC drivers can now be dynamically loaded by Ruby code, without being on
1144
+ the classpath prior to launching JRuby. Simply use "require
1145
+ 'jdbc-driver.jar'" in JRuby code to add it to the runtime classpath.
1146
+ - Updates to HSQL, MS SQLServer, Postgres, Oracle and Derby adapters
1147
+
1148
+ ## 0.4
1149
+
1150
+ - Release coincides with JRuby 1.0 release
1151
+ - Shoring up PostgreSQL (courtesy Dudley Flanders) and HSQL (courtesy Matthew
1152
+ Williams)
1153
+ - Fix timestamps on Oracle to use DATE (as everything else)
1154
+ - Derby fixes: Fix for open result set issue, better structure dump, quoting,
1155
+ column type changing
1156
+ - Sybase type recognition fix (courtesy Dean Mao)
1157
+
1158
+ ## 0.3.1
1159
+
1160
+ - Derby critical fixes shortly after 0.3
1161
+
1162
+ ## 0.3
1163
+
1164
+ - Release coincides with JRuby 1.0.0RC1 release
1165
+ - Improvements for Derby, Postgres, and Oracle, all of which are running
1166
+ > 95% of AR tests
1167
+
1168
+ ## 0.2.4
1169
+
1170
+ - Release coincides with JRuby 0.9.9 release
1171
+ - JRuby 0.9.9 is required
1172
+ - MySQL close to 100% working
1173
+ - Derby improvements
1174
+ - DECIMAL/NUMERIC/FLOAT/REAL bugs fixed with type recognition for Oracle,
1175
+ Postgres, etc.
1176
+ - HSQLDB has regressed this release and may not be functioning; we'll get it
1177
+ fixed for the next one
1178
+
1179
+ ## 0.2.3
1180
+
1181
+ - Release coincides (and compatible) with JRuby 0.9.8 release
1182
+ - 8 bugs fixed: see http://rubyurl.com/0Da
1183
+ - Improvements and compatibility fixes for Rails 1.2.x
1184
+
1185
+ ## 0.2.1, 0.2.2
1186
+
1187
+ - Early releases, added better support for multiple databases
1188
+
1189
+ ## 0.0.1
1190
+
1191
+ - Initial, very alpha release