activerecord-jdbc-adapter 1.3.0.beta2 → 1.3.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. data/.gitignore +14 -8
  2. data/.travis.yml +40 -31
  3. data/.yardopts +4 -0
  4. data/Appraisals +2 -5
  5. data/CONTRIBUTING.md +46 -0
  6. data/Gemfile +21 -4
  7. data/Gemfile.lock +42 -17
  8. data/{History.txt → History.md} +142 -75
  9. data/README.md +102 -104
  10. data/RUNNING_TESTS.md +76 -0
  11. data/Rakefile.jdbc +20 -0
  12. data/activerecord-jdbc-adapter.gemspec +35 -18
  13. data/gemfiles/rails23.gemfile +4 -3
  14. data/gemfiles/rails23.gemfile.lock +9 -6
  15. data/gemfiles/rails30.gemfile +4 -3
  16. data/gemfiles/rails30.gemfile.lock +9 -6
  17. data/gemfiles/rails31.gemfile +4 -3
  18. data/gemfiles/rails31.gemfile.lock +9 -6
  19. data/gemfiles/rails32.gemfile +4 -3
  20. data/gemfiles/rails32.gemfile.lock +17 -14
  21. data/gemfiles/rails40.gemfile +5 -5
  22. data/gemfiles/rails40.gemfile.lock +17 -69
  23. data/lib/active_record/connection_adapters/firebird_adapter.rb +1 -0
  24. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
  25. data/lib/arel/visitors/compat.rb +22 -3
  26. data/lib/arel/visitors/db2.rb +8 -4
  27. data/lib/arel/visitors/derby.rb +14 -13
  28. data/lib/arel/visitors/firebird.rb +5 -4
  29. data/lib/arel/visitors/hsqldb.rb +11 -9
  30. data/lib/arel/visitors/sql_server.rb +89 -61
  31. data/lib/arjdbc.rb +1 -1
  32. data/lib/arjdbc/db2/adapter.rb +181 -212
  33. data/lib/arjdbc/db2/as400.rb +31 -18
  34. data/lib/arjdbc/db2/column.rb +167 -0
  35. data/lib/arjdbc/db2/connection_methods.rb +2 -0
  36. data/lib/arjdbc/derby/adapter.rb +206 -107
  37. data/lib/arjdbc/derby/connection_methods.rb +4 -9
  38. data/lib/arjdbc/firebird.rb +1 -0
  39. data/lib/arjdbc/firebird/adapter.rb +202 -64
  40. data/lib/arjdbc/firebird/connection_methods.rb +20 -0
  41. data/lib/arjdbc/h2/adapter.rb +56 -36
  42. data/lib/arjdbc/hsqldb/adapter.rb +99 -68
  43. data/lib/arjdbc/jdbc/adapter.rb +474 -265
  44. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  45. data/lib/arjdbc/jdbc/adapter_require.rb +8 -7
  46. data/lib/arjdbc/jdbc/arel_support.rb +132 -0
  47. data/lib/arjdbc/jdbc/base_ext.rb +8 -7
  48. data/lib/arjdbc/jdbc/callbacks.rb +16 -10
  49. data/lib/arjdbc/jdbc/column.rb +25 -3
  50. data/lib/arjdbc/jdbc/connection.rb +28 -55
  51. data/lib/arjdbc/jdbc/extension.rb +14 -14
  52. data/lib/arjdbc/jdbc/java.rb +6 -3
  53. data/lib/arjdbc/jdbc/jdbc.rake +1 -1
  54. data/lib/arjdbc/jdbc/quoted_primary_key.rb +2 -2
  55. data/lib/arjdbc/jdbc/rake_tasks.rb +1 -1
  56. data/lib/arjdbc/jdbc/type_converter.rb +5 -2
  57. data/lib/arjdbc/mssql/adapter.rb +160 -280
  58. data/lib/arjdbc/mssql/column.rb +182 -0
  59. data/lib/arjdbc/mssql/connection_methods.rb +37 -4
  60. data/lib/arjdbc/mssql/explain_support.rb +13 -21
  61. data/lib/arjdbc/mssql/limit_helpers.rb +79 -42
  62. data/lib/arjdbc/mssql/lock_methods.rb +77 -0
  63. data/lib/arjdbc/mssql/utils.rb +11 -11
  64. data/lib/arjdbc/mysql/adapter.rb +165 -247
  65. data/lib/arjdbc/mysql/column.rb +123 -0
  66. data/lib/arjdbc/mysql/connection_methods.rb +3 -6
  67. data/lib/arjdbc/oracle/adapter.rb +282 -288
  68. data/lib/arjdbc/oracle/column.rb +122 -0
  69. data/lib/arjdbc/oracle/connection_methods.rb +3 -0
  70. data/lib/arjdbc/postgresql/adapter.rb +336 -574
  71. data/lib/arjdbc/postgresql/column.rb +458 -0
  72. data/lib/arjdbc/postgresql/connection_methods.rb +1 -2
  73. data/lib/arjdbc/postgresql/schema_creation.rb +38 -0
  74. data/lib/arjdbc/sqlite3/adapter.rb +189 -145
  75. data/lib/arjdbc/sqlite3/explain_support.rb +1 -1
  76. data/lib/arjdbc/tasks/oracle/enhanced_structure_dump.rb +8 -8
  77. data/lib/arjdbc/util/quoted_cache.rb +60 -0
  78. data/lib/arjdbc/util/table_copier.rb +110 -0
  79. data/lib/arjdbc/version.rb +6 -7
  80. data/pom.xml +56 -2
  81. data/rakelib/02-test.rake +72 -83
  82. data/rakelib/db.rake +29 -17
  83. data/src/java/arjdbc/ArJdbcModule.java +21 -18
  84. data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +84 -12
  85. data/src/java/arjdbc/derby/DerbyModule.java +140 -143
  86. data/src/java/arjdbc/derby/DerbyRubyJdbcConnection.java +58 -7
  87. data/src/java/arjdbc/h2/H2Module.java +43 -0
  88. data/src/java/arjdbc/informix/InformixRubyJdbcConnection.java +7 -6
  89. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +1223 -648
  90. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +24 -23
  91. data/src/java/arjdbc/mysql/MySQLModule.java +33 -32
  92. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +147 -30
  93. data/src/java/arjdbc/oracle/OracleModule.java +13 -13
  94. data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +114 -6
  95. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +166 -36
  96. data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +101 -19
  97. data/src/java/arjdbc/util/QuotingUtils.java +19 -19
  98. metadata +240 -394
  99. data/bench/bench_attributes.rb +0 -13
  100. data/bench/bench_attributes_new.rb +0 -14
  101. data/bench/bench_create.rb +0 -12
  102. data/bench/bench_find_all.rb +0 -12
  103. data/bench/bench_find_all_mt.rb +0 -25
  104. data/bench/bench_model.rb +0 -85
  105. data/bench/bench_new.rb +0 -12
  106. data/bench/bench_new_valid.rb +0 -12
  107. data/bench/bench_valid.rb +0 -13
  108. data/lib/arel/engines/sql/compilers/db2_compiler.rb +0 -9
  109. data/lib/arel/engines/sql/compilers/derby_compiler.rb +0 -6
  110. data/lib/arel/engines/sql/compilers/h2_compiler.rb +0 -6
  111. data/lib/arel/engines/sql/compilers/hsqldb_compiler.rb +0 -15
  112. data/lib/arel/engines/sql/compilers/jdbc_compiler.rb +0 -6
  113. data/lib/arel/engines/sql/compilers/mssql_compiler.rb +0 -46
  114. data/lib/arjdbc/jdbc/missing_functionality_helper.rb +0 -98
  115. data/lib/arjdbc/mssql/lock_helpers.rb +0 -76
  116. data/lib/arjdbc/mssql/tsql_methods.rb +0 -58
  117. data/lib/arjdbc/postgresql/column_cast.rb +0 -134
  118. data/test/activerecord/connections/native_jdbc_mysql/connection.rb +0 -25
  119. data/test/activerecord/jall.sh +0 -7
  120. data/test/activerecord/jtest.sh +0 -3
  121. data/test/assets/flowers.jpg +0 -0
  122. data/test/binary.rb +0 -67
  123. data/test/db/db2.rb +0 -43
  124. data/test/db/db2/binary_test.rb +0 -6
  125. data/test/db/db2/has_many_through_test.rb +0 -6
  126. data/test/db/db2/rake_test.rb +0 -82
  127. data/test/db/db2/rake_test_data.sql +0 -35
  128. data/test/db/db2/reset_column_information_test.rb +0 -5
  129. data/test/db/db2/serialize_test.rb +0 -6
  130. data/test/db/db2/simple_test.rb +0 -81
  131. data/test/db/db2/test_helper.rb +0 -6
  132. data/test/db/db2/unit_test.rb +0 -73
  133. data/test/db/derby.rb +0 -12
  134. data/test/db/derby/binary_test.rb +0 -6
  135. data/test/db/derby/migration_test.rb +0 -74
  136. data/test/db/derby/rake_test.rb +0 -96
  137. data/test/db/derby/reset_column_information_test.rb +0 -6
  138. data/test/db/derby/row_locking_test.rb +0 -20
  139. data/test/db/derby/schema_dump_test.rb +0 -5
  140. data/test/db/derby/serialize_test.rb +0 -6
  141. data/test/db/derby/simple_test.rb +0 -173
  142. data/test/db/derby/test_helper.rb +0 -6
  143. data/test/db/derby/unit_test.rb +0 -32
  144. data/test/db/derby/xml_column_test.rb +0 -17
  145. data/test/db/h2.rb +0 -11
  146. data/test/db/h2/binary_test.rb +0 -6
  147. data/test/db/h2/change_column_test.rb +0 -68
  148. data/test/db/h2/identity_column_test.rb +0 -35
  149. data/test/db/h2/offset_test.rb +0 -49
  150. data/test/db/h2/rake_test.rb +0 -98
  151. data/test/db/h2/schema_dump_test.rb +0 -29
  152. data/test/db/h2/serialize_test.rb +0 -6
  153. data/test/db/h2/simple_test.rb +0 -56
  154. data/test/db/hsqldb.rb +0 -11
  155. data/test/db/hsqldb/binary_test.rb +0 -6
  156. data/test/db/hsqldb/rake_test.rb +0 -101
  157. data/test/db/hsqldb/schema_dump_test.rb +0 -19
  158. data/test/db/hsqldb/serialize_test.rb +0 -6
  159. data/test/db/hsqldb/simple_test.rb +0 -17
  160. data/test/db/informix.rb +0 -13
  161. data/test/db/jdbc.rb +0 -16
  162. data/test/db/jdbc_derby.rb +0 -14
  163. data/test/db/jdbc_h2.rb +0 -17
  164. data/test/db/jdbc_mysql.rb +0 -13
  165. data/test/db/jdbc_postgres.rb +0 -23
  166. data/test/db/jndi_config.rb +0 -32
  167. data/test/db/jndi_pooled_config.rb +0 -32
  168. data/test/db/mssql.rb +0 -11
  169. data/test/db/mssql/binary_test.rb +0 -6
  170. data/test/db/mssql/exec_proc_test.rb +0 -46
  171. data/test/db/mssql/identity_insert_test.rb +0 -18
  172. data/test/db/mssql/ignore_system_views_test.rb +0 -40
  173. data/test/db/mssql/limit_offset_test.rb +0 -190
  174. data/test/db/mssql/multibyte_test.rb +0 -16
  175. data/test/db/mssql/multiple_connections_test.rb +0 -71
  176. data/test/db/mssql/rake_test.rb +0 -143
  177. data/test/db/mssql/reset_column_information_test.rb +0 -6
  178. data/test/db/mssql/row_locking_test.rb +0 -7
  179. data/test/db/mssql/serialize_test.rb +0 -6
  180. data/test/db/mssql/simple_test.rb +0 -140
  181. data/test/db/mssql/transaction_test.rb +0 -6
  182. data/test/db/mssql/types_test.rb +0 -205
  183. data/test/db/mssql/unit_test.rb +0 -249
  184. data/test/db/mysql.rb +0 -4
  185. data/test/db/mysql/_rails_test_mysql.32.out +0 -6585
  186. data/test/db/mysql/binary_test.rb +0 -6
  187. data/test/db/mysql/connection_test.rb +0 -51
  188. data/test/db/mysql/index_length_test.rb +0 -58
  189. data/test/db/mysql/multibyte_test.rb +0 -10
  190. data/test/db/mysql/nonstandard_primary_key_test.rb +0 -39
  191. data/test/db/mysql/rake_test.rb +0 -97
  192. data/test/db/mysql/reset_column_information_test.rb +0 -6
  193. data/test/db/mysql/schema_dump_test.rb +0 -228
  194. data/test/db/mysql/serialize_test.rb +0 -6
  195. data/test/db/mysql/simple_test.rb +0 -187
  196. data/test/db/mysql/statement_escaping_test.rb +0 -46
  197. data/test/db/mysql/transaction_test.rb +0 -6
  198. data/test/db/mysql/types_test.rb +0 -30
  199. data/test/db/mysql/unit_test.rb +0 -93
  200. data/test/db/mysql_config.rb +0 -7
  201. data/test/db/oracle.rb +0 -27
  202. data/test/db/oracle/binary_test.rb +0 -6
  203. data/test/db/oracle/limit_test.rb +0 -24
  204. data/test/db/oracle/multibyte_test.rb +0 -22
  205. data/test/db/oracle/rake_test.rb +0 -100
  206. data/test/db/oracle/reset_column_information_test.rb +0 -6
  207. data/test/db/oracle/serialize_test.rb +0 -6
  208. data/test/db/oracle/simple_test.rb +0 -140
  209. data/test/db/oracle/specific_test.rb +0 -180
  210. data/test/db/oracle/transaction_test.rb +0 -31
  211. data/test/db/oracle/unit_test.rb +0 -31
  212. data/test/db/postgres.rb +0 -11
  213. data/test/db/postgres/_rails_test_postgres.32.out +0 -6405
  214. data/test/db/postgres/a_custom_primary_key_test.rb +0 -50
  215. data/test/db/postgres/active_schema_unit_test.rb +0 -68
  216. data/test/db/postgres/array_type_test.rb +0 -101
  217. data/test/db/postgres/binary_test.rb +0 -6
  218. data/test/db/postgres/connection_test.rb +0 -63
  219. data/test/db/postgres/data_types_test.rb +0 -703
  220. data/test/db/postgres/hstore_test.rb +0 -200
  221. data/test/db/postgres/information_schema_leak_test.rb +0 -30
  222. data/test/db/postgres/json_test.rb +0 -86
  223. data/test/db/postgres/ltree_test.rb +0 -51
  224. data/test/db/postgres/mixed_case_test.rb +0 -29
  225. data/test/db/postgres/native_types_test.rb +0 -124
  226. data/test/db/postgres/rake_test.rb +0 -117
  227. data/test/db/postgres/reserved_test.rb +0 -22
  228. data/test/db/postgres/reset_column_information_test.rb +0 -6
  229. data/test/db/postgres/row_locking_test.rb +0 -21
  230. data/test/db/postgres/schema_dump_test.rb +0 -95
  231. data/test/db/postgres/schema_test.rb +0 -115
  232. data/test/db/postgres/simple_test.rb +0 -260
  233. data/test/db/postgres/table_alias_length_test.rb +0 -16
  234. data/test/db/postgres/transaction_test.rb +0 -6
  235. data/test/db/postgres/unit_test.rb +0 -31
  236. data/test/db/postgres_config.rb +0 -10
  237. data/test/db/sqlite3.rb +0 -6
  238. data/test/db/sqlite3/_rails_test_sqlite3.32.out +0 -6274
  239. data/test/db/sqlite3/has_many_though_test.rb +0 -6
  240. data/test/db/sqlite3/rake_test.rb +0 -71
  241. data/test/db/sqlite3/reset_column_information_test.rb +0 -6
  242. data/test/db/sqlite3/schema_dump_test.rb +0 -6
  243. data/test/db/sqlite3/serialize_test.rb +0 -6
  244. data/test/db/sqlite3/simple_test.rb +0 -268
  245. data/test/db/sqlite3/transaction_test.rb +0 -32
  246. data/test/db/sqlite3/type_conversion_test.rb +0 -104
  247. data/test/has_many_through.rb +0 -61
  248. data/test/informix_simple_test.rb +0 -48
  249. data/test/jdbc/db2.rb +0 -36
  250. data/test/jdbc/oracle.rb +0 -34
  251. data/test/jdbc_column_test.rb +0 -23
  252. data/test/jdbc_common.rb +0 -16
  253. data/test/jdbc_connection_test.rb +0 -196
  254. data/test/jndi_callbacks_test.rb +0 -33
  255. data/test/jndi_test.rb +0 -55
  256. data/test/manualTestDatabase.rb +0 -191
  257. data/test/models/add_not_null_column_to_table.rb +0 -9
  258. data/test/models/auto_id.rb +0 -15
  259. data/test/models/binary.rb +0 -18
  260. data/test/models/custom_pk_name.rb +0 -15
  261. data/test/models/data_types.rb +0 -40
  262. data/test/models/entry.rb +0 -41
  263. data/test/models/mixed_case.rb +0 -22
  264. data/test/models/reserved_word.rb +0 -15
  265. data/test/models/rights_and_roles.rb +0 -57
  266. data/test/models/string_id.rb +0 -17
  267. data/test/models/thing.rb +0 -17
  268. data/test/models/topic.rb +0 -32
  269. data/test/models/validates_uniqueness_of_string.rb +0 -19
  270. data/test/rails/mysql.rb +0 -13
  271. data/test/rails/sqlite3/version.rb +0 -6
  272. data/test/rails_stub.rb +0 -31
  273. data/test/rake_test_support.rb +0 -298
  274. data/test/row_locking.rb +0 -102
  275. data/test/schema_dump.rb +0 -182
  276. data/test/serialize.rb +0 -275
  277. data/test/shared_helper.rb +0 -35
  278. data/test/simple.rb +0 -1317
  279. data/test/sybase_jtds_simple_test.rb +0 -28
  280. data/test/sybase_reset_column_information_test.rb +0 -6
  281. data/test/test_helper.rb +0 -304
  282. data/test/transaction.rb +0 -109
