activerecord-jdbc-adapter 1.3.25 → 5.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +57 -72
  3. data/Appraisals +7 -2
  4. data/Gemfile +3 -7
  5. data/History.md +0 -50
  6. data/RUNNING_TESTS.md +4 -0
  7. data/activerecord-jdbc-adapter.gemspec +2 -1
  8. data/lib/arjdbc/common_jdbc_methods.rb +89 -0
  9. data/lib/arjdbc/db2/adapter.rb +58 -69
  10. data/lib/arjdbc/db2/as400.rb +2 -13
  11. data/lib/arjdbc/db2/column.rb +1 -1
  12. data/lib/arjdbc/derby/adapter.rb +2 -6
  13. data/lib/arjdbc/firebird/adapter.rb +7 -16
  14. data/lib/arjdbc/h2/adapter.rb +4 -13
  15. data/lib/arjdbc/hsqldb/adapter.rb +5 -5
  16. data/lib/arjdbc/jdbc/adapter.rb +15 -76
  17. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  18. data/lib/arjdbc/jdbc/adapter_require.rb +12 -31
  19. data/lib/arjdbc/jdbc/base_ext.rb +6 -25
  20. data/lib/arjdbc/jdbc/column.rb +15 -1
  21. data/lib/arjdbc/jdbc/connection_methods.rb +7 -1
  22. data/lib/arjdbc/jdbc/type_cast.rb +16 -4
  23. data/lib/arjdbc/jdbc/type_converter.rb +0 -1
  24. data/lib/arjdbc/mssql/adapter.rb +9 -21
  25. data/lib/arjdbc/mysql/adapter.rb +14 -19
  26. data/lib/arjdbc/mysql/connection_methods.rb +3 -5
  27. data/lib/arjdbc/oracle/adapter.rb +4 -38
  28. data/lib/arjdbc/oracle/connection_methods.rb +0 -4
  29. data/lib/arjdbc/postgresql/adapter.rb +18 -22
  30. data/lib/arjdbc/postgresql/connection_methods.rb +2 -5
  31. data/lib/arjdbc/postgresql/oid/bytea.rb +0 -1
  32. data/lib/arjdbc/postgresql/oid_types.rb +6 -6
  33. data/lib/arjdbc/sqlite3/adapter.rb +493 -404
  34. data/lib/arjdbc/tasks/database_tasks.rb +1 -1
  35. data/lib/arjdbc/tasks/databases3.rake +1 -1
  36. data/lib/arjdbc/tasks/databases4.rake +3 -8
  37. data/lib/arjdbc/version.rb +1 -1
  38. data/rakelib/db.rake +5 -8
  39. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +102 -37
  40. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +0 -7
  41. metadata +10 -17
  42. data/lib/arjdbc/jdbc/arel_support.rb +0 -133
  43. data/lib/arjdbc/mssql/attributes_for_update.rb +0 -22
  44. data/lib/arjdbc/sqlite3/explain_support.rb +0 -29
@@ -39,7 +39,7 @@ module ArJdbc
39
39
  register_tasks(/(oci|oracle)/, OracleDatabaseTasks)
40
40
  register_tasks(/mssql/, MSSQLDatabaseTasks) # (built-in) alias
41
41
  # tasks for custom (JDBC) adapters :
42
- register_tasks(/(db2|as400)/, DB2DatabaseTasks)
42
+ register_tasks(/db2/, DB2DatabaseTasks)
43
43
  register_tasks(/derby/, DerbyDatabaseTasks)
44
44
  register_tasks(/h2/, H2DatabaseTasks)
45
45
  register_tasks(/hsqldb/, HSQLDBDatabaseTasks)
@@ -112,7 +112,7 @@ namespace :db do
112
112
  unless search_path.blank?
113
113
  search_path = search_path.split(",").map{ |part| "--schema=#{Shellwords.escape(part.strip)}" }.join(" ")
114
114
  end
