ruby-oci8 2.1.4-x86-mingw32 → 2.1.5-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +1 -0
- data/ChangeLog +67 -0
- data/NEWS +21 -0
- data/VERSION +1 -1
- data/docs/platform-specific-issues.md +4 -24
- data/lib/oci8.rb +3 -3
- data/lib/oci8.rb.in +1 -1
- data/lib/oci8/metadata.rb +59 -67
- data/lib/oci8/object.rb +0 -1
- data/lib/oci8/oci8.rb +35 -35
- data/lib/oci8/oracle_version.rb +7 -14
- data/lib/oci8lib_18.so +0 -0
- data/lib/oci8lib_191.so +0 -0
- data/lib/oci8lib_200.so +0 -0
- data/ruby-oci8.gemspec +31 -26
- data/test/test_bind_time.rb +2 -2
- data/test/test_connection_pool.rb +2 -2
- data/test/test_metadata.rb +0 -2
- data/test/test_object.rb +0 -1
- data/test/test_oci8.rb +10 -2
- metadata +7 -8
- data/lib/oci8lib_18.map +0 -1099
- data/lib/oci8lib_191.map +0 -1148
data/.yardopts
CHANGED
data/ChangeLog
CHANGED
@@ -1,3 +1,70 @@
|
|
1
|
+
2013-03-09 KUBO Takehiro <kubo@jiubao.org>
|
2
|
+
* ruby-oci8.gemspec: revert the previous commit because old
|
3
|
+
rubygems doesn't support:
|
4
|
+
required_ruby_version = ['>= 1.8.0', '<= 2.0.0']
|
5
|
+
|
6
|
+
2013-03-09 KUBO Takehiro <kubo@jiubao.org>
|
7
|
+
* NEWS: add changes between 2.1.5 and 2.1.4
|
8
|
+
* VERSION: change the version to 2.1.5.
|
9
|
+
* docs/platform-specific-issues.md: remove obsolete description.
|
10
|
+
* ext/oci8/extconf.rb, ext/oci8/oraconf.rb: fix to compile for
|
11
|
+
Windows x64 client.
|
12
|
+
* ruby-oci8.gemspec: change required_ruby_version range
|
13
|
+
when a binary gem includes more than one compiled object.
|
14
|
+
* test/test_connection_pool.rb: fix to pass tests on slow
|
15
|
+
machines.
|
16
|
+
|
17
|
+
2013-03-05 KUBO Takehiro <kubo@jiubao.org>
|
18
|
+
* ext/oci8/oci8.c, lib/oci8/oci8.rb, lib/oci8/oracle_version.rb:
|
19
|
+
refactoring.
|
20
|
+
|
21
|
+
2013-03-03 KUBO Takehiro <kubo@jiubao.org>
|
22
|
+
* lib/oci8/oci8.rb, test/test_oci8.rb: set 'rubyoci8' as
|
23
|
+
the driver name, which is displayed in
|
24
|
+
V$SESSION_CONNECT_INFO.CLIENT_DRIVER.
|
25
|
+
(require Oracle 11g or upper)
|
26
|
+
|
27
|
+
2013-03-03 KUBO Takehiro <kubo@jiubao.org>
|
28
|
+
* lib/oci8.rb.in: use RbConfig::CONFIG instead of obsolete
|
29
|
+
constant Config::CONFIG.
|
30
|
+
* lib/oci8/object.rb, test/test_bind_time.rb, test/test_metadata.rb
|
31
|
+
test/test_object.rb, test/test_oci8.rb:
|
32
|
+
suppress warning: assigned but unused variable
|
33
|
+
|
34
|
+
2013-03-03 KUBO Takehiro <kubo@jiubao.org>
|
35
|
+
* ext/oci8/lob.c, ext/oci8/oci8.c, ext/oci8/oci8.h:
|
36
|
+
refactor oci8_lob_t.
|
37
|
+
|
38
|
+
2013-03-03 KUBO Takehiro <kubo@jiubao.org>
|
39
|
+
* ext/oci8/oci8.c: fix segmentation fault when the process
|
40
|
+
exits on rubinius.
|
41
|
+
|
42
|
+
2013-03-02 KUBO Takehiro <kubo@jiubao.org>
|
43
|
+
* .yardopts, ext/oci8/object.c, lib/oci8/metadata.rb,
|
44
|
+
lib/oci8/oracle_version.rb: update comments for rdoc/yard.
|
45
|
+
|
46
|
+
2013-03-02 KUBO Takehiro <kubo@jiubao.org>
|
47
|
+
* ext/oci8/ocihandle.c: change arguments of internal methods
|
48
|
+
OCIHandle#attr_get_*() to ignore "ORA-24328: illegal
|
49
|
+
attribute value".
|
50
|
+
* lib/oci8/metadata.rb: change OCI8::Metadata::Base#obj_id,
|
51
|
+
#obj_name and #obj_schema not to raise "ORA-24328:
|
52
|
+
illegal attribute value".
|
53
|
+
|
54
|
+
2013-03-02 KUBO Takehiro <kubo@jiubao.org>
|
55
|
+
* ruby-oci8.gemspec: fix for ruby 2.0.0 to make binary gems.
|
56
|
+
|
57
|
+
2013-03-02 KUBO Takehiro <kubo@jiubao.org>
|
58
|
+
* ext/oci8/oraconf.rb: fix for compilation on Windows x64 by mingw64.
|
59
|
+
|
60
|
+
2013-01-12 KUBO Takehiro <kubo@jiubao.org>
|
61
|
+
* ext/oci8/oci8lib.c: export a main function for Solaris x86 (32-bit).
|
62
|
+
When a main function is invisible from Oracle instant client
|
63
|
+
11.2.0.3 for Solaris x86 (32-bit), OCIEnvCreate() fails by
|
64
|
+
unknown reasons.
|
65
|
+
* docs/platform-specific-issues.md: change the workaround for
|
66
|
+
Solaris x86 (32-bit) instant client.
|
67
|
+
|
1
68
|
2013-01-06 KUBO Takehiro <kubo@jiubao.org>
|
2
69
|
* NEWS: add changes between 2.1.4 and 2.1.3
|
3
70
|
* VERSION: change the version to 2.1.4.
|
data/NEWS
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# @markup markdown
|
2
2
|
|
3
|
+
2.1.5
|
4
|
+
=====
|
5
|
+
|
6
|
+
New Features
|
7
|
+
------------
|
8
|
+
|
9
|
+
### V$SESSION_CONNECT_INFO.CLIENT_DRIVER.
|
10
|
+
|
11
|
+
'rubyoci8' is set as the driver name, which is displayed in
|
12
|
+
V$SESSION_CONNECT_INFO.CLIENT_DRIVER when both the client and
|
13
|
+
the server are Oracle 11g or upper.
|
14
|
+
|
15
|
+
Fixed Issues
|
16
|
+
------------
|
17
|
+
|
18
|
+
- fix segmentation fault when the process exits on rubinius.
|
19
|
+
|
20
|
+
- fix "OCI Library Initialization Error" only when the Oracle
|
21
|
+
instant client is 11.2.0.3 for Solaris x86 32-bit, the ruby
|
22
|
+
version is 1.9.3 or upper and the ruby is compiled by gcc.
|
23
|
+
|
3
24
|
2.1.4
|
4
25
|
=====
|
5
26
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.5
|
@@ -34,15 +34,10 @@ Note: "`" is a back quote.
|
|
34
34
|
Mac OS X
|
35
35
|
========
|
36
36
|
|
37
|
-
OS X 10.7
|
38
|
-
|
39
|
-
|
40
|
-
64-bit instant client doesn't work. Use 32-bit ruby and instant client or jruby.
|
37
|
+
OS X 10.7+
|
38
|
+
----------
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
* {http://rubyforge.org/forum/forum.php?thread\_id=49548&forum\_id=1078}
|
45
|
-
* {https://forums.oracle.com/forums/thread.jspa?threadID=2187558}
|
40
|
+
Use the latest 64-bit instant client. The older 64-bit (10.2.0.4) instant client [doesn't work](https://forums.oracle.com/forums/thread.jspa?threadID=2187558). The older 32-bit instant client will work but only with 32-bit ruby or jruby (using JDBC).
|
46
41
|
|
47
42
|
Intel Mac (64-bit)
|
48
43
|
------------------
|
@@ -59,7 +54,7 @@ The Intel Instant client is for Mac OS X 10.5 Leopard. If you are using 10.4 Tig
|
|
59
54
|
use one of the following workarounds.
|
60
55
|
|
61
56
|
* compile ruby as ppc. (look at [How to setup Ruby and Oracle client on Intel Mac](http://blog.rayapps.com/2007/08/27/how-to-setup-ruby-and-oracle-client-on-intel-mac/))
|
62
|
-
* use [ruby-odbc
|
57
|
+
* use [ruby-odbc](http://www.ch-werner.de/rubyodbc/) and a third party ODBC driver ([Actual Technologies](http://www.actualtechnologies.com) or [OpenLink Software](http://uda.openlinksw.com/)).
|
63
58
|
* use JRuby and Oracle JDBC driver.
|
64
59
|
|
65
60
|
PowerPC Mac
|
@@ -74,21 +69,6 @@ You need a same compiler which is used to make ruby itself.
|
|
74
69
|
For example, if the ruby is compiled by gcc, you need gcc. If it is compiled by Oracle Solaris Studio
|
75
70
|
(formerly called as Sun Studio), you need Oracle Solaris Studio.
|
76
71
|
|
77
|
-
If ruby is compiled by gcc and "require 'oci8'" raises "OCI Library Initialization Error",
|
78
|
-
you may need to recompile ruby as follows:
|
79
|
-
|
80
|
-
$ bzip2 -dc ruby-1.9.3-pxxx.tar.bz2 | tar xvf -
|
81
|
-
$ cd ruby-1.9.3-pxxx
|
82
|
-
$ vi main.c # <- Add RUBY_FUNC_EXPORTED just before "int main(..)" as follows:
|
83
|
-
-------------
|
84
|
-
RUBY_FUNC_EXPORTED /* Add this line */
|
85
|
-
int
|
86
|
-
main(int argc, char **argv)
|
87
|
-
-------------
|
88
|
-
$ ./configure
|
89
|
-
$ make
|
90
|
-
$ make install
|
91
|
-
|
92
72
|
If you use Blastwave.org's ruby and want not to install Sun Studio,
|
93
73
|
you can edit rbconfig.rb by your self. [(look at here)](http://forum.textdrive.com/viewtopic.php?id=12630)
|
94
74
|
|
data/lib/oci8.rb
CHANGED
@@ -80,10 +80,10 @@ else
|
|
80
80
|
end
|
81
81
|
require so_basename
|
82
82
|
|
83
|
-
if OCI8::VERSION != '2.1.
|
83
|
+
if OCI8::VERSION != '2.1.5'
|
84
84
|
require 'rbconfig'
|
85
|
-
so_name = so_basename + "." +
|
86
|
-
raise "VERSION MISMATCH! #{so_name} version is #{OCI8::VERSION}, but oci8.rb version is 2.1.
|
85
|
+
so_name = so_basename + "." + RbConfig::CONFIG['DLEXT']
|
86
|
+
raise "VERSION MISMATCH! #{so_name} version is #{OCI8::VERSION}, but oci8.rb version is 2.1.5."
|
87
87
|
end
|
88
88
|
|
89
89
|
require 'oci8/encoding-init.rb'
|
data/lib/oci8.rb.in
CHANGED
@@ -82,7 +82,7 @@ require so_basename
|
|
82
82
|
|
83
83
|
if OCI8::VERSION != '@@OCI8_MODULE_VERSION@@'
|
84
84
|
require 'rbconfig'
|
85
|
-
so_name = so_basename + "." +
|
85
|
+
so_name = so_basename + "." + RbConfig::CONFIG['DLEXT']
|
86
86
|
raise "VERSION MISMATCH! #{so_name} version is #{OCI8::VERSION}, but oci8.rb version is @@OCI8_MODULE_VERSION@@."
|
87
87
|
end
|
88
88
|
|
data/lib/oci8/metadata.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# oci8.rb -- implements OCI8::Metadata.
|
2
2
|
#
|
3
|
-
# Copyright (C) 2006-
|
3
|
+
# Copyright (C) 2006-2013 Kubo Takehiro <kubo@jiubao.org>
|
4
4
|
#
|
5
5
|
# See {'Describing Schema Metadata' in Oracle Call Interface Programmer's Guide}
|
6
6
|
# [http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14250/oci06des.htm]
|
@@ -14,33 +14,33 @@ class OCI8
|
|
14
14
|
# OCI8::Metadata::Base's subclass.
|
15
15
|
#
|
16
16
|
# List of methods which return OCI8::Metadata::Base.
|
17
|
-
# * OCI8#describe_any(object_name)
|
18
|
-
# * OCI8#describe_table(table_name, table_only = false)
|
19
|
-
# * OCI8#describe_view(view_name)
|
20
|
-
# * OCI8#describe_procedure(procedure_name)
|
21
|
-
# * OCI8#describe_function(function_name)
|
22
|
-
# * OCI8#describe_package(package_name)
|
23
|
-
# * OCI8#describe_type(type_name)
|
24
|
-
# * OCI8#describe_synonym(synonym_name, check_public_also = true)
|
25
|
-
# * OCI8#describe_sequence(sequence_name)
|
26
|
-
# * OCI8#describe_schema(schema_name)
|
27
|
-
# * OCI8#describe_database(database_name)
|
28
|
-
# * OCI8::Metadata::Type#map_method
|
29
|
-
# * OCI8::Metadata::Type#order_method
|
30
|
-
# * OCI8::Metadata::Type#collection_element
|
17
|
+
# * {OCI8#describe_any OCI8#describe_any(object_name)}
|
18
|
+
# * {OCI8#describe_table OCI8#describe_table(table_name, table_only = false)}
|
19
|
+
# * {OCI8#describe_view OCI8#describe_view(view_name)}
|
20
|
+
# * {OCI8#describe_procedure OCI8#describe_procedure(procedure_name)}
|
21
|
+
# * {OCI8#describe_function OCI8#describe_function(function_name)}
|
22
|
+
# * {OCI8#describe_package OCI8#describe_package(package_name)}
|
23
|
+
# * {OCI8#describe_type OCI8#describe_type(type_name)}
|
24
|
+
# * {OCI8#describe_synonym OCI8#describe_synonym(synonym_name, check_public_also = true)}
|
25
|
+
# * {OCI8#describe_sequence OCI8#describe_sequence(sequence_name)}
|
26
|
+
# * {OCI8#describe_schema OCI8#describe_schema(schema_name)}
|
27
|
+
# * {OCI8#describe_database OCI8#describe_database(database_name)}
|
28
|
+
# * {OCI8::Metadata::Type#map_method OCI8::Metadata::Type#map_method}
|
29
|
+
# * {OCI8::Metadata::Type#order_method OCI8::Metadata::Type#order_method}
|
30
|
+
# * {OCI8::Metadata::Type#collection_element OCI8::Metadata::Type#collection_element}
|
31
31
|
#
|
32
32
|
# List of methods which return an array of OCI8::Metadata::Base.
|
33
|
-
# * OCI8::Cursor#column_metadata
|
34
|
-
# * OCI8::Metadata::Database#schemas
|
35
|
-
# * OCI8::Metadata::Schema#all_objects
|
36
|
-
# * OCI8::Metadata::Schema#objects
|
37
|
-
# * OCI8::Metadata::Table#columns
|
38
|
-
# * OCI8::Metadata::Package#subprograms
|
39
|
-
# * OCI8::Metadata::Procedure#arguments
|
40
|
-
# * OCI8::Metadata::Function#arguments
|
41
|
-
# * OCI8::Metadata::Type#type_attrs
|
42
|
-
# * OCI8::Metadata::Type#type_methods
|
43
|
-
# * OCI8::Metadata::TypeMethod#arguments
|
33
|
+
# * {OCI8::Cursor#column_metadata OCI8::Cursor#column_metadata}
|
34
|
+
# * {OCI8::Metadata::Database#schemas OCI8::Metadata::Database#schemas}
|
35
|
+
# * {OCI8::Metadata::Schema#all_objects OCI8::Metadata::Schema#all_objects}
|
36
|
+
# * {OCI8::Metadata::Schema#objects OCI8::Metadata::Schema#objects}
|
37
|
+
# * {OCI8::Metadata::Table#columns OCI8::Metadata::Table#columns}
|
38
|
+
# * {OCI8::Metadata::Package#subprograms OCI8::Metadata::Package#subprograms}
|
39
|
+
# * {OCI8::Metadata::Subprogram#arguments OCI8::Metadata::Procedure#arguments}
|
40
|
+
# * {OCI8::Metadata::Subprogram#arguments OCI8::Metadata::Function#arguments}
|
41
|
+
# * {OCI8::Metadata::Type#type_attrs OCI8::Metadata::Type#type_attrs}
|
42
|
+
# * {OCI8::Metadata::Type#type_methods OCI8::Metadata::Type#type_methods}
|
43
|
+
# * {OCI8::Metadata::TypeMethod#arguments OCI8::Metadata::TypeMethod#arguments}
|
44
44
|
#
|
45
45
|
# Example:
|
46
46
|
# conn = OCI8.new('username/passord')
|
@@ -54,34 +54,31 @@ class OCI8
|
|
54
54
|
# Table 6-1 Attributes Belonging to All Parameters
|
55
55
|
|
56
56
|
# Returns the number of parameters.
|
57
|
-
def num_params
|
57
|
+
def num_params
|
58
58
|
attr_get_ub2(OCI_ATTR_NUM_PARAMS)
|
59
59
|
end
|
60
60
|
private :num_params
|
61
61
|
|
62
|
-
# Returns the object ID
|
63
|
-
#
|
64
|
-
# if the database object doesn't have ID.
|
62
|
+
# Returns the object ID which corresponds to the data dictionary
|
63
|
+
# view column ALL_OBJECTS.OBJECT_ID.
|
65
64
|
#
|
66
65
|
# @return [Integer or nil]
|
67
66
|
def obj_id
|
68
|
-
attr_get_ub4(OCI_ATTR_OBJ_ID)
|
67
|
+
attr_get_ub4(OCI_ATTR_OBJ_ID, false)
|
69
68
|
end
|
70
69
|
|
71
|
-
#
|
72
|
-
# procedure name, and so on.
|
70
|
+
# Returns the object name which corresponds to the data dictionary view column ALL_OBJECTS.OBJECT_NAME.
|
73
71
|
#
|
74
|
-
# @return [String]
|
72
|
+
# @return [String or nil] object name
|
75
73
|
def obj_name
|
76
|
-
attr_get_string(OCI_ATTR_OBJ_NAME)
|
74
|
+
attr_get_string(OCI_ATTR_OBJ_NAME, false)
|
77
75
|
end
|
78
76
|
|
79
|
-
#
|
80
|
-
# if the database object is not defined just under a schema.
|
77
|
+
# Returns the schema name which corresponds to the data dictionary view column ALL_OBJECTS.OWNER.
|
81
78
|
#
|
82
|
-
# @return [String]
|
79
|
+
# @return [String or nil] schema name
|
83
80
|
def obj_schema
|
84
|
-
attr_get_string(OCI_ATTR_OBJ_SCHEMA)
|
81
|
+
attr_get_string(OCI_ATTR_OBJ_SCHEMA, false)
|
85
82
|
end
|
86
83
|
|
87
84
|
# The timestamp of the object
|
@@ -92,7 +89,8 @@ class OCI8
|
|
92
89
|
# attr_get_oradate(OCI_ATTR_TIMESTAMP)
|
93
90
|
#end
|
94
91
|
|
95
|
-
|
92
|
+
# @private
|
93
|
+
def inspect
|
96
94
|
"#<#{self.class.name}:(#{obj_id}) #{obj_schema}.#{obj_name}>"
|
97
95
|
end
|
98
96
|
private
|
@@ -103,8 +101,9 @@ class OCI8
|
|
103
101
|
alias __word attr_get_sb4
|
104
102
|
def __anydata(idx); raise NotImplementedError; end
|
105
103
|
|
106
|
-
# SQLT values to
|
107
|
-
|
104
|
+
# Mapping from SQLT values to names
|
105
|
+
# @private
|
106
|
+
DATA_TYPE_MAP = {}
|
108
107
|
|
109
108
|
# SQLT_CHR
|
110
109
|
DATA_TYPE_MAP[1] = [:varchar2,
|
@@ -346,7 +345,7 @@ class OCI8
|
|
346
345
|
# into other metadata classes.
|
347
346
|
#
|
348
347
|
# An instance of this class is returned by:
|
349
|
-
# * OCI8::Metadata::Schema#all_objects
|
348
|
+
# * {OCI8::Metadata::Schema#all_objects OCI8::Metadata::Schema#all_objects}
|
350
349
|
class Unknown < Base
|
351
350
|
register_ptype OCI_PTYPE_UNK
|
352
351
|
end
|
@@ -354,14 +353,10 @@ class OCI8
|
|
354
353
|
# Information about tables
|
355
354
|
#
|
356
355
|
# An instance of this class is returned by:
|
357
|
-
# * OCI8#describe_any(name)
|
358
|
-
# * OCI8#describe_table(name)
|
359
|
-
# * OCI8::Metadata::Schema#all_objects
|
360
|
-
# * OCI8::Metadata::Schema#objects
|
361
|
-
#
|
362
|
-
# See also:
|
363
|
-
# * OCI8::Metadata::Base#obj_name
|
364
|
-
# * OCI8::Metadata::Base#obj_schema
|
356
|
+
# * {OCI8#describe_any OCI8#describe_any(name)}
|
357
|
+
# * {OCI8#describe_table OCI8#describe_table(name)}
|
358
|
+
# * {OCI8::Metadata::Schema#all_objects OCI8::Metadata::Schema#all_objects}
|
359
|
+
# * {OCI8::Metadata::Schema#objects OCI8::Metadata::Schema#objects}
|
365
360
|
class Table < Base
|
366
361
|
register_ptype OCI_PTYPE_TABLE
|
367
362
|
|
@@ -464,15 +459,11 @@ class OCI8
|
|
464
459
|
# Information about views
|
465
460
|
#
|
466
461
|
# An instance of this class is returned by:
|
467
|
-
# * OCI8#describe_any(name)
|
468
|
-
# * OCI8#describe_table(name, false)
|
469
|
-
# * OCI8#describe_view(name)
|
470
|
-
# * OCI8::Metadata::Schema#all_objects
|
471
|
-
# * OCI8::Metadata::Schema#objects
|
472
|
-
#
|
473
|
-
# See also:
|
474
|
-
# * OCI8::Metadata::Base#obj_name
|
475
|
-
# * OCI8::Metadata::Base#obj_schema
|
462
|
+
# * {OCI8#describe_any OCI8#describe_any(name)}
|
463
|
+
# * {OCI8#describe_table OCI8#describe_table(name, false)}
|
464
|
+
# * {OCI8#describe_view OCI8#describe_view(name)}
|
465
|
+
# * {OCI8::Metadata::Schema#all_objects OCI8::Metadata::Schema#all_objects}
|
466
|
+
# * {OCI8::Metadata::Schema#objects OCI8::Metadata::Schema#objects}
|
476
467
|
class View < Base
|
477
468
|
register_ptype OCI_PTYPE_VIEW
|
478
469
|
|
@@ -525,8 +516,8 @@ class OCI8
|
|
525
516
|
# with a set of parameters. A subprogram can be either a procedure
|
526
517
|
# or a function.
|
527
518
|
#
|
528
|
-
# This is the abstract base class of OCI8::Metadata::Procedure and
|
529
|
-
# OCI8::Metadata::Function.
|
519
|
+
# This is the abstract base class of {OCI8::Metadata::Procedure OCI8::Metadata::Procedure} and
|
520
|
+
# {OCI8::Metadata::Function OCI8::Metadata::Function}.
|
530
521
|
class Subprogram < Base
|
531
522
|
## Table 6-4 Attribute Belonging to Procedures or Functions
|
532
523
|
|
@@ -565,9 +556,9 @@ class OCI8
|
|
565
556
|
alias name obj_name # :nodoc: for backward compatibility
|
566
557
|
|
567
558
|
# Returns +nil+ for a standalone stored subprogram,
|
568
|
-
# positive integer for
|
569
|
-
# {overloaded packaged subprogram}[http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/subprograms.htm#i12352]
|
570
|
-
#
|
559
|
+
# positive integer for an
|
560
|
+
# {overloaded packaged subprogram}[http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/subprograms.htm#i12352],
|
561
|
+
# otherwise zero.
|
571
562
|
#
|
572
563
|
# @return [Integer or nil]
|
573
564
|
def overload_id
|
@@ -589,7 +580,8 @@ class OCI8
|
|
589
580
|
@is_standalone
|
590
581
|
end
|
591
582
|
|
592
|
-
|
583
|
+
# @private
|
584
|
+
def inspect
|
593
585
|
"#<#{self.class.name}: #{name}>"
|
594
586
|
end
|
595
587
|
end
|
@@ -1230,7 +1222,7 @@ class OCI8
|
|
1230
1222
|
end
|
1231
1223
|
|
1232
1224
|
def inspect # :nodoc:
|
1233
|
-
"#<#{self.class.name}:(#{obj_id}) #{obj_schema}.#{obj_name}>"
|
1225
|
+
"#<#{self.class.name}:(#{obj_id}) #{obj_schema}.#{obj_name} FOR #{translated_name}>"
|
1234
1226
|
end
|
1235
1227
|
end
|
1236
1228
|
|
data/lib/oci8/object.rb
CHANGED
data/lib/oci8/oci8.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# oci8.rb -- OCI8
|
2
2
|
#
|
3
|
-
# Copyright (C) 2002-
|
3
|
+
# Copyright (C) 2002-2013 Kubo Takehiro <kubo@jiubao.org>
|
4
4
|
#
|
5
5
|
# Original Copyright is:
|
6
6
|
# Oracle module for Ruby
|
@@ -123,48 +123,38 @@ class OCI8
|
|
123
123
|
stmt_cache_size = OCI8.properties[:statement_cache_size]
|
124
124
|
stmt_cache_size = nil if stmt_cache_size == 0
|
125
125
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
logon2_mode |= 0x0004 # OCI_LOGON2_STMTCACHE
|
137
|
-
end
|
138
|
-
|
139
|
-
logon2(username, password, dbname, logon2_mode)
|
126
|
+
attach_mode = 0
|
127
|
+
if dbname.is_a? OCI8::ConnectionPool
|
128
|
+
@pool = dbname # to prevent GC from freeing the connection pool.
|
129
|
+
dbname = dbname.send(:pool_name)
|
130
|
+
attach_mode |= 0x0200 # OCI_CPOOL and OCI_LOGON2_CPOOL
|
131
|
+
end
|
132
|
+
if stmt_cache_size
|
133
|
+
# enable statement caching
|
134
|
+
attach_mode |= 0x0004 # OCI_STMT_CACHE and OCI_LOGON2_STMTCACHE
|
135
|
+
end
|
140
136
|
|
141
|
-
|
142
|
-
# set statement cache size
|
143
|
-
attr_set_ub4(176, stmt_cache_size) # 176: OCI_ATTR_STMTCACHESIZE
|
144
|
-
end
|
145
|
-
else
|
137
|
+
if true
|
146
138
|
# logon by the OCI function OCISessionBegin().
|
147
|
-
attach_mode = 0
|
148
|
-
if dbname.is_a? OCI8::ConnectionPool
|
149
|
-
@pool = dbname # to prevent GC from freeing the connection pool.
|
150
|
-
dbname = dbname.send(:pool_name)
|
151
|
-
attach_mode |= 0x0200 # OCI_CPOOL
|
152
|
-
end
|
153
|
-
if stmt_cache_size
|
154
|
-
# enable statement caching
|
155
|
-
attach_mode |= 0x0004 # OCI_STMT_CACHE
|
156
|
-
end
|
157
|
-
|
158
139
|
allocate_handles()
|
159
140
|
@session_handle.send(:attr_set_string, OCI_ATTR_USERNAME, username) if username
|
160
141
|
@session_handle.send(:attr_set_string, OCI_ATTR_PASSWORD, password) if password
|
142
|
+
if @@oracle_client_version >= ORAVER_11_1
|
143
|
+
# 'rubyoci8' is displayed in V$SESSION_CONNECT_INFO.CLIENT_DRIVER
|
144
|
+
# if both the client and the server are Oracle 11g or upper.
|
145
|
+
# 424: OCI_ATTR_DRIVER_NAME
|
146
|
+
@session_handle.send(:attr_set_string, 424, 'rubyoci8')
|
147
|
+
end
|
161
148
|
server_attach(dbname, attach_mode)
|
162
149
|
session_begin(cred ? cred : OCI_CRED_RDBMS, mode ? mode : OCI_DEFAULT)
|
150
|
+
else
|
151
|
+
# logon by the OCI function OCILogon2().
|
152
|
+
logon2(username, password, dbname, attach_mode)
|
153
|
+
end
|
163
154
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
end
|
155
|
+
if stmt_cache_size
|
156
|
+
# set statement cache size
|
157
|
+
attr_set_ub4(176, stmt_cache_size) # 176: OCI_ATTR_STMTCACHESIZE
|
168
158
|
end
|
169
159
|
|
170
160
|
@prefetch_rows = nil
|
@@ -339,6 +329,16 @@ class OCI8
|
|
339
329
|
end
|
340
330
|
end
|
341
331
|
|
332
|
+
# Sets the prefetch rows size. The default value is one.
|
333
|
+
# When a select statement is executed, the OCI library allocate
|
334
|
+
# prefetch buffer to reduce the number of network round trips by
|
335
|
+
# retrieving specified number of rows in one round trip.
|
336
|
+
#
|
337
|
+
# Note: Active record adaptors set 100 by default.
|
338
|
+
def prefetch_rows=(num)
|
339
|
+
@prefetch_rows = num
|
340
|
+
end
|
341
|
+
|
342
342
|
# @private
|
343
343
|
def inspect
|
344
344
|
"#<OCI8:#{username}>"
|