do_oracle 0.10.10-x86-mswin32-60 → 0.10.11-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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.10.11 2012-12-29
2
+
3
+ * Rename C symbols to prevent name collitions
4
+
1
5
  ## 0.10.10 2012-10-11
2
6
 
3
7
  No changes
@@ -10,12 +10,12 @@
10
10
  #include <ctype.h>
11
11
  #include <time.h>
12
12
 
13
- #define ID_CONST_GET rb_intern("const_get")
13
+ #define DO_ID_CONST_GET rb_intern("const_get")
14
14
 
15
15
  #define RUBY_STRING(char_ptr) rb_str_new2(char_ptr)
16
16
  #define TAINTED_STRING(name, length) rb_tainted_str_new(name, length)
17
- #define CONST_GET(scope, constant) (rb_funcall(scope, ID_CONST_GET, 1, rb_str_new2(constant)))
18
- #define ORACLE_CLASS(klass, parent) (rb_define_class_under(mOracle, klass, parent))
17
+ #define CONST_GET(scope, constant) (rb_funcall(scope, DO_ID_CONST_GET, 1, rb_str_new2(constant)))
18
+ #define ORACLE_CLASS(klass, parent) (rb_define_class_under(mDO_Oracle, klass, parent))
19
19
  #define DEBUG(value) data_objects_debug(value)
20
20
  #define RUBY_CLASS(name) rb_const_get(rb_cObject, rb_intern(name))
21
21
 
@@ -33,56 +33,56 @@
33
33
 
34
34
 
35
35
  // To store rb_intern values
36
- static ID ID_NEW;
37
- static ID ID_LOGGER;
38
- static ID ID_DEBUG;
39
- static ID ID_LEVEL;
40
- static ID ID_LOG;
41
- static ID ID_TO_S;
42
- static ID ID_RATIONAL;
43
-
44
- static ID ID_NAME;
45
-
46
- static ID ID_NUMBER;
47
- static ID ID_VARCHAR2;
48
- static ID ID_CHAR;
49
- static ID ID_DATE;
50
- static ID ID_TIMESTAMP;
51
- static ID ID_TIMESTAMP_TZ;
52
- static ID ID_TIMESTAMP_LTZ;
53
- static ID ID_CLOB;
54
- static ID ID_BLOB;
55
- static ID ID_LONG;
56
- static ID ID_RAW;
57
- static ID ID_LONG_RAW;
58
- static ID ID_BFILE;
59
- static ID ID_BINARY_FLOAT;
60
- static ID ID_BINARY_DOUBLE;
61
-
62
- static ID ID_TO_A;
63
- static ID ID_TO_I;
64
- static ID ID_TO_S;
65
- static ID ID_TO_F;
66
-
67
- static ID ID_UTC_OFFSET;
68
- static ID ID_FULL_CONST_GET;
69
-
70
- static ID ID_PARSE;
71
- static ID ID_FETCH;
72
- static ID ID_TYPE;
73
- static ID ID_EXECUTE;
74
- static ID ID_EXEC;
75
-
76
- static ID ID_SELECT_STMT;
77
- static ID ID_COLUMN_METADATA;
78
- static ID ID_PRECISION;
79
- static ID ID_SCALE;
80
- static ID ID_BIND_PARAM;
81
- static ID ID_ELEM;
82
- static ID ID_READ;
83
-
84
- static ID ID_CLOSE;
85
- static ID ID_LOGOFF;
36
+ static ID DO_ID_NEW;
37
+ static ID DO_ID_LOGGER;
38
+ static ID DO_ID_DEBUG;
39
+ static ID DO_ID_LEVEL;
40
+ static ID DO_ID_LOG;
41
+ static ID DO_ID_TO_S;
42
+ static ID DO_ID_RATIONAL;
43
+
44
+ static ID DO_ID_NAME;
45
+
46
+ static ID DO_ID_NUMBER;
47
+ static ID DO_ID_VARCHAR2;
48
+ static ID DO_ID_CHAR;
49
+ static ID DO_ID_DATE;
50
+ static ID DO_ID_TIMESTAMP;
51
+ static ID DO_ID_TIMESTAMP_TZ;
52
+ static ID DO_ID_TIMESTAMP_LTZ;
53
+ static ID DO_ID_CLOB;
54
+ static ID DO_ID_BLOB;
55
+ static ID DO_ID_LONG;
56
+ static ID DO_ID_RAW;
57
+ static ID DO_ID_LONG_RAW;
58
+ static ID DO_ID_BFILE;
59
+ static ID DO_ID_BINARY_FLOAT;
60
+ static ID DO_ID_BINARY_DOUBLE;
61
+
62
+ static ID DO_ID_TO_A;
63
+ static ID DO_ID_TO_I;
64
+ static ID DO_ID_TO_S;
65
+ static ID DO_ID_TO_F;
66
+
67
+ static ID DO_ID_UTC_OFFSET;
68
+ static ID DO_ID_FULL_CONST_GET;
69
+
70
+ static ID DO_ID_PARSE;
71
+ static ID DO_ID_FETCH;
72
+ static ID DO_ID_TYPE;
73
+ static ID DO_ID_EXECUTE;
74
+ static ID DO_ID_EXEC;
75
+
76
+ static ID DO_ID_SELECT_STMT;
77
+ static ID DO_ID_COLUMN_METADATA;
78
+ static ID DO_ID_PRECISION;
79
+ static ID DO_ID_SCALE;
80
+ static ID DO_ID_BIND_PARAM;
81
+ static ID DO_ID_ELEM;
82
+ static ID DO_ID_READ;
83
+
84
+ static ID DO_ID_CLOSE;
85
+ static ID DO_ID_LOGOFF;
86
86
 
87
87
  static VALUE mExtlib;
88
88
  static VALUE mDO;
