mysql2 0.4.3-x64-mingw32 → 0.4.4-x64-mingw32
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/README.md +6 -6
 - data/ext/mysql2/result.c +18 -16
 - data/lib/mysql2/2.0/mysql2.so +0 -0
 - data/lib/mysql2/2.1/mysql2.so +0 -0
 - data/lib/mysql2/2.2/mysql2.so +0 -0
 - data/lib/mysql2/2.3/mysql2.so +0 -0
 - data/lib/mysql2/version.rb +1 -1
 - data/spec/mysql2/client_spec.rb +4 -4
 - data/spec/mysql2/result_spec.rb +5 -0
 - data/spec/mysql2/statement_spec.rb +8 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 78a3c50c356b8282160771687048af69689a49ff
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 16470c86222b19de7edf602a009d304825d60d75
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f7b5d5682af838858343a74a789691dc967ab5f11bc7524b8e41a567155c0bc170a76b8f853140100aa81afdef535310d445f82fb5e64228f5ca80186e11bf15
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 261e040b1337b0906261db18c92b0dd5e0928782728da5a193a50d94d32b7432aef80f37fbd0f0c76a291f17cbfc5ecaf9278f67d7013f05cf6f0c2abc88338b
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -484,9 +484,9 @@ As for field values themselves, I'm workin on it - but expect that soon. 
     | 
|
| 
       484 
484 
     | 
    
         | 
| 
       485 
485 
     | 
    
         
             
            This gem is tested with the following Ruby versions on Linux and Mac OS X:
         
     | 
| 
       486 
486 
     | 
    
         | 
| 
       487 
     | 
    
         
            -
             * Ruby MRI 1.8.7, 1.9.3, 2.0.0, 2.1.x, 2.2.x
         
     | 
| 
      
 487 
     | 
    
         
            +
             * Ruby MRI 1.8.7, 1.9.3, 2.0.0, 2.1.x, 2.2.x, 2.3.x
         
     | 
| 
       488 
488 
     | 
    
         
             
             * Ruby Enterprise Edition (based on MRI 1.8.7)
         
     | 
| 
       489 
     | 
    
         
            -
             * Rubinius 2.x
         
     | 
| 
      
 489 
     | 
    
         
            +
             * Rubinius 2.x, 3.x
         
     | 
| 
       490 
490 
     | 
    
         | 
| 
       491 
491 
     | 
    
         
             
            This gem is tested with the following MySQL and MariaDB versions:
         
     | 
| 
       492 
492 
     | 
    
         | 
| 
         @@ -494,11 +494,11 @@ This gem is tested with the following MySQL and MariaDB versions: 
     | 
|
| 
       494 
494 
     | 
    
         
             
             * MySQL Connector/C 6.0 and 6.1 (primarily on Windows)
         
     | 
| 
       495 
495 
     | 
    
         
             
             * MariaDB 5.5, 10.0, 10.1
         
     | 
| 
       496 
496 
     | 
    
         | 
| 
       497 
     | 
    
         
            -
            ### Rails / Active Record
         
     | 
| 
      
 497 
     | 
    
         
            +
            ### Ruby on Rails / Active Record
         
     | 
| 
       498 
498 
     | 
    
         | 
| 
       499 
     | 
    
         
            -
             * mysql2 0.4.x works with Active Record 4.2.5 and higher.
         
     | 
| 
       500 
     | 
    
         
            -
             * mysql2 0.3.x works with Active Record 3.1  
     | 
| 
       501 
     | 
    
         
            -
             * mysql2 0.2.x  
     | 
| 
      
 499 
     | 
    
         
            +
             * mysql2 0.4.x works with Rails / Active Record 4.2.5 - 5.0 and higher.
         
     | 
| 
      
 500 
     | 
    
         
            +
             * mysql2 0.3.x works with Rails / Active Record 3.1, 3.2, 4.x, 5.0.
         
     | 
| 
      
 501 
     | 
    
         
            +
             * mysql2 0.2.x works with Rails / Active Record 2.3 - 3.0.
         
     | 
| 
       502 
502 
     | 
    
         | 
| 
       503 
503 
     | 
    
         
             
            ### Asynchronous Active Record
         
     | 
| 
       504 
