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

Sign up to get free protection for your applications and to get access to all the features.
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