@@ -104,16 +104,16 @@ static VALUE cOCI8_Cursor;
104
104
  static VALUE cOCI8_BLOB;
105
105
  static VALUE cOCI8_CLOB;
106
106
 
107
- static VALUE mOracle;
108
- static VALUE cConnection;
109
- static VALUE cCommand;
110
- static VALUE cResult;
111
- static VALUE cReader;
107
+ static VALUE mDO_Oracle;
108
+ static VALUE cDO_OracleConnection;
109
+ static VALUE cDO_OracleCommand;
110
+ static VALUE cDO_OracleResult;
111
+ static VALUE cDO_OracleReader;
112
112
 
113
113
  static VALUE eArgumentError;
114
- static VALUE eSQLError;
115
- static VALUE eConnectionError;
116
- static VALUE eDataError;
114
+ static VALUE eDO_SQLError;
115
+ static VALUE eDO_ConnectionError;
116
+ static VALUE eDO_DataError;
117
117
 
118
118
  static void data_objects_debug(VALUE connection, VALUE string, struct timeval* start) {
119
119
  struct timeval stop;
@@ -122,9 +122,9 @@ static void data_objects_debug(VALUE connection, VALUE string, struct timeval* s
122
122
  gettimeofday(&stop, NULL);
123
123
  do_int64 duration = (stop.tv_sec - start->tv_sec) * 1000000 + stop.tv_usec - start->tv_usec;
124
124
 
125
- message = rb_funcall(cDO_Logger_Message, ID_NEW, 3, string, rb_time_new(start->tv_sec, start->tv_usec), INT2NUM(duration));
125
+ message = rb_funcall(cDO_Logger_Message, DO_ID_NEW, 3, string, rb_time_new(start->tv_sec, start->tv_usec), INT2NUM(duration));
126
126
 
127
- rb_funcall(connection, ID_LOG, 1, message);
127
+ rb_funcall(connection, DO_ID_LOG, 1, message);
128
128
  }
129
129
 
130
130
 
@@ -155,10 +155,10 @@ static VALUE parse_date(VALUE r_value) {
155
155
  year = NUM2INT(rb_funcall(r_value, rb_intern("year"), 0));
156
156
  month = NUM2INT(rb_funcall(r_value, rb_intern("month"), 0));
157
157
  day = NUM2INT(rb_funcall(r_value, rb_intern("day"), 0));
158
- return rb_funcall(rb_cDate, ID_NEW, 3, INT2NUM(year), INT2NUM(month), INT2NUM(day));
158
+ return rb_funcall(rb_cDate, DO_ID_NEW, 3, INT2NUM(year), INT2NUM(month), INT2NUM(day));
159
159
  } else {
160
160
  // Something went terribly wrong
161
- rb_raise(eDataError, "Couldn't parse date from class %s object", rb_obj_classname(r_value));
161
+ rb_raise(eDO_DataError, "Couldn't parse date from class %s object", rb_obj_classname(r_value));
162
162
  }
163
163
  }
164
164
 
@@ -178,7 +178,7 @@ static VALUE parse_date_time(VALUE r_value) {
178
178
  if (rb_obj_class(r_value) == rb_cDateTime) {
179
179
  return r_value;
180
180
  } else if (rb_obj_class(r_value) == rb_cTime) {
181
- time_array = rb_funcall(r_value, ID_TO_A, 0);
181
+ time_array = rb_funcall(r_value, DO_ID_TO_A, 0);
182
182
  year = NUM2INT(rb_ary_entry(time_array, 5));
183
183
  month = NUM2INT(rb_ary_entry(time_array, 4));
184
184
  day = NUM2INT(rb_ary_entry(time_array, 3));
@@ -186,13 +186,13 @@ static VALUE parse_date_time(VALUE r_value) {
186
186
  min = NUM2INT(rb_ary_entry(time_array, 1));
187
187
  sec = NUM2INT(rb_ary_entry(time_array, 0));
188
188
 
189
- gmt_offset = NUM2INT(rb_funcall(r_value, ID_UTC_OFFSET, 0 ));
189
+ gmt_offset = NUM2INT(rb_funcall(r_value, DO_ID_UTC_OFFSET, 0 ));
190
190
 
191
- return rb_funcall(rb_cDateTime, ID_NEW, 7, INT2NUM(year), INT2NUM(month), INT2NUM(day),
191
+ return rb_funcall(rb_cDateTime, DO_ID_NEW, 7, INT2NUM(year), INT2NUM(month), INT2NUM(day),
192
192
  INT2NUM(hour), INT2NUM(min), INT2NUM(sec), INT2NUM(gmt_offset));
193
193
  } else {
194
194
  // Something went terribly wrong
195
- rb_raise(eDataError, "Couldn't parse datetime from class %s object", rb_obj_classname(r_value));
195
+ rb_raise(eDO_DataError, "Couldn't parse datetime from class %s object", rb_obj_classname(r_value));
196
196
  }
197
197
 
198
198
  }
@@ -202,7 +202,7 @@ static VALUE parse_time(VALUE r_value) {
202
202
  return r_value;
203
203
  } else {
204
204
  // Something went terribly wrong
205
- rb_raise(eDataError, "Couldn't parse time from class %s object", rb_obj_classname(r_value));
205
+ rb_raise(eDO_DataError, "Couldn't parse time from class %s object", rb_obj_classname(r_value));
206
206
  }
207
207
  }
208
208
 
@@ -214,7 +214,7 @@ static VALUE parse_boolean(VALUE r_value) {
214
214
  return value == 'Y' || value == 'y' || value == 'T' || value == 't' ? Qtrue : Qfalse;
215
215
  } else {
216
216
  // Something went terribly wrong
217
- rb_raise(eDataError, "Couldn't parse boolean from class %s object", rb_obj_classname(r_value));
217
+ rb_raise(eDO_DataError, "Couldn't parse boolean from class %s object", rb_obj_classname(r_value));
218
218
  }
219
219
  }
220
220
 
@@ -223,22 +223,22 @@ static VALUE parse_boolean(VALUE r_value) {
223
223
  static VALUE infer_ruby_type(VALUE type, VALUE precision, VALUE scale) {
224
224
  ID type_id = SYM2ID(type);
225
225
 
226
- if (type_id == ID_NUMBER)
226
+ if (type_id == DO_ID_NUMBER)
227
227
  return scale != Qnil && NUM2INT(scale) == 0 ?
228
228
  (NUM2INT(precision) == 1 ? rb_cTrueClass : rb_cInteger) : rb_cBigDecimal;
229
- else if (type_id == ID_VARCHAR2 || type_id == ID_CHAR || type_id == ID_CLOB || type_id == ID_LONG)
229
+ else if (type_id == DO_ID_VARCHAR2 || type_id == DO_ID_CHAR || type_id == DO_ID_CLOB || type_id == DO_ID_LONG)
230
230
  return rb_cString;
231
- else if (type_id == ID_DATE)
231
+ else if (type_id == DO_ID_DATE)
232
232
  // return rb_cDateTime;
233
233
  // by default map DATE type to Time class as it is much faster than DateTime class
234
234
  return rb_cTime;
235
- else if (type_id == ID_TIMESTAMP || type_id == ID_TIMESTAMP_TZ || type_id == ID_TIMESTAMP_LTZ)
235
+ else if (type_id == DO_ID_TIMESTAMP || type_id == DO_ID_TIMESTAMP_TZ || type_id == DO_ID_TIMESTAMP_LTZ)
236
236
  // return rb_cDateTime;
237
237
  // by default map TIMESTAMP type to Time class as it is much faster than DateTime class
238
238
  return rb_cTime;
239
- else if (type_id == ID_BLOB || type_id == ID_RAW || type_id == ID_LONG_RAW || type_id == ID_BFILE)
239
+ else if (type_id == DO_ID_BLOB || type_id == DO_ID_RAW || type_id == DO_ID_LONG_RAW || type_id == DO_ID_BFILE)
240
240
  return rb_cByteArray;
241
- else if (type_id == ID_BINARY_FLOAT || type_id == ID_BINARY_DOUBLE)
241
+ else if (type_id == DO_ID_BINARY_FLOAT || type_id == DO_ID_BINARY_DOUBLE)
242
242
  return rb_cFloat;
243
243
  else
244
244
  return rb_cString;
@@ -248,22 +248,22 @@ static VALUE typecast(VALUE r_value, const VALUE type) {
248
248
  VALUE r_data;
249
249
 
250
250
  if (type == rb_cInteger) {
251
- return TYPE(r_value) == T_FIXNUM || TYPE(r_value) == T_BIGNUM ? r_value : rb_funcall(r_value, ID_TO_I, 0);
251
+ return TYPE(r_value) == T_FIXNUM || TYPE(r_value) == T_BIGNUM ? r_value : rb_funcall(r_value, DO_ID_TO_I, 0);
252
252
 
253
253
  } else if (type == rb_cString) {
254
254
  if (TYPE(r_value) == T_STRING)
255
255
  return r_value;
256
256
  else if (rb_obj_class(r_value) == cOCI8_CLOB)
257
- return rb_funcall(r_value, ID_READ, 0);
257
+ return rb_funcall(r_value, DO_ID_READ, 0);
258
258
  else
259
- return rb_funcall(r_value, ID_TO_S, 0);
259
+ return rb_funcall(r_value, DO_ID_TO_S, 0);
260
260
 
261
261
  } else if (type == rb_cFloat) {
262
- return TYPE(r_value) == T_FLOAT ? r_value : rb_funcall(r_value, ID_TO_F, 0);
262
+ return TYPE(r_value) == T_FLOAT ? r_value : rb_funcall(r_value, DO_ID_TO_F, 0);
263
263
 
264
264
  } else if (type == rb_cBigDecimal) {
265
- VALUE r_string = TYPE(r_value) == T_STRING ? r_value : rb_funcall(r_value, ID_TO_S, 0);
266
- return rb_funcall(rb_cBigDecimal, ID_NEW, 1, r_string);
265
+ VALUE r_string = TYPE(r_value) == T_STRING ? r_value : rb_funcall(r_value, DO_ID_TO_S, 0);
266
+ return rb_funcall(rb_cBigDecimal, DO_ID_NEW, 1, r_string);
267
267
 
268
268
  } else if (type == rb_cDate) {
269
269
  return parse_date(r_value);
@@ -279,20 +279,20 @@ static VALUE typecast(VALUE r_value, const VALUE type) {
279
279
 
280
280
  } else if (type == rb_cByteArray) {
281
281
  if (rb_obj_class(r_value) == cOCI8_BLOB)
282
- r_data = rb_funcall(r_value, ID_READ, 0);
282
+ r_data = rb_funcall(r_value, DO_ID_READ, 0);
283
283
  else
284
284
  r_data = r_value;
285
- return rb_funcall(rb_cByteArray, ID_NEW, 1, r_data);
285
+ return rb_funcall(rb_cByteArray, DO_ID_NEW, 1, r_data);
286
286
 
287
287
  } else if (type == rb_cClass) {
288
- return rb_funcall(mDO, ID_FULL_CONST_GET, 1, r_value);
288
+ return rb_funcall(mDO, DO_ID_FULL_CONST_GET, 1, r_value);
289
289
 
290
290
  } else if (type == rb_cNilClass) {
291
291
  return Qnil;
292
292
 
293
293
  } else {
294
294
  if (rb_obj_class(r_value) == cOCI8_CLOB)
295
- return rb_funcall(r_value, ID_READ, 0);
295
+ return rb_funcall(r_value, DO_ID_READ, 0);
296
296
  else
297
297
  return r_value;
298
298
  }
@@ -308,36 +308,36 @@ static VALUE typecast_bind_value(VALUE connection, VALUE r_value) {
308
308
  return RUBY_STRING("");
309
309
  else if (r_class == rb_cString)
310
310
  // if string is longer than 4000 characters then convert to CLOB
311
- return RSTRING_LEN(r_value) <= 4000 ? r_value : rb_funcall(cOCI8_CLOB, ID_NEW, 2, oci8_conn, r_value);
311
+ return RSTRING_LEN(r_value) <= 4000 ? r_value : rb_funcall(cOCI8_CLOB, DO_ID_NEW, 2, oci8_conn, r_value);
312
312
  else if (r_class == rb_cBigDecimal)
313
- return rb_funcall(r_value, ID_TO_S, 1, RUBY_STRING("F"));
313
+ return rb_funcall(r_value, DO_ID_TO_S, 1, RUBY_STRING("F"));
314
314
  else if (r_class == rb_cTrueClass)
315
315
  return INT2NUM(1);
316
316
  else if (r_class == rb_cFalseClass)
317
317
  return INT2NUM(0);
318
318
  else if (r_class == rb_cByteArray)
319
- return rb_funcall(cOCI8_BLOB, ID_NEW, 2, oci8_conn, r_value);
319
+ return rb_funcall(cOCI8_BLOB, DO_ID_NEW, 2, oci8_conn, r_value);
320
320
  else if (r_class == rb_cClass)
321
- return rb_funcall(r_value, ID_TO_S, 0);
321
+ return rb_funcall(r_value, DO_ID_TO_S, 0);
322
322
  else
323
323
  return r_value;
324
324
  }
325
325
 
326
326
  /* ====== Public API ======= */
327
- static VALUE cConnection_dispose(VALUE self) {
327
+ static VALUE cDO_OracleConnection_dispose(VALUE self) {
328
328
  VALUE oci8_conn = rb_iv_get(self, "@connection");
329
329
 
330
330
  if (Qnil == oci8_conn)
331
331
  return Qfalse;
332
332
 
333
- rb_funcall(oci8_conn, ID_LOGOFF, 0);
333
+ rb_funcall(oci8_conn, DO_ID_LOGOFF, 0);
334
334
 
335
335
  rb_iv_set(self, "@connection", Qnil);
336
336
 
337
337
  return Qtrue;
338
338
  }
339
339
 
340
- static VALUE cCommand_set_types(int argc, VALUE *argv, VALUE self) {
340
+ static VALUE cDO_OracleCommand_set_types(int argc, VALUE *argv, VALUE self) {
341
341
  VALUE type_strings = rb_ary_new();
342
342
  VALUE array = rb_ary_new();
343
343
 
@@ -378,48 +378,48 @@ typedef struct {
378
378
  VALUE args;
379
379
  VALUE sql;
380
380
  struct timeval start;
381
- } cCommand_execute_try_t;
381
+ } cDO_OracleCommand_execute_try_t;
382
382
 
383
- static VALUE cCommand_execute_try(cCommand_execute_try_t *arg);
384
- static VALUE cCommand_execute_ensure(cCommand_execute_try_t *arg);
383
+ static VALUE cDO_OracleCommand_execute_try(cDO_OracleCommand_execute_try_t *arg);
384
+ static VALUE cDO_OracleCommand_execute_ensure(cDO_OracleCommand_execute_try_t *arg);
385
385
 
386
386
  // called by Command#execute that is written in Ruby
387
- static VALUE cCommand_execute_internal(VALUE self, VALUE connection, VALUE sql, VALUE args) {
388
- cCommand_execute_try_t arg;
387
+ static VALUE cDO_OracleCommand_execute_internal(VALUE self, VALUE connection, VALUE sql, VALUE args) {
388
+ cDO_OracleCommand_execute_try_t arg;
389
389
  arg.self = self;
390
390
  arg.connection = connection;
391
391
  arg.sql = sql;
392
392
  // store start time before SQL parsing
393
393
  VALUE oci8_conn = rb_iv_get(connection, "@connection");
394
394
  if (Qnil == oci8_conn) {
395
- rb_raise(eConnectionError, "This connection has already been closed.");
395
+ rb_raise(eDO_ConnectionError, "This connection has already been closed.");
396
396
  }
397
397
  gettimeofday(&arg.start, NULL);
398
- arg.cursor = rb_funcall(oci8_conn, ID_PARSE, 1, sql);
399
- arg.statement_type = rb_funcall(arg.cursor, ID_TYPE, 0);
398
+ arg.cursor = rb_funcall(oci8_conn, DO_ID_PARSE, 1, sql);
399
+ arg.statement_type = rb_funcall(arg.cursor, DO_ID_TYPE, 0);
400
400
  arg.args = args;
401
401
 
402
- return rb_ensure(cCommand_execute_try, (VALUE)&arg, cCommand_execute_ensure, (VALUE)&arg);
402
+ return rb_ensure(cDO_OracleCommand_execute_try, (VALUE)&arg, cDO_OracleCommand_execute_ensure, (VALUE)&arg);
403
403
  }
404
404
 
405
405
  // wrapper for simple SQL calls without arguments
406
406
  static VALUE execute_sql(VALUE connection, VALUE sql) {
407
- return cCommand_execute_internal(Qnil, connection, sql, Qnil);
407
+ return cDO_OracleCommand_execute_internal(Qnil, connection, sql, Qnil);
408
408
  }
409
409
 
410
- static VALUE cCommand_execute_try(cCommand_execute_try_t *arg) {
410
+ static VALUE cDO_OracleCommand_execute_try(cDO_OracleCommand_execute_try_t *arg) {
411
411
  VALUE result = Qnil;
412
412
  int insert_id_present;
413
413
 
414
414
  // no arguments given
415
415
  if NIL_P(arg->args) {
416
- result = rb_funcall(arg->cursor, ID_EXEC, 0);
416
+ result = rb_funcall(arg->cursor, DO_ID_EXEC, 0);
417
417
  // arguments given - need to typecast
418
418
  } else {
419
419
  insert_id_present = (!NIL_P(arg->self) && rb_iv_get(arg->self, "@insert_id_present") == Qtrue);
420
420
 
421
421
  if (insert_id_present)
422
- rb_funcall(arg->cursor, ID_BIND_PARAM, 2, RUBY_STRING(":insert_id"), INT2NUM(0));
422
+ rb_funcall(arg->cursor, DO_ID_BIND_PARAM, 2, RUBY_STRING(":insert_id"), INT2NUM(0));
423
423
 
424
424
  int i;
425
425
  VALUE r_orig_value, r_new_value;
@@ -430,15 +430,15 @@ static VALUE cCommand_execute_try(cCommand_execute_try_t *arg) {
430
430
  rb_ary_store(arg->args, i, r_new_value);
431
431
  }
432
432
 
433
- result = rb_apply(arg->cursor, ID_EXEC, arg->args);
433
+ result = rb_apply(arg->cursor, DO_ID_EXEC, arg->args);
434
434
 
435
435
  if (insert_id_present) {
436
- VALUE insert_id = rb_funcall(arg->cursor, ID_ELEM, 1, RUBY_STRING(":insert_id"));
436
+ VALUE insert_id = rb_funcall(arg->cursor, DO_ID_ELEM, 1, RUBY_STRING(":insert_id"));
437
437
  rb_iv_set(arg->self, "@insert_id", insert_id);
438
438
  }
439
439
  }
440
440
 
441
- if (SYM2ID(arg->statement_type) == ID_SELECT_STMT)
441
+ if (SYM2ID(arg->statement_type) == DO_ID_SELECT_STMT)
442
442
  return arg->cursor;
443
443
  else {
444
444
  return result;
@@ -446,15 +446,15 @@ static VALUE cCommand_execute_try(cCommand_execute_try_t *arg) {
446
446
 
447
447
  }
448
448
 
449
- static VALUE cCommand_execute_ensure(cCommand_execute_try_t *arg) {
450
- if (SYM2ID(arg->statement_type) != ID_SELECT_STMT)
451
- rb_funcall(arg->cursor, ID_CLOSE, 0);
449
+ static VALUE cDO_OracleCommand_execute_ensure(cDO_OracleCommand_execute_try_t *arg) {
450
+ if (SYM2ID(arg->statement_type) != DO_ID_SELECT_STMT)
451
+ rb_funcall(arg->cursor, DO_ID_CLOSE, 0);
452
452
  // Log SQL and execution time
453
453
  data_objects_debug(arg->connection, arg->sql, &(arg->start));
454
454
  return Qnil;
455
455
  }
456
456
 
457
- static VALUE cConnection_initialize(VALUE self, VALUE uri) {
457
+ static VALUE cDO_OracleConnection_initialize(VALUE self, VALUE uri) {
458
458
  VALUE r_host, r_port, r_path, r_user, r_password;
459
459
  VALUE r_query, r_time_zone;
460
460
  char *non_blocking = NULL;
@@ -476,7 +476,7 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
476
476
 
477
477
  r_port = rb_funcall(uri, rb_intern("port"), 0);
478
478
  if ( Qnil != r_port ) {
479
- r_port = rb_funcall(r_port, ID_TO_S, 0);
479
+ r_port = rb_funcall(r_port, DO_ID_TO_S, 0);
480
480
  port = StringValuePtr(r_port);
481
481
  }
482
482
 
@@ -496,11 +496,11 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
496
496
  connect_string = (char *)calloc(connect_string_length, sizeof(char));
497
497
  snprintf(connect_string, connect_string_length, "//%s:%s%s", host, port, path);
498
498
  } else {
499
- rb_raise(eConnectionError, "Database must be specified");
499
+ rb_raise(eDO_ConnectionError, "Database must be specified");
500
500
  }
501
501
 
502
- // oci8_conn = rb_funcall(cOCI8, ID_NEW, 3, r_user, r_password, RUBY_STRING(connect_string));
503
- oci8_conn = rb_funcall(cConnection, rb_intern("oci8_new"), 3, r_user, r_password, RUBY_STRING(connect_string));
502
+ // oci8_conn = rb_funcall(cOCI8, DO_ID_NEW, 3, r_user, r_password, RUBY_STRING(connect_string));
503
+ oci8_conn = rb_funcall(cDO_OracleConnection, rb_intern("oci8_new"), 3, r_user, r_password, RUBY_STRING(connect_string));
504
504
 
505
505
  // Pull the querystring off the URI
506
506
  r_query = rb_funcall(uri, rb_intern("query"), 0);
@@ -523,7 +523,7 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
523
523
 
524
524
  // if no option specified then look in ENV['TZ']
525
525
  if (time_zone == NULL) {
526
- r_time_zone = rb_funcall(cConnection, rb_intern("ruby_time_zone"), 0);
526
+ r_time_zone = rb_funcall(cDO_OracleConnection, rb_intern("ruby_time_zone"), 0);
527
527
  if (!NIL_P(r_time_zone))
528
528
  time_zone = StringValuePtr(r_time_zone);
529
529
  }
@@ -539,17 +539,17 @@ static VALUE cConnection_initialize(VALUE self, VALUE uri) {
539
539
  return Qtrue;
540
540
  }
541
541
 
542
- static VALUE cCommand_execute_non_query(int argc, VALUE *argv[], VALUE self) {
543
- VALUE affected_rows = rb_funcall2(self, ID_EXECUTE, argc, (VALUE *)argv);
542
+ static VALUE cDO_OracleCommand_execute_non_query(int argc, VALUE *argv[], VALUE self) {
543
+ VALUE affected_rows = rb_funcall2(self, DO_ID_EXECUTE, argc, (VALUE *)argv);
544
544
  if (affected_rows == Qtrue)
545
545
  affected_rows = INT2NUM(0);
546
546
 
547
547
  VALUE insert_id = rb_iv_get(self, "@insert_id");
548
548
 
549
- return rb_funcall(cResult, ID_NEW, 3, self, affected_rows, insert_id);
549
+ return rb_funcall(cDO_OracleResult, DO_ID_NEW, 3, self, affected_rows, insert_id);
550
550
  }
551
551
 
552
- static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
552
+ static VALUE cDO_OracleCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
553
553
  VALUE reader, query;
554
554
  VALUE field_names, field_types;
555
555
  VALUE column_metadata, column, column_name;
@@ -558,22 +558,22 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
558
558
  int field_count;
559
559
  int infer_types = 0;
560
560
 
561
- VALUE cursor = rb_funcall2(self, ID_EXECUTE, argc, (VALUE *)argv);
561
+ VALUE cursor = rb_funcall2(self, DO_ID_EXECUTE, argc, (VALUE *)argv);
562
562
 
563
563
  if (rb_obj_class(cursor) != cOCI8_Cursor) {
564
564
  rb_raise(eArgumentError, "\"%s\" is invalid SELECT query", StringValuePtr(query));
565
565
  }
566
566
 
567
- column_metadata = rb_funcall(cursor, ID_COLUMN_METADATA, 0);
567
+ column_metadata = rb_funcall(cursor, DO_ID_COLUMN_METADATA, 0);
568
568
  field_count = RARRAY_LEN(column_metadata);
569
569
  // reduce field_count by 1 if RAW_RNUM_ is present as last column
570
570
  // (generated by DataMapper to simulate LIMIT and OFFSET)
571
571
  column = rb_ary_entry(column_metadata, field_count-1);
572
- column_name = rb_funcall(column, ID_NAME, 0);
572
+ column_name = rb_funcall(column, DO_ID_NAME, 0);
573
573
  if (strncmp(RSTRING_PTR(column_name), "RAW_RNUM_", RSTRING_LEN(column_name)) == 0)
574
574
  field_count--;
575
575
 
576
- reader = rb_funcall(cReader, ID_NEW, 0);
576
+ reader = rb_funcall(cDO_OracleReader, DO_ID_NEW, 0);
577
577
  rb_iv_set(reader, "@reader", cursor);
578
578
  rb_iv_set(reader, "@field_count", INT2NUM(field_count));
579
579
 
@@ -586,19 +586,19 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
586
586
  } else if (RARRAY_LEN(field_types) != field_count) {
587
587
  // Whoops... wrong number of types passed to set_types. Close the reader and raise
588
588
  // and error
589
- rb_funcall(reader, ID_CLOSE, 0);
589
+ rb_funcall(reader, DO_ID_CLOSE, 0);
590
590
  rb_raise(eArgumentError, "Field-count mismatch. Expected %ld fields, but the query yielded %d", RARRAY_LEN(field_types), field_count);
591
591
  }
592
592
 
593
593
  for ( i = 0; i < field_count; i++ ) {
594
594
  column = rb_ary_entry(column_metadata, i);
595
- column_name = rb_funcall(column, ID_NAME, 0);
595
+ column_name = rb_funcall(column, DO_ID_NAME, 0);
596
596
  rb_ary_push(field_names, column_name);
597
597
  if ( infer_types == 1 ) {
598
598
  rb_ary_push(field_types,
599
599
  infer_ruby_type(rb_iv_get(column, "@data_type"),
600
- rb_funcall(column, ID_PRECISION, 0),
601
- rb_funcall(column, ID_SCALE, 0))
600
+ rb_funcall(column, DO_ID_PRECISION, 0),
601
+ rb_funcall(column, DO_ID_SCALE, 0))
602
602
  );
603
603
  }
604
604
  }
@@ -612,19 +612,19 @@ static VALUE cCommand_execute_reader(int argc, VALUE *argv[], VALUE self) {
612
612
  return reader;
613
613
  }
614
614
 
615
- static VALUE cReader_close(VALUE self) {
615
+ static VALUE cDO_OracleReader_close(VALUE self) {
616
616
  VALUE cursor = rb_iv_get(self, "@reader");
617
617
 
618
618
  if (Qnil == cursor)
619
619
  return Qfalse;
620
620
 
621
- rb_funcall(cursor, ID_CLOSE, 0);
621
+ rb_funcall(cursor, DO_ID_CLOSE, 0);
622
622
 
623
623
  rb_iv_set(self, "@reader", Qnil);
624
624
  return Qtrue;
625
625
  }
626
626
 
627
- static VALUE cReader_next(VALUE self) {
627
+ static VALUE cDO_OracleReader_next(VALUE self) {
628
628
  VALUE cursor = rb_iv_get(self, "@reader");
629
629
 
630
630
  int field_count;
@@ -637,7 +637,7 @@ static VALUE cReader_next(VALUE self) {
637
637
  VALUE field_types, field_type;
638
638
  VALUE value;
639
639
 
640
- VALUE fetch_result = rb_funcall(cursor, ID_FETCH, 0);
640
+ VALUE fetch_result = rb_funcall(cursor, DO_ID_FETCH, 0);
641
641
 
642
642
  if (Qnil == fetch_result) {
643
643
  rb_iv_set(self, "@values", Qnil);
@@ -663,22 +663,22 @@ static VALUE cReader_next(VALUE self) {
663
663
  return Qtrue;
664
664
  }
665
665
 
666
- static VALUE cReader_values(VALUE self) {
666
+ static VALUE cDO_OracleReader_values(VALUE self) {
667
667
 
668
668
  VALUE values = rb_iv_get(self, "@values");
669
669
  if(values == Qnil) {
670
- rb_raise(eDataError, "Reader not initialized");
670
+ rb_raise(eDO_DataError, "Reader not initialized");
671
671
  return Qnil;
672
672
  } else {
673
673
  return values;
674
674
  }
675
675
  }
676
676
 
677
- static VALUE cReader_fields(VALUE self) {
677
+ static VALUE cDO_OracleReader_fields(VALUE self) {
678
678
  return rb_iv_get(self, "@fields");
679
679
  }
680
680
 
681
- static VALUE cReader_field_count(VALUE self) {
681
+ static VALUE cDO_OracleReader_field_count(VALUE self) {
682
682
  return rb_iv_get(self, "@field_count");
683
683
  }
684
684
 
@@ -697,56 +697,56 @@ void Init_do_oracle() {
697
697
 
698
698
  rb_funcall(rb_mKernel, rb_intern("require"), 1, rb_str_new2("data_objects"));
699
699
 
700
- ID_NEW = rb_intern("new");
701
- ID_LOGGER = rb_intern("logger");
702
- ID_DEBUG = rb_intern("debug");
703
- ID_LEVEL = rb_intern("level");
704
- ID_LOG = rb_intern("log");
705
- ID_TO_S = rb_intern("to_s");
706
- ID_RATIONAL = rb_intern("Rational");
707
-
708
- ID_NAME = rb_intern("name");
709
-
710
- ID_NUMBER = rb_intern("number");
711
- ID_VARCHAR2 = rb_intern("varchar2");
712
- ID_CHAR = rb_intern("char");
713
- ID_DATE = rb_intern("date");
714
- ID_TIMESTAMP = rb_intern("timestamp");
715
- ID_TIMESTAMP_TZ = rb_intern("timestamp_tz");
716
- ID_TIMESTAMP_LTZ = rb_intern("timestamp_ltz");
717
- ID_CLOB = rb_intern("clob");
718
- ID_BLOB = rb_intern("blob");
719
- ID_LONG = rb_intern("long");
720
- ID_RAW = rb_intern("raw");
721
- ID_LONG_RAW = rb_intern("long_raw");
722
- ID_BFILE = rb_intern("bfile");
723
- ID_BINARY_FLOAT = rb_intern("binary_float");
724
- ID_BINARY_DOUBLE = rb_intern("binary_double");
725
-
726
- ID_TO_A = rb_intern("to_a");
727
- ID_TO_I = rb_intern("to_i");
728
- ID_TO_S = rb_intern("to_s");
729
- ID_TO_F = rb_intern("to_f");
730
-
731
- ID_UTC_OFFSET = rb_intern("utc_offset");
732
- ID_FULL_CONST_GET = rb_intern("full_const_get");
733
-
734
- ID_PARSE = rb_intern("parse");
735
- ID_FETCH = rb_intern("fetch");
736
- ID_TYPE = rb_intern("type");
737
- ID_EXECUTE = rb_intern("execute");
738
- ID_EXEC = rb_intern("exec");
739
-
740
- ID_SELECT_STMT = rb_intern("select_stmt");
741
- ID_COLUMN_METADATA = rb_intern("column_metadata");
742
- ID_PRECISION = rb_intern("precision");
743
- ID_SCALE = rb_intern("scale");
744
- ID_BIND_PARAM = rb_intern("bind_param");
745
- ID_ELEM = rb_intern("[]");
746
- ID_READ = rb_intern("read");
747
-
748
- ID_CLOSE = rb_intern("close");
749
- ID_LOGOFF = rb_intern("logoff");
700
+ DO_ID_NEW = rb_intern("new");
701
+ DO_ID_LOGGER = rb_intern("logger");
702
+ DO_ID_DEBUG = rb_intern("debug");
703
+ DO_ID_LEVEL = rb_intern("level");
704
+ DO_ID_LOG = rb_intern("log");
705
+ DO_ID_TO_S = rb_intern("to_s");
706
+ DO_ID_RATIONAL = rb_intern("Rational");
707
+
708
+ DO_ID_NAME = rb_intern("name");
709
+
710
+ DO_ID_NUMBER = rb_intern("number");
711
+ DO_ID_VARCHAR2 = rb_intern("varchar2");
712
+ DO_ID_CHAR = rb_intern("char");
713
+ DO_ID_DATE = rb_intern("date");
714
+ DO_ID_TIMESTAMP = rb_intern("timestamp");
715
+ DO_ID_TIMESTAMP_TZ = rb_intern("timestamp_tz");
716
+ DO_ID_TIMESTAMP_LTZ = rb_intern("timestamp_ltz");
717
+ DO_ID_CLOB = rb_intern("clob");
718
+ DO_ID_BLOB = rb_intern("blob");
719
+ DO_ID_LONG = rb_intern("long");
720
+ DO_ID_RAW = rb_intern("raw");
721
+ DO_ID_LONG_RAW = rb_intern("long_raw");
722
+ DO_ID_BFILE = rb_intern("bfile");
723
+ DO_ID_BINARY_FLOAT = rb_intern("binary_float");
724
+ DO_ID_BINARY_DOUBLE = rb_intern("binary_double");
725
+
726
+ DO_ID_TO_A = rb_intern("to_a");
727
+ DO_ID_TO_I = rb_intern("to_i");
728
+ DO_ID_TO_S = rb_intern("to_s");
729
+ DO_ID_TO_F = rb_intern("to_f");
730
+
731
+ DO_ID_UTC_OFFSET = rb_intern("utc_offset");
732
+ DO_ID_FULL_CONST_GET = rb_intern("full_const_get");
733
+
734
+ DO_ID_PARSE = rb_intern("parse");
735
+ DO_ID_FETCH = rb_intern("fetch");
736
+ DO_ID_TYPE = rb_intern("type");
737
+ DO_ID_EXECUTE = rb_intern("execute");
738
+ DO_ID_EXEC = rb_intern("exec");
739
+
740
+ DO_ID_SELECT_STMT = rb_intern("select_stmt");
741
+ DO_ID_COLUMN_METADATA = rb_intern("column_metadata");
742
+ DO_ID_PRECISION = rb_intern("precision");
743
+ DO_ID_SCALE = rb_intern("scale");
744
+ DO_ID_BIND_PARAM = rb_intern("bind_param");
745
+ DO_ID_ELEM = rb_intern("[]");
746
+ DO_ID_READ = rb_intern("read");
747
+
748
+ DO_ID_CLOSE = rb_intern("close");
749
+ DO_ID_LOGOFF = rb_intern("logoff");
750
750
 
751
751
  // Get references to the Extlib module
752
752
  mExtlib = CONST_GET(rb_mKernel, "Extlib");
@@ -769,31 +769,31 @@ void Init_do_oracle() {
769
769
  cDO_Logger_Message = CONST_GET(cDO_Logger, "Message");
770
770
 
771
771
  // Top Level Module that all the classes live under
772
- mOracle = rb_define_module_under(mDO, "Oracle");
772
+ mDO_Oracle = rb_define_module_under(mDO, "Oracle");
773
773
 
774
774
  eArgumentError = CONST_GET(rb_mKernel, "ArgumentError");
775
- eSQLError = CONST_GET(mDO, "SQLError");
776
- eConnectionError = CONST_GET(mDO, "ConnectionError");
777
- eDataError = CONST_GET(mDO, "DataError");
775
+ eDO_SQLError = CONST_GET(mDO, "SQLError");
776
+ eDO_ConnectionError = CONST_GET(mDO, "ConnectionError");
777
+ eDO_DataError = CONST_GET(mDO, "DataError");
778
778
  // eOracleError = rb_define_class("OracleError", rb_eStandardError);
779
779
 
780
- cConnection = ORACLE_CLASS("Connection", cDO_Connection);
781
- rb_define_method(cConnection, "initialize", cConnection_initialize, 1);
782
- rb_define_method(cConnection, "dispose", cConnection_dispose, 0);
780
+ cDO_OracleConnection = ORACLE_CLASS("Connection", cDO_Connection);
781
+ rb_define_method(cDO_OracleConnection, "initialize", cDO_OracleConnection_initialize, 1);
782
+ rb_define_method(cDO_OracleConnection, "dispose", cDO_OracleConnection_dispose, 0);
783
783
 
784
- cCommand = ORACLE_CLASS("Command", cDO_Command);
785
- rb_define_method(cCommand, "set_types", cCommand_set_types, -1);
786
- rb_define_method(cCommand, "execute_non_query", cCommand_execute_non_query, -1);
787
- rb_define_method(cCommand, "execute_reader", cCommand_execute_reader, -1);
788
- rb_define_method(cCommand, "execute_internal", cCommand_execute_internal, 3);
784
+ cDO_OracleCommand = ORACLE_CLASS("Command", cDO_Command);
785
+ rb_define_method(cDO_OracleCommand, "set_types", cDO_OracleCommand_set_types, -1);
786
+ rb_define_method(cDO_OracleCommand, "execute_non_query", cDO_OracleCommand_execute_non_query, -1);
787
+ rb_define_method(cDO_OracleCommand, "execute_reader", cDO_OracleCommand_execute_reader, -1);
788
+ rb_define_method(cDO_OracleCommand, "execute_internal", cDO_OracleCommand_execute_internal, 3);
789
789
 
790
- cResult = ORACLE_CLASS("Result", cDO_Result);
790
+ cDO_OracleResult = ORACLE_CLASS("Result", cDO_Result);
791
791
 
792
- cReader = ORACLE_CLASS("Reader", cDO_Reader);
793
- rb_define_method(cReader, "close", cReader_close, 0);
794
- rb_define_method(cReader, "next!", cReader_next, 0);
795
- rb_define_method(cReader, "values", cReader_values, 0);
796
- rb_define_method(cReader, "fields", cReader_fields, 0);
797
- rb_define_method(cReader, "field_count", cReader_field_count, 0);
792
+ cDO_OracleReader = ORACLE_CLASS("Reader", cDO_Reader);
793
+ rb_define_method(cDO_OracleReader, "close", cDO_OracleReader_close, 0);
794
+ rb_define_method(cDO_OracleReader, "next!", cDO_OracleReader_next, 0);
795
+ rb_define_method(cDO_OracleReader, "values", cDO_OracleReader_values, 0);
796
+ rb_define_method(cDO_OracleReader, "fields", cDO_OracleReader_fields, 0);
797
+ rb_define_method(cDO_OracleReader, "field_count", cDO_OracleReader_field_count, 0);
798
798
 
799
799
  }
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  module DataObjects
2
2
  module Oracle
3
- VERSION = '0.10.10'
3
+ VERSION = '0.10.11'
4
4
  end
5
5
  end
data/tasks/compile.rake CHANGED
@@ -32,7 +32,7 @@ begin
32
32
  # Gem::Specification API.
33
33
  gem.dependencies.delete_if { |d| d.name == 'ruby-oci8'}
34
34
 
35
- gem.add_dependency "do_jdbc", '0.10.10'
35
+ gem.add_dependency "do_jdbc", '0.10.11'
36
36
  end
37
37
  end
38
38
  rescue LoadError
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 10
8
- - 10
9
- version: 0.10.10
8
+ - 11
9
+ version: 0.10.11
10
10
  platform: x86-mswin32-60
11
11
  authors:
12
12
  - Raimonds Simanovskis
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-29 00:00:00 +02:00
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
- - 10
32
- version: 0.10.10
31
+ - 11
32
+ version: 0.10.11
33
33
  requirement: *id001
34
34
  - !ruby/object:Gem::Dependency
35
35
  prerelease: false