activerecord-jdbc-alt-adapter 51.7.0-java → 52.2.0-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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -3
  3. data/.travis.yml +24 -28
  4. data/Gemfile +2 -3
  5. data/README.md +27 -19
  6. data/Rakefile +4 -30
  7. data/activerecord-jdbc-adapter.gemspec +2 -2
  8. data/activerecord-jdbc-alt-adapter.gemspec +4 -4
  9. data/lib/arel/visitors/sqlserver.rb +2 -1
  10. data/lib/arjdbc/abstract/core.rb +12 -2
  11. data/lib/arjdbc/abstract/database_statements.rb +22 -8
  12. data/lib/arjdbc/abstract/statement_cache.rb +1 -0
  13. data/lib/arjdbc/db2/adapter.rb +77 -8
  14. data/lib/arjdbc/db2/as400.rb +12 -0
  15. data/lib/arjdbc/db2/column.rb +3 -0
  16. data/lib/arjdbc/db2/connection_methods.rb +4 -0
  17. data/lib/arjdbc/jdbc/adapter.rb +4 -6
  18. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  19. data/lib/arjdbc/jdbc/column.rb +14 -6
  20. data/lib/arjdbc/jdbc.rb +7 -0
  21. data/lib/arjdbc/mssql/adapter.rb +20 -32
  22. data/lib/arjdbc/mssql/connection_methods.rb +1 -5
  23. data/lib/arjdbc/mssql/database_limits.rb +29 -0
  24. data/lib/arjdbc/mssql/database_statements.rb +41 -1
  25. data/lib/arjdbc/mssql/explain_support.rb +6 -1
  26. data/lib/arjdbc/mssql/quoting.rb +9 -2
  27. data/lib/arjdbc/mssql/schema_creation.rb +2 -1
  28. data/lib/arjdbc/mssql/schema_dumper.rb +1 -1
  29. data/lib/arjdbc/mssql/schema_statements.rb +11 -3
  30. data/lib/arjdbc/mssql/transaction.rb +3 -3
  31. data/lib/arjdbc/mssql.rb +1 -1
  32. data/lib/arjdbc/mysql/adapter.rb +20 -4
  33. data/lib/arjdbc/mysql/connection_methods.rb +7 -13
  34. data/lib/arjdbc/postgresql/adapter.rb +23 -20
  35. data/lib/arjdbc/postgresql/column.rb +3 -6
  36. data/lib/arjdbc/postgresql/connection_methods.rb +1 -3
  37. data/lib/arjdbc/postgresql/oid_types.rb +6 -11
  38. data/lib/arjdbc/sqlite3/adapter.rb +86 -91
  39. data/lib/arjdbc/sqlite3/connection_methods.rb +0 -1
  40. data/lib/arjdbc/tasks/database_tasks.rb +1 -0
  41. data/lib/arjdbc/tasks/sqlite_database_tasks_patch.rb +17 -0
  42. data/lib/arjdbc/version.rb +1 -1
  43. data/rakelib/01-tomcat.rake +2 -2
  44. data/rakelib/02-test.rake +2 -0
  45. data/rakelib/rails.rake +1 -1
  46. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +10 -65
  47. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +38 -282
  48. data/src/java/arjdbc/postgresql/PostgreSQLResult.java +69 -4
  49. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +69 -13
  50. data/src/java/arjdbc/util/DateTimeUtils.java +17 -28
  51. data/src/java/arjdbc/util/PG.java +8 -0
  52. metadata +15 -12
  53. data/lib/activerecord-jdbc-alt-adapter.rb +0 -1
@@ -51,9 +51,6 @@ import static arjdbc.util.StringHelper.decByte;
51
51
  * @author kares
52
52
  */
