activerecord-jdbc-adapter 72.1-java → 81.0.pre1-java

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +129 -24
  3. data/.mise.toml +3 -0
  4. data/Gemfile +42 -47
  5. data/README.md +4 -2
  6. data/RUNNING_TESTS.md +9 -1
  7. data/Rakefile +63 -15
  8. data/activerecord-jdbc-adapter.gemspec +2 -2
  9. data/lib/arjdbc/abstract/core.rb +1 -1
  10. data/lib/arjdbc/abstract/database_statements.rb +22 -7
  11. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  12. data/lib/arjdbc/mysql/adapter_hash_config.rb +1 -2
  13. data/lib/arjdbc/postgresql/adapter.rb +4 -1
  14. data/lib/arjdbc/postgresql/schema_statements.rb +17 -0
  15. data/lib/arjdbc/sqlite3/adapter.rb +61 -11
  16. data/lib/arjdbc/sqlite3/column.rb +1 -1
  17. data/lib/arjdbc/version.rb +1 -1
  18. data/pom.xml +3 -3
  19. data/rakelib/db.rake +5 -3
  20. data/rakelib/rails.rake +0 -1
  21. data/src/java/arjdbc/ArJdbcModule.java +13 -10
  22. data/src/java/arjdbc/db2/DB2Module.java +4 -4
  23. data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +8 -9
  24. data/src/java/arjdbc/h2/H2Module.java +2 -1
  25. data/src/java/arjdbc/h2/H2RubyJdbcConnection.java +8 -7
  26. data/src/java/arjdbc/hsqldb/HSQLDBModule.java +5 -6
  27. data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +4 -3
  28. data/src/java/arjdbc/jdbc/DriverWrapper.java +13 -8
  29. data/src/java/arjdbc/jdbc/JdbcResult.java +10 -7
  30. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +168 -154
  31. data/src/java/arjdbc/mssql/MSSQLModule.java +3 -3
  32. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +13 -9
  33. data/src/java/arjdbc/mysql/MySQLModule.java +3 -3
  34. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +30 -24
  35. data/src/java/arjdbc/oracle/OracleModule.java +2 -3
  36. data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +22 -18
  37. data/src/java/arjdbc/postgresql/PostgreSQLModule.java +2 -3
  38. data/src/java/arjdbc/postgresql/PostgreSQLResult.java +24 -12
  39. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +16 -12
  40. data/src/java/arjdbc/sqlite3/SQLite3Module.java +2 -3
  41. data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +78 -29
  42. data/src/java/arjdbc/util/DateTimeUtils.java +7 -5
  43. data/src/java/arjdbc/util/ObjectSupport.java +2 -2
  44. data/src/java/arjdbc/util/StringHelper.java +1 -1
  45. metadata +6 -6
  46. data/.travis.yml +0 -128
@@ -14,6 +14,10 @@ import org.jruby.runtime.Block;
14
14
  import org.jruby.runtime.ThreadContext;
15
15
  import org.jruby.runtime.builtin.IRubyObject;
16
16
 
17
+ import static org.jruby.api.Create.newArray;
18
+ import static org.jruby.api.Create.newArrayNoCopy;
19
+ import static org.jruby.api.Create.newHash;
20
+
17
21
  /**
18
22
  * This is a base Result class to be returned as the "raw" result.
19
23
  * It should be overridden for specific adapters to manage type maps
@@ -31,7 +35,7 @@ public class JdbcResult extends RubyObject {
31
35
  protected JdbcResult(ThreadContext context, RubyClass clazz, RubyJdbcConnection connection, ResultSet resultSet) throws SQLException {
32
36
  super(context.runtime, clazz);
33
37
 
34
- values = context.runtime.newArray();
38
+ values = newArray(context);
35
39
  this.connection = connection;
36
40
 
37
41
  final ResultSetMetaData resultMetaData = resultSet.getMetaData();
@@ -86,7 +90,7 @@ public class JdbcResult extends RubyObject {
86
90
 
87
91
  for (int i = 0; i < tuples.length; i++) {
88
92
  RubyArray currentRow = (RubyArray) values.eltInternal(i);
89
- RubyHash hash = RubyHash.newHash(context.runtime);
93
+ RubyHash hash = newHash(context);
90
94
  for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {
91
95
  hash.fastASet(columnNames[columnIndex], currentRow.eltInternal(columnIndex));
92
96
  }
@@ -101,17 +105,16 @@ public class JdbcResult extends RubyObject {
101
105
  * @throws SQLException throws!
102
106
  */
103
107
  private void processResultSet(final ThreadContext context, final ResultSet resultSet) throws SQLException {
104
- Ruby runtime = context.runtime;
105
108
  int columnCount = columnNames.length;
106
109
 
107
110
  while (resultSet.next()) {
108
111
  final IRubyObject[] row = new IRubyObject[columnCount];
109
112
 
110
113
  for (int i = 0; i < columnCount; i++) {
111
- row[i] = connection.jdbcToRuby(context, runtime, i + 1, columnTypes[i], resultSet); // Result Set is 1 based
114
+ row[i] = connection.jdbcToRuby(context, context.runtime, i + 1, columnTypes[i], resultSet); // Result Set is 1 based
112
115
  }
113
116
 
114
- values.append(RubyArray.newArrayNoCopy(context.runtime, row));
117
+ values.append(context, newArrayNoCopy(context, row));
115
118
  }
116
119
  }
117
120
 
@@ -122,9 +125,9 @@ public class JdbcResult extends RubyObject {
122
125
  * @throws SQLException can be caused by postgres generating its type map
123
126
  */
124
127
  public IRubyObject toARResult(final ThreadContext context) throws SQLException {
125
- final RubyClass Result = RubyJdbcConnection.getResult(context.runtime);
128
+ final RubyClass Result = RubyJdbcConnection.getResult(context);
126
129
  // FIXME: Is this broken? no copy of an array AR::Result can modify? or should it be frozen?
127
- final RubyArray rubyColumnNames = RubyArray.newArrayNoCopy(context.runtime, getColumnNames());
130
+ final RubyArray rubyColumnNames = newArrayNoCopy(context, getColumnNames());
128
131
  return Result.newInstance(context, rubyColumnNames, values, columnTypeMap(context), Block.NULL_BLOCK);
129
132
  }
130
133
  }