504 
     | 
    
         | 
    
        data/ext/mysql2/result.c
    CHANGED
    
    | 
         @@ -346,15 +346,15 @@ static VALUE rb_mysql_result_fetch_row_stmt(VALUE self, MYSQL_FIELD * fields, co 
     | 
|
| 
       346 
346 
     | 
    
         
             
              conn_enc = rb_to_encoding(wrapper->encoding);
         
     | 
| 
       347 
347 
     | 
    
         
             
            #endif
         
     | 
| 
       348 
348 
     | 
    
         | 
| 
      
 349 
     | 
    
         
            +
              if (wrapper->fields == Qnil) {
         
     | 
| 
      
 350 
     | 
    
         
            +
                wrapper->numberOfFields = mysql_num_fields(wrapper->result);
         
     | 
| 
      
 351 
     | 
    
         
            +
                wrapper->fields = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
      
 352 
     | 
    
         
            +
              }
         
     | 
| 
       349 
353 
     | 
    
         
             
              if (args->asArray) {
         
     | 
| 
       350 
354 
     | 
    
         
             
                rowVal = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
       351 
355 
     | 
    
         
             
              } else {
         
     | 
| 
       352 
356 
     | 
    
         
             
                rowVal = rb_hash_new();
         
     | 
| 
       353 
357 
     | 
    
         
             
              }
         
     | 
| 
       354 
     | 
    
         
            -
              if (wrapper->fields == Qnil) {
         
     | 
| 
       355 
     | 
    
         
            -
                wrapper->numberOfFields = mysql_num_fields(wrapper->result);
         
     | 
| 
       356 
     | 
    
         
            -
                wrapper->fields = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
       357 
     | 
    
         
            -
              }
         
     | 
| 
       358 
358 
     | 
    
         | 
| 
       359 
359 
     | 
    
         
             
              if (wrapper->result_buffers == NULL) {
         
     | 
| 
       360 
360 
     | 
    
         
             
                rb_mysql_result_alloc_result_buffers(self, fields);
         
     | 
| 
         @@ -541,16 +541,16 @@ static VALUE rb_mysql_result_fetch_row(VALUE self, MYSQL_FIELD * fields, const r 
     | 
|
| 
       541 
541 
     | 
    
         
             
                return Qnil;
         
     | 
| 
       542 
542 
     | 
    
         
             
              }
         
     | 
| 
       543 
543 
     | 
    
         | 
| 
      
 544 
     | 
    
         
            +
              if (wrapper->fields == Qnil) {
         
     | 
| 
      
 545 
     | 
    
         
            +
                wrapper->numberOfFields = mysql_num_fields(wrapper->result);
         
     | 
| 
      
 546 
     | 
    
         
            +
                wrapper->fields = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
      
 547 
     | 
    
         
            +
              }
         
     | 
| 
       544 
548 
     | 
    
         
             
              if (args->asArray) {
         
     | 
| 
       545 
549 
     | 
    
         
             
                rowVal = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
       546 
550 
     | 
    
         
             
              } else {
         
     | 
| 
       547 
551 
     | 
    
         
             
                rowVal = rb_hash_new();
         
     | 
| 
       548 
552 
     | 
    
         
             
              }
         
     | 
| 
       549 
553 
     | 
    
         
             
              fieldLengths = mysql_fetch_lengths(wrapper->result);
         
     | 
| 
       550 
     | 
    
         
            -
              if (wrapper->fields == Qnil) {
         
     | 
| 
       551 
     | 
    
         
            -
                wrapper->numberOfFields = mysql_num_fields(wrapper->result);
         
     | 
| 
       552 
     | 
    
         
            -
                wrapper->fields = rb_ary_new2(wrapper->numberOfFields);
         
     | 
| 
       553 
     | 
    
         
            -
              }
         
     | 
| 
       554 
554 
     | 
    
         | 
| 
       555 
555 
     | 
    
         
             
              for (i = 0; i < wrapper->numberOfFields; i++) {
         
     | 
| 
       556 
556 
     | 
    
         
             
                VALUE field = rb_mysql_result_fetch_field(self, i, args->symbolizeKeys);
         
     | 
| 
         @@ -834,7 +834,9 @@ static VALUE rb_mysql_result_each_(VALUE self, 
     | 
|
| 
       834 
834 
     | 
    
         | 
| 
       835 
835 
     | 
    
         
             
                    if (row == Qnil) {
         
     | 
| 
       836 
836 
     | 
    
         
             
                      /* we don't need the mysql C dataset around anymore, peace it */
         
     | 
| 
       837 
     | 
    
         
            -
                       
     | 
| 
      
 837 
     | 
    
         
            +
                      if (args->cacheRows) {
         
     | 
| 
      
 838 
     | 
    
         
            +
                        rb_mysql_result_free_result(wrapper);
         
     | 
| 
      
 839 
     | 
    
         
            +
                      }
         
     | 
| 
       838 
840 
     | 
    
         
             
                      return Qnil;
         
     | 
| 
       839 
841 
     | 
    
         
             
                    }
         
     | 
| 
       840 
842 
     | 
    
         | 
| 
         @@ -842,7 +844,7 @@ static VALUE rb_mysql_result_each_(VALUE self, 
     | 
|
| 
       842 
844 
     | 
    
         
             
                      rb_yield(row);
         
     | 
| 
       843 
845 
     | 
    
         
             
                    }
         
     | 
| 
       844 
846 
     | 
    
         
             
                  }
         
     | 
| 
       845 
     | 
    
         
            -
                  if (wrapper->lastRowProcessed == wrapper->numberOfRows) {
         
     | 
| 
      
 847 
     | 
    
         
            +
                  if (wrapper->lastRowProcessed == wrapper->numberOfRows && args->cacheRows) {
         
     | 
| 
       846 
848 
     | 
    
         
             
                    /* we don't need the mysql C dataset around anymore, peace it */
         
     | 
| 
       847 
849 
     | 
    
         
             
                    rb_mysql_result_free_result(wrapper);
         
     | 
| 
       848 
850 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -886,6 +888,7 @@ static VALUE rb_mysql_result_each(int argc, VALUE * argv, VALUE self) { 
     | 
|
| 
       886 
888 
     | 
    
         | 
| 
       887 
889 
     | 
    
         
             
              if (wrapper->stmt_wrapper && !cacheRows && !wrapper->is_streaming) {
         
     | 
| 
       888 
890 
     | 
    
         
             
                rb_warn(":cache_rows is forced for prepared statements (if not streaming)");
         
     | 
| 
      
 891 
     | 
    
         
            +
                cacheRows = 1;
         
     | 
| 
       889 
892 
     | 
    
         
             
              }
         
     | 
| 
       890 
893 
     | 
    
         | 
| 
       891 
894 
     | 
    
         
             
              if (wrapper->stmt_wrapper && !cast) {
         
     | 
| 
         @@ -913,13 +916,12 @@ static VALUE rb_mysql_result_each(int argc, VALUE * argv, VALUE self) { 
     | 
|
| 
       913 
916 
     | 
    
         
             
                app_timezone = Qnil;
         
     | 
| 
       914 
917 
     | 
    
         
             
              }
         
     | 
| 
       915 
918 
     | 
    
         | 
| 
       916 
     | 
    
         
            -
              if (wrapper-> 
     | 
| 
      
 919 
     | 
    
         
            +
              if (wrapper->rows == Qnil && !wrapper->is_streaming) {
         
     | 
| 
       917 
920 
     | 
    
         
             
                wrapper->numberOfRows = wrapper->stmt_wrapper ? mysql_stmt_num_rows(wrapper->stmt_wrapper->stmt) : mysql_num_rows(wrapper->result);
         
     | 
| 
       918 
     | 
    
         
            -
                 
     | 
| 
       919 
     | 
    
         
            -
             
     | 
| 
       920 
     | 
    
         
            -
             
     | 
| 
       921 
     | 
    
         
            -
             
     | 
| 
       922 
     | 
    
         
            -
                }
         
     | 
| 
      
 921 
     | 
    
         
            +
                wrapper->rows = rb_ary_new2(wrapper->numberOfRows);
         
     | 
| 
      
 922 
     | 
    
         
            +
              } else if (wrapper->rows && !cacheRows) {
         
     | 
| 
      
 923 
     | 
    
         
            +
                mysql_data_seek(wrapper->result, 0);
         
     | 
| 
      
 924 
     | 
    
         
            +
                wrapper->lastRowProcessed = 0;
         
     | 
| 
       923 
925 
     | 
    
         
             
                wrapper->rows = rb_ary_new2(wrapper->numberOfRows);
         
     | 
| 
       924 
926 
     | 
    
         
             
              }
         
     | 
| 
       925 
927 
     | 
    
         | 
    
        data/lib/mysql2/2.0/mysql2.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/mysql2/2.1/mysql2.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/mysql2/2.2/mysql2.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/mysql2/2.3/mysql2.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/mysql2/version.rb
    CHANGED
    
    
    
        data/spec/mysql2/client_spec.rb
    CHANGED
    
    | 
         @@ -382,24 +382,24 @@ RSpec.describe Mysql2::Client do 
     | 
|
| 
       382 
382 
     | 
    
         | 
| 
       383 
383 
     | 
    
         
             
              it "should expect connect_timeout to be a positive integer" do
         
     | 
| 
       384 
384 
     | 
    
         
             
                expect {
         
     | 
| 
       385 
     | 
    
         
            -
                  Mysql2::Client.new(:connect_timeout => -1)
         
     | 
| 
      
 385 
     | 
    
         
            +
                  Mysql2::Client.new(DatabaseCredentials['root'].merge(:connect_timeout => -1))
         
     | 
| 
       386 
386 
     | 
    
         
             
                }.to raise_error(Mysql2::Error)
         
     | 
| 
       387 
387 
     | 
    
         
             
              end
         
     | 
| 
       388 
388 
     | 
    
         | 
| 
       389 
389 
     | 
    
         
             
              it "should expect read_timeout to be a positive integer" do
         
     | 
| 
       390 
390 
     | 
    
         
             
                expect {
         
     | 
| 
       391 
     | 
    
         
            -
                  Mysql2::Client.new(:read_timeout => -1)
         
     | 
| 
      
 391 
     | 
    
         
            +
                  Mysql2::Client.new(DatabaseCredentials['root'].merge(:read_timeout => -1))
         
     | 
| 
       392 
392 
     | 
    
         
             
                }.to raise_error(Mysql2::Error)
         
     | 
| 
       393 
393 
     | 
    
         
             
              end
         
     | 
| 
       394 
394 
     | 
    
         | 
| 
       395 
395 
     | 
    
         
             
              it "should expect write_timeout to be a positive integer" do
         
     | 
| 
       396 
396 
     | 
    
         
             
                expect {
         
     | 
| 
       397 
     | 
    
         
            -
                  Mysql2::Client.new(:write_timeout => -1)
         
     | 
| 
      
 397 
     | 
    
         
            +
                  Mysql2::Client.new(DatabaseCredentials['root'].merge(:write_timeout => -1))
         
     | 
| 
       398 
398 
     | 
    
         
             
                }.to raise_error(Mysql2::Error)
         
     | 
| 
       399 
399 
     | 
    
         
             
              end
         
     | 
| 
       400 
400 
     | 
    
         | 
| 
       401 
401 
     | 
    
         
             
              it "should allow nil read_timeout" do
         
     | 
| 
       402 
     | 
    
         
            -
                client = Mysql2::Client.new(:read_timeout => nil)
         
     | 
| 
      
 402 
     | 
    
         
            +
                client = Mysql2::Client.new(DatabaseCredentials['root'].merge(:read_timeout => nil))
         
     | 
| 
       403 
403 
     | 
    
         | 
| 
       404 
404 
     | 
    
         
             
                expect(client.read_timeout).to be_nil
         
     | 
| 
       405 
405 
     | 
    
         
             
              end
         
     | 
    
        data/spec/mysql2/result_spec.rb
    CHANGED
    
    | 
         @@ -82,6 +82,11 @@ RSpec.describe Mysql2::Result do 
     | 
|
| 
       82 
82 
     | 
    
         
             
                  expect(result.first.object_id).not_to eql(result.first.object_id)
         
     | 
| 
       83 
83 
     | 
    
         
             
                end
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
      
 85 
     | 
    
         
            +
                it "should be able to iterate a second time even if cache_rows is disabled" do
         
     | 
| 
      
 86 
     | 
    
         
            +
                  result = @client.query "SELECT 1 UNION SELECT 2", :cache_rows => false
         
     | 
| 
      
 87 
     | 
    
         
            +
                  expect(result.to_a).to eql(result.to_a)
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
       85 
90 
     | 
    
         
             
                it "should yield different value for #first if streaming" do
         
     | 
| 
       86 
91 
     | 
    
         
             
                  result = @client.query "SELECT 1 UNION SELECT 2", :stream => true, :cache_rows => false
         
     | 
| 
       87 
92 
     | 
    
         
             
                  expect(result.first).not_to eql(result.first)
         
     | 
| 
         @@ -128,6 +128,14 @@ RSpec.describe Mysql2::Statement do 
     | 
|
| 
       128 
128 
     | 
    
         
             
                expect(test_result['decimal_test']).to eql(123.45)
         
     | 
| 
       129 
129 
     | 
    
         
             
              end
         
     | 
| 
       130 
130 
     | 
    
         | 
| 
      
 131 
     | 
    
         
            +
              it "should warn but still work if cache_rows is set to false" do
         
     | 
| 
      
 132 
     | 
    
         
            +
                @client.query_options.merge!(:cache_rows => false)
         
     | 
| 
      
 133 
     | 
    
         
            +
                statement = @client.prepare 'SELECT 1'
         
     | 
| 
      
 134 
     | 
    
         
            +
                result = nil
         
     | 
| 
      
 135 
     | 
    
         
            +
                expect { result = statement.execute.to_a }.to output(/:cache_rows is forced for prepared statements/).to_stderr
         
     | 
| 
      
 136 
     | 
    
         
            +
                expect(result.length).to eq(1)
         
     | 
| 
      
 137 
     | 
    
         
            +
              end
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
       131 
139 
     | 
    
         
             
              context "utf8_db" do
         
     | 
| 
       132 
140 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       133 
141 
     | 
    
         
             
                  @client.query("DROP DATABASE IF EXISTS test_mysql2_stmt_utf8")
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mysql2
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x64-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Brian Lopez
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-04-19 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       14 
14 
     | 
    
         
             
            description: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            email:
         
     |