activerecord-jdbc-adapter 0.9.3-java
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +248 -0
- data/LICENSE.txt +21 -0
- data/Manifest.txt +125 -0
- data/README.txt +218 -0
- data/Rakefile +10 -0
- data/lib/active_record/connection_adapters/cachedb_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/derby_adapter.rb +13 -0
- data/lib/active_record/connection_adapters/h2_adapter.rb +13 -0
- data/lib/active_record/connection_adapters/hsqldb_adapter.rb +13 -0
- data/lib/active_record/connection_adapters/informix_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/jdbc_adapter.rb +640 -0
- data/lib/active_record/connection_adapters/jdbc_adapter_spec.rb +26 -0
- data/lib/active_record/connection_adapters/jndi_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/mysql_adapter.rb +13 -0
- data/lib/active_record/connection_adapters/oracle_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +13 -0
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +13 -0
- data/lib/generators/jdbc/jdbc_generator.rb +9 -0
- data/lib/jdbc_adapter.rb +27 -0
- data/lib/jdbc_adapter/jdbc.rake +121 -0
- data/lib/jdbc_adapter/jdbc_adapter_internal.jar +0 -0
- data/lib/jdbc_adapter/jdbc_cachedb.rb +33 -0
- data/lib/jdbc_adapter/jdbc_db2.rb +203 -0
- data/lib/jdbc_adapter/jdbc_derby.rb +430 -0
- data/lib/jdbc_adapter/jdbc_firebird.rb +109 -0
- data/lib/jdbc_adapter/jdbc_hsqldb.rb +218 -0
- data/lib/jdbc_adapter/jdbc_informix.rb +147 -0
- data/lib/jdbc_adapter/jdbc_mimer.rb +141 -0
- data/lib/jdbc_adapter/jdbc_mssql.rb +337 -0
- data/lib/jdbc_adapter/jdbc_mysql.rb +236 -0
- data/lib/jdbc_adapter/jdbc_oracle.rb +377 -0
- data/lib/jdbc_adapter/jdbc_postgre.rb +498 -0
- data/lib/jdbc_adapter/jdbc_sqlite3.rb +384 -0
- data/lib/jdbc_adapter/jdbc_sybase.rb +50 -0
- data/lib/jdbc_adapter/missing_functionality_helper.rb +87 -0
- data/lib/jdbc_adapter/rake_tasks.rb +10 -0
- data/lib/jdbc_adapter/tsql_helper.rb +60 -0
- data/lib/jdbc_adapter/version.rb +5 -0
- data/lib/pg.rb +4 -0
- data/rails_generators/jdbc_generator.rb +15 -0
- data/rails_generators/templates/config/initializers/jdbc.rb +7 -0
- data/rails_generators/templates/lib/tasks/jdbc.rake +8 -0
- data/rakelib/compile.rake +23 -0
- data/rakelib/package.rake +90 -0
- data/rakelib/rails.rake +41 -0
- data/rakelib/test.rake +76 -0
- data/src/java/jdbc_adapter/JdbcAdapterInternalService.java +53 -0
- data/src/java/jdbc_adapter/JdbcConnectionFactory.java +36 -0
- data/src/java/jdbc_adapter/JdbcDerbySpec.java +293 -0
- data/src/java/jdbc_adapter/JdbcMySQLSpec.java +134 -0
- data/src/java/jdbc_adapter/MssqlRubyJdbcConnection.java +71 -0
- data/src/java/jdbc_adapter/PostgresRubyJdbcConnection.java +55 -0
- data/src/java/jdbc_adapter/RubyJdbcConnection.java +1162 -0
- data/src/java/jdbc_adapter/SQLBlock.java +27 -0
- data/src/java/jdbc_adapter/Sqlite3RubyJdbcConnection.java +41 -0
- data/test/abstract_db_create.rb +107 -0
- data/test/activerecord/connection_adapters/type_conversion_test.rb +31 -0
- data/test/activerecord/connections/native_jdbc_mysql/connection.rb +25 -0
- data/test/cachedb_simple_test.rb +6 -0
- data/test/db/cachedb.rb +9 -0
- data/test/db/db2.rb +9 -0
- data/test/db/derby.rb +14 -0
- data/test/db/h2.rb +11 -0
- data/test/db/hsqldb.rb +12 -0
- data/test/db/informix.rb +11 -0
- data/test/db/jdbc.rb +11 -0
- data/test/db/jndi_config.rb +30 -0
- data/test/db/logger.rb +3 -0
- data/test/db/mssql.rb +9 -0
- data/test/db/mysql.rb +10 -0
- data/test/db/oracle.rb +34 -0
- data/test/db/postgres.rb +9 -0
- data/test/db/sqlite3.rb +15 -0
- data/test/db2_simple_test.rb +10 -0
- data/test/derby_migration_test.rb +21 -0
- data/test/derby_multibyte_test.rb +12 -0
- data/test/derby_simple_test.rb +21 -0
- data/test/generic_jdbc_connection_test.rb +9 -0
- data/test/h2_simple_test.rb +6 -0
- data/test/has_many_through.rb +79 -0
- data/test/helper.rb +5 -0
- data/test/hsqldb_simple_test.rb +6 -0
- data/test/informix_simple_test.rb +48 -0
- data/test/jdbc_adapter/jdbc_db2_test.rb +26 -0
- data/test/jdbc_adapter/jdbc_sybase_test.rb +33 -0
- data/test/jdbc_common.rb +25 -0
- data/test/jndi_callbacks_test.rb +38 -0
- data/test/jndi_test.rb +35 -0
- data/test/manualTestDatabase.rb +191 -0
- data/test/minirunit.rb +109 -0
- data/test/minirunit/testConnect.rb +14 -0
- data/test/minirunit/testH2.rb +73 -0
- data/test/minirunit/testHsqldb.rb +73 -0
- data/test/minirunit/testLoadActiveRecord.rb +3 -0
- data/test/minirunit/testMysql.rb +83 -0
- data/test/minirunit/testRawSelect.rb +24 -0
- data/test/models/add_not_null_column_to_table.rb +12 -0
- data/test/models/auto_id.rb +18 -0
- data/test/models/data_types.rb +28 -0
- data/test/models/entry.rb +23 -0
- data/test/models/mixed_case.rb +20 -0
- data/test/models/reserved_word.rb +18 -0
- data/test/models/string_id.rb +18 -0
- data/test/models/validates_uniqueness_of_string.rb +19 -0
- data/test/mssql_simple_test.rb +6 -0
- data/test/mysql_db_create_test.rb +25 -0
- data/test/mysql_multibyte_test.rb +10 -0
- data/test/mysql_nonstandard_primary_key_test.rb +42 -0
- data/test/mysql_simple_test.rb +32 -0
- data/test/oracle_simple_test.rb +29 -0
- data/test/pick_rails_version.rb +3 -0
- data/test/postgres_db_create_test.rb +21 -0
- data/test/postgres_mixed_case_test.rb +19 -0
- data/test/postgres_nonseq_pkey_test.rb +40 -0
- data/test/postgres_reserved_test.rb +22 -0
- data/test/postgres_schema_search_path_test.rb +46 -0
- data/test/postgres_simple_test.rb +13 -0
- data/test/simple.rb +475 -0
- data/test/sqlite3_simple_test.rb +233 -0
- data/test/sybase_jtds_simple_test.rb +6 -0
- metadata +188 -0
data/History.txt
ADDED
@@ -0,0 +1,248 @@
|
|
1
|
+
== 0.9.3
|
2
|
+
|
3
|
+
- Rails 3 compatibility
|
4
|
+
- PLEASE NOTE: ActiveRecord in Rails 3 has changed in a way that
|
5
|
+
doesn't allow non-standard DBs (such as the Derby and H2 embedded
|
6
|
+
DBs) to work. We're investigating the effort required to support
|
7
|
+
these databases and hope to have something for a future release.
|
8
|
+
- ACTIVERECORD_JDBC-91: Fix schema search path for PostgreSQL (Alex
|
9
|
+
Kuebo)
|
10
|
+
- ACTIVERECORD_JDBC-87: DB2 ID insert fix (Youhei Kondou)
|
11
|
+
- ACTIVERECORD_JDBC-90: MSSQL fix for DATEs (jlangenauer)
|
12
|
+
- ACTIVERECORD_JDBC-93: Fix string IDs for sqlite3, hsql/h2 (moser)
|
13
|
+
- ACTIVERECORD_JDBC-86: Fix Derby queries starting with VALUES (Dwayne Litzenberger)
|
14
|
+
- ACTIVERECORD_JDBC-95: Fix INSERT ... RETURNING for PostgreSQL
|
15
|
+
|
16
|
+
== 0.9.2
|
17
|
+
|
18
|
+
- The main, highly awaited fix for this release is a solution to the
|
19
|
+
rake db:create/db:drop issue. The main change is a new 'jdbc' rails
|
20
|
+
generator that should be run once to prepare a Rails application to
|
21
|
+
use JDBC. The upside of this generator is that you no longer will
|
22
|
+
need to alter database.yml for JDBC. See the README.txt for details.
|
23
|
+
- Cleanup and reconnect if errors occur during begin/rollback
|
24
|
+
(Jean-Dominique Morani, Christian Seiler)
|
25
|
+
- ACTIVERECORD_JDBC-1: Add #drop_database method for oracle (does the
|
26
|
+
same thing as recreate_database)
|
27
|
+
- Sqlite3 and MSSQL fixes (Jean-Dominique Morani)
|
28
|
+
- JRUBY-3512: Treat LONGVARCHAR as a CLOB for Mssql
|
29
|
+
- JRUBY-3624: Upgrade Derby to 10.5.3.0 and add native limit/offset
|
30
|
+
support (Christopher Saunders)
|
31
|
+
- JRUBY-3616: Fix postgres non-sequence primary keys (David Kellum)
|
32
|
+
- JRUBY-3669: Fix Oracle case with unconfigured schema (Dan Powell)
|
33
|
+
- Fixed quote_column_name of jdbc_oracle to accept numbers (Marcelo
|
34
|
+
Murad)
|
35
|
+
- Fix for mysql tables with non standard primary keys such that the
|
36
|
+
schema dump is correct (Nick Zalabak)
|
37
|
+
- MSSQL fixes from Mike Luu:
|
38
|
+
- add support for MSSQL uniqueidentifier datatype
|
39
|
+
- always quote strings using unicode identifier for MSSQL
|
40
|
+
- Changes primary_key generation to use always instead of by default
|
41
|
+
for DB2 (Amos King)
|
42
|
+
- Improves the SQLite adapter by fixing rename_column, change_column,
|
43
|
+
change_column_default, changing remove_column, and adding
|
44
|
+
remove_columns (Ryan Baumann)
|
45
|
+
- More oracle love courtesy Ben Browning and Jens Himmelreich
|
46
|
+
- JRUBY-3608: Add missing change_column_null method for postgres
|
47
|
+
- JRUBY-3508: Fix quoting of integer and float columns
|
48
|
+
|
49
|
+
== 0.9.1
|
50
|
+
|
51
|
+
- We did a lot of internal cleanup this release in the hopes of
|
52
|
+
simplifying the code and increasing performance.
|
53
|
+
- Many SQLite updates (thanks Nils Christian Haugen)
|
54
|
+
- JRUBY-2912: Fix MSSQL create/drop database (Joern Hartmann)
|
55
|
+
- JRUBY-2767: Mistake in selecting identity with H2/HSQLDB
|
56
|
+
- JRUBY-2884: jdbc_postgre.rb issue handling nil booleans (also a fix
|
57
|
+
for hsqldb/h2) + tests
|
58
|
+
- JRUBY-2995: activerecord jdbc derby adapter should quote columns
|
59
|
+
called 'year'
|
60
|
+
- JRUBY-2897: jdbc_postgre.rb needs microsecond support
|
61
|
+
- JRUBY-3282: Upgrade to derby 10.4.2.0 to allow unique constraints
|
62
|
+
with nullable columns
|
63
|
+
- Update h2 from 1.0.63 to 1.1.107 in driver
|
64
|
+
- JRUBY-3026: [Derby] Allow select/delete/update conditions with
|
65
|
+
comparison to NULL using '='
|
66
|
+
- JRUBY-2996: ...(actually this fixes only remaining issue of this bug
|
67
|
+
which was symbols making into quote were exploding
|
68
|
+
- JRUBY-2691: Update sybase driver to pass simple unit tests with jtds
|
69
|
+
and verify it works with the new dialect keyword. patch by Leigh
|
70
|
+
Kennedy
|
71
|
+
- Make :float type work on h2,hsql [returned as string]. Make :float
|
72
|
+
work on hsqldb (no paren value supported). Make REAL_TYPE just
|
73
|
+
return RubyFloat
|
74
|
+
- JRUBY-3222: Upgrade #type_to_sql to variation of AR 2.1.2 version
|
75
|
+
- Add patch supplied in JRUBY-3489 (patch by Jean-Dominique Morani)
|
76
|
+
- Various Oracle fixes by edsono
|
77
|
+
- JRUBY-2688: Don't hard-code MySQL connection character encoding to
|
78
|
+
utf8
|
79
|
+
|
80
|
+
== 0.9
|
81
|
+
|
82
|
+
- Now updated to support ActiveRecord 2.2. JNDI-based connections will
|
83
|
+
automatically connect/disconnect for every AR connection pool
|
84
|
+
checkout/checkin. For best results, set your pool: parameter >= the
|
85
|
+
actual maximum size of the JNDI connection pool. (We'll look at how
|
86
|
+
to eliminate the need to configure AR's pool in the future.)
|
87
|
+
- NEW! Informix support courtesy of Javier Fernandez-Ivern.
|
88
|
+
- Backport another Oracle CLOB issue, thanks Edson C�sar.
|
89
|
+
- Rubyforge #22018: chomp final trailing semicolon for oracle
|
90
|
+
- JRUBY-2848: Fix NPE error in set_native_database_types
|
91
|
+
- Rework oracle lob saving callback to be Rails 2.1 friendly (assist
|
92
|
+
from court3nay)
|
93
|
+
- JRUBY-2715: Add create/drop database methods to Postgres (Peter Williams)
|
94
|
+
- JRUBY-3183: Fix structure dump for Postgres (Ryan Bell)
|
95
|
+
- JRUBY-3184: recreate_database for test database working for PG (Ryan Bell)
|
96
|
+
- JRUBY-3186: disable referential integrity for PG (Ryan Bell)
|
97
|
+
- Authoritative repository now hosted at
|
98
|
+
git://github.com/nicksieger/activerecord-jdbc-adapter.git; rubyforge
|
99
|
+
svn trunk cleaned out.
|
100
|
+
|
101
|
+
== 0.8.2
|
102
|
+
|
103
|
+
- Added an optional config key called :dialect. Using :dialect allows you to
|
104
|
+
override the default SQL dialect for the driver class being used. There are
|
105
|
+
a few cases for this:
|
106
|
+
- Using using Sybase w/ the jTDS driver.
|
107
|
+
- Using rebranded drivers.
|
108
|
+
- It makes more sense to use :dialect, rather then :driver when using JNDI.
|
109
|
+
- JRUBY-2619: Typo with :test config causing problems with dev database (Igor Minar)
|
110
|
+
- 20524, JRUBY-2612: Since when did I think that there was a #true? method on Object?
|
111
|
+
|
112
|
+
== 0.8.1
|
113
|
+
|
114
|
+
- Now sporting a JDBC sqlite3 adapter! Thanks Joseph Athman.
|
115
|
+
- Added support for InterSystems Cache database (Ryan Bell)
|
116
|
+
- Fix for JRUBY-2256
|
117
|
+
- JRUBY-1638, JRUBY-2404, JRUBY-2463: schema.table handling and Oracle NUMBER fixes (Darcy Schultz & Jesse Hu)
|
118
|
+
- Add structure dump and other DDL-ish for DB2 (courtesy abedra and stuarthalloway)
|
119
|
+
- Fix missing quote_table_name function under Rails 1.2.6 and earlier
|
120
|
+
- Small tweaks to jdbc.rake to select proper config
|
121
|
+
- JRUBY-2011: Fix MSSQL string un-quoting issue (Silvio Fonseca)
|
122
|
+
- JRUBY-1977, 17427: Fix information_schema select issue with MSSQL (Matt Burke)
|
123
|
+
- 20479: Improve get_table_name for MSSQL (Aslak Hellesøy)
|
124
|
+
- 20243: numerics improvements for MSSQL (Aslak Hellesøy)
|
125
|
+
- 20172: don't quote table names for MSSQL (Thor Marius Henrichsen)
|
126
|
+
- 19729: check for primary key existence in postgres during insert (Martin Luder)
|
127
|
+
- JRUBY-2297, 18846: retrying failing SQL statements is harmful when not autocommitting (Craig McMillan)
|
128
|
+
- 10021: very preliminary sybase support. (Mark Atkinson) Not usable until collision w/ sqlserver driver is resolved.
|
129
|
+
- JRUBY-2312, JRUBY-2319, JRUBY-2322: Oracle timestamping issues (Jesse Hu & Michael König)
|
130
|
+
- JRUBY-2422: Fix MySQL referential integrity and rollback issues
|
131
|
+
- JRUBY-2382: mysql string quoting fails with ArrayIndexOutofBoundsException
|
132
|
+
|
133
|
+
== 0.8
|
134
|
+
|
135
|
+
- NOTE: This release is only compatible with JRuby 1.1RC3 or later.
|
136
|
+
- Because of recent API changes in trunk in preparation for JRuby 1.1, this release is not
|
137
|
+
backward compatible with previous JRuby releases. Hence the version bump.
|
138
|
+
- Internal: convert Java methods to be defined with annotations
|
139
|
+
- Fix problem with reserved words coming back pre-quoted from #indexes in postgres
|
140
|
+
- JRUBY-2205: Fix N^2 allocation of bytelists for mysql quoting (taw)
|
141
|
+
- Attempt a fix for Rubyforge 18059
|
142
|
+
- Upgrade derby to 10.3.2.1
|
143
|
+
- Fix db:create etc. in the case where JDBC is loaded in Rails' preinitializer.rb
|
144
|
+
- Fix db:drop to actually work
|
145
|
+
- Fix for Rubyforge #11567 (Matt Williams)
|
146
|
+
|
147
|
+
== 0.7.2
|
148
|
+
|
149
|
+
- JRUBY-1905: add_column for derby, hsqldb, and postgresql (Stephen Bannasch)
|
150
|
+
- Fix db:create for JDBC
|
151
|
+
- Support Rails 2 with the old "require 'jdbc_adapter'" approach
|
152
|
+
- JRUBY-1966: Instead of searching for just tables, search for views and tables.
|
153
|
+
- JRUBY-1583: DB2 numeric quoting (Ryan Shillington)
|
154
|
+
- JRUBY-1634: Oracle DATE type mapping (Daniel Wintschel)
|
155
|
+
- JRUBY-1543: rename_column issue with more recent MySQL drivers (Oliver Schmelzle)
|
156
|
+
- Rubyforge #15074: ConnectionAdapters::JdbcAdapter.indexes is missing name and
|
157
|
+
schema_name parameters in the method signature (Igor Minar)
|
158
|
+
- Rubyforge #13558: definition for the indexes method (T Meyarivan)
|
159
|
+
- JRUBY-2051: handle schemaname and tablename more correctly for columns
|
160
|
+
- JRUBY-2102: Postgres Adapter cannot handle datetime type (Rainer Hahnekamp)
|
161
|
+
- JRUBY-2018: Oracle behind ActiveRecord-JDBC fails with "Invalid column index" (K Venkatasubramaniyan)
|
162
|
+
- JRUBY-2012: jdbc_mysql structure dump fails for mysql views (Tyler Jennings)
|
163
|
+
|
164
|
+
== 0.7.1
|
165
|
+
|
166
|
+
- Add adapter and driver for H2 courtesy of Caleb Land
|
167
|
+
- Fix "undefined method `last' for {}:Hash" error introduced with new Rake 0.8.1 (JRUBY-1859)
|
168
|
+
|
169
|
+
== 0.7
|
170
|
+
|
171
|
+
- PLEASE NOTE: This release is not compatible with JRuby releases earlier than
|
172
|
+
1.0.3 or 1.1b2. If you must use JRuby 1.0.2 or earlier, please install the
|
173
|
+
0.6 release.
|
174
|
+
- Release coincides with JRuby 1.0.3 and JRuby 1.1b2 releases
|
175
|
+
- Simultaneous support for JRuby trunk and 1.0 branch
|
176
|
+
- Get rid of log_no_bench method, so we time SQL execution again.
|
177
|
+
- Implement #select_rows
|
178
|
+
- MySQL migration and quoting updates
|
179
|
+
|
180
|
+
== 0.6
|
181
|
+
|
182
|
+
- Gem is renamed to "activerecord-jdbc-adapter" to follow new conventions
|
183
|
+
introduced in Rails 2.0 for third-party adapters. Rails 2.0 compatibility is
|
184
|
+
introduced.
|
185
|
+
- Add dependency on ActiveRecord >= 1.14 (from the Rails 1.1.x release)
|
186
|
+
- New drivers (jdbc-XXX) and adapter (activerecord-jdbcXXX-adapter) gems
|
187
|
+
available separately. See the README.txt file for details.
|
188
|
+
- Plain "jdbc" driver is still available if you want to use the full
|
189
|
+
driver/url way of specifying the driver.
|
190
|
+
- More bugfixes to Oracle and SQLServer courtesy of Ola & ThoughtWorks
|
191
|
+
|
192
|
+
== 0.5
|
193
|
+
|
194
|
+
- Release coincides with JRuby 1.0.1 release
|
195
|
+
- It is no longer necessary to specify :driver and :url configuration
|
196
|
+
parameters for the mysql, postgresql, oracle, derby, hsqldb, and h2
|
197
|
+
adapters. The previous configuration is still valid and compatible, but for
|
198
|
+
new applications, this makes it possible to use the exact same database.yml
|
199
|
+
configuration as Rails applications running under native Ruby.
|
200
|
+
- JDBC drivers can now be dynamically loaded by Ruby code, without being on
|
201
|
+
the classpath prior to launching JRuby. Simply use "require
|
202
|
+
'jdbc-driver.jar'" in JRuby code to add it to the runtime classpath.
|
203
|
+
- Updates to HSQL, MS SQLServer, Postgres, Oracle and Derby adapters
|
204
|
+
|
205
|
+
== 0.4
|
206
|
+
|
207
|
+
- Release coincides with JRuby 1.0 release
|
208
|
+
- Shoring up PostgreSQL (courtesy Dudley Flanders) and HSQL (courtesy Matthew
|
209
|
+
Williams)
|
210
|
+
- Fix timestamps on Oracle to use DATE (as everything else)
|
211
|
+
- Derby fixes: Fix for open result set issue, better structure dump, quoting,
|
212
|
+
column type changing
|
213
|
+
- Sybase type recognition fix (courtesy Dean Mao)
|
214
|
+
|
215
|
+
== 0.3.1
|
216
|
+
|
217
|
+
- Derby critical fixes shortly after 0.3
|
218
|
+
|
219
|
+
== 0.3
|
220
|
+
|
221
|
+
- Release coincides with JRuby 1.0.0RC1 release
|
222
|
+
- Improvements for Derby, Postgres, and Oracle, all of which are running
|
223
|
+
> 95% of AR tests
|
224
|
+
|
225
|
+
== 0.2.4
|
226
|
+
|
227
|
+
- Release coincides with JRuby 0.9.9 release
|
228
|
+
- JRuby 0.9.9 is required
|
229
|
+
- MySQL close to 100% working
|
230
|
+
- Derby improvements
|
231
|
+
- DECIMAL/NUMERIC/FLOAT/REAL bugs fixed with type recognition for Oracle,
|
232
|
+
Postgres, etc.
|
233
|
+
- HSQLDB has regressed this release and may not be functioning; we'll get it
|
234
|
+
fixed for the next one
|
235
|
+
|
236
|
+
== 0.2.3
|
237
|
+
|
238
|
+
- Release coincides (and compatible) with JRuby 0.9.8 release
|
239
|
+
- 8 bugs fixed: see http://rubyurl.com/0Da
|
240
|
+
- Improvements and compatibility fixes for Rails 1.2.x
|
241
|
+
|
242
|
+
== 0.2.1, 0.2.2
|
243
|
+
|
244
|
+
- Early releases, added better support for multiple databases
|
245
|
+
|
246
|
+
== 0.0.1
|
247
|
+
|
248
|
+
- Initial, very alpha release
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2006-2008 Nick Sieger <nick@nicksieger.com>
|
2
|
+
Copyright (c) 2006-2008 Ola Bini <ola.bini@gmail.com>
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
a copy of this software and associated documentation files (the
|
6
|
+
"Software"), to deal in the Software without restriction, including
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Manifest.txt
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.txt
|
4
|
+
Rakefile
|
5
|
+
LICENSE.txt
|
6
|
+
lib/jdbc_adapter.rb
|
7
|
+
lib/pg.rb
|
8
|
+
lib/active_record/connection_adapters/cachedb_adapter.rb
|
9
|
+
lib/active_record/connection_adapters/derby_adapter.rb
|
10
|
+
lib/active_record/connection_adapters/h2_adapter.rb
|
11
|
+
lib/active_record/connection_adapters/hsqldb_adapter.rb
|
12
|
+
lib/active_record/connection_adapters/informix_adapter.rb
|
13
|
+
lib/active_record/connection_adapters/jdbc_adapter.rb
|
14
|
+
lib/active_record/connection_adapters/jdbc_adapter_spec.rb
|
15
|
+
lib/active_record/connection_adapters/jndi_adapter.rb
|
16
|
+
lib/active_record/connection_adapters/mysql_adapter.rb
|
17
|
+
lib/active_record/connection_adapters/oracle_adapter.rb
|
18
|
+
lib/active_record/connection_adapters/postgresql_adapter.rb
|
19
|
+
lib/active_record/connection_adapters/sqlite3_adapter.rb
|
20
|
+
lib/generators/jdbc/jdbc_generator.rb
|
21
|
+
lib/jdbc_adapter/jdbc_cachedb.rb
|
22
|
+
lib/jdbc_adapter/jdbc_db2.rb
|
23
|
+
lib/jdbc_adapter/jdbc_derby.rb
|
24
|
+
lib/jdbc_adapter/jdbc_firebird.rb
|
25
|
+
lib/jdbc_adapter/jdbc_hsqldb.rb
|
26
|
+
lib/jdbc_adapter/jdbc_informix.rb
|
27
|
+
lib/jdbc_adapter/jdbc_mimer.rb
|
28
|
+
lib/jdbc_adapter/jdbc_mssql.rb
|
29
|
+
lib/jdbc_adapter/jdbc_mysql.rb
|
30
|
+
lib/jdbc_adapter/jdbc_oracle.rb
|
31
|
+
lib/jdbc_adapter/jdbc_postgre.rb
|
32
|
+
lib/jdbc_adapter/jdbc_sqlite3.rb
|
33
|
+
lib/jdbc_adapter/jdbc_sybase.rb
|
34
|
+
lib/jdbc_adapter/missing_functionality_helper.rb
|
35
|
+
lib/jdbc_adapter/rake_tasks.rb
|
36
|
+
lib/jdbc_adapter/tsql_helper.rb
|
37
|
+
lib/jdbc_adapter/version.rb
|
38
|
+
lib/jdbc_adapter/jdbc_adapter_internal.jar
|
39
|
+
test/abstract_db_create.rb
|
40
|
+
test/cachedb_simple_test.rb
|
41
|
+
test/db2_simple_test.rb
|
42
|
+
test/derby_migration_test.rb
|
43
|
+
test/derby_multibyte_test.rb
|
44
|
+
test/derby_simple_test.rb
|
45
|
+
test/generic_jdbc_connection_test.rb
|
46
|
+
test/h2_simple_test.rb
|
47
|
+
test/has_many_through.rb
|
48
|
+
test/helper.rb
|
49
|
+
test/hsqldb_simple_test.rb
|
50
|
+
test/informix_simple_test.rb
|
51
|
+
test/jdbc_common.rb
|
52
|
+
test/jndi_callbacks_test.rb
|
53
|
+
test/jndi_test.rb
|
54
|
+
test/manualTestDatabase.rb
|
55
|
+
test/minirunit.rb
|
56
|
+
test/mssql_simple_test.rb
|
57
|
+
test/mysql_db_create_test.rb
|
58
|
+
test/mysql_multibyte_test.rb
|
59
|
+
test/mysql_nonstandard_primary_key_test.rb
|
60
|
+
test/mysql_simple_test.rb
|
61
|
+
test/oracle_simple_test.rb
|
62
|
+
test/pick_rails_version.rb
|
63
|
+
test/postgres_db_create_test.rb
|
64
|
+
test/postgres_mixed_case_test.rb
|
65
|
+
test/postgres_nonseq_pkey_test.rb
|
66
|
+
test/postgres_reserved_test.rb
|
67
|
+
test/postgres_schema_search_path_test.rb
|
68
|
+
test/postgres_simple_test.rb
|
69
|
+
test/simple.rb
|
70
|
+
test/sqlite3_simple_test.rb
|
71
|
+
test/sybase_jtds_simple_test.rb
|
72
|
+
test/activerecord/connection_adapters/type_conversion_test.rb
|
73
|
+
test/activerecord/connections/native_jdbc_mysql/connection.rb
|
74
|
+
test/db/cachedb.rb
|
75
|
+
test/db/db2.rb
|
76
|
+
test/db/derby.rb
|
77
|
+
test/db/h2.rb
|
78
|
+
test/db/hsqldb.rb
|
79
|
+
test/db/informix.rb
|
80
|
+
test/db/jdbc.rb
|
81
|
+
test/db/jndi_config.rb
|
82
|
+
test/db/logger.rb
|
83
|
+
test/db/mssql.rb
|
84
|
+
test/db/mysql.rb
|
85
|
+
test/db/oracle.rb
|
86
|
+
test/db/postgres.rb
|
87
|
+
test/db/sqlite3.rb
|
88
|
+
test/jdbc_adapter/jdbc_db2_test.rb
|
89
|
+
test/jdbc_adapter/jdbc_sybase_test.rb
|
90
|
+
test/minirunit/testConnect.rb
|
91
|
+
test/minirunit/testH2.rb
|
92
|
+
test/minirunit/testHsqldb.rb
|
93
|
+
test/minirunit/testLoadActiveRecord.rb
|
94
|
+
test/minirunit/testMysql.rb
|
95
|
+
test/minirunit/testRawSelect.rb
|
96
|
+
test/models/add_not_null_column_to_table.rb
|
97
|
+
test/models/auto_id.rb
|
98
|
+
test/models/data_types.rb
|
99
|
+
test/models/entry.rb
|
100
|
+
test/models/mixed_case.rb
|
101
|
+
test/models/reserved_word.rb
|
102
|
+
test/models/string_id.rb
|
103
|
+
test/models/validates_uniqueness_of_string.rb
|
104
|
+
lib/jdbc_adapter/jdbc.rake
|
105
|
+
src/java/jdbc_adapter/JdbcAdapterInternalService.java
|
106
|
+
src/java/jdbc_adapter/JdbcConnectionFactory.java
|
107
|
+
src/java/jdbc_adapter/JdbcDerbySpec.java
|
108
|
+
src/java/jdbc_adapter/JdbcMySQLSpec.java
|
109
|
+
src/java/jdbc_adapter/MssqlRubyJdbcConnection.java
|
110
|
+
src/java/jdbc_adapter/PostgresRubyJdbcConnection.java
|
111
|
+
src/java/jdbc_adapter/RubyJdbcConnection.java
|
112
|
+
src/java/jdbc_adapter/SQLBlock.java
|
113
|
+
src/java/jdbc_adapter/Sqlite3RubyJdbcConnection.java
|
114
|
+
rakelib/compile.rake
|
115
|
+
rakelib/package.rake
|
116
|
+
rakelib/rails.rake
|
117
|
+
rakelib/test.rake
|
118
|
+
rails_generators/jdbc_generator.rb
|
119
|
+
rails_generators/templates
|
120
|
+
rails_generators/templates/config
|
121
|
+
rails_generators/templates/lib
|
122
|
+
rails_generators/templates/config/initializers
|
123
|
+
rails_generators/templates/config/initializers/jdbc.rb
|
124
|
+
rails_generators/templates/lib/tasks
|
125
|
+
rails_generators/templates/lib/tasks/jdbc.rake
|
data/README.txt
ADDED
@@ -0,0 +1,218 @@
|
|
1
|
+
activerecord-jdbc-adapter is a database adapter for Rails' ActiveRecord
|
2
|
+
component that can be used with JRuby[http://www.jruby.org/]. It allows use of
|
3
|
+
virtually any JDBC-compliant database with your JRuby on Rails application.
|
4
|
+
|
5
|
+
== Project Info
|
6
|
+
|
7
|
+
* Mailing Lists: http://kenai.com/projects/activerecord-jdbc/lists
|
8
|
+
* Issues: http://kenai.com/jira/browse/ACTIVERECORD_JDBC
|
9
|
+
* Source: git://kenai.com/activerecord-jdbc~main
|
10
|
+
git://github.com/nicksieger/activerecord-jdbc-adapter.git
|
11
|
+
|
12
|
+
== Databases
|
13
|
+
|
14
|
+
What's there, and what is not there:
|
15
|
+
|
16
|
+
* MySQL - Complete support
|
17
|
+
* PostgreSQL - Complete support
|
18
|
+
* Oracle - Complete support
|
19
|
+
* Microsoft SQL Server - Complete support except for change_column_default
|
20
|
+
* DB2 - Complete, except for the migrations:
|
21
|
+
* change_column
|
22
|
+
* change_column_default
|
23
|
+
* remove_column
|
24
|
+
* rename_column
|
25
|
+
* add_index
|
26
|
+
* remove_index
|
27
|
+
* rename_table
|
28
|
+
* FireBird - Complete, except for change_column_default and rename_column
|
29
|
+
* Derby - Complete, except for:
|
30
|
+
* change_column
|
31
|
+
* change_column_default
|
32
|
+
* remove_column
|
33
|
+
* rename_column
|
34
|
+
* HSQLDB - Complete
|
35
|
+
* H2 - Complete
|
36
|
+
* SQLite3 - work in progress
|
37
|
+
* Informix - Fairly complete support, all tests pass and migrations appear to work. Comments welcome.
|
38
|
+
|
39
|
+
Other databases will require testing and likely a custom configuration module.
|
40
|
+
Please join the activerecord-jdbc
|
41
|
+
mailing-lists[http://kenai.com/projects/activerecord-jdbc/lists] to help us discover
|
42
|
+
support for more databases.
|
43
|
+
|
44
|
+
== Using ActiveRecord JDBC
|
45
|
+
|
46
|
+
=== Inside Rails
|
47
|
+
|
48
|
+
To use activerecord-jdbc-adapter with JRuby on Rails:
|
49
|
+
|
50
|
+
1. Choose the adapter you wish to gem install. The following pre-packaged
|
51
|
+
adapters are available:
|
52
|
+
|
53
|
+
* base jdbc (<tt>activerecord-jdbc-adapter</tt>). Supports all available databases via JDBC, but requires you to download and manually install the database vendor's JDBC driver .jar file.
|
54
|
+
* mysql (<tt>activerecord-jdbcmysql-adapter</tt>)
|
55
|
+
* postgresql (<tt>activerecord-jdbcpostgresql-adapter</tt>)
|
56
|
+
* sqlite3 (<tt>activerecord-jdbcsqlite3-adapter</tt>)
|
57
|
+
* derby (<tt>activerecord-jdbcderby-adapter</tt>)
|
58
|
+
* hsqldb (<tt>activerecord-jdbchsqldb-adapter</tt>)
|
59
|
+
* h2 (<tt>activerecord-jdbch2-adapter</tt>)
|
60
|
+
|
61
|
+
2a. For Rails 3, if you're generating a new application, use the
|
62
|
+
following command to generate your application:
|
63
|
+
|
64
|
+
jruby -S rails myapp -m http://jruby.org/rails3.rb
|
65
|
+
|
66
|
+
2b. Otherwise, you'll need to run the "jdbc" generator to prepare your
|
67
|
+
Rails application for JDBC.
|
68
|
+
|
69
|
+
If you're using Rails 3, first you'll need to modify your Gemfile
|
70
|
+
to use the activerecord-jdbc-adapter gem under JRuby. Change your
|
71
|
+
Gemfile to look like the following (using sqlite3 as an example):
|
72
|
+
|
73
|
+
if defined?(JRUBY_VERSION)
|
74
|
+
gem 'activerecord-jdbc-adapter', :require => false
|
75
|
+
gem 'jdbc-sqlite3, :require => false
|
76
|
+
else
|
77
|
+
gem sqlite3-ruby', :require => 'sqlite3'
|
78
|
+
end
|
79
|
+
|
80
|
+
Next, run the generator. With Rails 3:
|
81
|
+
|
82
|
+
jruby script/rails generate jdbc
|
83
|
+
|
84
|
+
With Rails 2:
|
85
|
+
|
86
|
+
jruby script/generate jdbc
|
87
|
+
|
88
|
+
The initializer and rake task files generated are guarded such that
|
89
|
+
they won't be loaded if you still run your application under C Ruby.
|
90
|
+
|
91
|
+
Legacy: If you're using Rails prior to version 2.0, you'll need to
|
92
|
+
add one-time setup to your config/environment.rb file in your Rails
|
93
|
+
application. Add the following lines just before the
|
94
|
+
<code>Rails::Initializer</code>. (If you're using
|
95
|
+
activerecord-jdbc-adapter under the old gem name used in versions
|
96
|
+
0.5 and earlier (ActiveRecord-JDBC), replace
|
97
|
+
'activerecord-jdbc-adapter' with 'ActiveRecord-JDBC' below.)
|
98
|
+
|
99
|
+
if RUBY_PLATFORM =~ /java/
|
100
|
+
require 'rubygems'
|
101
|
+
gem 'activerecord-jdbc-adapter'
|
102
|
+
require 'jdbc_adapter'
|
103
|
+
end
|
104
|
+
|
105
|
+
3. Configure your database.yml in the normal Rails style.
|
106
|
+
|
107
|
+
Legacy configuration: If you use one of the convenience
|
108
|
+
'activerecord-jdbcXXX-adapter' adapters, you can still put a 'jdbc'
|
109
|
+
prefix in front of the database adapter name as below.
|
110
|
+
|
111
|
+
development:
|
112
|
+
adapter: jdbcmysql
|
113
|
+
username: blog
|
114
|
+
password:
|
115
|
+
hostname: localhost
|
116
|
+
database: weblog_development
|
117
|
+
|
118
|
+
For other databases, you'll need to know the database driver class
|
119
|
+
and URL. Example:
|
120
|
+
|
121
|
+
development:
|
122
|
+
adapter: jdbc
|
123
|
+
username: blog
|
124
|
+
password:
|
125
|
+
driver: com.mysql.jdbc.Driver
|
126
|
+
url: jdbc:mysql://localhost:3306/weblog_development
|
127
|
+
|
128
|
+
For JNDI data sources, you may simply specify the database type
|
129
|
+
using the adapter key and the JNDI location as follows:
|
130
|
+
|
131
|
+
production:
|
132
|
+
adapter: mysql
|
133
|
+
jndi: jdbc/mysqldb
|
134
|
+
|
135
|
+
=== Standalone, with ActiveRecord
|
136
|
+
|
137
|
+
1. Install the gem with JRuby:
|
138
|
+
|
139
|
+
jruby -S gem install activerecord-jdbc-adapter
|
140
|
+
|
141
|
+
If you wish to use the adapter for a specific database, you can install it
|
142
|
+
directly and a driver gem will be installed as well:
|
143
|
+
|
144
|
+
jruby -S gem install activerecord-jdbcderby-adapter
|
145
|
+
|
146
|
+
2. If using ActiveRecord 2.0 (Rails 2.0) or greater, you can skip to the next
|
147
|
+
step. Otherwise, ensure the following code gets executed in your script:
|
148
|
+
|
149
|
+
require 'rubygems'
|
150
|
+
gem 'activerecord-jdbc-adapter'
|
151
|
+
require 'jdbc_adapter'
|
152
|
+
require 'active_record'
|
153
|
+
|
154
|
+
3. After this you can establish a JDBC connection like this:
|
155
|
+
|
156
|
+
ActiveRecord::Base.establish_connection(
|
157
|
+
:adapter => 'jdbcderby',
|
158
|
+
:database => "db/my-database"
|
159
|
+
)
|
160
|
+
|
161
|
+
or like this (but requires that you manually put the driver jar on the classpath):
|
162
|
+
|
163
|
+
ActiveRecord::Base.establish_connection(
|
164
|
+
:adapter => 'jdbc',
|
165
|
+
:driver => 'org.apache.derby.jdbc.EmbeddedDriver',
|
166
|
+
:url => 'jdbc:derby:test_ar;create=true'
|
167
|
+
)
|
168
|
+
|
169
|
+
== Getting the source
|
170
|
+
|
171
|
+
The source for activerecord-jdbc-adapter is available using git.
|
172
|
+
|
173
|
+
git clone git://github.com/nicksieger/activerecord-jdbc-adapter.git
|
174
|
+
|
175
|
+
== Feedback
|
176
|
+
|
177
|
+
Please file bug reports at
|
178
|
+
http://kenai.com/jira/browse/ACTIVERECORD_JDBC. If you're not sure if
|
179
|
+
something's a bug, feel free to pre-report it on the mailing lists.
|
180
|
+
|
181
|
+
== Running AR-JDBC's Tests
|
182
|
+
|
183
|
+
Drivers for 6 open-source databases are included. Provided you have MySQL
|
184
|
+
installed, you can simply type <tt>jruby -S rake</tt> to run the tests. A
|
185
|
+
database named <tt>weblog_development</tt> is needed beforehand with a
|
186
|
+
connection user of "blog" and an empty password.
|
187
|
+
|
188
|
+
If you also have PostgreSQL available, those tests will be run if the
|
189
|
+
`psql' executable can be found. Also ensure you have a database named
|
190
|
+
<tt>weblog_development</tt> and a user named "blog" and an empty
|
191
|
+
password.
|
192
|
+
|
193
|
+
If you want rails logging enabled during these test runs you can edit
|
194
|
+
test/jdbc_common.rb and add the following line:
|
195
|
+
|
196
|
+
require 'db/logger'
|
197
|
+
|
198
|
+
== Running AR Tests
|
199
|
+
|
200
|
+
To run the current AR-JDBC sources with ActiveRecord, just use the
|
201
|
+
included "rails:test" task. Be sure to specify a driver and a path to
|
202
|
+
the ActiveRecord sources.
|
203
|
+
|
204
|
+
jruby -S rake rails:test DRIVER=mysql RAILS=/path/activerecord_source_dir
|
205
|
+
|
206
|
+
== Authors
|
207
|
+
|
208
|
+
This project was written by Nick Sieger <nick@nicksieger.com> and Ola Bini
|
209
|
+
<olabini@gmail.com> with lots of help from the JRuby community.
|
210
|
+
|
211
|
+
== License
|
212
|
+
|
213
|
+
activerecord-jdbc-adapter is released under a BSD license. See the LICENSE file
|
214
|
+
included with the distribution for details.
|
215
|
+
|
216
|
+
Open-source driver gems for activerecord-jdbc-adapter are licensed under the
|
217
|
+
same license the database's drivers are licensed. See each driver gem's
|
218
|
+
LICENSE.txt file for details.
|