53
53
  public abstract class DateTimeUtils {
54
-
55
- private static final GJChronology CHRONO_ITALY_UTC = GJChronology.getInstance(DateTimeZone.UTC);
56
-
57
54
  public static RubyTime toTime(final ThreadContext context, final IRubyObject value) {
58
55
  if (!(value instanceof RubyTime)) { // unlikely
59
56
  return (RubyTime) TypeConverter.convertToTypeWithCheck(value, context.runtime.getTime(), "to_time");
@@ -221,11 +218,9 @@ public abstract class DateTimeUtils {
221
218
  final int hours = time.getHours();
222
219
  final int minutes = time.getMinutes();
223
220
  final int seconds = time.getSeconds();
224
- int nanos = time.getNanos(); // max 999-999-999
225
- final int millis = nanos / 1000000;
226
- nanos = nanos % 1000000;
221
+ final int nanos = time.getNanos(); // max 999-999-999
227
222
 
228
- DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, millis, defaultZone);
223
+ DateTime dateTime = new DateTime(2000, 1, 1, hours, minutes, seconds, defaultZone);
229
224
  return RubyTime.newTime(context.runtime, dateTime, nanos);
230
225
  }
231
226
 
@@ -238,11 +233,9 @@ public abstract class DateTimeUtils {
238
233
  final int hours = timestamp.getHours();
239
234
  final int minutes = timestamp.getMinutes();
240
235
  final int seconds = timestamp.getSeconds();
241
- int nanos = timestamp.getNanos(); // max 999-999-999
242
- final int millis = nanos / 1000000;
243
- nanos = nanos % 1000000;
236
+ final int nanos = timestamp.getNanos(); // max 999-999-999
244
237
 
245
- DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, millis, defaultZone);
238
+ DateTime dateTime = new DateTime(year, month, day, hours, minutes, seconds, 0, defaultZone);
246
239
  return RubyTime.newTime(context.runtime, dateTime, nanos);
247
240
  }
248
241
 
@@ -267,15 +260,6 @@ public abstract class DateTimeUtils {
267
260
  return newDate(context, year, month, day, ISOChronology.getInstance(zone));
268
261
  }
269
262
 
270
- @SuppressWarnings("deprecation")
271
- public static IRubyObject newDate(final ThreadContext context, final Date date) {
272
- final int year = date.getYear() + 1900;
273
- final int month = date.getMonth() + 1;
274
- final int day = date.getDate();
275
-
276
- return newDate(context, year, month, day, CHRONO_ITALY_UTC);
277
- }
278
-
279
263
  // @Deprecated
280
264
  public static Timestamp convertToTimestamp(final RubyFloat value) {
281
265
  final Timestamp timestamp = new Timestamp(value.getLongValue() * 1000); // millis
@@ -333,19 +317,24 @@ public abstract class DateTimeUtils {
333
317
  // month
334
318
  end = nonDigitIndex(str, start, len);
335
319
  month = extractIntValue(str, start, end);
336
-
337
- //sep = str.charAt(end);
338
- //if ( sep != '-' ) {
339
- // throw new NumberFormatException("expected date to be dash-separated, got '" + sep + "'");
340
- //}
341
-
342
320
  start = end + 1; // Skip '-'
343
321
 
344
322
  // day of month
345
323
  end = nonDigitIndex(str, start, len);
346
324
  day = extractIntValue(str, start, end);
347
325
 
348
- return newDate(context, year, month, day, ISOChronology.getInstance(defaultZone));
326
+ start = end + 1; // Skip possible space
327
+ boolean bcEra = false;
328
+ if ( start + 1 < len ) {
329
+ final char e1 = str.charAt(start);
330
+ if ( e1 == 'B' && str.charAt(start + 1) == 'C' ) bcEra = true;
331
+ }
332
+
333
+ if ( bcEra ) year = -1 * year; // no + 1 since we use GJChronology
334
+
335
+ DateTime dateTime = new DateTime(year, month, day, 0, 0, 0, GJChronology.getInstance(defaultZone));
336
+ final Ruby runtime = context.runtime;
337
+ return runtime.getClass("Date").newInstance(context, Java.getInstance(runtime, dateTime), Block.NULL_BLOCK);
349
338
  }
350
339
 
351
340
  public static IRubyObject parseTime(final ThreadContext context, final CharSequence str, final DateTimeZone defaultZone)
@@ -570,7 +559,7 @@ public abstract class DateTimeUtils {
570
559
  }
571
560
 
572
561
  private static IRubyObject newDate(final ThreadContext context, final int year, final int month, final int day,
573
- final Chronology chronology) {
562
+ final ISOChronology chronology) {
574
563
  // NOTE: JRuby really needs a native date.rb until than its a bit costly going from ...
575
564
  // java.sql.Date -> allocating a DateTime proxy, help a bit by shooting at the internals
576
565
  //
@@ -0,0 +1,8 @@
1
+ package arjdbc.util;
2
+
3
+ /**
4
+ * Marker interface used to point out it is used for PG emulation support (used by mini_sql and
5
+ * potentially other libraries).
6
+ */
7
+ public @interface PG {
8
+ }
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-jdbc-alt-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 51.7.0
4
+ version: 52.2.0
5
5
  platform: java
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: 2021-01-17 00:00:00.000000000 Z
11
+ date: 2019-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 5.1.0
18
+ version: 5.2.0
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 5.1.7
21
+ version: 5.2.3
22
22
  name: activerecord
23
- type: :runtime
24
23
  prerelease: false
24
+ type: :runtime
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 5.1.0
29
+ version: 5.2.0
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.1.7
33
- description: 'Fork of the ActiveRecord JDBC adapter with support for SQL Server and
34
- Azure SQL, for more information and help look at the README file in the github repository.
32
+ version: 5.2.3
33
+ description: 'Fork of the ActiveRecord JDBC adapter with support for SQL Server/Azure
34
+ SQL, for more information and help look at the README file in the github repository.
35
35
  AR-JDBC is a database adapter for Rails'' ActiveRecord component designed to be
36
36
  used with JRuby built upon Java''s JDBC API for database access. Provides (ActiveRecord)
37
37
  built-in adapters: MySQL, PostgreSQL and SQLite3 as well as adapters for popular
38
38
  databases such as Oracle, SQLServer, DB2, FireBird and even Java (embed) databases:
39
39
  Derby, HSQLDB and H2. It allows to connect to virtually any JDBC-compliant database
40
- with your JRuby on Rails application. This fork supports SQL Server/Azure SQL.'
40
+ with your JRuby on Rails application.'
41
41
  email:
42
42
  - nick@nicksieger.com
43
43
  - ola.bini@gmail.com
@@ -76,7 +76,6 @@ files:
76
76
  - lib/active_record/connection_adapters/sqlite3_adapter.rb
77
77
  - lib/active_record/connection_adapters/sqlserver_adapter.rb
78
78
  - lib/activerecord-jdbc-adapter.rb
79
- - lib/activerecord-jdbc-alt-adapter.rb
80
79
  - lib/arel/visitors/compat.rb
81
80
  - lib/arel/visitors/db2.rb
82
81
  - lib/arel/visitors/derby.rb
@@ -139,6 +138,7 @@ files:
139
138
  - lib/arjdbc/mssql/adapter.rb
140
139
  - lib/arjdbc/mssql/column.rb
141
140
  - lib/arjdbc/mssql/connection_methods.rb
141
+ - lib/arjdbc/mssql/database_limits.rb
142
142
  - lib/arjdbc/mssql/database_statements.rb
143
143
  - lib/arjdbc/mssql/errors.rb
144
144
  - lib/arjdbc/mssql/explain_support.rb
@@ -190,6 +190,7 @@ files:
190
190
  - lib/arjdbc/tasks/hsqldb_database_tasks.rb
191
191
  - lib/arjdbc/tasks/jdbc_database_tasks.rb
192
192
  - lib/arjdbc/tasks/mssql_database_tasks.rb
193
+ - lib/arjdbc/tasks/sqlite_database_tasks_patch.rb
193
194
  - lib/arjdbc/util/quoted_cache.rb
194
195
  - lib/arjdbc/util/serialized_attributes.rb
195
196
  - lib/arjdbc/util/table_copier.rb
@@ -243,6 +244,7 @@ files:
243
244
  - src/java/arjdbc/util/CallResultSet.java
244
245
  - src/java/arjdbc/util/DateTimeUtils.java
245
246
  - src/java/arjdbc/util/ObjectSupport.java
247
+ - src/java/arjdbc/util/PG.java
246
248
  - src/java/arjdbc/util/QuotingUtils.java
247
249
  - src/java/arjdbc/util/StringCache.java
248
250
  - src/java/arjdbc/util/StringHelper.java
@@ -270,7 +272,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
272
  - !ruby/object:Gem::Version
271
273
  version: '0'
272
274
  requirements: []
273
- rubygems_version: 3.0.6
275
+ rubyforge_project:
276
+ rubygems_version: 2.7.6
274
277
  signing_key:
275
278
  specification_version: 4
276
279
  summary: ActiveRecord JDBC adapter, for use within JRuby on Rails and SQL Server
@@ -1 +0,0 @@
1
- require 'arjdbc'