115
- sh "pg_dump -s -x -O -f #{Shellwords.escape(filename)} #{search_path} #{Shellwords.escape(config['database'])}"
115
+ sh "pg_dump -i -s -x -O -f #{Shellwords.escape(filename)} #{search_path} #{Shellwords.escape(config['database'])}"
116
116
 
117
117
  File.open(filename, 'a') { |f| f << "SET search_path TO #{ActiveRecord::Base.connection.schema_search_path};\n\n" }
118
118
  when /sqlite/
@@ -1,7 +1,7 @@
1
1
  module ActiveRecord::Tasks
2
2
 
3
3
  DatabaseTasks.module_eval do
4
-
4
+
5
5
  # patched to adapt jdbc configuration
6
6
  def each_current_configuration(environment)
7
7
  environments = [environment]
@@ -31,14 +31,9 @@ module ActiveRecord::Tasks
31
31
  MySQLDatabaseTasks.class_eval do
32
32
 
33
33
  def error_class
34
- @_error_class ||= begin
35
- unless ActiveRecord::JDBCError.instance_methods.include?(:error)
36
- ActiveRecord::JDBCError.send :alias_method, :error, :sql_exception
37
- end
38
- ActiveRecord::JDBCError
39
- end
34
+ ActiveRecord::JDBCError
40
35
  end
41
36
 
42
37
  end
43
-
38
+
44
39
  end
@@ -1,5 +1,5 @@
1
1
  module ArJdbc
2
- VERSION = "1.3.25"
2
+ VERSION = "5.0.pre1"
3
3
  # @deprecated
4
4
  module Version
5
5
  # @private 1.2.x compatibility
@@ -6,8 +6,6 @@ namespace :db do
6
6
  task :mysql do
7
7
  fail "could not create test database: mysql executable not found" unless mysql = which('mysql')
8
8
  load 'test/db/mysql_config.rb' # rescue nil
9
- puts MYSQL_CONFIG.inspect if $VERBOSE
10
- # DROP USER arjdbc@localhost; __ERROR 1396 (HY000): Operation CREATE USER failed__
11
9
  script = sql_script <<-SQL, 'mysql'
12
10
  DROP DATABASE IF EXISTS `#{MYSQL_CONFIG[:database]}`;
13
11
  CREATE USER #{MYSQL_CONFIG[:username]}@localhost;
@@ -17,13 +15,13 @@ GRANT ALL PRIVILEGES ON `test\_%`.* TO #{MYSQL_CONFIG[:username]}@localhost;
17
15
  SET PASSWORD FOR #{MYSQL_CONFIG[:username]}@localhost = PASSWORD('#{MYSQL_CONFIG[:password]}');
18
16
  SQL
19
17
  params = { '-u' => 'root' }
20
- if ENV['DATABASE_YML']; require 'yaml'
21
- params['-p'] = YAML.load(File.new(ENV['DATABASE_YML']))["production"]["password"]
18
+ if ENV['DATABASE_YML']
19
+ require 'yaml'
20
+ password = YAML.load(File.new(ENV['DATABASE_YML']))["production"]["password"]
21
+ params['--password'] = password
22
22
  end
23
- params['-u'] = ENV['MY_USER'] if ENV['MY_USER']
24
- params['-p'] = ENV['MY_PASSWORD'] if ENV['MY_PASSWORD']
25
23
  puts "Creating MySQL (test) database: #{MYSQL_CONFIG[:database]}"
26
- sh "cat #{script.path} | #{mysql} -f #{params.map {|k, v| "#{k}#{v}"}.join(' ')}", :verbose => $VERBOSE # so password is not echoed
24
+ sh "cat #{script.path} | #{mysql} -f #{params.to_a.join(' ')}", :verbose => $VERBOSE # so password is not echoed
27
25
  end
28
26
 
29
27
  desc "Creates the test database for PostgreSQL"
