do_mysql 0.10.10-x86-mingw32 → 0.10.11-x86-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.
- data/ChangeLog.markdown +4 -0
 - data/ext/do_mysql/do_common.c +43 -43
 - data/ext/do_mysql/do_common.h +9 -10
 - data/ext/do_mysql/do_mysql.c +41 -41
 - data/lib/do_mysql/1.8/do_mysql.so +0 -0
 - data/lib/do_mysql/1.9/do_mysql.so +0 -0
 - data/lib/do_mysql/version.rb +1 -1
 - data/tasks/compile.rake +1 -1
 - metadata +5 -5
 
    
        data/ChangeLog.markdown
    CHANGED
    
    
    
        data/ext/do_mysql/do_common.c
    CHANGED
    
    | 
         @@ -11,13 +11,13 @@ 
     | 
|
| 
       11 
11 
     | 
    
         
             
             */
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            // To store rb_intern values
         
     | 
| 
       14 
     | 
    
         
            -
            ID  
     | 
| 
       15 
     | 
    
         
            -
            ID  
     | 
| 
       16 
     | 
    
         
            -
            ID  
     | 
| 
       17 
     | 
    
         
            -
            ID  
     | 
| 
       18 
     | 
    
         
            -
            ID  
     | 
| 
       19 
     | 
    
         
            -
            ID  
     | 
| 
       20 
     | 
    
         
            -
            ID  
     | 
| 
      
 14 
     | 
    
         
            +
            ID DO_ID_NEW;
         
     | 
| 
      
 15 
     | 
    
         
            +
            ID DO_ID_NEW_DATE;
         
     | 
| 
      
 16 
     | 
    
         
            +
            ID DO_ID_CONST_GET;
         
     | 
| 
      
 17 
     | 
    
         
            +
            ID DO_ID_RATIONAL;
         
     | 
| 
      
 18 
     | 
    
         
            +
            ID DO_ID_ESCAPE;
         
     | 
| 
      
 19 
     | 
    
         
            +
            ID DO_ID_STRFTIME;
         
     | 
| 
      
 20 
     | 
    
         
            +
            ID DO_ID_LOG;
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            // Reference to Extlib module
         
     | 
| 
       23 
23 
     | 
    
         
             
            VALUE mExtlib;
         
     | 
| 
         @@ -33,8 +33,8 @@ VALUE cDO_Reader; 
     | 
|
| 
       33 
33 
     | 
    
         
             
            VALUE cDO_Logger;
         
     | 
| 
       34 
34 
     | 
    
         
             
            VALUE cDO_Logger_Message;
         
     | 
| 
       35 
35 
     | 
    
         
             
            VALUE cDO_Extension;
         
     | 
| 
       36 
     | 
    
         
            -
            VALUE  
     | 
| 
       37 
     | 
    
         
            -
            VALUE  
     | 
| 
      
 36 
     | 
    
         
            +
            VALUE eDO_ConnectionError;
         
     | 
| 
      
 37 
     | 
    
         
            +
            VALUE eDO_DataError;
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
            // References to Ruby classes that we'll need
         
     | 
| 
       40 
40 
     | 
    
         
             
            VALUE rb_cDate;
         
     | 
| 
         @@ -47,7 +47,7 @@ VALUE rb_cBigDecimal; 
     | 
