activerecord-jdbc-adapter 51.5-java → 51.6-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.
- checksums.yaml +4 -4
 - data/.gitignore +2 -1
 - data/lib/arjdbc/abstract/database_statements.rb +2 -2
 - data/lib/arjdbc/mysql/connection_methods.rb +1 -0
 - data/lib/arjdbc/postgresql/connection_methods.rb +1 -0
 - data/lib/arjdbc/sqlite3/connection_methods.rb +1 -0
 - data/lib/arjdbc/version.rb +1 -1
 - data/rakelib/rails.rake +1 -1
 - data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +50 -7
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 7b206f6a18834412334b5f75ddea61ad3861e8f660ded31b1b939c1eb8352e26
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a0ac42fb724004caf9830e71d46d53b6c97bc310b228d12df4386d18038ff06c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8613d0eae95966bb38fc21f42b5edb444bfa2ad0a69a72b95806937fa743c9d374b4c3ce64b43c61fd6c3e0fa26ab449a57de2d4dd4cd43388a91b58f6f95d2e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f7de5519ede844cca94bd21209971facfcfdd4f0e6408e8a756159dce596baa15458a2b422faf15cf9f0da9b8ebe08a38222a67af1730acfb6efd2fa280a2c10
         
     | 
    
        data/.gitignore
    CHANGED
    
    
| 
         @@ -13,10 +13,10 @@ module ArJdbc 
     | 
|
| 
       13 
13 
     | 
    
         
             
                    binds = convert_legacy_binds_to_attributes(binds) if binds.first.is_a?(Array)
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                    if without_prepared_statement?(binds)
         
     | 