@@ -31,7 +29,6 @@ SQL
31
29
  fail 'could not create test database: psql executable not found' unless psql = which('psql')
32
30
  fail 'could not create test database: missing "postgres" role' unless PostgresHelper.postgres_role?
33
31
  load 'test/db/postgres_config.rb' # rescue nil
34
- puts POSTGRES_CONFIG.inspect if $VERBOSE
35
32
  script = sql_script <<-SQL, 'psql'
36
33
  DROP DATABASE IF EXISTS #{POSTGRES_CONFIG[:database]};
37
34
  DROP USER IF EXISTS #{POSTGRES_CONFIG[:username]};
@@ -244,7 +244,7 @@ public class RubyJdbcConnection extends RubyObject {
244
244
  });
245
245
  }
246
246
 
247
- @JRubyMethod(name = "begin", optional = 1) // optional isolation argument for AR-4.0
247
+ @JRubyMethod(name = {"begin", "transaction"}, optional = 1) // optional isolation argument for AR-4.0
248
248
  public IRubyObject begin(final ThreadContext context, final IRubyObject[] args) {
249
249
  final IRubyObject isolation = args.length > 0 ? args[0] : null;
250
250
  try { // handleException == false so we can handle setTXIsolation
@@ -588,19 +588,25 @@ public class RubyJdbcConnection extends RubyObject {
588
588
  public IRubyObject call(final Connection connection) throws SQLException {
589
589
  Statement statement = null;
590
590
  final String query = sql.convertToString().getUnicodeValue();
591
+
591
592
  try {
592
593
  statement = createStatement(context, connection);
593
594
  if ( doExecute(statement, query) ) {
594
- return mapResults(context, connection, statement, false);
595
+ ResultSet resultSet = statement.getResultSet();
596
+ ColumnData[] columns = extractColumns(context.runtime, connection, resultSet, false);
597
+
598
+ return mapToResult(context, context.runtime, connection, resultSet, columns);
595
599
  } else {
596
- return mapGeneratedKeysOrUpdateCount(context, connection, statement);
600
+ //return context.runtime.newFixnum( statement.getUpdateCount());
601
+ return context.runtime.newEmptyArray();
602
+ //return mapGeneratedKeysOrUpdateCount(context, connection, statement);
597
603
  }
598
- }
599
- catch (final SQLException e) {
604
+ } catch (final SQLException e) {
600
605
  debugErrorSQL(context, query);
601
606
  throw e;
607
+ } finally {
608
+ close(statement);
602
609
  }
603
- finally { close(statement); }
604
610
  }
605
611
  });
606
612
  }
@@ -695,6 +701,14 @@ public class RubyJdbcConnection extends RubyObject {
695
701
  }
696
702
  }
697
703
 
704
+ @JRubyMethod(name = {"execute_prepared_update"}, required = 2)
705
+ public IRubyObject execute_prepared_update(final ThreadContext context,
706
+ final IRubyObject sql, final IRubyObject binds) throws SQLException {
707
+
708
+ final String query = sql.convertToString().getUnicodeValue();
709
+ return executePreparedUpdate(context, query, (List) binds, false);
710
+ }
711
+
698
712
  /**
699
713
  * @param context
700
714
  * @param query
@@ -879,7 +893,6 @@ public class RubyJdbcConnection extends RubyObject {
879
893
  * @param sql
880
894
  * @return raw query result as a name => value Hash (unless block given)
881
895
  * @throws SQLException
882
- * @see #execute_query(ThreadContext, IRubyObject[], Block)
883
896
  */
884
897
  @JRubyMethod(name = "execute_query", required = 1)
