activerecord-jdbc-adapter 51.8-java → 52.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -2
  3. data/.travis.yml +26 -51
  4. data/README.md +9 -11
  5. data/Rakefile +19 -74
  6. data/activerecord-jdbc-adapter.gemspec +2 -2
  7. data/lib/active_record/connection_adapters/mssql_adapter.rb +1 -0
  8. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
  9. data/lib/arjdbc/abstract/core.rb +2 -12
  10. data/lib/arjdbc/abstract/database_statements.rb +24 -10
  11. data/lib/arjdbc/abstract/statement_cache.rb +4 -4
  12. data/lib/arjdbc/db2/adapter.rb +52 -2
  13. data/lib/arjdbc/jdbc.rb +4 -0
  14. data/lib/arjdbc/jdbc/column.rb +11 -5
  15. data/lib/arjdbc/jdbc/connection_methods.rb +9 -2
  16. data/lib/arjdbc/jdbc/jdbc.rake +4 -0
  17. data/lib/arjdbc/mssql.rb +7 -0
  18. data/lib/arjdbc/mssql/adapter.rb +804 -0
  19. data/lib/arjdbc/mssql/column.rb +200 -0
  20. data/lib/arjdbc/mssql/connection_methods.rb +79 -0
  21. data/lib/arjdbc/mssql/explain_support.rb +99 -0
  22. data/lib/arjdbc/mssql/limit_helpers.rb +231 -0
  23. data/lib/arjdbc/mssql/lock_methods.rb +77 -0
  24. data/lib/arjdbc/mssql/types.rb +343 -0
  25. data/lib/arjdbc/mssql/utils.rb +82 -0
  26. data/lib/arjdbc/mysql/adapter.rb +22 -14
  27. data/lib/arjdbc/mysql/connection_methods.rb +9 -18
  28. data/lib/arjdbc/postgresql/adapter.rb +102 -75
  29. data/lib/arjdbc/postgresql/column.rb +3 -6
  30. data/lib/arjdbc/postgresql/connection_methods.rb +3 -12
  31. data/lib/arjdbc/postgresql/oid_types.rb +12 -86
  32. data/lib/arjdbc/sqlite3/adapter.rb +88 -92
  33. data/lib/arjdbc/sqlite3/connection_methods.rb +0 -1
  34. data/lib/arjdbc/tasks/database_tasks.rb +36 -16
  35. data/lib/arjdbc/tasks/databases.rake +75 -32
  36. data/lib/arjdbc/tasks/databases3.rake +215 -0
  37. data/lib/arjdbc/tasks/databases4.rake +39 -0
  38. data/lib/arjdbc/version.rb +1 -1
  39. data/rakelib/01-tomcat.rake +2 -2
  40. data/rakelib/02-test.rake +3 -0
  41. data/rakelib/compile.rake +70 -0
  42. data/rakelib/db.rake +7 -21
  43. data/rakelib/rails.rake +4 -5
  44. data/src/java/arjdbc/ArJdbcModule.java +15 -5
  45. data/src/java/arjdbc/derby/DerbyRubyJdbcConnection.java +2 -2
  46. data/src/java/arjdbc/jdbc/ConnectionFactory.java +87 -0
  47. data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +1 -0
  48. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +29 -113
  49. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +14 -310
  50. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +2 -2
  51. data/src/java/arjdbc/postgresql/PgResultSetMetaDataWrapper.java +23 -0
  52. data/src/java/arjdbc/postgresql/PostgreSQLResult.java +13 -21
  53. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +50 -44
  54. data/src/java/arjdbc/util/DateTimeUtils.java +5 -141
  55. data/src/java/arjdbc/util/QuotingUtils.java +7 -6
  56. metadata +26 -11
  57. data/src/java/arjdbc/jdbc/RubyConnectionFactory.java +0 -61
  58. data/src/java/arjdbc/postgresql/PgDateTimeUtils.java +0 -52
