activerecord-jdbc-adapter 51.8-java → 52.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -2
- data/.travis.yml +26 -51
- data/README.md +9 -11
- data/Rakefile +19 -74
- data/activerecord-jdbc-adapter.gemspec +2 -2
- data/lib/active_record/connection_adapters/mssql_adapter.rb +1 -0
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
- data/lib/arjdbc/abstract/core.rb +2 -12
- data/lib/arjdbc/abstract/database_statements.rb +24 -10
- data/lib/arjdbc/abstract/statement_cache.rb +4 -4
- data/lib/arjdbc/db2/adapter.rb +52 -2
- data/lib/arjdbc/jdbc.rb +4 -0
- data/lib/arjdbc/jdbc/column.rb +11 -5
- data/lib/arjdbc/jdbc/connection_methods.rb +9 -2
- data/lib/arjdbc/jdbc/jdbc.rake +4 -0
- data/lib/arjdbc/mssql.rb +7 -0
- data/lib/arjdbc/mssql/adapter.rb +804 -0
- data/lib/arjdbc/mssql/column.rb +200 -0
- data/lib/arjdbc/mssql/connection_methods.rb +79 -0
- data/lib/arjdbc/mssql/explain_support.rb +99 -0
- data/lib/arjdbc/mssql/limit_helpers.rb +231 -0
- data/lib/arjdbc/mssql/lock_methods.rb +77 -0
- data/lib/arjdbc/mssql/types.rb +343 -0
- data/lib/arjdbc/mssql/utils.rb +82 -0
- data/lib/arjdbc/mysql/adapter.rb +22 -14
- data/lib/arjdbc/mysql/connection_methods.rb +9 -18
- data/lib/arjdbc/postgresql/adapter.rb +102 -75
- data/lib/arjdbc/postgresql/column.rb +3 -6
- data/lib/arjdbc/postgresql/connection_methods.rb +3 -12
- data/lib/arjdbc/postgresql/oid_types.rb +12 -86
- data/lib/arjdbc/sqlite3/adapter.rb +88 -92
- data/lib/arjdbc/sqlite3/connection_methods.rb +0 -1
- data/lib/arjdbc/tasks/database_tasks.rb +36 -16
- data/lib/arjdbc/tasks/databases.rake +75 -32
- data/lib/arjdbc/tasks/databases3.rake +215 -0
- data/lib/arjdbc/tasks/databases4.rake +39 -0
- data/lib/arjdbc/version.rb +1 -1
- data/rakelib/01-tomcat.rake +2 -2
- data/rakelib/02-test.rake +3 -0
- data/rakelib/compile.rake +70 -0
- data/rakelib/db.rake +7 -21
- data/rakelib/rails.rake +4 -5
- data/src/java/arjdbc/ArJdbcModule.java +15 -5
- data/src/java/arjdbc/derby/DerbyRubyJdbcConnection.java +2 -2
- data/src/java/arjdbc/jdbc/ConnectionFactory.java +87 -0
- data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +1 -0
- data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +29 -113
- data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +14 -310
- data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +2 -2
- data/src/java/arjdbc/postgresql/PgResultSetMetaDataWrapper.java +23 -0
- data/src/java/arjdbc/postgresql/PostgreSQLResult.java +13 -21
- data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +50 -44
- data/src/java/arjdbc/util/DateTimeUtils.java +5 -141
- data/src/java/arjdbc/util/QuotingUtils.java +7 -6
- metadata +26 -11
- data/src/java/arjdbc/jdbc/RubyConnectionFactory.java +0 -61
- 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
|
-
}
|