do_oracle 0.10.2-x86-mswin32-60 → 0.10.3-x86-mswin32-60
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 +3 -0
- data/Rakefile +1 -1
- data/ext/do_oracle/do_oracle.c +20 -18
- data/lib/do_oracle/1.8/do_oracle.so +0 -0
- data/lib/do_oracle/1.9/do_oracle.so +0 -0
- data/lib/do_oracle/version.rb +1 -1
- data/spec/spec_helper.rb +4 -0
- data/tasks/compile.rake +2 -2
- data/tasks/release.rake +1 -1
- metadata +22 -8
data/ChangeLog.markdown
CHANGED
data/Rakefile
CHANGED
@@ -40,7 +40,7 @@ begin
|
|
40
40
|
gem.add_dependency 'ruby-oci8', '~>2.0'
|
41
41
|
|
42
42
|
gem.add_development_dependency 'bacon', '~>1.1'
|
43
|
-
gem.add_development_dependency 'rake-compiler', '
|
43
|
+
gem.add_development_dependency 'rake-compiler', '= 0.7.0'
|
44
44
|
|
45
45
|
gem.has_rdoc = false
|
46
46
|
gem.rubyforge_project = 'dorb'
|
data/ext/do_oracle/do_oracle.c
CHANGED
@@ -212,7 +212,7 @@ static VALUE parse_date(VALUE r_value) {
|
|
212
212
|
} else if (rb_obj_class(r_value) == rb_cDateTime) {
|
213
213
|
rational = rb_iv_get(r_value, "@ajd");
|
214
214
|
return rb_funcall(rb_cDate, ID_NEW_DATE, 3, rational, INT2NUM(0), INT2NUM(2299161));
|
215
|
-
|
215
|
+
|
216
216
|
} else {
|
217
217
|
// Something went terribly wrong
|
218
218
|
rb_raise(eDataError, "Couldn't parse date from class %s object", rb_obj_classname(r_value));
|
@@ -299,7 +299,7 @@ static VALUE parse_time(VALUE r_value) {
|
|
299
299
|
} else {
|
300
300
|
// Something went terribly wrong
|
301
301
|
rb_raise(eDataError, "Couldn't parse time from class %s object", rb_obj_classname(r_value));
|
302
|
-
}
|
302
|
+
}
|
303
303
|
}
|
304
304
|
|
305
305
|
static VALUE parse_boolean(VALUE r_value) {
|
@@ -318,7 +318,7 @@ static VALUE parse_boolean(VALUE r_value) {
|
|
318
318
|
|
319
319
|
static VALUE infer_ruby_type(VALUE type, VALUE precision, VALUE scale) {
|
320
320
|
ID type_id = SYM2ID(type);
|
321
|
-
|
321
|
+
|
322
322
|
if (type_id == ID_NUMBER)
|
323
323
|
return scale != Qnil && NUM2INT(scale) == 0 ?
|
324
324
|
(NUM2INT(precision) == 1 ? rb_cTrueClass : rb_cInteger) : rb_cBigDecimal;
|
@@ -342,7 +342,7 @@ static VALUE infer_ruby_type(VALUE type, VALUE precision, VALUE scale) {
|
|
342
342
|
|
343
343
|
static VALUE typecast(VALUE r_value, const VALUE type) {
|
344
344
|
VALUE r_data;
|
345
|
-
|
345
|
+
|
346
346
|
if (type == rb_cInteger) {
|
347
347
|
return TYPE(r_value) == T_FIXNUM || TYPE(r_value) == T_BIGNUM ? r_value : rb_funcall(r_value, ID_TO_I, 0);
|
348
348
|
|
@@ -494,7 +494,7 @@ static VALUE cCommand_execute_internal(VALUE self, VALUE connection, VALUE sql,
|
|
494
494
|
arg.cursor = rb_funcall(oci8_conn, ID_PARSE, 1, sql);
|
495
495
|
arg.statement_type = rb_funcall(arg.cursor, ID_TYPE, 0);
|
496
496
|
arg.args = args;
|
497
|
-
|
497
|
+
|
498
498
|
return rb_ensure(cCommand_execute_try, (VALUE)&arg, cCommand_execute_ensure, (VALUE)&arg);
|
499
499
|
}
|
500
500
|
|
@@ -506,7 +506,7 @@ static VALUE execute_sql(VALUE connection, VALUE sql) {
|
|
506
506
|
static VALUE cCommand_execute_try(cCommand_execute_try_t *arg) {
|
507
507
|
VALUE result = Qnil;
|
508
508
|
int insert_id_present;
|
509
|
-
|
509
|
+
|
510
510
|
// no arguments given
|
511
511
|
if NIL_P(arg->args) {
|
512
512
|
result = rb_funcall(arg->cursor, ID_EXEC, 0);
|
@@ -556,7 +556,7 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
|
|
556
556
|
char *non_blocking = NULL;
|
557
557
|
char *time_zone = NULL;
|
558
558
|
char set_time_zone_command[80];
|
559
|
-
|
559
|
+
|
560
560
|
char *host = "localhost", *port = "1521", *path = NULL;
|
561
561
|
char *connect_string;
|
562
562
|
int connect_string_length;
|
@@ -569,13 +569,13 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
|
|
569
569
|
if ( Qnil != r_host && RSTRING_LEN(r_host) > 0) {
|
570
570
|
host = StringValuePtr(r_host);
|
571
571
|
}
|
572
|
-
|
572
|
+
|
573
573
|
r_port = rb_funcall(uri, rb_intern("port"), 0);
|
574
574
|
if ( Qnil != r_port ) {
|
575
575
|
r_port = rb_funcall(r_port, ID_TO_S, 0);
|
576
576
|
port = StringValuePtr(r_port);
|
577
577
|
}
|
578
|
-
|
578
|
+
|
579
579
|
r_path = rb_funcall(uri, rb_intern("path"), 0);
|
580
580
|
if ( Qnil != r_path ) {
|
581
581
|
path = StringValuePtr(r_path);
|
@@ -627,7 +627,7 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
|
|
627
627
|
snprintf(set_time_zone_command, 80, "alter session set time_zone = '%s'", time_zone);
|
628
628
|
execute_sql(self, RUBY_STRING(set_time_zone_command));
|
629
629
|
}
|
630
|
-
|
630
|
+
|
631
631
|
execute_sql(self, RUBY_STRING("alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'"));
|
632
632
|
execute_sql(self, RUBY_STRING("alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS.FF'"));
|
633
633
|
execute_sql(self, RUBY_STRING("alter session set nls_timestamp_tz_format = 'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'"));
|
@@ -649,7 +649,7 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
|
|
649
649
|
VALUE reader, query;
|
650
650
|
VALUE field_names, field_types;
|
651
651
|
VALUE column_metadata, column, column_name;
|
652
|
-
|
652
|
+
|
653
653
|
int i;
|
654
654
|
int field_count;
|
655
655
|
int infer_types = 0;
|
@@ -660,7 +660,7 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
|
|
660
660
|
rb_raise(eArgumentError, "\"%s\" is invalid SELECT query", StringValuePtr(query));
|
661
661
|
}
|
662
662
|
|
663
|
-
column_metadata = rb_funcall(cursor, ID_COLUMN_METADATA, 0);
|
663
|
+
column_metadata = rb_funcall(cursor, ID_COLUMN_METADATA, 0);
|
664
664
|
field_count = RARRAY_LEN(column_metadata);
|
665
665
|
// reduce field_count by 1 if RAW_RNUM_ is present as last column
|
666
666
|
// (generated by DataMapper to simulate LIMIT and OFFSET)
|
@@ -734,7 +734,7 @@ static VALUE cReader_next(VALUE self) {
|
|
734
734
|
VALUE value;
|
735
735
|
|
736
736
|
VALUE fetch_result = rb_funcall(cursor, ID_FETCH, 0);
|
737
|
-
|
737
|
+
|
738
738
|
if (Qnil == fetch_result) {
|
739
739
|
rb_iv_set(self, "@values", Qnil);
|
740
740
|
rb_iv_set(self, "@last_row", Qtrue);
|
@@ -782,7 +782,9 @@ static VALUE cReader_field_count(VALUE self) {
|
|
782
782
|
void Init_do_oracle() {
|
783
783
|
// rb_require("oci8");
|
784
784
|
rb_require("date");
|
785
|
+
rb_require("rational");
|
785
786
|
rb_require("bigdecimal");
|
787
|
+
rb_require("data_objects");
|
786
788
|
|
787
789
|
// Get references classes needed for Date/Time parsing
|
788
790
|
rb_cDate = CONST_GET(rb_mKernel, "Date");
|
@@ -826,16 +828,16 @@ void Init_do_oracle() {
|
|
826
828
|
ID_TO_I = rb_intern("to_i");
|
827
829
|
ID_TO_S = rb_intern("to_s");
|
828
830
|
ID_TO_F = rb_intern("to_f");
|
829
|
-
|
831
|
+
|
830
832
|
ID_UTC_OFFSET = rb_intern("utc_offset");
|
831
833
|
ID_FULL_CONST_GET = rb_intern("full_const_get");
|
832
|
-
|
834
|
+
|
833
835
|
ID_PARSE = rb_intern("parse");
|
834
836
|
ID_FETCH = rb_intern("fetch");
|
835
837
|
ID_TYPE = rb_intern("type");
|
836
838
|
ID_EXECUTE = rb_intern("execute");
|
837
839
|
ID_EXEC = rb_intern("exec");
|
838
|
-
|
840
|
+
|
839
841
|
ID_SELECT_STMT = rb_intern("select_stmt");
|
840
842
|
ID_COLUMN_METADATA = rb_intern("column_metadata");
|
841
843
|
ID_PRECISION = rb_intern("precision");
|
@@ -843,10 +845,10 @@ void Init_do_oracle() {
|
|
843
845
|
ID_BIND_PARAM = rb_intern("bind_param");
|
844
846
|
ID_ELEM = rb_intern("[]");
|
845
847
|
ID_READ = rb_intern("read");
|
846
|
-
|
848
|
+
|
847
849
|
ID_CLOSE = rb_intern("close");
|
848
850
|
ID_LOGOFF = rb_intern("logoff");
|
849
|
-
|
851
|
+
|
850
852
|
// Get references to the Extlib module
|
851
853
|
mExtlib = CONST_GET(rb_mKernel, "Extlib");
|
852
854
|
rb_cByteArray = CONST_GET(mExtlib, "ByteArray");
|
Binary file
|
Binary file
|
data/lib/do_oracle/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -181,6 +181,10 @@ module DataObjectsSpecHelpers
|
|
181
181
|
update widgets set release_timestamp = NULL where id = 9
|
182
182
|
EOF
|
183
183
|
|
184
|
+
conn.create_command(<<-EOF).execute_non_query
|
185
|
+
update widgets set release_datetime = '2008-07-14 00:31:12' where id = 10
|
186
|
+
EOF
|
187
|
+
|
184
188
|
conn.close
|
185
189
|
$test_environment_setup_done = true
|
186
190
|
end
|
data/tasks/compile.rake
CHANGED
@@ -27,14 +27,14 @@ begin
|
|
27
27
|
ext.lib_dir = "lib/#{gemspec.name}"
|
28
28
|
ext.ext_dir = 'ext-java/src/main/java'
|
29
29
|
ext.debug = ENV.has_key?('DO_JAVA_DEBUG') && ENV['DO_JAVA_DEBUG']
|
30
|
-
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
|
30
|
+
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar:../jdbc_drivers/oracle/ojdbc5.jar'
|
31
31
|
ext.java_compiling do |gem|
|
32
32
|
|
33
33
|
# Hack: Unfortunately there is no way to remove a dependency in the
|
34
34
|
# Gem::Specification API.
|
35
35
|
gem.dependencies.delete_if { |d| d.name == 'ruby-oci8'}
|
36
36
|
|
37
|
-
gem.add_dependency "do_jdbc", '0.10.
|
37
|
+
gem.add_dependency "do_jdbc", '0.10.3'
|
38
38
|
end
|
39
39
|
end
|
40
40
|
rescue LoadError
|
data/tasks/release.rake
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: do_oracle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 49
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 10
|
8
|
-
-
|
9
|
-
version: 0.10.
|
9
|
+
- 3
|
10
|
+
version: 0.10.3
|
10
11
|
platform: x86-mswin32-60
|
11
12
|
authors:
|
12
13
|
- Raimonds Simanovskis
|
@@ -14,30 +15,34 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-01-30 00:00:00 +01:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: data_objects
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - "="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 49
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
- 10
|
30
|
-
-
|
31
|
-
version: 0.10.
|
33
|
+
- 3
|
34
|
+
version: 0.10.3
|
32
35
|
type: :runtime
|
33
36
|
version_requirements: *id001
|
34
37
|
- !ruby/object:Gem::Dependency
|
35
38
|
name: ruby-oci8
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - ~>
|
40
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
41
46
|
segments:
|
42
47
|
- 2
|
43
48
|
- 0
|
@@ -48,9 +53,11 @@ dependencies:
|
|
48
53
|
name: bacon
|
49
54
|
prerelease: false
|
50
55
|
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
51
57
|
requirements:
|
52
58
|
- - ~>
|
53
59
|
- !ruby/object:Gem::Version
|
60
|
+
hash: 13
|
54
61
|
segments:
|
55
62
|
- 1
|
56
63
|
- 1
|
@@ -61,13 +68,16 @@ dependencies:
|
|
61
68
|
name: rake-compiler
|
62
69
|
prerelease: false
|
63
70
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
64
72
|
requirements:
|
65
|
-
- -
|
73
|
+
- - "="
|
66
74
|
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
67
76
|
segments:
|
68
77
|
- 0
|
69
78
|
- 7
|
70
|
-
|
79
|
+
- 0
|
80
|
+
version: 0.7.0
|
71
81
|
type: :development
|
72
82
|
version_requirements: *id004
|
73
83
|
description: Implements the DataObjects API for Oracle
|
@@ -128,23 +138,27 @@ rdoc_options:
|
|
128
138
|
require_paths:
|
129
139
|
- lib
|
130
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
131
142
|
requirements:
|
132
143
|
- - ">="
|
133
144
|
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
134
146
|
segments:
|
135
147
|
- 0
|
136
148
|
version: "0"
|
137
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
138
151
|
requirements:
|
139
152
|
- - ">="
|
140
153
|
- !ruby/object:Gem::Version
|
154
|
+
hash: 3
|
141
155
|
segments:
|
142
156
|
- 0
|
143
157
|
version: "0"
|
144
158
|
requirements: []
|
145
159
|
|
146
160
|
rubyforge_project: dorb
|
147
|
-
rubygems_version: 1.3.
|
161
|
+
rubygems_version: 1.3.7
|
148
162
|
signing_key:
|
149
163
|
specification_version: 3
|
150
164
|
summary: DataObjects Oracle Driver
|