do_mysql 0.9.7 → 0.9.8
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/ext/do_mysql_ext.c +16 -7
- data/ext/extconf.rb +7 -0
- data/lib/do_mysql.rb +2 -2
- data/lib/do_mysql/version.rb +1 -1
- metadata +3 -3
data/ext/do_mysql_ext.c
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
#include <ruby.h>
|
2
|
-
#include <version.h>
|
3
2
|
#include <string.h>
|
4
3
|
#include <math.h>
|
5
4
|
#include <ctype.h>
|
@@ -25,6 +24,10 @@
|
|
25
24
|
#define RSTRING_LEN(s) (RSTRING(s)->len)
|
26
25
|
#endif
|
27
26
|
|
27
|
+
#ifndef RARRAY_LEN
|
28
|
+
#define RARRAY_LEN(a) RARRAY(a)->len
|
29
|
+
#endif
|
30
|
+
|
28
31
|
#ifdef _WIN32
|
29
32
|
#define do_int64 signed __int64
|
30
33
|
#else
|
@@ -59,7 +62,9 @@ static VALUE cDO_Reader;
|
|
59
62
|
// References to Ruby classes that we'll need
|
60
63
|
static VALUE rb_cDate;
|
61
64
|
static VALUE rb_cDateTime;
|
65
|
+
#ifndef RUBY_19_COMPATIBILITY
|
62
66
|
static VALUE rb_cRational;
|
67
|
+
#endif
|
63
68
|
static VALUE rb_cBigDecimal;
|
64
69
|
static VALUE rb_cCGI;
|
65
70
|
|
@@ -542,7 +547,7 @@ static VALUE cCommand_set_types(VALUE self, VALUE array) {
|
|
542
547
|
VALUE type_strings = rb_ary_new();
|
543
548
|
int i;
|
544
549
|
|
545
|
-
for (i = 0; i <
|
550
|
+
for (i = 0; i < RARRAY_LEN(array); i++) {
|
546
551
|
rb_ary_push(type_strings, RUBY_STRING(rb_class2name(rb_ary_entry(array, i))));
|
547
552
|
}
|
548
553
|
|
@@ -703,15 +708,15 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv, VALUE self) {
|
|
703
708
|
field_names = rb_ary_new();
|
704
709
|
field_types = rb_iv_get(self, "@field_types");
|
705
710
|
|
706
|
-
if ( field_types == Qnil || 0 ==
|
711
|
+
if ( field_types == Qnil || 0 == RARRAY_LEN(field_types) ) {
|
707
712
|
field_types = rb_ary_new();
|
708
713
|
guess_default_field_types = 1;
|
709
|
-
} else if (
|
714
|
+
} else if (RARRAY_LEN(field_types) != field_count) {
|
710
715
|
// Whoops... wrong number of types passed to set_types. Close the reader and raise
|
711
716
|
// and error
|
712
717
|
rb_funcall(reader, rb_intern("close"), 0);
|
713
718
|
flush_pool(connection);
|
714
|
-
rb_raise(eMysqlError, "Field-count mismatch. Expected %
|
719
|
+
rb_raise(eMysqlError, "Field-count mismatch. Expected %ld fields, but the query yielded %d", RARRAY_LEN(field_types), field_count);
|
715
720
|
}
|
716
721
|
|
717
722
|
for(i = 0; i < field_count; i++) {
|
@@ -786,7 +791,7 @@ static VALUE cReader_next(VALUE self) {
|
|
786
791
|
|
787
792
|
for (i = 0; i < reader->field_count; i++) {
|
788
793
|
// The field_type data could be cached in a c-array
|
789
|
-
field_type =
|
794
|
+
field_type = RSTRING_PTR(rb_ary_entry(ruby_field_type_strings, i));
|
790
795
|
rb_ary_push(row, typecast(result[i], field_type));
|
791
796
|
}
|
792
797
|
|
@@ -824,7 +829,11 @@ void Init_do_mysql_ext() {
|
|
824
829
|
ID_TO_TIME = rb_intern("to_time");
|
825
830
|
ID_NEW = rb_intern("new");
|
826
831
|
ID_NEW_RATIONAL = rb_intern("new!");
|
827
|
-
|
832
|
+
#ifdef RUBY_LESS_THAN_186
|
833
|
+
ID_NEW_DATE = rb_intern("new0");
|
834
|
+
#else
|
835
|
+
ID_NEW_DATE = rb_intern("new!");
|
836
|
+
#endif
|
828
837
|
ID_CONST_GET = rb_intern("const_get");
|
829
838
|
ID_UTC = rb_intern("utc");
|
830
839
|
ID_ESCAPE_SQL = rb_intern("escape_sql");
|
data/ext/extconf.rb
CHANGED
@@ -63,4 +63,11 @@ unless RUBY_PLATFORM =~ /mswin|mingw/
|
|
63
63
|
end
|
64
64
|
|
65
65
|
$CFLAGS << ' -Wall ' unless RUBY_PLATFORM =~ /mswin/
|
66
|
+
|
67
|
+
if RUBY_VERSION < '1.8.6'
|
68
|
+
$CFLAGS << ' -DRUBY_LESS_THAN_186'
|
69
|
+
elsif RUBY_VERSION >= '1.9.0'
|
70
|
+
$CFLAGS << ' -DRUBY_19_COMPATIBILITY'
|
71
|
+
end
|
72
|
+
|
66
73
|
create_makefile('do_mysql_ext')
|
data/lib/do_mysql.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'data_objects'
|
3
|
-
require 'do_mysql_ext'
|
4
|
-
require 'do_mysql/transaction'
|
3
|
+
require 'do_mysql_ext' # the C/Java extension for this DO driver
|
4
|
+
require 'do_mysql' / 'transaction'
|
5
5
|
|
6
6
|
if RUBY_PLATFORM =~ /java/
|
7
7
|
require 'do_jdbc/mysql' # the JDBC driver, packaged as a gem
|
data/lib/do_mysql/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: do_mysql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Bauer
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-11-
|
12
|
+
date: 2008-11-24 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.9.
|
23
|
+
version: 0.9.8
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hoe
|