@@ -1,61 +0,0 @@
1
- /***** BEGIN LICENSE BLOCK *****
2
- * Copyright (c) 2012-2014 Karol Bucek <self@kares.org>
3
- * Copyright (c) 2006-2010 Nick Sieger <nick@nicksieger.com>
4
- * Copyright (c) 2006-2007 Ola Bini <ola.bini@gmail.com>
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining
7
- * a copy of this software and associated documentation files (the
8
- * "Software"), to deal in the Software without restriction, including
9
- * without limitation the rights to use, copy, modify, merge, publish,
10
- * distribute, sublicense, and/or sell copies of the Software, and to
11
- * permit persons to whom the Software is furnished to do so, subject to
12
- * the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be
15
- * included in all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- ***** END LICENSE BLOCK *****/
25
-
26
- package arjdbc.jdbc;
27
-
28
- import java.sql.Connection;
29
- import java.sql.SQLException;
30
-
31
- import org.jruby.RubyObject;
32
- import org.jruby.RubyString;
33
- import org.jruby.runtime.ThreadContext;
34
- import org.jruby.runtime.builtin.IRubyObject;
35
-
36
- // @legacy ActiveRecord::ConnectionAdapters::JdbcDriver
37
- class RubyConnectionFactory implements ConnectionFactory {
38
-
39
- private final IRubyObject driver;
40
- final RubyString url;
41
- final IRubyObject username, password; // null allowed
42
-
43
- private final RubyObject contextProvider;
44
-
45
- public RubyConnectionFactory(final IRubyObject driver, final RubyString url,
46
- final IRubyObject username, final IRubyObject password) {
47
- this.driver = driver; this.url = url;
48
- this.username = username; this.password = password;
49
- contextProvider = (RubyObject) driver;
50
- }
51
-
52
- @Override
53
- public Connection newConnection() throws SQLException {
54
- final ThreadContext context = contextProvider.getRuntime().getCurrentContext();
55
- final IRubyObject connection = driver.callMethod(context, "connection", new IRubyObject[] { url, username, password });
56
- return (Connection) connection.toJava(Connection.class);
57
- }
58
-
59
- IRubyObject getDriver() { return driver; } /* for tests */
60
-
61
- }
@@ -1,52 +0,0 @@
1
- package arjdbc.postgresql;
2
-
3
- import arjdbc.util.DateTimeUtils;
4
- import org.joda.time.DateTimeZone;
5
- import org.jruby.RubyArray;
6
- import org.jruby.RubyFloat;
7
- import org.jruby.runtime.ThreadContext;
8
- import org.jruby.runtime.builtin.IRubyObject;
9
-
10
- /**
11
- * PostgreSQL specific DateTime/Timestamp helpers
12
- * @author dritz
13
- */
14
- public abstract class PgDateTimeUtils extends DateTimeUtils {
15
- /**
16
- * Convert a ruby value to a PostgreSQL timestamp string
17
- * @param context
18
- * @param value Ruby value, typically a Time instance
19
- * @param zone DateTimeZone to adjust to, optional
20
- * @param withZone include timezone in string?
21
- * @return A string fit for PostgreSQL
22
- */
23
- public static String timestampValueToString(final ThreadContext context, IRubyObject value, DateTimeZone zone,
24
- boolean withZone) {
25
- if (value instanceof RubyFloat) {
26
- final double dv = ((RubyFloat) value).getValue();
27
- if (dv == Double.POSITIVE_INFINITY) {
28
- return "infinity";
29
- } else if (dv == Double.NEGATIVE_INFINITY) {
30
- return "-infinity";
31
- }
32
- }
33
- return timestampTimeToString(context, value, zone, withZone);
34
- }
35
-
36
- /**
37
- * Converts a RubyArray with timestamp values to a java array of PostgreSQL timestamp strings
38
- * @param context
39
- * @param rubyArray
40
- * @return Array of timestamp strings
41
- */
42
- public static String[] timestampStringArray(final ThreadContext context, final RubyArray rubyArray) {
43
- int size = rubyArray.size();
44
- String[] values = new String[size];
45
-
46
- for (int i = 0; i < size; i++) {
47
- IRubyObject elem = rubyArray.eltInternal(i);
48
- values[i] = timestampValueToString(context, elem, DateTimeZone.UTC, false);
49
- }
50
- return values;
51
- }
52
- }