|
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
            VALUE data_objects_const_get(VALUE scope, const char *constant) {
         
     | 
| 
       50 
     | 
    
         
            -
              return rb_funcall(scope,  
     | 
| 
      
 50 
     | 
    
         
            +
              return rb_funcall(scope, DO_ID_CONST_GET, 1, rb_str_new2(constant));
         
     | 
| 
       51 
51 
     | 
    
         
             
            }
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
            void data_objects_debug(VALUE connection, VALUE string, struct timeval *start) {
         
     | 
| 
         @@ -58,9 +58,9 @@ void data_objects_debug(VALUE connection, VALUE string, struct timeval *start) { 
     | 
|
| 
       58 
58 
     | 
    
         
             
              gettimeofday(&stop, NULL);
         
     | 
| 
       59 
59 
     | 
    
         
             
              duration = (stop.tv_sec - start->tv_sec) * 1000000 + stop.tv_usec - start->tv_usec;
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
              message = rb_funcall(cDO_Logger_Message,  
     | 
| 
      
 61 
     | 
    
         
            +
              message = rb_funcall(cDO_Logger_Message, DO_ID_NEW, 3, string, rb_time_new(start->tv_sec, start->tv_usec), INT2NUM(duration));
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
              rb_funcall(connection,  
     | 
| 
      
 63 
     | 
    
         
            +
              rb_funcall(connection, DO_ID_LOG, 1, message);
         
     | 
| 
       64 
64 
     | 
    
         
             
            }
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
            void data_objects_raise_error(VALUE self, const struct errcodes *errors, int errnum, const char *message, VALUE query, VALUE state) {
         
     | 
| 
         @@ -80,7 +80,7 @@ void data_objects_raise_error(VALUE self, const struct errcodes *errors, int err 
     | 
|
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
              exception = rb_funcall(
         
     | 
| 
       82 
82 
     | 
    
         
             
                data_objects_const_get(mDO, exception_type),
         
     | 
| 
       83 
     | 
    
         
            -
                 
     | 
| 
      
 83 
     | 
    
         
            +
                DO_ID_NEW,
         
     | 
| 
       84 
84 
     | 
    
         
             
                5,
         
     | 
| 
       85 
85 
     | 
    
         
             
                rb_str_new2(message),
         
     | 
| 
       86 
86 
     | 
    
         
             
                INT2NUM(errnum),
         
     | 
| 
         @@ -125,7 +125,7 @@ VALUE data_objects_build_query_from_args(VALUE klass, int count, VALUE *args) { 
     | 
|
| 
       125 
125 
     | 
    
         
             
                rb_ary_push(array, args[i]);
         
     | 
| 
       126 
126 
     | 
    
         
             
              }
         
     | 
| 
       127 
127 
     | 
    
         | 
| 
       128 
     | 
    
         
            -
              return rb_funcall(klass,  
     | 
| 
      
 128 
     | 
    
         
            +
              return rb_funcall(klass, DO_ID_ESCAPE, 1, array);
         
     | 
| 
       129 
129 
     | 
    
         
             
            }
         
     | 
| 
       130 
130 
     | 
    
         | 
| 
       131 
131 
     | 
    
         
             
            // Find the greatest common denominator and reduce the provided numerator and denominator.
         
     | 
| 
         @@ -163,7 +163,7 @@ VALUE data_objects_seconds_to_offset(long seconds_offset) { 
     | 
|
| 
       163 
163 
     | 
    
         
             
              do_int64 den = 86400;
         
     | 
| 
       164 
164 
     | 
    
         | 
| 
       165 
165 
     | 
    
         
             
              data_objects_reduce(&num, &den);
         
     | 
| 
       166 
     | 
    
         
            -
              return rb_funcall(rb_mKernel,  
     | 
| 
      
 166 
     | 
    
         
            +
              return rb_funcall(rb_mKernel, DO_ID_RATIONAL, 2, rb_ll2inum(num), rb_ll2inum(den));
         
     | 
| 
       167 
167 
     | 
    
         
             
            }
         
     | 
| 
       168 
168 
     | 
    
         | 
| 
       169 
169 
     | 
    
         
             
            VALUE data_objects_timezone_to_offset(int hour_offset, int minute_offset) {
         
     | 
| 
         @@ -189,7 +189,7 @@ VALUE data_objects_parse_date(const char *date) { 
     | 
|
| 
       189 
189 
     | 
    
         
             
                return Qnil;
         
     | 
| 
       190 
190 
     | 
    
         
             
              }
         
     | 
| 
       191 
191 
     | 
    
         | 
| 
       192 
     | 
    
         
            -
              return rb_funcall(rb_cDate,  
     | 
| 
      
 192 
     | 
    
         
            +
              return rb_funcall(rb_cDate, DO_ID_NEW, 3, INT2NUM(year), INT2NUM(month), INT2NUM(day));
         
     | 
| 
       193 
193 
     | 
    
         
             
            }
         
     | 
| 
       194 
194 
     | 
    
         | 
| 
       195 
195 
     | 
    
         
             
            VALUE data_objects_parse_time(const char *date) {
         
     | 
| 
         @@ -299,11 +299,11 @@ VALUE data_objects_parse_date_time(const char *date) { 
     | 
|
| 
       299 
299 
     | 
    
         
             
                  break;
         
     | 
| 
       300 
300 
     | 
    
         | 
| 
       301 
301 
     | 
    
         
             
                default: /* Any other combo of missing tokens and we can't do anything */
         
     | 
| 
       302 
     | 
    
         
            -
                  rb_raise( 
     | 
| 
      
 302 
     | 
    
         
            +
                  rb_raise(eDO_DataError, "Couldn't parse date: %s", date);
         
     | 
| 
       303 
303 
     | 
    
         
             
              }
         
     | 
| 
       304 
304 
     | 
    
         | 
| 
       305 
305 
     | 
    
         
             
              offset = data_objects_timezone_to_offset(hour_offset, minute_offset);
         
     | 
| 
       306 
     | 
    
         
            -
              return rb_funcall(rb_cDateTime,  
     | 
| 
      
 306 
     | 
    
         
            +
              return rb_funcall(rb_cDateTime, DO_ID_NEW, 7, INT2NUM(year), INT2NUM(month), INT2NUM(day),
         
     | 
| 
       307 
307 
     | 
    
         
             
                                                         INT2NUM(hour), INT2NUM(min), INT2NUM(sec), offset);
         
     | 
| 
       308 
308 
     | 
    
         
             
            }
         
     | 
| 
       309 
309 
     | 
    
         | 
| 
         @@ -320,17 +320,17 @@ VALUE data_objects_cConnection_ssl_cipher(VALUE self) { 
     | 
|
| 
       320 
320 
     | 
    
         
             
            }
         
     | 
| 
       321 
321 
     | 
    
         | 
| 
       322 
322 
     | 
    
         
             
            VALUE data_objects_cConnection_quote_time(VALUE self, VALUE value) {
         
     | 
| 
       323 
     | 
    
         
            -
              return rb_funcall(value,  
     | 
| 
      
 323 
     | 
    
         
            +
              return rb_funcall(value, DO_ID_STRFTIME, 1, rb_str_new2("'%Y-%m-%d %H:%M:%S'"));
         
     | 
| 
       324 
324 
     | 
    
         
             
            }
         
     | 
| 
       325 
325 
     | 
    
         | 
| 
       326 
326 
     | 
    
         
             
            VALUE data_objects_cConnection_quote_date_time(VALUE self, VALUE value) {
         
     | 
| 
       327 
327 
     | 
    
         
             
              // TODO: Support non-local dates. we need to call #new_offset on the date to be
         
     | 
| 
       328 
328 
     | 
    
         
             
              // quoted and pass in the current locale's date offset (self.new_offset((hours * 3600).to_r / 86400)
         
     | 
| 
       329 
     | 
    
         
            -
              return rb_funcall(value,  
     | 
| 
      
 329 
     | 
    
         
            +
              return rb_funcall(value, DO_ID_STRFTIME, 1, rb_str_new2("'%Y-%m-%d %H:%M:%S'"));
         
     | 
| 
       330 
330 
     | 
    
         
             
            }
         
     | 
| 
       331 
331 
     | 
    
         | 
| 
       332 
332 
     | 
    
         
             
            VALUE data_objects_cConnection_quote_date(VALUE self, VALUE value) {
         
     | 
| 
       333 
     | 
    
         
            -
              return rb_funcall(value,  
     | 
| 
      
 333 
     | 
    
         
            +
              return rb_funcall(value, DO_ID_STRFTIME, 1, rb_str_new2("'%Y-%m-%d'"));
         
     | 
| 
       334 
334 
     | 
    
         
             
            }
         
     | 
| 
       335 
335 
     | 
    
         | 
| 
       336 
336 
     | 
    
         
             
            /*
         
     | 
| 
         @@ -379,7 +379,7 @@ VALUE data_objects_cReader_values(VALUE self) { 
     | 
|
| 
       379 
379 
     | 
    
         
             
              VALUE values = rb_iv_get(self, "@values");
         
     | 
| 
       380 
380 
     | 
    
         | 
| 
       381 
381 
     | 
    
         
             
              if (state == Qnil || state == Qfalse || values == Qnil) {
         
     | 
| 
       382 
     | 
    
         
            -
                rb_raise( 
     | 
| 
      
 382 
     | 
    
         
            +
                rb_raise(eDO_DataError, "Reader is not initialized");
         
     | 
| 
       383 
383 
     | 
    
         
             
              }
         
     | 
| 
       384 
384 
     | 
    
         | 
| 
       385 
385 
     | 
    
         
             
              return rb_iv_get(self, "@values");
         
     | 
| 
         @@ -400,24 +400,24 @@ void data_objects_common_init(void) { 
     | 
|
| 
       400 
400 
     | 
    
         
             
              rb_require("data_objects");
         
     | 
| 
       401 
401 
     | 
    
         | 
| 
       402 
402 
     | 
    
         
             
              // Needed by data_objects_const_get
         
     | 
| 
       403 
     | 
    
         
            -
               
     | 
| 
      
 403 
     | 
    
         
            +
              DO_ID_CONST_GET = rb_intern("const_get");
         
     | 
| 
       404 
404 
     | 
    
         | 
| 
       405 
405 
     | 
    
         
             
              // Get references classes needed for Date/Time parsing
         
     | 
| 
       406 
406 
     | 
    
         
             
              rb_cDate = data_objects_const_get(rb_mKernel, "Date");
         
     | 
| 
       407 
407 
     | 
    
         
             
              rb_cDateTime = data_objects_const_get(rb_mKernel, "DateTime");
         
     | 
| 
       408 
408 
     | 
    
         
             
              rb_cBigDecimal = data_objects_const_get(rb_mKernel, "BigDecimal");
         
     | 
| 
       409 
409 
     | 
    
         | 
| 
       410 
     | 
    
         
            -
               
     | 
| 
      
 410 
     | 
    
         
            +
              DO_ID_NEW = rb_intern("new");
         
     | 
| 
       411 
411 
     | 
    
         
             
            #ifdef RUBY_LESS_THAN_186
         
     | 
| 
       412 
     | 
    
         
            -
               
     | 
| 
      
 412 
     | 
    
         
            +
              DO_ID_NEW_DATE = rb_intern("new0");
         
     | 
| 
       413 
413 
     | 
    
         
             
            #else
         
     | 
| 
       414 
     | 
    
         
            -
               
     | 
| 
      
 414 
     | 
    
         
            +
              DO_ID_NEW_DATE = rb_intern("new!");
         
     | 
| 
       415 
415 
     | 
    
         
             
            #endif
         
     | 
| 
       416 
     | 
    
         
            -
               
     | 
| 
       417 
     | 
    
         
            -
               
     | 
| 
       418 
     | 
    
         
            -
               
     | 
| 
       419 
     | 
    
         
            -
               
     | 
| 
       420 
     | 
    
         
            -
               
     | 
| 
      
 416 
     | 
    
         
            +
              DO_ID_CONST_GET = rb_intern("const_get");
         
     | 
| 
      
 417 
     | 
    
         
            +
              DO_ID_RATIONAL = rb_intern("Rational");
         
     | 
| 
      
 418 
     | 
    
         
            +
              DO_ID_ESCAPE = rb_intern("escape_sql");
         
     | 
| 
      
 419 
     | 
    
         
            +
              DO_ID_STRFTIME = rb_intern("strftime");
         
     | 
| 
      
 420 
     | 
    
         
            +
              DO_ID_LOG = rb_intern("log");
         
     | 
| 
       421 
421 
     | 
    
         | 
| 
       422 
422 
     | 
    
         
             
              // Get references to the Extlib module
         
     | 
| 
       423 
423 
     | 
    
         
             
              mExtlib = data_objects_const_get(rb_mKernel, "Extlib");
         
     | 
| 
         @@ -434,15 +434,15 @@ void data_objects_common_init(void) { 
     | 
|
| 
       434 
434 
     | 
    
         
             
              cDO_Logger_Message = data_objects_const_get(cDO_Logger, "Message");
         
     | 
| 
       435 
435 
     | 
    
         
             
              cDO_Extension = data_objects_const_get(mDO, "Extension");
         
     | 
| 
       436 
436 
     | 
    
         | 
| 
       437 
     | 
    
         
            -
               
     | 
| 
       438 
     | 
    
         
            -
               
     | 
| 
      
 437 
     | 
    
         
            +
              eDO_ConnectionError = data_objects_const_get(mDO, "ConnectionError");
         
     | 
| 
      
 438 
     | 
    
         
            +
              eDO_DataError = data_objects_const_get(mDO, "DataError");
         
     | 
| 
       439 
439 
     | 
    
         | 
| 
       440 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       441 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       442 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       443 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       444 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       445 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
      
 440 
     | 
    
         
            +
              rb_global_variable(&DO_ID_NEW_DATE);
         
     | 
| 
      
 441 
     | 
    
         
            +
              rb_global_variable(&DO_ID_RATIONAL);
         
     | 
| 
      
 442 
     | 
    
         
            +
              rb_global_variable(&DO_ID_CONST_GET);
         
     | 
| 
      
 443 
     | 
    
         
            +
              rb_global_variable(&DO_ID_ESCAPE);
         
     | 
| 
      
 444 
     | 
    
         
            +
              rb_global_variable(&DO_ID_LOG);
         
     | 
| 
      
 445 
     | 
    
         
            +
              rb_global_variable(&DO_ID_NEW);
         
     | 
| 
       446 
446 
     | 
    
         | 
| 
       447 
447 
     | 
    
         
             
              rb_global_variable(&rb_cDate);
         
     | 
| 
       448 
448 
     | 
    
         
             
              rb_global_variable(&rb_cDateTime);
         
     | 
| 
         @@ -452,8 +452,8 @@ void data_objects_common_init(void) { 
     | 
|
| 
       452 
452 
     | 
    
         
             
              rb_global_variable(&mDO);
         
     | 
| 
       453 
453 
     | 
    
         
             
              rb_global_variable(&cDO_Logger_Message);
         
     | 
| 
       454 
454 
     | 
    
         | 
| 
       455 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       456 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
      
 455 
     | 
    
         
            +
              rb_global_variable(&eDO_ConnectionError);
         
     | 
| 
      
 456 
     | 
    
         
            +
              rb_global_variable(&eDO_DataError);
         
     | 
| 
       457 
457 
     | 
    
         | 
| 
       458 
458 
     | 
    
         
             
              tzset();
         
     | 
| 
       459 
459 
     | 
    
         
             
            }
         
     | 
| 
         @@ -478,7 +478,7 @@ extern VALUE data_objects_typecast(const char *value, long length, const VALUE t 
     | 
|
| 
       478 
478 
     | 
    
         
             
                return rb_float_new(rb_cstr_to_dbl(value, Qfalse));
         
     | 
| 
       479 
479 
     | 
    
         
             
              }
         
     | 
| 
       480 
480 
     | 
    
         
             
              else if (type == rb_cBigDecimal) {
         
     | 
| 
       481 
     | 
    
         
            -
                return rb_funcall(rb_cBigDecimal,  
     | 
| 
      
 481 
     | 
    
         
            +
                return rb_funcall(rb_cBigDecimal, DO_ID_NEW, 1, rb_str_new(value, length));
         
     | 
| 
       482 
482 
     | 
    
         
             
              }
         
     | 
| 
       483 
483 
     | 
    
         
             
              else if (type == rb_cDate) {
         
     | 
| 
       484 
484 
     | 
    
         
             
                return data_objects_parse_date(value);
         
     | 
| 
         @@ -493,7 +493,7 @@ extern VALUE data_objects_typecast(const char *value, long length, const VALUE t 
     | 
|
| 
       493 
493 
     | 
    
         
             
                return (!value || strcmp("0", value) == 0) ? Qfalse : Qtrue;
         
     | 
| 
       494 
494 
     | 
    
         
             
              }
         
     | 
| 
       495 
495 
     | 
    
         
             
              else if (type == rb_cByteArray) {
         
     | 
| 
       496 
     | 
    
         
            -
                return rb_funcall(rb_cByteArray,  
     | 
| 
      
 496 
     | 
    
         
            +
                return rb_funcall(rb_cByteArray, DO_ID_NEW, 1, rb_str_new(value, length));
         
     | 
| 
       497 
497 
     | 
    
         
             
              }
         
     | 
| 
       498 
498 
     | 
    
         
             
              else if (type == rb_cClass) {
         
     | 
| 
       499 
499 
     | 
    
         
             
                return rb_funcall(mDO, rb_intern("full_const_get"), 1, rb_str_new(value, length));
         
     | 
    
        data/ext/do_mysql/do_common.h
    CHANGED
    
    | 
         @@ -54,13 +54,13 @@ typedef signed long long int do_int64; 
     | 
|
| 
       54 
54 
     | 
    
         
             
            #endif
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
            // To store rb_intern values
         
     | 
| 
       57 
     | 
    
         
            -
            extern ID  
     | 
| 
       58 
     | 
    
         
            -
            extern ID  
     | 
| 
       59 
     | 
    
         
            -
            extern ID  
     | 
| 
       60 
     | 
    
         
            -
            extern ID  
     | 
| 
       61 
     | 
    
         
            -
            extern ID  
     | 
| 
       62 
     | 
    
         
            -
            extern ID  
     | 
| 
       63 
     | 
    
         
            -
            extern ID  
     | 
| 
      
 57 
     | 
    
         
            +
            extern ID DO_ID_NEW;
         
     | 
| 
      
 58 
     | 
    
         
            +
            extern ID DO_ID_NEW_DATE;
         
     | 
| 
      
 59 
     | 
    
         
            +
            extern ID DO_ID_CONST_GET;
         
     | 
| 
      
 60 
     | 
    
         
            +
            extern ID DO_ID_RATIONAL;
         
     | 
| 
      
 61 
     | 
    
         
            +
            extern ID DO_ID_ESCAPE;
         
     | 
| 
      
 62 
     | 
    
         
            +
            extern ID DO_ID_STRFTIME;
         
     | 
| 
      
 63 
     | 
    
         
            +
            extern ID DO_ID_LOG;
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
            // Reference to Extlib module
         
     | 
| 
       66 
66 
     | 
    
         
             
            extern VALUE mExtlib;
         
     | 
| 
         @@ -68,7 +68,6 @@ extern VALUE rb_cByteArray; 
     | 
|
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
            // References to DataObjects base classes
         
     | 
| 
       70 
70 
     | 
    
         
             
            extern VALUE mDO;
         
     | 
| 
       71 
     | 
    
         
            -
            extern VALUE mEncoding;
         
     | 
| 
       72 
71 
     | 
    
         
             
            extern VALUE cDO_Quoting;
         
     | 
| 
       73 
72 
     | 
    
         
             
            extern VALUE cDO_Connection;
         
     | 
| 
       74 
73 
     | 
    
         
             
            extern VALUE cDO_Command;
         
     | 
| 
         @@ -77,8 +76,8 @@ extern VALUE cDO_Reader; 
     | 
|
| 
       77 
76 
     | 
    
         
             
            extern VALUE cDO_Logger;
         
     | 
| 
       78 
77 
     | 
    
         
             
            extern VALUE cDO_Logger_Message;
         
     | 
| 
       79 
78 
     | 
    
         
             
            extern VALUE cDO_Extension;
         
     | 
| 
       80 
     | 
    
         
            -
            extern VALUE  
     | 
| 
       81 
     | 
    
         
            -
            extern VALUE  
     | 
| 
      
 79 
     | 
    
         
            +
            extern VALUE eDO_ConnectionError;
         
     | 
| 
      
 80 
     | 
    
         
            +
            extern VALUE eDO_DataError;
         
     | 
| 
       82 
81 
     | 
    
         | 
| 
       83 
82 
     | 
    
         
             
            // References to Ruby classes that we'll need
         
     | 
| 
       84 
83 
     | 
    
         
             
            extern VALUE rb_cDate;
         
     | 
    
        data/ext/do_mysql/do_mysql.c
    CHANGED
    
    | 
         @@ -27,12 +27,12 @@ 
     | 
|
| 
       27 
27 
     | 
    
         
             
            void do_mysql_full_connect(VALUE self, MYSQL *db);
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
            // Classes that we'll build in Init
         
     | 
| 
       30 
     | 
    
         
            -
            VALUE  
     | 
| 
       31 
     | 
    
         
            -
            VALUE  
     | 
| 
       32 
     | 
    
         
            -
            VALUE  
     | 
| 
       33 
     | 
    
         
            -
            VALUE  
     | 
| 
       34 
     | 
    
         
            -
            VALUE  
     | 
| 
       35 
     | 
    
         
            -
            VALUE  
     | 
| 
      
 30 
     | 
    
         
            +
            VALUE mDO_Mysql;
         
     | 
| 
      
 31 
     | 
    
         
            +
            VALUE mDO_MysqlEncoding;
         
     | 
| 
      
 32 
     | 
    
         
            +
            VALUE cDO_MysqlConnection;
         
     | 
| 
      
 33 
     | 
    
         
            +
            VALUE cDO_MysqlCommand;
         
     | 
| 
      
 34 
     | 
    
         
            +
            VALUE cDO_MysqlResult;
         
     | 
| 
      
 35 
     | 
    
         
            +
            VALUE cDO_MysqlReader;
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
            // Figures out what we should cast a given mysql field type to
         
     | 
| 
       38 
38 
     | 
    
         
             
            VALUE do_mysql_infer_ruby_type(const MYSQL_FIELD *field) {
         
     | 
| 
         @@ -96,7 +96,7 @@ VALUE do_mysql_typecast(const char *value, long length, const VALUE type, int en 
     | 
|
| 
       96 
96 
     | 
    
         
             
                return (value == 0 || strcmp("0", value) == 0) ? Qfalse : Qtrue;
         
     | 
| 
       97 
97 
     | 
    
         
             
              }
         
     | 
| 
       98 
98 
     | 
    
         
             
              else if (type == rb_cByteArray) {
         
     | 
| 
       99 
     | 
    
         
            -
                return rb_funcall(rb_cByteArray,  
     | 
| 
      
 99 
     | 
    
         
            +
                return rb_funcall(rb_cByteArray, DO_ID_NEW, 1, rb_str_new(value, length));
         
     | 
| 
       100 
100 
     | 
    
         
             
              }
         
     | 
| 
       101 
101 
     | 
    
         
             
              else {
         
     | 
| 
       102 
102 
     | 
    
         
             
                return data_objects_typecast(value, length, type, encoding);
         
     | 
| 
         @@ -308,7 +308,7 @@ void do_mysql_full_connect(VALUE self, MYSQL *db) { 
     | 
|
| 
       308 
308 
     | 
    
         
             
            #ifdef HAVE_MYSQL_SET_CHARACTER_SET
         
     | 
| 
       309 
309 
     | 
    
         
             
              // Set the connections character set
         
     | 
| 
       310 
310 
     | 
    
         
             
              VALUE encoding = rb_iv_get(self, "@encoding");
         
     | 
| 
       311 
     | 
    
         
            -
              VALUE my_encoding = rb_hash_aref(data_objects_const_get( 
     | 
| 
      
 311 
     | 
    
         
            +
              VALUE my_encoding = rb_hash_aref(data_objects_const_get(mDO_MysqlEncoding, "MAP"), encoding);
         
     | 
| 
       312 
312 
     | 
    
         | 
| 
       313 
313 
     | 
    
         
             
              if (my_encoding != Qnil) {
         
     | 
| 
       314 
314 
     | 
    
         
             
                int encoding_error = mysql_set_character_set(db, rb_str_ptr_readonly(my_encoding));
         
     | 
| 
         @@ -473,7 +473,7 @@ VALUE do_mysql_cCommand_execute_non_query(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       473 
473 
     | 
    
         
             
              VALUE mysql_connection = rb_iv_get(connection, "@connection");
         
     | 
| 
       474 
474 
     | 
    
         | 
| 
       475 
475 
     | 
    
         
             
              if (mysql_connection == Qnil) {
         
     | 
| 
       476 
     | 
    
         
            -
                rb_raise( 
     | 
| 
      
 476 
     | 
    
         
            +
                rb_raise(eDO_ConnectionError, "This connection has already been closed.");
         
     | 
| 
       477 
477 
     | 
    
         
             
              }
         
     | 
| 
       478 
478 
     | 
    
         | 
| 
       479 
479 
     | 
    
         
             
              MYSQL *db = DATA_PTR(mysql_connection);
         
     | 
| 
         @@ -489,7 +489,7 @@ VALUE do_mysql_cCommand_execute_non_query(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       489 
489 
     | 
    
         
             
                return Qnil;
         
     | 
| 
       490 
490 
     | 
    
         
             
              }
         
     | 
| 
       491 
491 
     | 
    
         | 
| 
       492 
     | 
    
         
            -
              return rb_funcall( 
     | 
| 
      
 492 
     | 
    
         
            +
              return rb_funcall(cDO_MysqlResult, DO_ID_NEW, 3, self, INT2NUM(affected_rows), insert_id == 0 ? Qnil : ULL2NUM(insert_id));
         
     | 
| 
       493 
493 
     | 
    
         
             
            }
         
     | 
| 
       494 
494 
     | 
    
         | 
| 
       495 
495 
     | 
    
         
             
            VALUE do_mysql_cCommand_execute_reader(int argc, VALUE *argv, VALUE self) {
         
     | 
| 
         @@ -497,7 +497,7 @@ VALUE do_mysql_cCommand_execute_reader(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       497 
497 
     | 
    
         
             
              VALUE mysql_connection = rb_iv_get(connection, "@connection");
         
     | 
| 
       498 
498 
     | 
    
         | 
| 
       499 
499 
     | 
    
         
             
              if (mysql_connection == Qnil) {
         
     | 
| 
       500 
     | 
    
         
            -
                rb_raise( 
     | 
| 
      
 500 
     | 
    
         
            +
                rb_raise(eDO_ConnectionError, "This result set has already been closed.");
         
     | 
| 
       501 
501 
     | 
    
         
             
              }
         
     | 
| 
       502 
502 
     | 
    
         | 
| 
       503 
503 
     | 
    
         
             
              VALUE query = data_objects_build_query_from_args(self, argc, argv);
         
     | 
| 
         @@ -505,11 +505,11 @@ VALUE do_mysql_cCommand_execute_reader(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       505 
505 
     | 
    
         
             
              MYSQL_RES *response = do_mysql_cCommand_execute(self, connection, db, query);
         
     | 
| 
       506 
506 
     | 
    
         | 
| 
       507 
507 
     | 
    
         
             
              if (!response) {
         
     | 
| 
       508 
     | 
    
         
            -
                rb_raise( 
     | 
| 
      
 508 
     | 
    
         
            +
                rb_raise(eDO_ConnectionError, "No result set received for a query that should yield one.");
         
     | 
| 
       509 
509 
     | 
    
         
             
              }
         
     | 
| 
       510 
510 
     | 
    
         | 
| 
       511 
511 
     | 
    
         
             
              unsigned int field_count = mysql_field_count(db);
         
     | 
| 
       512 
     | 
    
         
            -
              VALUE reader = rb_funcall( 
     | 
| 
      
 512 
     | 
    
         
            +
              VALUE reader = rb_funcall(cDO_MysqlReader, DO_ID_NEW, 0);
         
     | 
| 
       513 
513 
     | 
    
         | 
| 
       514 
514 
     | 
    
         
             
              rb_iv_set(reader, "@connection", connection);
         
     | 
| 
       515 
515 
     | 
    
         
             
              rb_iv_set(reader, "@reader", Data_Wrap_Struct(rb_cObject, 0, 0, response));
         
     | 
| 
         @@ -626,38 +626,38 @@ void Init_do_mysql() { 
     | 
|
| 
       626 
626 
     | 
    
         
             
              data_objects_common_init();
         
     | 
| 
       627 
627 
     | 
    
         | 
| 
       628 
628 
     | 
    
         
             
              // Top Level Module that all the classes live under
         
     | 
| 
       629 
     | 
    
         
            -
               
     | 
| 
       630 
     | 
    
         
            -
               
     | 
| 
       631 
     | 
    
         
            -
             
     | 
| 
       632 
     | 
    
         
            -
               
     | 
| 
       633 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       634 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       635 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       636 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       637 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       638 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       639 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       640 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       641 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       642 
     | 
    
         
            -
             
     | 
| 
       643 
     | 
    
         
            -
               
     | 
| 
       644 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       645 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       646 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
      
 629 
     | 
    
         
            +
              mDO_Mysql    = rb_define_module_under(mDO, "Mysql");
         
     | 
| 
      
 630 
     | 
    
         
            +
              mDO_MysqlEncoding = rb_define_module_under(mDO_Mysql, "Encoding");
         
     | 
| 
      
 631 
     | 
    
         
            +
             
     | 
| 
      
 632 
     | 
    
         
            +
              cDO_MysqlConnection = rb_define_class_under(mDO_Mysql, "Connection", cDO_Connection);
         
     | 
| 
      
 633 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "initialize", do_mysql_cConnection_initialize, 1);
         
     | 
| 
      
 634 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "using_socket?", data_objects_cConnection_is_using_socket, 0);
         
     | 
| 
      
 635 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "ssl_cipher", data_objects_cConnection_ssl_cipher, 0);
         
     | 
| 
      
 636 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "character_set", data_objects_cConnection_character_set , 0);
         
     | 
| 
      
 637 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "dispose", do_mysql_cConnection_dispose, 0);
         
     | 
| 
      
 638 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "quote_string", do_mysql_cConnection_quote_string, 1);
         
     | 
| 
      
 639 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "quote_date", data_objects_cConnection_quote_date, 1);
         
     | 
| 
      
 640 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "quote_time", data_objects_cConnection_quote_time, 1);
         
     | 
| 
      
 641 
     | 
    
         
            +
              rb_define_method(cDO_MysqlConnection, "quote_datetime", data_objects_cConnection_quote_date_time, 1);
         
     | 
| 
      
 642 
     | 
    
         
            +
             
     | 
| 
      
 643 
     | 
    
         
            +
              cDO_MysqlCommand = rb_define_class_under(mDO_Mysql, "Command", cDO_Command);
         
     | 
| 
      
 644 
     | 
    
         
            +
              rb_define_method(cDO_MysqlCommand, "set_types", data_objects_cCommand_set_types, -1);
         
     | 
| 
      
 645 
     | 
    
         
            +
              rb_define_method(cDO_MysqlCommand, "execute_non_query", do_mysql_cCommand_execute_non_query, -1);
         
     | 
| 
      
 646 
     | 
    
         
            +
              rb_define_method(cDO_MysqlCommand, "execute_reader", do_mysql_cCommand_execute_reader, -1);
         
     | 
| 
       647 
647 
     | 
    
         | 
| 
       648 
648 
     | 
    
         
             
              // Non-Query result
         
     | 
| 
       649 
     | 
    
         
            -
               
     | 
| 
      
 649 
     | 
    
         
            +
              cDO_MysqlResult = rb_define_class_under(mDO_Mysql, "Result", cDO_Result);
         
     | 
| 
       650 
650 
     | 
    
         | 
| 
       651 
651 
     | 
    
         
             
              // Query result
         
     | 
| 
       652 
     | 
    
         
            -
               
     | 
| 
       653 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       654 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       655 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       656 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
       657 
     | 
    
         
            -
              rb_define_method( 
     | 
| 
      
 652 
     | 
    
         
            +
              cDO_MysqlReader = rb_define_class_under(mDO_Mysql, "Reader", cDO_Reader);
         
     | 
| 
      
 653 
     | 
    
         
            +
              rb_define_method(cDO_MysqlReader, "close", do_mysql_cReader_close, 0);
         
     | 
| 
      
 654 
     | 
    
         
            +
              rb_define_method(cDO_MysqlReader, "next!", do_mysql_cReader_next, 0);
         
     | 
| 
      
 655 
     | 
    
         
            +
              rb_define_method(cDO_MysqlReader, "values", data_objects_cReader_values, 0);
         
     | 
| 
      
 656 
     | 
    
         
            +
              rb_define_method(cDO_MysqlReader, "fields", data_objects_cReader_fields, 0);
         
     | 
| 
      
 657 
     | 
    
         
            +
              rb_define_method(cDO_MysqlReader, "field_count", data_objects_cReader_field_count, 0);
         
     | 
| 
       658 
658 
     | 
    
         | 
| 
       659 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
       660 
     | 
    
         
            -
              rb_global_variable(& 
     | 
| 
      
 659 
     | 
    
         
            +
              rb_global_variable(&cDO_MysqlResult);
         
     | 
| 
      
 660 
     | 
    
         
            +
              rb_global_variable(&cDO_MysqlReader);
         
     | 
| 
       661 
661 
     | 
    
         | 
| 
       662 
     | 
    
         
            -
              data_objects_define_errors( 
     | 
| 
      
 662 
     | 
    
         
            +
              data_objects_define_errors(mDO_Mysql, do_mysql_errors);
         
     | 
| 
       663 
663 
     | 
    
         
             
            }
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
    
        data/lib/do_mysql/version.rb
    CHANGED
    
    
    
        data/tasks/compile.rake
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version 
     | 
|
| 
       5 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              - 0
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 10
         
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
              version: 0.10. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 11
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 0.10.11
         
     | 
| 
       10 
10 
     | 
    
         
             
            platform: x86-mingw32
         
     | 
| 
       11 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            - Dirkjan Bussink
         
     | 
| 
         @@ -14,7 +14,7 @@ autorequire: 
     | 
|
| 
       14 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       15 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            date:  
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2012-12-29 00:00:00 +01:00
         
     | 
| 
       18 
18 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       19 
19 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -28,8 +28,8 @@ dependencies: 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    segments: 
         
     | 
| 
       29 
29 
     | 
    
         
             
                    - 0
         
     | 
| 
       30 
30 
     | 
    
         
             
                    - 10
         
     | 
| 
       31 
     | 
    
         
            -
                    -  
     | 
| 
       32 
     | 
    
         
            -
                    version: 0.10. 
     | 
| 
      
 31 
     | 
    
         
            +
                    - 11
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: 0.10.11
         
     | 
| 
       33 
33 
     | 
    
         
             
              requirement: *id001
         
     | 
| 
       34 
34 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       35 
35 
     | 
    
         
             
              prerelease: false
         
     |