data/.gitignore CHANGED
@@ -1,23 +1,29 @@
1
1
  *.gem
2
2
  *.tgz
3
- derby-testdb*
4
- derby.log
5
- test.*
6
3
  *~
7
4
  *.log
8
5
  patches*
9
6
  *#
10
7
  TAGS
11
- build.xml
12
- nbproject
13
- .classpath
14
- .project
15
8
  MANIFEST.MF
16
9
  bin
17
10
  pkg
18
11
  doc
19
12
  target
20
13
  coverage
21
- test_*.out
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
22
25
  test/jars/*.jar
23
26
  jndi_test/jdbc/.bindings
27
+ .disable-appraisal-hint
28
+ .yardoc
29
+ .bundle/config
data/.travis.yml CHANGED
@@ -1,8 +1,9 @@
1
1
  language: ruby
2
+ bundler_args: --without development
2
3
  script: bundle exec rake test_$DB
4
+ before_script: export JRUBY_OPTS="--server -Xcext.enabled=false -Xcompile.invokedynamic=false"
3
5
  rvm:
4
- - jruby-18mode
5
- - jruby-19mode
6
+ - jruby
6
7
  gemfile:
7
8
  - gemfiles/rails23.gemfile
8
9
  - gemfiles/rails30.gemfile
@@ -10,14 +11,25 @@ gemfile:
10
11
  - gemfiles/rails32.gemfile
11
12
  - gemfiles/rails40.gemfile
12
13
  env:
13
- - DB=mysql
14
- - DB=postgresql
15
- - DB=sqlite3
16
- - DB=derby
17
- - DB=h2
18
- - DB=hsqldb
19
- - DB=jndi
20
- - DB=jdbc
14
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=mysql
15
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=mysql PREPARED_STATEMENTS=false
16
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=mysql PREPARED_STATEMENTS=true
17
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=postgresql
18
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=true
19
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=postgresql PREPARED_STATEMENTS=true
20
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=postgresql PREPARED_STATEMENTS=true INSERT_RETURNING=true
21
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=sqlite3
22
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=sqlite3
23
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=derby
24
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=derby PREPARED_STATEMENTS=true
25
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=h2
26
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=h2 PREPARED_STATEMENTS=true
27
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=hsqldb
28
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=hsqldb PREPARED_STATEMENTS=true
29
+ - JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=jndi
30
+ - JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=jndi PREPARED_STATEMENTS=true
31
+ #- JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=jdbc
32
+ #- JRUBY_OPTS="--1.9 $JRUBY_OPTS" DB=jdbc
21
33
  branches:
22
34
  only:
23
35
  - master
@@ -26,34 +38,31 @@ matrix:
26
38
  allow_failures:
27
39
  # probably fine to allow in 1.3.x :
28
40
  #- gemfile: gemfiles/rails23.gemfile
29
- # NOTE: temporary until it gets stable :
30
- - gemfile: gemfiles/rails40.gemfile
31
41
  # NOTE: not sure why it can't connect :
32
- - env: DB=jdbc
33
- # Rails 4 prefers to run on Ruby 2.0 :
42
+ #- env: DB=jdbc
34
43
  exclude:
35
- - rvm: jruby-18mode
44
+ # Rails 4 prefers Ruby 2.0 (or at least >= 1.9.3) :
45
+ - rvm: jruby
36
46
  gemfile: gemfiles/rails40.gemfile
37
- env: DB=mysql
38
- - rvm: jruby-18mode
47
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=mysql
48
+ - rvm: jruby
39
49
  gemfile: gemfiles/rails40.gemfile
40
- env: DB=postgresql
41
- - rvm: jruby-18mode
50
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=postgresql
51
+ - rvm: jruby
42
52
  gemfile: gemfiles/rails40.gemfile
43
- env: DB=sqlite3
44
- - rvm: jruby-18mode
53
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=sqlite3
54
+ - rvm: jruby
45
55
  gemfile: gemfiles/rails40.gemfile
46
- env: DB=derby
47
- - rvm: jruby-18mode
56
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=derby
57
+ - rvm: jruby
48
58
  gemfile: gemfiles/rails40.gemfile
49
- env: DB=h2
50
- - rvm: jruby-18mode
59
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=h2
60
+ - rvm: jruby
51
61
  gemfile: gemfiles/rails40.gemfile
52
- env: DB=hsqldb
53
- - rvm: jruby-18mode
62
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=hsqldb
63
+ - rvm: jruby
54
64
  gemfile: gemfiles/rails40.gemfile
55
- env: DB=jdbc
56
- - rvm: jruby-18mode
65
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=jndi
66
+ - rvm: jruby
57
67
  gemfile: gemfiles/rails40.gemfile
58
- env: DB=jndi
59
-
68
+ env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" DB=jdbc
data/.yardopts ADDED
@@ -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
data/Appraisals CHANGED
@@ -16,9 +16,6 @@ appraise "rails32" do
16
16
  end
17
17
 
18
18
  appraise "rails40" do # NOTE: make sure you're using --1.9 with AR-4.0
19
- #gem "activerecord", "~> 4.0.0"
20
- # until there's an actual 4.0 release :
21
- gem 'rails', :github => 'rails/rails', :branch => '4-0-stable'
22
- #gem 'journey', :github => 'rails/journey'
23
- #gem 'activerecord-deprecated_finders', :github => 'rails/activerecord-deprecated_finders', :require => nil
19
+ gem "activerecord", "~> 4.0.0"
20
+ #gem 'rails', :github => 'rails/rails', :branch => '4-0-stable'
24
21
  end
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,46 @@
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 the JRuby on Rails deployments
6
+ out there.
7
+
8
+ ### Reporting Issues
9
+
10
+ We encourage you to try looking into reported issues, esp. if the new issue is about
11
+ (Rails) incompatibility with MRI - as it might be fixed with some copy-paste magic.
12
+
13
+ Please consider testing against **master**, if you're in doubt whether it might
14
+ have been [fixed](History.md) already, change the following in your *Gemfile* :
15
+ `gem 'activerecord-jdbc-adapter', :github => 'jruby/activerecord-jdbc-adapter'`
16
+
17
+ Do not forget to **include the following with your bug report** :
18
+
19
+ * AR-JDBC's version used (if you've tested against master mention it)
20
+
21
+ * version of Rails / ActiveRecord you're running with
22
+
23
+ * JRuby version (you might include your Java version as well) - `jruby -v`
24
+
25
+ * if you've setup the JDBC driver yourself please mention that (+ it's version)
26
+
27
+ * include any (related) back-traces (or Java stack-traces) you've seen in the logs
28
+
29
+ * ... a way to reproduce :)
30
+
31
+ ### Pull Requests
32
+
33
+ You're code will end up on upstream faster if you provide tests as well, read on
34
+ how to [run AR-JDBC tests](RUNNING_TESTS.md).
35
+
36
+ When fixing issues for a particular Rails version please be aware that we support
37
+ multiple AR versions from a single code-base (and that means supporting Ruby 1.8
38
+ as well - esp. targeting 4.x **we can not use the 1.9 syntax** yet).
39
+
40
+
41
+ To speed-up fixes and response times on your issues or simply support AR-JDBC's
42
+ development (esp. the refurbished **1.3.x** line) please consider [donating][0].
43
+
44
+ :heart: JRuby-Up!
45
+
46
+ [0]: https://www.bountysource.com/#fundraisers/311-activerecord-jdbc-adapter-1-3-x
data/Gemfile CHANGED
@@ -1,18 +1,29 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gem 'activerecord'
4
+ gem 'thread_safe', :require => nil
5
+ #if defined?(JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
4
6
  gem 'jruby-openssl', :platform => :jruby
7
+ #end
5
8
 
6
9
  group :development do
7
- gem 'ruby-debug', :require => nil
10
+ gem 'ruby-debug', :require => nil # if ENV['DEBUG']
11
+ group :doc do
12
+ gem 'yard', :require => nil
13
+ gem 'yard-method-overrides', :github => 'kares/yard-method-overrides', :require => nil
14
+ gem 'kramdown', :require => nil
15
+ end
8
16
  end
9
17
 
10
- gem 'appraisal', :require => nil
11
18
  gem 'rake', :require => nil
19
+ gem 'appraisal', :require => nil
20
+
12
21
  # appraisal ignores group block declarations :
22
+
13
23
  gem 'test-unit', '2.5.4', :group => :test
14
- gem 'test-unit-context', :group => :test
15
- gem 'mocha', '>= 0.13.0', :require => nil, :group => :test
24
+ gem 'test-unit-context', '>= 0.3.0', :group => :test
25
+ gem 'mocha', '~> 0.13.1', :require => nil, :group => :test
26
+
16
27
  gem 'simplecov', :require => nil, :group => :test
17
28
  gem 'bcrypt-ruby', '~> 3.0.0', :require => nil, :group => :test
18
29
 
@@ -21,3 +32,9 @@ group :rails do
21
32
  # NOTE: due rails/activerecord/test/cases/session_store/session_test.rb
22
33
  gem 'actionpack', :require => nil
23
34
  end
35
+
36
+ group :test do
37
+ gem 'mysql2', :require => nil, :platform => :mri
38
+ gem 'pg', :require => nil, :platform => :mri
39
+ gem 'sqlite3', :require => nil, :platform => :mri
40
+ end
data/Gemfile.lock CHANGED
@@ -1,9 +1,16 @@
1
+ GIT
2
+ remote: git://github.com/kares/yard-method-overrides.git
3
+ revision: 7b4967860c997920ab6184a0bab7aa6b68f195a1
4
+ specs:
5
+ yard-method-overrides (0.2.0)
6
+ yard (>= 0.7.0)
7
+
1
8
  GEM
2
9
  remote: https://rubygems.org/
3
10
  specs:
4
- actionpack (3.2.13)
5
- activemodel (= 3.2.13)
6
- activesupport (= 3.2.13)
11
+ actionpack (3.2.14)
12
+ activemodel (= 3.2.14)
13
+ activesupport (= 3.2.14)
7
14
  builder (~> 3.0.0)
8
15
  erubis (~> 2.7.0)
9
16
  journey (~> 1.0.4)
@@ -11,44 +18,49 @@ GEM
11
18
  rack-cache (~> 1.2)
12
19
  rack-test (~> 0.6.1)
13
20
  sprockets (~> 2.2.1)
14
- activemodel (3.2.13)
15
- activesupport (= 3.2.13)
21
+ activemodel (3.2.14)
22
+ activesupport (= 3.2.14)
16
23
  builder (~> 3.0.0)
17
- activerecord (3.2.13)
18
- activemodel (= 3.2.13)
19
- activesupport (= 3.2.13)
24
+ activerecord (3.2.14)
25
+ activemodel (= 3.2.14)
26
+ activesupport (= 3.2.14)
20
27
  arel (~> 3.0.2)
21
28
  tzinfo (~> 0.3.29)
22
- activesupport (3.2.13)
23
- i18n (= 0.6.1)
29
+ activesupport (3.2.14)
30
+ i18n (~> 0.6, >= 0.6.4)
24
31
  multi_json (~> 1.0)
25
32
  appraisal (0.5.2)
26
33
  bundler
27
34
  rake
28
35
  arel (3.0.2)
36
+ atomic (1.1.10)
37
+ atomic (1.1.10-java)
29
38
  bcrypt-ruby (3.0.1)
30
39
  bcrypt-ruby (3.0.1-java)
31
40
  bouncy-castle-java (1.5.0147)
32
41
  builder (3.0.4)
33
42
  columnize (0.3.6)
34
43
  erubis (2.7.0)
35
- hike (1.2.1)
36
- i18n (0.6.1)
44
+ hike (1.2.3)
45
+ i18n (0.6.4)
37
46
  journey (1.0.4)
38
47
  jruby-openssl (0.8.8)
39
48
  bouncy-castle-java (>= 1.5.0147)
49
+ kramdown (1.1.0)
40
50
  linecache (0.46)
41
51
  rbx-require-relative (> 0.0.4)
42
52
  metaclass (0.0.1)
43
53
  mocha (0.13.3)
44
54
  metaclass (~> 0.0.1)
45
- multi_json (1.7.2)
55
+ multi_json (1.7.7)
56
+ mysql2 (0.3.13)
57
+ pg (0.16.0)
46
58
  rack (1.4.5)
47
59
  rack-cache (1.2)
48
60
  rack (>= 0.4)
49
61
  rack-test (0.6.2)
50
62
  rack (>= 1.0)
51
- rake (10.0.4)
63
+ rake (10.1.0)
52
64
  rbx-require-relative (0.0.9)
53
65
  ruby-debug (0.10.4)
54
66
  columnize (>= 0.1)
@@ -65,11 +77,17 @@ GEM
65
77
  multi_json (~> 1.0)
66
78
  rack (~> 1.0)
67
79
  tilt (~> 1.1, != 1.3.0)
80
+ sqlite3 (1.3.7)
68
81
  test-unit (2.5.4)
69
82
  test-unit-context (0.3.1)
70
83
  test-unit (>= 2.4.0)
71
- tilt (1.3.6)
84
+ thread_safe (0.1.2)
85
+ atomic
86
+ thread_safe (0.1.2-java)
87
+ atomic
88
+ tilt (1.4.1)
72
89
  tzinfo (0.3.37)
90
+ yard (0.8.7)
73
91
 
74
92
  PLATFORMS
75
93
  java
@@ -82,9 +100,16 @@ DEPENDENCIES
82
100
  bcrypt-ruby (~> 3.0.0)
83
101
  erubis
84
102
  jruby-openssl
85
- mocha (>= 0.13.0)
103
+ kramdown
104
+ mocha (~> 0.13.1)
105
+ mysql2
106
+ pg
86
107
  rake
87
108
  ruby-debug
88
109
  simplecov
110
+ sqlite3
89
111
  test-unit (= 2.5.4)
90
- test-unit-context
112
+ test-unit-context (>= 0.3.0)
113
+ thread_safe
114
+ yard
115
+ yard-method-overrides!
@@ -1,4 +1,71 @@
1
- == 1.3.0.beta2 (05/30/13)
1
+ ## 1.3.0.rc1 (08/03/13)
2
+
3
+ - add activerecord gem as a dependency of the main AR-JDBC gem
4
+ - override `to_sql` due AR 4.0 - we want to consume the passed binds array
5
+ - [sqlite3] introduce Version constant (returned from sqlite_version)
6
+ - `execute` expects `skip_logging` param on AR <= 3.0 (+ does not accept binds)
7
+ - we shall not do any `to_sql` in any of the exec_xxx methods
8
+ - [postgres] array column defaults more reliable (ported from Rails)
9
+ - [mssql] review MSSQL date-time handling - no need for that customized quoting
10
+ - [mssql] MSSQL - `rake db:migrate:reset` can drop database
11
+ - [oracle] handle null strings (e.g. returned on XML columns) instead of NPE
12
+ - [oracle] get rid of oracle's `execute_id_insert` not sure how it ever worked
13
+ - [oracle] sequence quoting + `insert` refactoring + support for RETURNING
14
+ revisit `insert` / `insert_sql` / `exec_insert` to work for all ARs we support
15
+ - [db2] refactor DB2's `last_insert_id` using *IDENTITY_VAL_LOCAL()*
16
+ - [db2] DB2 supports standalone *VALUES* statements (just like Derby does)
17
+ - [derby] last_insert_id for Derby using *IDENTITY_VAL_LOCAL()*
18
+ - [derby] only hookup SQL checks on #execute when no #exec_query etc. available
19
+ - [sqlite] query-ing last_insert_id after each INSERT seems redundant
20
+ - [sqlite] a saner way of getting last_insert_row_id() via the JDBC API
21
+ - better `last_inserted_id` unwrapping on the base (jdbc) adapter level
22
+ - [postgres] support exec_insert with PS + make sure RETURNING works
23
+ - (thread_safe based) quoted column/table name cache implementation
24
+ currently used with PostgreSQL, Oracle and MS-SQL adapter (#432)
25
+ - [mssql] prevent special column corruption of ORDER BY (#431)
26
+ - [db2] fix error with timezone + use default date and time parsing
27
+ - [db2] fix error on named index removing
28
+ - [postgres] fix array values escaping: backslashes should be escaped too
29
+ - [postgres] fix `add_column` / `change_column` with arrays
30
+ - [mssql] support for running with official MSSQL driver *adapter: sqlserver*
31
+ - [mssql] visitor update (based on built-in) to better resolve ORDER BY
32
+ - [mssql] handle SELECT DISTINCT correctly with LIMIT (#154)
33
+ - `add_limit_offset!` / `add_lock!` only to be available before AREL (2.3)
34
+ - remove Arel::SqlCompiler extensions - was only available with AR 3.0.0 pre
35
+ - refactored AREL support - esp. visitor resolution - simpler & more reliable
36
+ - [postgres] handle DISTINCT correctly with backwards-compat (#418)
37
+ - [firebird] full featured support - first class firebird_connection method
38
+ - [jdbc-] jdbc-firebird - packaged JayBird JDBC driver (gem) for FireBird 2.2.3
39
+ - [postgres] fix array quoting
40
+ - implemented support for returning Ruby Date/Time objects from JDBC
41
+ allows such Ruby objects to be returned in custom SELECTs as well (#349)
42
+ - introduce a (better) `update_lob_value` as a `write_large_object` replacement
43
+ - beyond second precision with timestamp values for adapters that support 'em
44
+ - rename `MissingFunctionalityHelper` -> `TableCopier`
45
+ - finishing **prepared statement support** for all (Java API now stable), handles
46
+ `exec_query`, `exec_update`, `exec_delete` and `exec_insert`
47
+ - use `init connection` to check if *connection_alive_sql* needed (old driver)
48
+ - JDBC API based savepoint support (that should work for all adapters)
49
+ - remove `connection.config=` and make sure it does not change `config`
50
+ - avoid executing mysql/sqlite3 JDBC type resolving code (for some speed up)
51
+ - simplify native_database_types - now on adapter + overriden avoids jdbc
52
+ - [mysql] support canceling a timer for wrapped (JNDI) connections as well
53
+ - [mysql] refactor cancel timer (field access) to work correctly (#413)
54
+ - Java API: introduce newConnection + refactor @connection_factory to Java
55
+ - [postgres] missing point casting code + string to bit casts (#60)
56
+ - [derby] tables should only return those from current schema
57
+ - [derby] set current schema thus identifiers get resolved (closes #408)
58
+ - [derby] no *connection_alive_sql* needed since Derby 10.8
59
+ - [postgres] make sure uuid is correctly used/resolved as PK (AR 4.0)
60
+ - [postgres] match pk_and_sequence_for with AR 4.0
61
+
62
+ Code Contributors (in no particular order): Alexey Noskov, Pierrick Rouxel,
63
+ Matías Battocchia, @gapthemind and Sören Mothes
64
+
65
+ Code Contributors (in no particular order): @alno, @pierrickrouxel,
66
+ @matiasbattocchia, @gapthemind, @soemo
67
+
68
+ ## 1.3.0.beta2 (05/30/13)
2
69
 
3
70
  - only load rake tasks if AR is being used - AR::Railtie is loaded (#234)
4
71
  - override #structure_dump so it won't silently return while doing nothing
@@ -15,9 +82,9 @@
15
82
  - [as400] error support for execure_and_auto_confirm
16
83
  - [db2] remove unused explain method
17
84
  - AR-4.0 inspired rake task impl (usable and shared with Rails 3.x/2.3 tasks)
18
- - jdbc connection updates to better follow AR semantics
19
- * #active? should check whether connection is valid
20
- * #reconnect! should #configure_connection if available
85
+ - jdbc connection updates to better follow AR semantics
86
+ * #active? should check whether connection is valid
87
+ * #reconnect! should #configure_connection if available
21
88
  * use JDBC 4 isValid as alive check fallback (no need for connection_alive_sql)
22
89
  - [sqlite3] missing adapter.encoding method
23
90
  - [as400] auto discover support (+ current_schema) for AS/400 with jndi
@@ -37,7 +104,7 @@
37
104
  - disable extension auto-discovery for installed gems (unless specified)
38
105
  - [as400] fix as400 system schema + re-add jndi schema support
39
106
  - [db2] separate AS400 code into a module + stadalone connection method
40
- - [postgres] quoting that uses column.type (thus works with defs as well)
107
+ - [postgres] quoting that uses column.type (thus works with defs as well)
41
108
  only use #sql_type when necessary
42
109
  - better compatibility with native MySQL/SQLite3 adapter (constants)
43
110
  - [postgres] restore PostgreSQLColumn.new < 4.0 compatibility
@@ -49,20 +116,20 @@
49
116
  - [postgres] ignore encoding option, print a warning about it (#376)
50
117
  - [h2] check if offset is set, otherwise use the Arel::Node::Offset#expr
51
118
  - [as400] adding ordering support when using both limit and offset
52
- - [as400] force decimal field with 0 scale to be integers
119
+ - [as400] force decimal field with 0 scale to be integers
53
120
  - [sqlite3] let the JDBC API to figure out indexes (#377)
54
121
  - support for loading only the necessary Java parts per adapter (#353)
55
- - AREL visitors base impl revisited (to fix long broken query cache),
122
+ - AREL visitors base impl revisited (to fix long broken query cache),
56
123
  make sure a visitor is instantiated by the JDBC adapter (2.3 compatible)
57
124
  - introduced ArJdbc.modules method that should return adapter modules
58
125
  - move mysql gem API faking into (rails loadable) test code
59
126
  - there should be no more need to fake out *pg.rb* (due native 'pg' gem)
60
127
  - do not fake out SQLite3::Version ... gets only loaded while running tests now
61
128
 
62
- Code Contributors (in no particular order): Jason Franklin, Alexey Noskov,
129
+ Code Contributors (in no particular order): Jason Franklin, Alexey Noskov,
63
130
  Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
64
131
 
65
- == 1.3.0.beta1 (04/11/13)
132
+ ## 1.3.0.beta1 (04/11/13)
66
133
 
67
134
  - [db2] map datetime / timestamp / time types + correct time handling on AS400
68
135
  - AREL values passed to #to_sql not handled correctly on AR-3.0 (#365)
@@ -85,7 +152,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
85
152
  - do not translate native (Java) exceptions into StatementInvalid (from #log)
86
153
  - Java API - replaced #tableLookupBlock with (a new) #matchTables
87
154
  - [mssql] better message for jTDS driver bug (support disabling explain)
88
- - Java API:- accept (and use) catalog as arg[1] in #columns which does leads to
155
+ - Java API:- accept (and use) catalog as arg[1] in #columns which does leads to
89
156
  a refactoring of #extractTableName to accept a catalog name
90
157
  - [mssql] current_user and (change-able) default_schema support (#311)
91
158
  - [sqlite3] correct empty insert statement value (on AR-4.0)
@@ -93,12 +160,12 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
93
160
  - [mysql] correct empty insert statement value (was not working on 4.0)
94
161
  - Java API - handle :xml and :array AR column type to JDBC type conversion
95
162
  - Java API - SQL Array and Object JDBC type (to Ruby) mappings
96
- - Java API - reviewed (and updated) JDBC type handling for adapters :
97
- * FLOAT/DOUBLE types should be handled (just like REAL) as Double-s
98
- * NUMERIC/DECIMAL values should be handled as BigDecimal-s
99
- * BIT/BOOLEAN should be converted to (Ruby) true/false by default
100
- * NULL should always be returned as nil
101
- * close binary/character stream & free SQLXML once converted
163
+ - Java API - reviewed (and updated) JDBC type handling for adapters :
164
+ * FLOAT/DOUBLE types should be handled (just like REAL) as Double-s
165
+ * NUMERIC/DECIMAL values should be handled as BigDecimal-s
166
+ * BIT/BOOLEAN should be converted to (Ruby) true/false by default
167
+ * NULL should always be returned as nil
168
+ * close binary/character stream & free SQLXML once converted
102
169
  * JDBC 4.0 N(CHAR) types should be handled
103
170
  - JdbcConnectionFactory.newConnection now throws SQLException - this is backwards
104
171
  incompatible but most extension do not need to deal with this interface (#347)
@@ -111,7 +178,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
111
178
  - AR 4.0 (master) compatible #rename_table_indexes and #renamed_column_indexes
112
179
  - [postgres] no need to clear_query_cache after insert on AR-2.3's #insert_sql
113
180
  - Java API - connection #execute_delete "alias" for #execute_update
114
- - [derby] XMLPARSE when inserting into an XML column type ...
181
+ - [derby] XMLPARSE when inserting into an XML column type ...
115
182
  but still can not retrieve XML values using SELECT * FROM
116
183
  - [sqlite3] IndexDefinition#unique should be a true/false
117
184
  - [mssql] execute_procedure support, AR-SQLServer style (#266)
@@ -125,11 +192,11 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
125
192
  - [mssql] fix Model.first on SQL Server 2000 when called with only order
126
193
  - [oracle] XMLTYPE column support - can't test due bug in driver
127
194
  - [db2] working XML column type support
128
- - [oracle] (MATRIALIZED) VIEWS/SYNONYMS should be usable on table_exists?
195
+ - [oracle] MATRIALIZED VIEWS/SYNONYMS should be usable on table_exists?
129
196
  - a better (default) table_exists? (aligned with columns_internal) for all
130
197
  - Java API - add #mapTables for OOP-ish mapping of results from #getTables
131
198
  - [db2] [derby] some (working) connection alive sql (db gurus should help)
132
- - [oracle] (a working) connection alive sql
199
+ - [oracle] a working connection alive sql
133
200
  - [db2] seems like DB2 on ZOS used a non-existing get_primary_key method
134
201
  - do not call_discovered_column_callbacks for extending column impls
135
202
  - [hsqldb] a 'valid' connection alive SQL for HSQLDB
@@ -140,10 +207,10 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
140
207
  work consistently even if only a specific adapter gem is specified in Gemfile
141
208
  - make sure we require arjdbc instead of just arjdbc/jdbc from adapters
142
209
 
143
- == 1.2.9 (03/20/13)
210
+ ## 1.2.9 (03/20/13)
144
211
 
145
212
  - [oracle] native database types ala oracle-enhanced adapter
146
- - [oracle] fix #insert (broken since execute+to_sql refactoring) keeping binds
213
+ - [oracle] fix #insert (broken since execute+to_sql refactoring) keeping binds
147
214
  respect 30 max identifier length with default sequence names
148
215
  - [db2] add as400 primary key support and re-add explain method
149
216
  - [mssql] fix table/column name quoting - do not quote if quoted already
@@ -151,9 +218,9 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
151
218
  - [mssql] fix substring issue that prevents detecting a query that contains *
152
219
  - [mssql] adapter code cleanup + refactored (ArJdbc::) MsSQL -> MSSQL
153
220
 
154
- == 1.2.8 (03/13/13)
221
+ ## 1.2.8 (03/13/13)
155
222
 
156
- - [derby] (native) types review & cleanup, externalize AR patch-ing
223
+ - [derby] native types review & cleanup, externalize AR patch-ing
157
224
  - [h2] correct schema dump (jdbc detected sql types)
158
225
  - [hsqldb] correct schema dump (jdbc detected sql types)
159
226
  - cleanup H2 / HSQLDB adapter - HSQLDB should not know about H2
@@ -165,41 +232,41 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
165
232
  - [postgres] no need to clear_query_cache after insert on AR-2.3's #insert_sql
166
233
  - there's still a double bind when "raw" crud methods used (re-closing #322)
167
234
 
168
- == 1.2.7 (02/12/13)
235
+ ## 1.2.7 (02/12/13)
169
236
 
170
237
  - add some (probably redundant) synchronization + "arjdbc.disconnect.debug" flag
171
238
  as an attempt to detect when connection is set to null (#197 and #198)
172
239
  avoid (deprecated) Java.java_to_ruby when wrapping java.sql.Connection
173
240
  - follow Column-naming convention in MySQL adapter ArJdbc module
174
241
  - make sure update_sql is public in mysql adapter (Rails compatibility)
175
- - fix 1.2.6 regression - incorrectly setup to_sql method based on Rails version
242
+ - fix 1.2.6 regression - incorrectly setup to_sql method based on Rails version
176
243
  this caused double '?' bind substitution issues (#322)
177
244
 
178
- == 1.2.6 (01/31/13)
245
+ ## 1.2.6 (01/31/13)
179
246
 
180
247
  - [postgres] only set --schema (to search path) for pg_dump if configured (#315)
181
248
  - [oracle] id limits + quoting; current user/db/schema + savepoint support
182
- - execute "log" (sql) name correctly based on AR version
183
- - deprecate substitute_binds and extract_sql
249
+ - execute "log" (sql) name correctly based on AR version
250
+ - deprecate substitute_binds and extract_sql
184
251
  - [derby] make sure we never modify the passed sql param
185
252
  - [sqlite3] execute on insert_sql + savepoint support
186
253
  - [mssql] [firebird] [informix] (shared) serialized attribute support
187
- - [oracle] (shared) serialized attribute support
254
+ - [oracle] shared serialized attribute support
188
255
  - [sqlite3] fix binary column handling failure (#51)
189
256
  - renamed Sqlite3RubyJdbcConnection to SQLite3RubyJdbcConnection
190
257
  - [mysql] re-define remove_index! for "better" AR-2.3 compatibility
191
258
  - [derby] avoid failures with #quote when second arg nil + keep string encoding
192
- - [db2] binary support & improved quoting +
259
+ - [db2] binary support & improved quoting +
193
260
  use lob callback for all since it was failing on BLOB/CLOB inserts otherwise
194
261
  - [db2] better (simplified) type handling for DB2
195
262
  - JRuby 1.6.8 compatibility when rescue-ing Java exception
196
263
  - [mysql] avoid encoding issues with MySQL's quoting methods (#185)
197
264
  - [postgres] ignore binary precision / limit for bytea
198
265
  - [oracle] explain (query) support
199
- - [oracle] since Oracle supports TIMESTAMP for quite a while we should not
266
+ - [oracle] since Oracle supports TIMESTAMP for quite a while we should not
200
267
  create DATE columns for a :timestamp column type
201
268
  - [oracle] avoid CREATE DDL failure when BLOB has length specified
202
- - [jdbc-] review autoloading backwards-incompatible change in jdbc- gems
269
+ - [jdbc-] review autoloading backwards-incompatible change in jdbc- gems
203
270
  auto-load (backwards-compat) can be enabled back using jdbc.driver.autoload
204
271
  system property or using the driver specific autoload option as well
205
272
  - [jdbc-] Update version handling introduce DRIVER_VERSION constant
@@ -212,9 +279,9 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
212
279
  - [db2] column should be checked if ain't nil when quoting on DB2
213
280
  - [mssql] raise exception when offset is specified but limit is not
214
281
  - [sqlite3] SQLite3 explain support (Rails style)
215
- - [postgres] (re-usable) explain support for PostgreSQL (based on Rails)
282
+ - [postgres] re-usable explain support for PostgreSQL (based on Rails)
216
283
  - [h2] update handling of time fields on H2/HSQLDB (#252)
217
- - rescue (and wrap) only SQLExceptions from driver.connect this caused
284
+ - rescue (and wrap) only SQLExceptions from driver.connect this caused
218
285
  swallowing of runtime exceptions from JDBC drivers
219
286
  - support for setting (custom) jdbc driver properties in config
220
287
  - when a new adapter (constant) gets loaded column types should pick it up
@@ -222,10 +289,10 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
222
289
  - raise LoadError with explanation on with jTDS 1.3.0 on non Java 1.7
223
290
  - setup the connection methods when adapter is loaded (broken in 1.2.5)
224
291
 
225
- == 1.2.5 (01/02/13)
292
+ ## 1.2.5 (01/02/13)
226
293
 
227
294
  - backwards compat with older jdbc- (driver) gems (#279)
228
- - no need to set the :driver for jndi config (did not work anyways) when jdbc is being
295
+ - no need to set the :driver for jndi config (did not work anyways) when jdbc is being
229
296
  configured + do not raise if there's a :driver_instance setup instead of the :driver
230
297
  - support extra options with recreate_database (for postgres)
231
298
  - [jdbc-derby] update Derby to 10.8.2.2
@@ -234,13 +301,13 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
234
301
  - [sqlite3] updated sqlite3 binary handling
235
302
  - [jdbc-jtds] upgrade to jtds (driver) 1.3.0
236
303
  - JDBC driver names should be on one (re-usable) place
237
- - make sure that (jdbc-xxx gem) .jars are only loaded (required) when first connection
304
+ - make sure that (jdbc-xxx gem) .jars are only loaded (required) when first connection
238
305
  is attempted (this avoids e.g. sqlite-jdbc.jar being always among loaded features)
239
306
  - jdbc-* gems should expose the driver_jar instead of (auto) loading it
240
307
  - [oracle] adding in_clause_limit override to properly handle Oracle's 1000 entry limit
241
308
  - [jdbc-mysql] upgrade to mysql connector 5.1.22
242
309
  - [jdbc-postgres] upgade to postgresql-9.2 jar version 9.2-1002
243
- - [postgres] fix standard_conforming_strings's default not being set and
310
+ - [postgres] fix standard_conforming_strings's default not being set and
244
311
  backslash escaping to account for standard_conforming_strings
245
312
  - [jdbc-postgres] upgrade to postgres.jar 9.1.903 driver
246
313
  - [jdbc-h2] update h2.jar to 1.3.168
@@ -254,7 +321,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
254
321
  - [db2] add support for primary keys to structure_dump
255
322
  - [db2] detect identity columns in db2 structure_dump
256
323
  - [mysql] added support for Rails 3.2 explain feature (#159)
257
- - add support for DB_STRUCTURE in db:structure:dump
324
+ - add support for DB_STRUCTURE in db:structure:dump
258
325
  (and db:structure:load task) (#203)
259
326
  - [postgres] rename sequence during table rename
260
327
  - [db2] iseries returns date with two digit year - leave it as string
@@ -271,11 +338,11 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
271
338
  - fixed support for AR 3.2.1
272
339
  - [postgres] implemented dynamic search path management
273
340
 
274
- == 1.2.2.1 (10/18/12)
341
+ ## 1.2.2.1 (10/18/12)
275
342
 
276
343
  - [postgresql] fix regression on insert for Rails 2.3 (#173)
277
344
 
278
- == 1.2.2 (01/27/12)
345
+ ## 1.2.2 (01/27/12)
279
346
 
280
347
  - Thanks George Murphy and Dwayne Litzenberger for their significant
281
348
  work this release!
@@ -294,7 +361,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
294
361
  - #146 Upgrade PG drivers (David Kellum)
295
362
  - #150 avoid 'TypeError: can't dup Fixnum' for performance (Bruce Adams)
296
363
 
297
- == 1.2.1 (11/23/11)
364
+ ## 1.2.1 (11/23/11)
298
365
 
299
366
  - #117: Skip ? substitution when no bind parameters are given
300
367
  - #115: Work around bug in ResultSetMetaData in SQLite
@@ -304,14 +371,14 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
304
371
  - Fix blob handling for SQLite3 since SQLiteJDBC does not support
305
372
  getBinary (Jean-Dominique Morani)
306
373
 
307
- == 1.2.0 (09/13/11)
374
+ ## 1.2.0 (09/13/11)
308
375
 
309
376
  - Support for Rails 3.1
310
377
  - Improvements to index usage on PostgreSQL (albertosaurus and
311
378
  pazustep)
312
379
  - Compatibility: tested with Rails 2.3, 3.0 and 3.1
313
380
 
314
- == 1.1.3 (07/26/11)
381
+ ## 1.1.3 (07/26/11)
315
382
 
316
383
  - Remove AR version < 3 guard around some caching methods (sugg. invadersmustdie)
317
384
  - Small bug in arjdbc/discover logic, thanks autotelik.
@@ -320,7 +387,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
320
387
  - #71: fix yield called out of block error
321
388
  - Silence Rake::DSL warnings for Rake > 0.9
322
389
 
323
- == 1.1.2 (06/20/11)
390
+ ## 1.1.2 (06/20/11)
324
391
 
325
392
  - Update version of H2 driver from 1.1.107 to 1.3.153 (Ketan
326
393
  Padegaonkar, Jeremy Stephens)
@@ -359,7 +426,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
359
426
  - GH#31: mssql: Remove extra code breaking mssql w/o limit
360
427
  - ACTIVERECORD_JDBC-156: mssql: Logic fix for detecting select_count?
361
428
 
362
- == 1.1.1 (01/14/11)
429
+ ## 1.1.1 (01/14/11)
363
430
 
364
431
  - Arel 2.0.7 compatibility: fix bugs arising from use of Arel 2.0.7 +
365
432
  ArJdbc 1.1.0.
@@ -367,7 +434,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
367
434
  - Avoid conflict with Arel 2.0.7's mssql visitor
368
435
  - Upgrade to PostgreSQL 9.0.801 JDBC drivers (David Kellum)
369
436
 
370
- == 1.1.0 (12/09/10)
437
+ ## 1.1.0 (12/09/10)
371
438
 
372
439
  - Don't narrow platform to '-java' only: revert back to 0.9.2 where
373
440
  ar-jdbc can be installed under any Ruby (for easier Bundler/Warbler
@@ -394,7 +461,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
394
461
  - ACTIVERECORD_JDBC-140: Sync postgres add/change column code from Rails master
395
462
  - ACTIVERECORD_JDBC-139: TEXT/DATE on PostgreSQL should not have limits
396
463
 
397
- == 1.0.3 (11/29/10)
464
+ ## 1.0.3 (11/29/10)
398
465
 
399
466
  - ACTIVERECORD_JDBC-143: Implement table_exists? fixing association
400
467
  table names with schema prefixes
@@ -403,18 +470,18 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
403
470
  - Fix MySQL date types to not have limits (Chris Lowder)
404
471
  - ACTIVERECORD_JDBC-141: Better schema support in H2
405
472
 
406
- == 1.0.2
473
+ ## 1.0.2
407
474
 
408
475
  - ACTIVERECORD_JDBC-134: Fix conflicting adapter/column superclasses
409
476
  - ACTIVERECORD_JDBC-135: Fix regression on PG with boolean and :limit
410
477
  - Slew of Derby fixes courtesy of Denis Odorcic
411
478
 
412
- == 1.0.1
479
+ ## 1.0.1
413
480
 
414
481
  - Fix db:test:purge issue affecting all adapters in 1.0.0 due to
415
482
  incorrect fix to JRUBY-5081 in 8b4b9c5
416
483
 
417
- == 1.0.0
484
+ ## 1.0.0
418
485
 
419
486
  - Thanks to David Kellum, Dmitry Denisov, Dwayne Litzenberger, Gregor
420
487
  Schmidt, James Walker, John Duff, Joshua Suggs, Nicholas J Kreucher,
@@ -467,7 +534,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
467
534
  - SQLite3: handle ":memory:" database
468
535
  - Release new SQLite3 driver 3.6.14.2 and new Derby driver 10.6.2.1
469
536
 
470
- == 0.9.7
537
+ ## 0.9.7
471
538
 
472
539
  - JRUBY-4781: Fix multiple database connection collision issue w/
473
540
  Oracle
@@ -479,7 +546,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
479
546
  MySQL and AR 3.0
480
547
  - SQLServer 2000 support (thanks Jay McGaffigan)
481
548
 
482
- == 0.9.6
549
+ ## 0.9.6
483
550
 
484
551
  - The Oracle release!
485
552
  - Oracle should be working much better with this release. Also updated
@@ -493,7 +560,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
493
560
  - Fix remaining blockers ACTIVERECORD_JDBC-82, JRUBY-3675,
494
561
  ACTIVERECORD_JDBC-22, ACTIVERECORD_JDBC-27, JRUBY-4759
495
562
 
496
- == 0.9.5
563
+ ## 0.9.5
497
564
 
498
565
  - The MSSQL release, courtesy of Mike Williams and Lonely
499
566
  Planet.
@@ -504,7 +571,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
504
571
  ACTIVERECORD_JDBC-99, JRUBY-3805, JRUBY-3793, JRUBY-4221
505
572
  - All tests pass on Rails 3.0.0.beta3!
506
573
 
507
- == 0.9.4
574
+ ## 0.9.4
508
575
 
509
576
  - ACTIVERECORD_JDBC-96: DB2 JdbcSpec cannot dump schema correctly
510
577
  (Youhei Kondou)
@@ -515,7 +582,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
515
582
  - Rails 3.0.0.beta2 compatibility
516
583
  - Return of Derby, H2, Hsqldb support (requires AR >= 3.0.0.beta2)
517
584
 
518
- == 0.9.3
585
+ ## 0.9.3
519
586
 
520
587
  - Rails 3 compatibility
521
588
  - PLEASE NOTE: ActiveRecord in Rails 3 has changed in a way that
@@ -530,7 +597,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
530
597
  - ACTIVERECORD_JDBC-86: Fix Derby queries starting with VALUES (Dwayne Litzenberger)
531
598
  - ACTIVERECORD_JDBC-95: Fix INSERT ... RETURNING for PostgreSQL
532
599
 
533
- == 0.9.2
600
+ ## 0.9.2
534
601
 
535
602
  - The main, highly awaited fix for this release is a solution to the
536
603
  rake db:create/db:drop issue. The main change is a new 'jdbc' rails
@@ -563,7 +630,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
563
630
  - JRUBY-3608: Add missing change_column_null method for postgres
564
631
  - JRUBY-3508: Fix quoting of integer and float columns
565
632
 
566
- == 0.9.1
633
+ ## 0.9.1
567
634
 
568
635
  - We did a lot of internal cleanup this release in the hopes of
569
636
  simplifying the code and increasing performance.
@@ -594,7 +661,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
594
661
  - JRUBY-2688: Don't hard-code MySQL connection character encoding to
595
662
  utf8
596
663
 
597
- == 0.9
664
+ ## 0.9
598
665
 
599
666
  - Now updated to support ActiveRecord 2.2. JNDI-based connections will
600
667
  automatically connect/disconnect for every AR connection pool
@@ -615,7 +682,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
615
682
  git://github.com/nicksieger/activerecord-jdbc-adapter.git; rubyforge
616
683
  svn trunk cleaned out.
617
684
 
618
- == 0.8.2
685
+ ## 0.8.2
619
686
 
620
687
  - Added an optional config key called :dialect. Using :dialect allows you to
621
688
  override the default SQL dialect for the driver class being used. There are
@@ -626,7 +693,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
626
693
  - JRUBY-2619: Typo with :test config causing problems with dev database (Igor Minar)
627
694
  - 20524, JRUBY-2612: Since when did I think that there was a #true? method on Object?
628
695
 
629
- == 0.8.1
696
+ ## 0.8.1
630
697
 
631
698
  - Now sporting a JDBC sqlite3 adapter! Thanks Joseph Athman.
632
699
  - Added support for InterSystems Cache database (Ryan Bell)
@@ -647,7 +714,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
647
714
  - JRUBY-2422: Fix MySQL referential integrity and rollback issues
648
715
  - JRUBY-2382: mysql string quoting fails with ArrayIndexOutofBoundsException
649
716
 
650
- == 0.8
717
+ ## 0.8
651
718
 
652
719
  - NOTE: This release is only compatible with JRuby 1.1RC3 or later.
653
720
  - Because of recent API changes in trunk in preparation for JRuby 1.1, this release is not
@@ -661,7 +728,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
661
728
  - Fix db:drop to actually work
662
729
  - Fix for Rubyforge #11567 (Matt Williams)
663
730
 
664
- == 0.7.2
731
+ ## 0.7.2
665
732
 
666
733
  - JRUBY-1905: add_column for derby, hsqldb, and postgresql (Stephen Bannasch)
667
734
  - Fix db:create for JDBC
@@ -678,12 +745,12 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
678
745
  - JRUBY-2018: Oracle behind ActiveRecord-JDBC fails with "Invalid column index" (K Venkatasubramaniyan)
679
746
  - JRUBY-2012: jdbc_mysql structure dump fails for mysql views (Tyler Jennings)
680
747
 
681
- == 0.7.1
748
+ ## 0.7.1
682
749
 
683
750
  - Add adapter and driver for H2 courtesy of Caleb Land
684
751
  - Fix "undefined method `last' for {}:Hash" error introduced with new Rake 0.8.1 (JRUBY-1859)
685
752
 
686
- == 0.7
753
+ ## 0.7
687
754
 
688
755
  - PLEASE NOTE: This release is not compatible with JRuby releases earlier than
689
756
  1.0.3 or 1.1b2. If you must use JRuby 1.0.2 or earlier, please install the
@@ -694,7 +761,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
694
761
  - Implement #select_rows
695
762
  - MySQL migration and quoting updates
696
763
 
697
- == 0.6
764
+ ## 0.6
698
765
 
699
766
  - Gem is renamed to "activerecord-jdbc-adapter" to follow new conventions
700
767
  introduced in Rails 2.0 for third-party adapters. Rails 2.0 compatibility is
@@ -706,7 +773,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
706
773
  driver/url way of specifying the driver.
707
774
  - More bugfixes to Oracle and SQLServer courtesy of Ola & ThoughtWorks
708
775
 
709
- == 0.5
776
+ ## 0.5
710
777
 
711
778
  - Release coincides with JRuby 1.0.1 release
712
779
  - It is no longer necessary to specify :driver and :url configuration
@@ -719,7 +786,7 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
719
786
  'jdbc-driver.jar'" in JRuby code to add it to the runtime classpath.
720
787
  - Updates to HSQL, MS SQLServer, Postgres, Oracle and Derby adapters
721
788
 
722
- == 0.4
789
+ ## 0.4
723
790
 
724
791
  - Release coincides with JRuby 1.0 release
725
792
  - Shoring up PostgreSQL (courtesy Dudley Flanders) and HSQL (courtesy Matthew
@@ -729,17 +796,17 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
729
796
  column type changing
730
797
  - Sybase type recognition fix (courtesy Dean Mao)
731
798
 
732
- == 0.3.1
799
+ ## 0.3.1
733
800
 
734
801
  - Derby critical fixes shortly after 0.3
735
802
 
736
- == 0.3
803
+ ## 0.3
737
804
 
738
805
  - Release coincides with JRuby 1.0.0RC1 release
739
- - Improvements for Derby, Postgres, and Oracle, all of which are running
806
+ - Improvements for Derby, Postgres, and Oracle, all of which are running
740
807
  > 95% of AR tests
741
808
 
742
- == 0.2.4
809
+ ## 0.2.4
743
810
 
744
811
  - Release coincides with JRuby 0.9.9 release
745
812
  - JRuby 0.9.9 is required
@@ -750,16 +817,16 @@ Brian Kulyk, Pierrick Rouxel, Mike Poltyn and Steve Lorek
750
817
  - HSQLDB has regressed this release and may not be functioning; we'll get it
751
818
  fixed for the next one
752
819
 
753
- == 0.2.3
820
+ ## 0.2.3
754
821
 
755
822
  - Release coincides (and compatible) with JRuby 0.9.8 release
756
823
  - 8 bugs fixed: see http://rubyurl.com/0Da
757
824
  - Improvements and compatibility fixes for Rails 1.2.x
758
825
 
759
- == 0.2.1, 0.2.2
826
+ ## 0.2.1, 0.2.2
760
827
 
761
828
  - Early releases, added better support for multiple databases
762
829
 
763
- == 0.0.1
830
+ ## 0.0.1
764
831
 
765
832
  - Initial, very alpha release