| 
       16 
     | 
    
         
            -
                      log(sql, name) { @connection. 
     | 
| 
      
 16 
     | 
    
         
            +
                      log(sql, name) { @connection.execute_insert_pk(sql, pk) }
         
     | 
| 
       17 
17 
     | 
    
         
             
                    else
         
     | 
| 
       18 
18 
     | 
    
         
             
                      log(sql, name, binds) do
         
     | 
| 
       19 
     | 
    
         
            -
                        @connection. 
     | 
| 
      
 19 
     | 
    
         
            +
                        @connection.execute_insert_pk(sql, binds, pk)
         
     | 
| 
       20 
20 
     | 
    
         
             
                      end
         
     | 
| 
       21 
21 
     | 
    
         
             
                    end
         
     | 
| 
       22 
22 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         
             
            ArJdbc::ConnectionMethods.module_eval do
         
     | 
| 
       3 
3 
     | 
    
         
             
              def mysql_connection(config)
         
     | 
| 
      
 4 
     | 
    
         
            +
                config = config.deep_dup
         
     | 
| 
       4 
5 
     | 
    
         
             
                # NOTE: this isn't "really" necessary but Rails (in tests) assumes being able to :
         
     | 
| 
       5 
6 
     | 
    
         
             
                #   ActiveRecord::Base.mysql2_connection ActiveRecord::Base.configurations['arunit'].merge(database: ...)
         
     | 
| 
       6 
7 
     | 
    
         
             
                config = symbolize_keys_if_necessary(config)
         
     | 
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         
             
            ArJdbc::ConnectionMethods.module_eval do
         
     | 
| 
       3 
3 
     | 
    
         
             
              def postgresql_connection(config)
         
     | 
| 
      
 4 
     | 
    
         
            +
                config = config.deep_dup
         
     | 
| 
       4 
5 
     | 
    
         
             
                # NOTE: this isn't "really" necessary but Rails (in tests) assumes being able to :
         
     | 
| 
       5 
6 
     | 
    
         
             
                #   ActiveRecord::Base.postgresql_connection ActiveRecord::Base.configurations['arunit'].merge(:insert_returning => false)
         
     | 
| 
       6 
7 
     | 
    
         
             
                # ... while using symbols by default but than configurations returning string keys ;(
         
     | 
| 
         @@ -1,6 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         
             
            ArJdbc::ConnectionMethods.module_eval do
         
     | 
| 
       3 
3 
     | 
    
         
             
              def sqlite3_connection(config)
         
     | 
| 
      
 4 
     | 
    
         
            +
                config = config.deep_dup
         
     | 
| 
       4 
5 
     | 
    
         
             
                config[:adapter_spec] ||= ::ArJdbc::SQLite3
         
     | 
| 
       5 
6 
     | 
    
         
             
                config[:adapter_class] = ActiveRecord::ConnectionAdapters::SQLite3Adapter unless config.key?(:adapter_class)
         
     | 
| 
       6 
7 
     | 
    
         | 
    
        data/lib/arjdbc/version.rb
    CHANGED
    
    
    
        data/rakelib/rails.rake
    CHANGED
    
    | 
         @@ -51,7 +51,7 @@ namespace :rails do 
     | 
|
| 
       51 
51 
     | 
    
         
             
                  ruby_opts_string += " -C \"#{ar_path}\""
         
     | 
| 
       52 
52 
     | 
    
         
             
                  ruby_opts_string += " -rbundler/setup"
         
     | 
| 
       53 
53 
     | 
    
         
             
                  ruby_opts_string += " -rminitest -rminitest/excludes" unless ENV['NO_EXCLUDES'].eql?('true')
         
     | 
| 
       54 
     | 
    
         
            -
                  file_list = ENV["TEST"] ? FileList[ ENV["TEST"] ] : test_files_finder.call
         
     | 
| 
      
 54 
     | 
    
         
            +
                  file_list = ENV["TEST"] ? FileList[ ENV["TEST"].split(',') ] : test_files_finder.call
         
     | 
| 
       55 
55 
     | 
    
         
             
                  file_list_string = file_list.map { |fn| "\"#{fn}\"" }.join(' ')
         
     | 
| 
       56 
56 
     | 
    
         
             
                  # test_loader_code = "-e \"ARGV.each{|f| require f}\"" # :direct
         
     | 
| 
       57 
57 
     | 
    
         
             
                  option_list = ( ENV["TESTOPTS"] || ENV["TESTOPT"] || ENV["TEST_OPTS"] || '' )
         
     | 
| 
         @@ -727,7 +727,10 @@ public class RubyJdbcConnection extends RubyObject { 
     | 
|
| 
       727 
727 
     | 
    
         | 
| 
       728 
728 
     | 
    
         
             
                private void connectImpl(final boolean forceConnection) throws SQLException {
         
     | 
| 
       729 
729 
     | 
    
         
             
                    setConnection( forceConnection ? newConnection() : null );
         
     | 
| 
       730 
     | 
    
         
            -
                    if ( 
     | 
| 
      
 730 
     | 
    
         
            +
                    if (forceConnection) {
         
     | 
| 
      
 731 
     | 
    
         
            +
                        if (getConnectionImpl() == null) throw new SQLException("Didn't get a connection. Wrong URL?");
         
     | 
| 
      
 732 
     | 
    
         
            +
                        configureConnection();
         
     | 
| 
      
 733 
     | 
    
         
            +
                    }
         
     | 
| 
       731 
734 
     | 
    
         
             
                }
         
     | 
| 
       732 
735 
     | 
    
         | 
| 
       733 
736 
     | 
    
         
             
                @JRubyMethod(name = "read_only?")
         
     | 
| 
         @@ -885,15 +888,31 @@ public class RubyJdbcConnection extends RubyObject { 
     | 
|
| 
       885 
888 
     | 
    
         
             
                    return mapQueryResult(context, connection, resultSet);
         
     | 
| 
       886 
889 
     | 
    
         
             
                }
         
     | 
| 
       887 
890 
     | 
    
         | 
| 
      
 891 
     | 
    
         
            +
                private static String[] createStatementPk(IRubyObject pk) {
         
     | 
| 
      
 892 
     | 
    
         
            +
                    String[] statementPk;
         
     | 
| 
      
 893 
     | 
    
         
            +
                    if (pk instanceof RubyArray) {
         
     | 
| 
      
 894 
     | 
    
         
            +
                        RubyArray ary = (RubyArray) pk;
         
     | 
| 
      
 895 
     | 
    
         
            +
                        int size = ary.size();
         
     | 
| 
      
 896 
     | 
    
         
            +
                        statementPk = new String[size];
         
     | 
| 
      
 897 
     | 
    
         
            +
                        for (int i = 0; i < size; i++) {
         
     | 
| 
      
 898 
     | 
    
         
            +
                            statementPk[i] = sqlString(ary.eltInternal(i));
         
     | 
| 
      
 899 
     | 
    
         
            +
                        }
         
     | 
| 
      
 900 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 901 
     | 
    
         
            +
                        statementPk = new String[] { sqlString(pk) };
         
     | 
| 
      
 902 
     | 
    
         
            +
                    }
         
     | 
| 
      
 903 
     | 
    
         
            +
                    return statementPk;
         
     | 
| 
      
 904 
     | 
    
         
            +
                }
         
     | 
| 
      
 905 
     | 
    
         
            +
             
     | 
| 
       888 
906 
     | 
    
         
             
                /**
         
     | 
| 
       889 
907 
     | 
    
         
             
                 * Executes an INSERT SQL statement
         
     | 
| 
       890 
908 
     | 
    
         
             
                 * @param context
         
     | 
| 
       891 
909 
     | 
    
         
             
                 * @param sql
         
     | 
| 
      
 910 
     | 
    
         
            +
                 * @param pk Rails PK
         
     | 
| 
       892 
911 
     | 
    
         
             
                 * @return ActiveRecord::Result
         
     | 
| 
       893 
912 
     | 
    
         
             
                 * @throws SQLException
         
     | 
| 
       894 
913 
     | 
    
         
             
                 */
         
     | 
| 
       895 
     | 
    
         
            -
                @JRubyMethod(name = " 
     | 
| 
       896 
     | 
    
         
            -
                public IRubyObject  
     | 
| 
      
 914 
     | 
    
         
            +
                @JRubyMethod(name = "execute_insert_pk", required = 2)
         
     | 
| 
      
 915 
     | 
    
         
            +
                public IRubyObject execute_insert_pk(final ThreadContext context, final IRubyObject sql, final IRubyObject pk) {
         
     | 
| 
       897 
916 
     | 
    
         
             
                    return withConnection(context, new Callable<IRubyObject>() {
         
     | 
| 
       898 
917 
     | 
    
         
             
                        public IRubyObject call(final Connection connection) throws SQLException {
         
     | 
| 
       899 
918 
     | 
    
         
             
                            Statement statement = null;
         
     | 
| 
         @@ -901,7 +920,13 @@ public class RubyJdbcConnection extends RubyObject { 
     | 
|
| 
       901 
920 
     | 
    
         
             
                            try {
         
     | 
| 
       902 
921 
     | 
    
         | 
| 
       903 
922 
     | 
    
         
             
                                statement = createStatement(context, connection);
         
     | 
| 
       904 
     | 
    
         
            -
             
     | 
| 
      
 923 
     | 
    
         
            +
             
     | 
| 
      
 924 
     | 
    
         
            +
                                if (pk == context.nil || pk == context.fals || !supportsGeneratedKeys(connection)) {
         
     | 
| 
      
 925 
     | 
    
         
            +
                                    statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
         
     | 
| 
      
 926 
     | 
    
         
            +
                                } else {
         
     | 
| 
      
 927 
     | 
    
         
            +
                                    statement.executeUpdate(query, createStatementPk(pk));
         
     | 
| 
      
 928 
     | 
    
         
            +
                                }
         
     | 
| 
      
 929 
     | 
    
         
            +
             
     | 
| 
       905 
930 
     | 
    
         
             
                                return mapGeneratedKeys(context, connection, statement);
         
     | 
| 
       906 
931 
     | 
    
         | 
| 
       907 
932 
     | 
    
         
             
                            } catch (final SQLException e) {
         
     | 
| 
         @@ -914,23 +939,35 @@ public class RubyJdbcConnection extends RubyObject { 
     | 
|
| 
       914 
939 
     | 
    
         
             
                    });
         
     | 
| 
       915 
940 
     | 
    
         
             
                }
         
     | 
| 
       916 
941 
     | 
    
         | 
| 
      
 942 
     | 
    
         
            +
                @Deprecated
         
     | 
| 
      
 943 
     | 
    
         
            +
                @JRubyMethod(name = "execute_insert", required = 1)
         
     | 
| 
      
 944 
     | 
    
         
            +
                public IRubyObject execute_insert(final ThreadContext context, final IRubyObject sql) {
         
     | 
| 
      
 945 
     | 
    
         
            +
                    return execute_insert_pk(context, sql, context.nil);
         
     | 
| 
      
 946 
     | 
    
         
            +
                }
         
     | 
| 
      
 947 
     | 
    
         
            +
             
     | 
| 
       917 
948 
     | 
    
         
             
                /**
         
     | 
| 
       918 
949 
     | 
    
         
             
                 * Executes an INSERT SQL statement using a prepared statement
         
     | 
| 
       919 
950 
     | 
    
         
             
                 * @param context
         
     | 
| 
       920 
951 
     | 
    
         
             
                 * @param sql
         
     | 
| 
       921 
952 
     | 
    
         
             
                 * @param binds RubyArray of values to be bound to the query
         
     | 
| 
      
 953 
     | 
    
         
            +
                 * @param pk Rails PK
         
     | 
| 
       922 
954 
     | 
    
         
             
                 * @return ActiveRecord::Result
         
     | 
| 
       923 
955 
     | 
    
         
             
                 * @throws SQLException
         
     | 
| 
       924 
956 
     | 
    
         
             
                 */
         
     | 
| 
       925 
     | 
    
         
            -
                @JRubyMethod(name = " 
     | 
| 
       926 
     | 
    
         
            -
                public IRubyObject  
     | 
| 
      
 957 
     | 
    
         
            +
                @JRubyMethod(name = "execute_insert_pk", required = 3)
         
     | 
| 
      
 958 
     | 
    
         
            +
                public IRubyObject execute_insert_pk(final ThreadContext context, final IRubyObject sql, final IRubyObject binds,
         
     | 
| 
      
 959 
     | 
    
         
            +
                                                     final IRubyObject pk) {
         
     | 
| 
       927 
960 
     | 
    
         
             
                    return withConnection(context, new Callable<IRubyObject>() {
         
     | 
| 
       928 
961 
     | 
    
         
             
                        public IRubyObject call(final Connection connection) throws SQLException {
         
     | 
| 
       929 
962 
     | 
    
         
             
                            PreparedStatement statement = null;
         
     | 
| 
       930 
963 
     | 
    
         
             
                            final String query = sqlString(sql);
         
     | 
| 
       931 
964 
     | 
    
         
             
                            try {
         
     | 
| 
      
 965 
     | 
    
         
            +
                                if (pk == context.nil || pk == context.fals || !supportsGeneratedKeys(connection)) {
         
     | 
| 
      
 966 
     | 
    
         
            +
                                    statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
         
     | 
| 
      
 967 
     | 
    
         
            +
                                } else {
         
     | 
| 
      
 968 
     | 
    
         
            +
                                    statement = connection.prepareStatement(query, createStatementPk(pk));
         
     | 
| 
      
 969 
     | 
    
         
            +
                                }
         
     | 
| 
       932 
970 
     | 
    
         | 
| 
       933 
     | 
    
         
            -
                                statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
         
     | 
| 
       934 
971 
     | 
    
         
             
                                setStatementParameters(context, connection, statement, (RubyArray) binds);
         
     | 
| 
       935 
972 
     | 
    
         
             
                                statement.executeUpdate();
         
     | 
| 
       936 
973 
     | 
    
         
             
                                return mapGeneratedKeys(context, connection, statement);
         
     | 
| 
         @@ -945,6 +982,12 @@ public class RubyJdbcConnection extends RubyObject { 
     | 
|
| 
       945 
982 
     | 
    
         
             
                    });
         
     | 
| 
       946 
983 
     | 
    
         
             
                }
         
     | 
| 
       947 
984 
     | 
    
         | 
| 
      
 985 
     | 
    
         
            +
                @Deprecated
         
     | 
| 
      
 986 
     | 
    
         
            +
                @JRubyMethod(name = "execute_insert", required = 2)
         
     | 
| 
      
 987 
     | 
    
         
            +
                public IRubyObject execute_insert(final ThreadContext context, final IRubyObject binds, final IRubyObject sql) {
         
     | 
| 
      
 988 
     | 
    
         
            +
                    return execute_insert_pk(context, sql, binds, context.nil);
         
     | 
| 
      
 989 
     | 
    
         
            +
                }
         
     | 
| 
      
 990 
     | 
    
         
            +
             
     | 
| 
       948 
991 
     | 
    
         
             
                /**
         
     | 
| 
       949 
992 
     | 
    
         
             
                 * Executes an UPDATE (DELETE) SQL statement
         
     | 
| 
       950 
993 
     | 
    
         
             
                 * @param context
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: activerecord-jdbc-adapter
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: '51. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: '51.6'
         
     | 
| 
       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: 2019- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-12-19 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |