ruby-oci8 2.2.3 → 2.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +427 -0
  3. data/NEWS +335 -42
  4. data/README.md +20 -9
  5. data/dist-files +9 -3
  6. data/docs/bind-array-to-in_cond.md +2 -2
  7. data/docs/conflicts-local-connections-and-processes.md +7 -4
  8. data/docs/hanging-after-inactivity.md +63 -0
  9. data/docs/install-binary-package.md +15 -11
  10. data/docs/install-full-client.md +18 -21
  11. data/docs/install-instant-client.md +45 -27
  12. data/docs/install-on-osx.md +31 -120
  13. data/docs/ldap-auth-and-function-interposition.md +123 -0
  14. data/docs/number-type-mapping.md +79 -0
  15. data/docs/platform-specific-issues.md +17 -50
  16. data/docs/report-installation-issue.md +3 -0
  17. data/docs/timeout-parameters.md +3 -0
  18. data/ext/oci8/apiwrap.c.tmpl +2 -5
  19. data/ext/oci8/apiwrap.rb +6 -1
  20. data/ext/oci8/apiwrap.yml +34 -22
  21. data/ext/oci8/attr.c +4 -2
  22. data/ext/oci8/bind.c +366 -6
  23. data/ext/oci8/connection_pool.c +3 -3
  24. data/ext/oci8/encoding.c +5 -5
  25. data/ext/oci8/env.c +8 -2
  26. data/ext/oci8/error.c +24 -16
  27. data/ext/oci8/extconf.rb +8 -4
  28. data/ext/oci8/hook_funcs.c +274 -61
  29. data/ext/oci8/lob.c +31 -75
  30. data/ext/oci8/metadata.c +2 -2
  31. data/ext/oci8/object.c +72 -27
  32. data/ext/oci8/oci8.c +45 -132
  33. data/ext/oci8/oci8.h +32 -88
  34. data/ext/oci8/oci8lib.c +178 -38
  35. data/ext/oci8/ocihandle.c +37 -37
  36. data/ext/oci8/ocinumber.c +23 -18
  37. data/ext/oci8/oraconf.rb +158 -339
  38. data/ext/oci8/oradate.c +19 -19
  39. data/ext/oci8/plthook.h +10 -0
  40. data/ext/oci8/plthook_elf.c +433 -268
  41. data/ext/oci8/plthook_osx.c +40 -9
  42. data/ext/oci8/plthook_win32.c +9 -0
  43. data/ext/oci8/stmt.c +52 -17
  44. data/ext/oci8/win32.c +4 -22
  45. data/lib/oci8/bindtype.rb +1 -15
  46. data/lib/oci8/check_load_error.rb +57 -10
  47. data/lib/oci8/cursor.rb +57 -25
  48. data/lib/oci8/metadata.rb +9 -1
  49. data/lib/oci8/object.rb +10 -0
  50. data/lib/oci8/oci8.rb +33 -28
  51. data/lib/oci8/oracle_version.rb +11 -1
  52. data/lib/oci8/properties.rb +22 -0
  53. data/lib/oci8/version.rb +1 -1
  54. data/lib/oci8.rb +48 -4
  55. data/lib/ruby-oci8.rb +0 -3
  56. data/pre-distclean.rb +1 -3
  57. data/ruby-oci8.gemspec +3 -8
  58. data/setup.rb +11 -2
  59. data/test/README.md +37 -0
  60. data/test/config.rb +1 -1
  61. data/test/setup_test_object.sql +21 -13
  62. data/test/setup_test_package.sql +59 -0
  63. data/test/test_all.rb +2 -0
  64. data/test/test_bind_boolean.rb +99 -0
  65. data/test/test_bind_integer.rb +47 -0
  66. data/test/test_break.rb +11 -9
  67. data/test/test_clob.rb +4 -16
  68. data/test/test_connstr.rb +29 -13
  69. data/test/test_datetime.rb +8 -3
  70. data/test/test_object.rb +27 -9
  71. data/test/test_oci8.rb +170 -46
  72. data/test/test_oranumber.rb +12 -6
  73. data/test/test_package_type.rb +15 -3
  74. data/test/test_properties.rb +17 -0
  75. metadata +40 -54
  76. data/docs/osx-install-dev-tools.png +0 -0
  77. data/test/README +0 -42
data/ext/oci8/ocihandle.c CHANGED
@@ -217,7 +217,7 @@ static VALUE attr_get_common(int argc, VALUE *argv, VALUE self, enum datatype da
217
217
  }
218
218
  return rb_external_str_new_with_enc(v.charptr, size, oci8_encoding);
219
219
  case DATATYPE_BINARY:
220
- return rb_tainted_str_new(v.charptr, size);
220
+ return rb_str_new(v.charptr, size);
221
221
  case DATATYPE_INTEGER:
222
222
  if (size > sizeof(onum.OCINumberPart) - 1) {
223
223
  rb_raise(rb_eRuntimeError, "Too long size %u", size);
@@ -245,9 +245,9 @@ static VALUE attr_get_common(int argc, VALUE *argv, VALUE self, enum datatype da
245
245
  *
246
246
  * Gets the value of an attribute as `ub1' datatype.
247
247
  *
248
- * @param [Fixnum] attr_type
248
+ * @param [Integer] attr_type
249
249
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
250
- * @return [Fixnum]
250
+ * @return [Integer]
251
251
  *
252
252
  * @since 2.0.4
253
253
  * @private
@@ -262,9 +262,9 @@ static VALUE attr_get_ub1(int argc, VALUE *argv, VALUE self)
262
262
  *
263
263
  * Gets the value of an attribute as `ub2' datatype.
264
264
  *
265
- * @param [Fixnum] attr_type
265
+ * @param [Integer] attr_type
266
266
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
267
- * @return [Fixnum]
267
+ * @return [Integer]
268
268
  *
269
269
  * @since 2.0.4
270
270
  * @private
@@ -279,7 +279,7 @@ static VALUE attr_get_ub2(int argc, VALUE *argv, VALUE self)
279
279
  *
280
280
  * Gets the value of an attribute as `ub4' datatype.
281
281
  *
282
- * @param [Fixnum] attr_type
282
+ * @param [Integer] attr_type
283
283
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
284
284
  * @return [Integer]
285
285
  *
@@ -296,7 +296,7 @@ static VALUE attr_get_ub4(int argc, VALUE *argv, VALUE self)
296
296
  *
297
297
  * Gets the value of an attribute as `ub8' datatype.
298
298
  *
299
- * @param [Fixnum] attr_type
299
+ * @param [Integer] attr_type
300
300
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
301
301
  * @return [Integer]
302
302
  *
@@ -313,9 +313,9 @@ static VALUE attr_get_ub8(int argc, VALUE *argv, VALUE self)
313
313
  *
314
314
  * Gets the value of an attribute as `sb1' datatype.
315
315
  *
316
- * @param [Fixnum] attr_type
316
+ * @param [Integer] attr_type
317
317
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
318
- * @return [Fixnum]
318
+ * @return [Integer]
319
319
  *
320
320
  * @since 2.0.4
321
321
  * @private
@@ -330,9 +330,9 @@ static VALUE attr_get_sb1(int argc, VALUE *argv, VALUE self)
330
330
  *
331
331
  * Gets the value of an attribute as `sb2' datatype.
332
332
  *
333
- * @param [Fixnum] attr_type
333
+ * @param [Integer] attr_type
334
334
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
335
- * @return [Fixnum]
335
+ * @return [Integer]
336
336
  *
337
337
  * @since 2.0.4
338
338
  * @private
@@ -347,7 +347,7 @@ static VALUE attr_get_sb2(int argc, VALUE *argv, VALUE self)
347
347
  *
348
348
  * Gets the value of an attribute as `sb4' datatype.
349
349
  *
350
- * @param [Fixnum] attr_type
350
+ * @param [Integer] attr_type
351
351
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
352
352
  * @return [Integer]
353
353
  *
@@ -364,7 +364,7 @@ static VALUE attr_get_sb4(int argc, VALUE *argv, VALUE self)
364
364
  *
365
365
  * Gets the value of an attribute as `sb8' datatype.
366
366
  *
367
- * @param [Fixnum] attr_type
367
+ * @param [Integer] attr_type
368
368
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
369
369
  * @return [Integer]
370
370
  *
@@ -381,7 +381,7 @@ static VALUE attr_get_sb8(int argc, VALUE *argv, VALUE self)
381
381
  *
382
382
  * Gets the value of an attribute as `boolean' datatype.
383
383
  *
384
- * @param [Fixnum] attr_type
384
+ * @param [Integer] attr_type
385
385
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
386
386
  * @return [true of false]
387
387
  *
@@ -403,7 +403,7 @@ static VALUE attr_get_boolean(int argc, VALUE *argv, VALUE self)
403
403
  * @note If the specified attr_type's datatype is not a
404
404
  * pointer type, it causes a segmentation fault.
405
405
  *
406
- * @param [Fixnum] attr_type
406
+ * @param [Integer] attr_type
407
407
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
408
408
  * @return [String]
409
409
  *
@@ -424,7 +424,7 @@ static VALUE attr_get_string(int argc, VALUE *argv, VALUE self)
424
424
  * @note If the specified attr_type's datatype is not a
425
425
  * pointer type, it causes a segmentation fault.
426
426
  *
427
- * @param [Fixnum] attr_type
427
+ * @param [Integer] attr_type
428
428
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
429
429
  * @return [String]
430
430
  *
@@ -445,9 +445,9 @@ static VALUE attr_get_binary(int argc, VALUE *argv, VALUE self)
445
445
  * @note If the specified attr_type's datatype is not a
446
446
  * pointer type, it causes a segmentation fault.
447
447
  *
448
- * @param [Fixnum] attr_type
448
+ * @param [Integer] attr_type
449
449
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
450
- * @return [Fixnum]
450
+ * @return [Integer]
451
451
  *
452
452
  * @since 2.0.4
453
453
  * @private
@@ -466,7 +466,7 @@ static VALUE attr_get_integer(int argc, VALUE *argv, VALUE self)
466
466
  * @note If the specified attr_type's datatype is not a
467
467
  * pointer type, it causes a segmentation fault.
468
468
  *
469
- * @param [Fixnum] attr_type
469
+ * @param [Integer] attr_type
470
470
  * @param [Boolean] strict If false, "ORA-24328: illegal attribute value" is ignored.
471
471
  * @return [OraDate]
472
472
  *
@@ -486,8 +486,8 @@ static VALUE attr_get_oradate(int argc, VALUE *argv, VALUE self)
486
486
  * @note If the specified attr_type's datatype is a
487
487
  * pointer type, it causes a segmentation fault.
488
488
  *
489
- * @param [Fixnum] attr_type
490
- * @param [Fixnum] attr_value
489
+ * @param [Integer] attr_type
490
+ * @param [Integer] attr_value
491
491
  * @return [self]
492
492
  *
493
493
  * @since 2.0.4
@@ -514,8 +514,8 @@ static VALUE attr_set_ub1(VALUE self, VALUE attr_type, VALUE val)
514
514
  * @note If the specified attr_type's datatype is a
515
515
  * pointer type, it causes a segmentation fault.
516
516
  *
517
- * @param [Fixnum] attr_type
518
- * @param [Fixnum] attr_value
517
+ * @param [Integer] attr_type
518
+ * @param [Integer] attr_value
519
519
  * @return [self]
520
520
  *
521
521
  * @since 2.0.4
@@ -542,7 +542,7 @@ static VALUE attr_set_ub2(VALUE self, VALUE attr_type, VALUE val)
542
542
  * @note If the specified attr_type's datatype is a
543
543
  * pointer type, it causes a segmentation fault.
544
544
  *
545
- * @param [Fixnum] attr_type
545
+ * @param [Integer] attr_type
546
546
  * @param [Integer] attr_value
547
547
  * @return [self]
548
548
  *
@@ -570,7 +570,7 @@ static VALUE attr_set_ub4(VALUE self, VALUE attr_type, VALUE val)
570
570
  * @note If the specified attr_type's datatype is a
571
571
  * pointer type, it causes a segmentation fault.
572
572
  *
573
- * @param [Fixnum] attr_type
573
+ * @param [Integer] attr_type
574
574
  * @param [Integer] attr_value
575
575
  * @return [self]
576
576
  *
@@ -598,8 +598,8 @@ static VALUE attr_set_ub8(VALUE self, VALUE attr_type, VALUE val)
598
598
  * @note If the specified attr_type's datatype is a
599
599
  * pointer type, it causes a segmentation fault.
600
600
  *
601
- * @param [Fixnum] attr_type
602
- * @param [Fixnum] attr_value
601
+ * @param [Integer] attr_type
602
+ * @param [Integer] attr_value
603
603
  * @return [self]
604
604
  *
605
605
  * @since 2.0.4
@@ -626,8 +626,8 @@ static VALUE attr_set_sb1(VALUE self, VALUE attr_type, VALUE val)
626
626
  * @note If the specified attr_type's datatype is a
627
627
  * pointer type, it causes a segmentation fault.
628
628
  *
629
- * @param [Fixnum] attr_type
630
- * @param [Fixnum] attr_value
629
+ * @param [Integer] attr_type
630
+ * @param [Integer] attr_value
631
631
  * @return [self]
632
632
  *
633
633
  * @since 2.0.4
@@ -654,7 +654,7 @@ static VALUE attr_set_sb2(VALUE self, VALUE attr_type, VALUE val)
654
654
  * @note If the specified attr_type's datatype is a
655
655
  * pointer type, it causes a segmentation fault.
656
656
  *
657
- * @param [Fixnum] attr_type
657
+ * @param [Integer] attr_type
658
658
  * @param [Integer] attr_value
659
659
  * @return [self]
660
660
  *
@@ -682,7 +682,7 @@ static VALUE attr_set_sb4(VALUE self, VALUE attr_type, VALUE val)
682
682
  * @note If the specified attr_type's datatype is a
683
683
  * pointer type, it causes a segmentation fault.
684
684
  *
685
- * @param [Fixnum] attr_type
685
+ * @param [Integer] attr_type
686
686
  * @param [Integer] attr_value
687
687
  * @return [self]
688
688
  *
@@ -710,7 +710,7 @@ static VALUE attr_set_sb8(VALUE self, VALUE attr_type, VALUE val)
710
710
  * @note If the specified attr_type's datatype is a
711
711
  * pointer type, it causes a segmentation fault.
712
712
  *
713
- * @param [Fixnum] attr_type
713
+ * @param [Integer] attr_type
714
714
  * @param [true or false] attr_value
715
715
  * @return [self]
716
716
  *
@@ -737,7 +737,7 @@ static VALUE attr_set_boolean(VALUE self, VALUE attr_type, VALUE val)
737
737
  * +attr_value+ is converted to {OCI8.encoding} before it is set
738
738
  * when the ruby version is 1.9.
739
739
  *
740
- * @param [Fixnum] attr_type
740
+ * @param [Integer] attr_type
741
741
  * @param [String] attr_value
742
742
  * @return [self]
743
743
  *
@@ -752,7 +752,7 @@ static VALUE attr_set_string(VALUE self, VALUE attr_type, VALUE val)
752
752
  Check_Type(attr_type, T_FIXNUM);
753
753
  OCI8SafeStringValue(val);
754
754
  /* set attribute */
755
- chker2(OCIAttrSet(base->hp.ptr, base->type, RSTRING_PTR(val), RSTRING_LEN(val), FIX2INT(attr_type), oci8_errhp), base);
755
+ chker2(OCIAttrSet(base->hp.ptr, base->type, RSTRING_PTR(val), RSTRING_LENINT(val), FIX2INT(attr_type), oci8_errhp), base);
756
756
  return self;
757
757
  }
758
758
 
@@ -761,7 +761,7 @@ static VALUE attr_set_string(VALUE self, VALUE attr_type, VALUE val)
761
761
  *
762
762
  * Sets the value of an attribute as `ub1 *' datatype.
763
763
  *
764
- * @param [Fixnum] attr_type
764
+ * @param [Integer] attr_type
765
765
  * @param [String] attr_value
766
766
  * @return [self]
767
767
  *
@@ -776,7 +776,7 @@ static VALUE attr_set_binary(VALUE self, VALUE attr_type, VALUE val)
776
776
  Check_Type(attr_type, T_FIXNUM);
777
777
  SafeStringValue(val);
778
778
  /* set attribute */
779
- chker2(OCIAttrSet(base->hp.ptr, base->type, RSTRING_PTR(val), RSTRING_LEN(val), FIX2INT(attr_type), oci8_errhp), base);
779
+ chker2(OCIAttrSet(base->hp.ptr, base->type, RSTRING_PTR(val), RSTRING_LENINT(val), FIX2INT(attr_type), oci8_errhp), base);
780
780
  return self;
781
781
  }
782
782
 
@@ -787,7 +787,7 @@ static VALUE attr_set_binary(VALUE self, VALUE attr_type, VALUE val)
787
787
  * +number+ is converted to internal Oracle NUMBER format before
788
788
  * it is set.
789
789
  *
790
- * @param [Fixnum] attr_type
790
+ * @param [Integer] attr_type
791
791
  * @param [Numeric] number
792
792
  * @return [self]
793
793
  *
data/ext/oci8/ocinumber.c CHANGED
@@ -154,7 +154,7 @@ static void set_oci_number_from_str(OCINumber *result, VALUE str, VALUE fmt, VAL
154
154
  StringValue(str);
155
155
  /* set from string. */
156
156
  if (NIL_P(fmt)) {
157
- int rv = oranumber_from_str(result, RSTRING_PTR(str), RSTRING_LEN(str));
157
+ int rv = oranumber_from_str(result, RSTRING_PTR(str), RSTRING_LENINT(str));
158
158
  if (rv == ORANUMBER_SUCCESS) {
159
159
  return; /* success */
160
160
  } else {
@@ -172,17 +172,17 @@ static void set_oci_number_from_str(OCINumber *result, VALUE str, VALUE fmt, VAL
172
172
  }
173
173
  StringValue(fmt);
174
174
  fmt_ptr = RSTRING_ORATEXT(fmt);
175
- fmt_len = RSTRING_LEN(fmt);
175
+ fmt_len = RSTRING_LENINT(fmt);
176
176
  if (NIL_P(nls_params)) {
177
177
  nls_params_ptr = NULL;
178
178
  nls_params_len = 0;
179
179
  } else {
180
180
  StringValue(nls_params);
181
181
  nls_params_ptr = RSTRING_ORATEXT(nls_params);
182
- nls_params_len = RSTRING_LEN(nls_params);
182
+ nls_params_len = RSTRING_LENINT(nls_params);
183
183
  }
184
184
  chkerr(OCINumberFromText(errhp,
185
- RSTRING_ORATEXT(str), RSTRING_LEN(str),
185
+ RSTRING_ORATEXT(str), RSTRING_LENINT(str),
186
186
  fmt_ptr, fmt_len, nls_params_ptr, nls_params_len,
187
187
  result));
188
188
  }
@@ -216,6 +216,8 @@ static int set_oci_number_from_num(OCINumber *result, VALUE num, int force, OCIE
216
216
  num = rb_big2str(num, 10);
217
217
  set_oci_number_from_str(result, num, Qnil, Qnil, errhp);
218
218
  return 1;
219
+ default:
220
+ break;
219
221
  }
220
222
  if (RTEST(rb_obj_is_instance_of(num, cOCINumber))) {
221
223
  /* OCI::Number */
@@ -247,7 +249,7 @@ static int set_oci_number_from_num(OCINumber *result, VALUE num, int force, OCIE
247
249
  if (TYPE(ary[1]) != T_STRING) {
248
250
  goto is_not_big_decimal;
249
251
  }
250
- digits_len = RSTRING_LEN(ary[1]);
252
+ digits_len = RSTRING_LENINT(ary[1]);
251
253
  set_oci_number_from_str(&digits, ary[1], Qnil, Qnil, errhp);
252
254
  /* check base */
253
255
  if (TYPE(ary[2]) != T_FIXNUM || FIX2LONG(ary[2]) != 10) {
@@ -363,7 +365,7 @@ OCINumber *oci8_dbl_to_onum(OCINumber *result, double dbl, OCIError *errhp)
363
365
  sword rv;
364
366
 
365
367
  str = rb_obj_as_string(rb_float_new(dbl));
366
- rv = oranumber_from_str(result, RSTRING_PTR(str), RSTRING_LEN(str));
368
+ rv = oranumber_from_str(result, RSTRING_PTR(str), RSTRING_LENINT(str));
367
369
  if (rv != 0) {
368
370
  oci8_raise_by_msgno(rv, NULL);
369
371
  }
@@ -1307,14 +1309,14 @@ static VALUE onum_to_char(int argc, VALUE *argv, VALUE self)
1307
1309
  }
1308
1310
  StringValue(fmt);
1309
1311
  fmt_ptr = RSTRING_ORATEXT(fmt);
1310
- fmt_len = RSTRING_LEN(fmt);
1312
+ fmt_len = RSTRING_LENINT(fmt);
1311
1313
  if (NIL_P(nls_params)) {
1312
1314
  nls_params_ptr = NULL;
1313
1315
  nls_params_len = 0;
1314
1316
  } else {
1315
1317
  StringValue(nls_params);
1316
1318
  nls_params_ptr = RSTRING_ORATEXT(nls_params);
1317
- nls_params_len = RSTRING_LEN(nls_params);
1319
+ nls_params_len = RSTRING_LENINT(nls_params);
1318
1320
  }
1319
1321
  rv = OCINumberToText(errhp, _NUMBER(self),
1320
1322
  fmt_ptr, fmt_len, nls_params_ptr, nls_params_len,
@@ -1435,23 +1437,23 @@ static VALUE onum_to_d_real(OCINumber *num, OCIError *errhp)
1435
1437
  rb_require("bigdecimal");
1436
1438
  cBigDecimal = rb_const_get(rb_cObject, id_BigDecimal);
1437
1439
  }
1438
- chkerr(OCINumberToText(errhp, num, (const oratext *)fmt, strlen(fmt),
1440
+ chkerr(OCINumberToText(errhp, num, (const oratext *)fmt, (ub4)strlen(fmt),
1439
1441
  NULL, 0, &buf_size, TO_ORATEXT(buf)));
1440
1442
  return rb_funcall(rb_cObject, id_BigDecimal, 1, rb_usascii_str_new(buf, buf_size));
1441
1443
  }
1442
1444
 
1443
1445
  /*
1444
- * @overload has_decimal_part?
1446
+ * @overload has_fractional_part?
1445
1447
  *
1446
- * Returns <code>true</code> if <i>self</i> has a decimal part.
1448
+ * Returns <code>true</code> if <i>self</i> has a fractional part.
1447
1449
  *
1448
1450
  * @example
1449
- * OraNumber(10).has_decimal_part? # => false
1450
- * OraNumber(10.1).has_decimal_part? # => true
1451
+ * OraNumber(10).has_fractional_part? # => false
1452
+ * OraNumber(10.1).has_fractional_part? # => true
1451
1453
  *
1452
- * @since 2.0.5
1454
+ * @since 2.2.5
1453
1455
  */
1454
- static VALUE onum_has_decimal_part_p(VALUE self)
1456
+ static VALUE onum_has_fractional_part_p(VALUE self)
1455
1457
  {
1456
1458
  OCIError *errhp = oci8_errhp;
1457
1459
  boolean result;
@@ -1793,6 +1795,7 @@ Init_oci_number(VALUE cOCI8, OCIError *errhp)
1793
1795
  id_BigDecimal = rb_intern("BigDecimal");
1794
1796
 
1795
1797
  cOCINumber = rb_define_class("OraNumber", rb_cNumeric);
1798
+ rb_define_alloc_func(cOCINumber, onum_s_alloc);
1796
1799
  mMath = rb_define_module_under(cOCI8, "Math");
1797
1800
 
1798
1801
  /* constants for internal use. */
@@ -1842,8 +1845,6 @@ Init_oci_number(VALUE cOCI8, OCIError *errhp)
1842
1845
  rb_define_module_function(mMath, "log10", omath_log10, 1);
1843
1846
  rb_define_module_function(mMath, "sqrt", omath_sqrt, 1);
1844
1847
 
1845
- rb_define_alloc_func(cOCINumber, onum_s_alloc);
1846
-
1847
1848
  /* methods of OCI::Number */
1848
1849
  rb_define_global_function("OraNumber", onum_f_new, -1);
1849
1850
  rb_define_method(cOCINumber, "initialize", onum_initialize, -1);
@@ -1873,7 +1874,7 @@ Init_oci_number(VALUE cOCI8, OCIError *errhp)
1873
1874
  rb_define_method(cOCINumber, "to_f", onum_to_f, 0);
1874
1875
  rb_define_method(cOCINumber, "to_r", onum_to_r, 0);
1875
1876
  rb_define_method(cOCINumber, "to_d", onum_to_d, 0);
1876
- rb_define_method(cOCINumber, "has_decimal_part?", onum_has_decimal_part_p, 0);
1877
+ rb_define_method(cOCINumber, "has_fractional_part?", onum_has_fractional_part_p, 0);
1877
1878
  rb_define_method(cOCINumber, "to_onum", onum_to_onum, 0);
1878
1879
 
1879
1880
  rb_define_method(cOCINumber, "zero?", onum_zero_p, 0);
@@ -1902,6 +1903,10 @@ Init_oci_number(VALUE cOCI8, OCIError *errhp)
1902
1903
  dummy2 = rb_define_class_under(mOCI8BindType, "Integer", cOCI8BindTypeBase);
1903
1904
  dummy3 = rb_define_class_under(mOCI8BindType, "Float", cOCI8BindTypeBase);
1904
1905
  #endif
1906
+
1907
+ /* The following method definition is for backward-compatibility.
1908
+ I misunderstood the name of numbers after a decimal point. */
1909
+ rb_define_method_nodoc(cOCINumber, "has_decimal_part?", onum_has_fractional_part_p, 0);
1905
1910
  }
1906
1911
 
1907
1912
  /*