885
898
  public IRubyObject execute_query(final ThreadContext context,
@@ -895,7 +908,6 @@ public class RubyJdbcConnection extends RubyObject {
895
908
  * @return and <code>ActiveRecord::Result</code>
896
909
  * @throws SQLException
897
910
  *
898
- * @see #execute_query(ThreadContext, IRubyObject, IRubyObject, Block)
899
911
  */
900
912
  @JRubyMethod(name = "execute_query", required = 2, optional = 1)
901
913
  // @JRubyMethod(name = "execute_query", required = 1, optional = 2)
@@ -930,6 +942,18 @@ public class RubyJdbcConnection extends RubyObject {
930
942
  }
931
943
  }
932
944
 
945
+ @JRubyMethod(name = "execute_prepared_query")
946
+ public IRubyObject execute_prepared_query(final ThreadContext context,
947
+ final IRubyObject sql, final IRubyObject binds) throws SQLException {
948
+ final String query = sql.convertToString().getUnicodeValue();
949
+
950
+ if (binds == null || !(binds instanceof RubyArray)) {
951
+ throw context.runtime.newArgumentError("binds exptected to an instance of Array");
952
+ }
953
+
954
+ return executePreparedQuery(context, query, (List) binds, 0);
955
+ }
956
+
933
957
  /**
934
958
  * NOTE: This methods behavior changed in AR-JDBC 1.3 the old behavior is
935
959
  * achievable using {@link #executeQueryRaw(ThreadContext, String, int, Block)}.
@@ -939,25 +963,59 @@ public class RubyJdbcConnection extends RubyObject {
939
963
  * @param maxRows
940
964
  * @return AR (mapped) query result
941
965
  *
942
- * @see #execute_query(ThreadContext, IRubyObject)
943
- * @see #execute_query(ThreadContext, IRubyObject, IRubyObject)
944
- * @see #mapToResult(ThreadContext, Ruby, DatabaseMetaData, ResultSet, RubyJdbcConnection.ColumnData[])
945
966
  */
946
967
  protected IRubyObject executeQuery(final ThreadContext context, final String query, final int maxRows) {
947
968
  return withConnection(context, new Callable<IRubyObject>() {
948
969
  public IRubyObject call(final Connection connection) throws SQLException {
949
- Statement statement = null; ResultSet resultSet = null;
970
+ Statement statement = null;
971
+ ResultSet resultSet = null;
972
+
950
973
  try {
951
974
  statement = createStatement(context, connection);
952
975
  statement.setMaxRows(maxRows); // zero means there is no limit
953
976
  resultSet = statement.executeQuery(query);
954
977
  return mapQueryResult(context, connection, resultSet);
978
+ } catch (final SQLException e) {
979
+ debugErrorSQL(context, query);
980
+ throw e;
981
+ } finally {
982
+ close(resultSet);
983
+ close(statement);
955
984
  }
956
- catch (final SQLException e) {
985
+ }
986
+ });
987
+ }
988
+
989
+ @JRubyMethod
990
+ public IRubyObject execute_prepared(final ThreadContext context, final IRubyObject sql, final IRubyObject binds) {
991
+ return withConnection(context, new Callable<IRubyObject>() {
992
+ public IRubyObject call(final Connection connection) throws SQLException {
993
+ PreparedStatement statement = null;
994
+ final String query = sql.convertToString().getUnicodeValue();
995
+
996
+ // FIXME: array type check for binds
997
+
998
+ try {
999
+ statement = connection.prepareStatement(query);
1000
+ setStatementParameters(context, connection, statement, (List) binds);
1001
+ boolean hasResultSet = statement.execute();
1002
+
1003
+ if (hasResultSet) {
1004
+ ResultSet resultSet = statement.getResultSet();
1005
+ ColumnData[] columns = extractColumns(context.runtime, connection, resultSet, false);
1006
+
1007
+ return mapToResult(context, context.runtime, connection, resultSet, columns);
1008
+ } else {
1009
+ return context.runtime.newEmptyArray();
1010
+ //return context.runtime.newFixnum( statement.getUpdateCount());
1011
+ // return mapGeneratedKeysOrUpdateCount(context, connection, statement);
1012
+ }
1013
+ } catch (final SQLException e) {
957
1014
  debugErrorSQL(context, query);
958
1015
  throw e;
1016
+ } finally {
1017
+ close(statement);
959
1018
  }
960
- finally { close(resultSet); close(statement); }
961
1019
  }
962
1020
  });
963
1021
  }
@@ -1473,8 +1531,8 @@ public class RubyJdbcConnection extends RubyObject {
1473
1531
  final IRubyObject record, final IRubyObject column, final IRubyObject value)
1474
1532
  throws SQLException {
1475
1533
 
1476
- // column.type == :binary
1477
- final boolean binary = column.callMethod(context, "type").toString().equals("binary");
1534
+ final boolean binary = // column.type == :binary
1535
+ column.callMethod(context, "type").toString() == (Object) "binary";
1478
1536
 
1479
1537
  final IRubyObject recordClass = record.callMethod(context, "class");
1480
1538
  final IRubyObject adapter = recordClass.callMethod(context, "connection");
@@ -1671,7 +1729,7 @@ public class RubyJdbcConnection extends RubyObject {
1671
1729
 
1672
1730
  /**
1673
1731
  * @deprecated this method is no longer used, instead consider overriding
1674
- * {@link #mapToResult(ThreadContext, Ruby, DatabaseMetaData, ResultSet, RubyJdbcConnection.ColumnData[])}
1732
+ * {@link #mapToResult(ThreadContext, Ruby, Connection, ResultSet, RubyJdbcConnection.ColumnData[])}
1675
1733
  */
1676
1734
  @Deprecated
1677
1735
  protected void populateFromResultSet(
@@ -1688,7 +1746,7 @@ public class RubyJdbcConnection extends RubyObject {
1688
1746
  * Maps a query result into a <code>ActiveRecord</code> result.
1689
1747
  * @param context
1690
1748
  * @param runtime
1691
- * @param metaData
1749
+ * @param connection
1692
1750
  * @param resultSet
1693
1751
  * @param columns
1694
1752
  * @return since 3.1 expected to return a <code>ActiveRecord::Result</code>
@@ -2163,20 +2221,26 @@ public class RubyJdbcConnection extends RubyObject {
2163
2221
  }
2164
2222
  }
2165
2223
 
2166
- protected void setStatementParameter(final ThreadContext context,
2167
- final Ruby runtime, final Connection connection,
2168
- final PreparedStatement statement, final int index,
2169
- final Object rawValue, final IRubyObject column) throws SQLException {
2170
- final Object value;
2224
+ // So far we have only examined the needs to Sqlite3 but for that adapter (and it is old JDBC adapter)
2225
+ // we can pass all tests but binary column types with just the supplied value. So we will leave it
2226
+ // this way until we upgrade Sqlite adapter and get some more databases supported.
2227
+ protected int typeHack(ThreadContext context, IRubyObject column, Object value) throws SQLException {
2228
+ if (column != null) {
2229
+ String columnType = column.asString().toString();
2171
2230
 
2172
- if ( isAr42(column) ) {
2173
- final IRubyObject castType = column.callMethod(context, "cast_type");
2174
- value = castType.callMethod(context, "type_cast_for_database", (IRubyObject) rawValue);
2175
- } else {
2176
- value = rawValue;
2231
+ if (columnType.equals("binary")) return jdbcTypeFor(context, context.runtime, column, value);
2232
+
2233
+ column = null;
2177
2234
  }
2178
2235
 
2179
- final int type = jdbcTypeFor(context, runtime, column, value);
2236
+ return jdbcTypeFor(context, context.runtime, column, value);
2237
+ }
2238
+
2239
+ protected void setStatementParameter(final ThreadContext context,
2240
+ final Ruby runtime, final Connection connection,
2241
+ final PreparedStatement statement, final int index,
2242
+ final Object value, IRubyObject column) throws SQLException {
2243
+ int type = typeHack(context, column, value);
2180
2244
 
2181
2245
  switch (type) {
2182
2246
  case Types.TINYINT:
@@ -2218,7 +2282,7 @@ public class RubyJdbcConnection extends RubyObject {
2218
2282
  setXmlParameter(context, connection, statement, index, value, column, type);
2219
2283
  break;
2220
2284
  case Types.ARRAY:
2221
- setArrayParameter(context, connection, statement, index, rawValue, column, type);
2285
+ setArrayParameter(context, connection, statement, index, value, column, type);
2222
2286
  break;
2223
2287
  case Types.JAVA_OBJECT:
2224
2288
  case Types.OTHER:
@@ -2878,10 +2942,11 @@ public class RubyJdbcConnection extends RubyObject {
2878
2942
  }
2879
2943
  else { // should be a RubyString
2880
2944
  final ByteList blob = value.asString().getByteList();
2881
- statement.setBinaryStream(index,
2882
- new ByteArrayInputStream(blob.unsafeBytes(), blob.getBegin(), blob.getRealSize()),
2883
- blob.getRealSize() // length
2884
- );
2945
+ statement.setBytes(index, blob.bytes());
2946
+ //statement.setBinaryStream(index,
2947
+ // new ByteArrayInputStream(blob.unsafeBytes(), blob.getBegin(), blob.getRealSize()),
2948
+ // blob.getRealSize() // length
2949
+ // );
2885
2950
  // JDBC 4.0 :
2886
2951
  //statement.setBlob(index,
2887
2952
  // new ByteArrayInputStream(bytes.unsafeBytes(), bytes.getBegin(), bytes.getRealSize())
@@ -3117,7 +3182,7 @@ public class RubyJdbcConnection extends RubyObject {
3117
3182
  /**
3118
3183
  * Create a string which represents a SQL type usable by Rails from the
3119
3184
  * resultSet column meta-data
3120
- * @param resultSet.
3185
+ * @param resultSet
3121
3186
  */
3122
3187
  protected String typeFromResultSet(final ResultSet resultSet) throws SQLException {
3123
3188
  final int precision = intFromResultSet(resultSet, COLUMN_SIZE);
@@ -3432,7 +3497,7 @@ public class RubyJdbcConnection extends RubyObject {
3432
3497
  /**
3433
3498
  * Extract columns from result set.
3434
3499
  * @param runtime
3435
- * @param metaData
3500
+ * @param connection
3436
3501
  * @param resultSet
3437
3502
  * @param downCase
3438
3503
  * @return columns data
@@ -3452,7 +3517,7 @@ public class RubyJdbcConnection extends RubyObject {
3452
3517
  }
3453
3518
 
3454
3519
  /**
3455
- * @deprecated renamed and parameterized to {@link #withConnection(ThreadContext, SQLBlock)}
3520
+ * @deprecated renamed and parameterized to {@link #withConnection(ThreadContext, boolean, Callable)}
3456
3521
  */
3457
3522
  @Deprecated
3458
3523
  @SuppressWarnings("unchecked")
@@ -54,7 +54,6 @@ import org.jruby.exceptions.RaiseException;
54
54
  import org.jruby.runtime.ObjectAllocator;
55
55
  import org.jruby.runtime.ThreadContext;
56
56
  import org.jruby.runtime.builtin.IRubyObject;
57
- import org.jruby.util.ByteList;
58
57
 
59
58
  /**
60
59
  *
@@ -103,12 +102,6 @@ public class MySQLRubyJdbcConnection extends RubyJdbcConnection {
103
102
  final int value = resultSet.getInt(column);
104
103
  return resultSet.wasNull() ? runtime.getNil() : runtime.newFixnum(value);
105
104
  }
106
- else if ( type == Types.BINARY || type == Types.VARBINARY) {
107
- final byte[] bytes = resultSet.getBytes(column);
108
- if ( bytes == null || resultSet.wasNull() ) return runtime.getNil();
109
- final ByteList byteList = new ByteList(bytes, false);
110
- return new RubyString(runtime, runtime.getString(), byteList);
111
- }
112
105
  return super.jdbcToRuby(context, runtime, column, type, resultSet);
113
106
  }
114
107
 
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-jdbc-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.25
4
+ version: 5.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sieger, Ola Bini, Karol Bucek and JRuby contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-22 00:00:00.000000000 Z
11
+ date: 2016-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: activerecord
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
17
18
  - !ruby/object:Gem::Version
18
19
  version: '2.2'
19
- - - "<"
20
- - !ruby/object:Gem::Version
21
- version: '5.0'
22
- name: activerecord
23
- prerelease: false
24
- type: :runtime
25
20
  version_requirements: !ruby/object:Gem::Requirement
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
24
  version: '2.2'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5.0'
25
+ prerelease: false
26
+ type: :runtime
33
27
  description: 'AR-JDBC is a database adapter for Rails'' ActiveRecord component designed
34
28
  to be used with JRuby built upon Java''s JDBC API for database access. Provides
35
29
  (ActiveRecord) built-in adapters: MySQL, PostgreSQL and SQLite3 as well as adapters
@@ -85,6 +79,7 @@ files:
85
79
  - lib/arel/visitors/sql_server.rb
86
80
  - lib/arel/visitors/sql_server/ng42.rb
87
81
  - lib/arjdbc.rb
82
+ - lib/arjdbc/common_jdbc_methods.rb
88
83
  - lib/arjdbc/db2.rb
89
84
  - lib/arjdbc/db2/adapter.rb
90
85
  - lib/arjdbc/db2/as400.rb
@@ -114,7 +109,6 @@ files:
114
109
  - lib/arjdbc/jdbc/adapter.rb
115
110
  - lib/arjdbc/jdbc/adapter_java.jar
116
111
  - lib/arjdbc/jdbc/adapter_require.rb
117
- - lib/arjdbc/jdbc/arel_support.rb
118
112
  - lib/arjdbc/jdbc/base_ext.rb
119
113
  - lib/arjdbc/jdbc/callbacks.rb
120
114
  - lib/arjdbc/jdbc/column.rb
@@ -134,7 +128,6 @@ files:
134
128
  - lib/arjdbc/mimer/adapter.rb
135
129
  - lib/arjdbc/mssql.rb
136
130
  - lib/arjdbc/mssql/adapter.rb
137
- - lib/arjdbc/mssql/attributes_for_update.rb
138
131
  - lib/arjdbc/mssql/column.rb
139
132
  - lib/arjdbc/mssql/connection_methods.rb
140
133
  - lib/arjdbc/mssql/explain_support.rb
@@ -170,7 +163,6 @@ files:
170
163
  - lib/arjdbc/sqlite3.rb
171
164
  - lib/arjdbc/sqlite3/adapter.rb
172
165
  - lib/arjdbc/sqlite3/connection_methods.rb
173
- - lib/arjdbc/sqlite3/explain_support.rb
174
166
  - lib/arjdbc/sybase.rb
175
167
  - lib/arjdbc/sybase/adapter.rb
176
168
  - lib/arjdbc/tasks.rb
@@ -251,13 +243,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
251
243
  version: '0'
252
244
  required_rubygems_version: !ruby/object:Gem::Requirement
253
245
  requirements:
254
- - - ">="
246
+ - - ">"
255
247
  - !ruby/object:Gem::Version
256
- version: '0'
248
+ version: 1.3.1
257
249
  requirements: []
258
250
  rubyforge_project: jruby-extras
259
- rubygems_version: 2.6.12
251
+ rubygems_version: 2.6.8
260
252
  signing_key:
261
253
  specification_version: 4
262
254
  summary: JDBC adapter for ActiveRecord, for use within JRuby on Rails.
263
255
  test_files: []
256
+ has_rdoc: