Commit 8153dff9 authored by Alex Muntada's avatar Alex Muntada
Browse files

Imported Upstream version 1.74

parent 452bfb21
# CONTRIBUTING
Thank you for considering contributing to DBD-Oracle.
This file contains instructions that will help you work with
the source code.
## Repository branches structure
The two main branches of this repository are:
* **master**
The main development branch. This branch has to
be processed by Dist::Zilla to generate the
code as it will appear in the CPAN distribution. See the
next section for more details.
* **releases**
Contains the code as it appears on CPAN. Each official
release is also tagged with its version.
## Working on the master branch
The distribution is managed with [Dist::Zilla][distzilla].
This means than many of the usual files you might expect
are not in the repository, but are generated at release time.
However, you can run tests directly using the 'prove' tool:
``` bash
$ prove -l
$ prove -lv t/some_test_file.t
$ prove -lvr t/
```
In most cases, 'prove' is entirely sufficent for you to test any
patches you have.
You may need to satisfy some dependencies. The easiest way to satisfy
dependencies is to install the last release -- this is available at
https://metacpan.org/release/DBD-Oracle.
If you use cpanminus, you can do it without downloading the tarball first:
``` bash
$ cpanm --reinstall --installdeps --with-recommends DBD::Oracle
```
Dist::Zilla is a very powerful authoring tool, but requires a number of
author-specific plugins. If you would like to use it for contributing,
install it from CPAN, then run one of the following commands, depending on
your CPAN client:
``` bash
$ cpan `dzil authordeps --missing`
$ dzil authordeps --missing | cpanm
```
You should then also install any additional requirements not needed by the
dzil build but may be needed by tests or other development:
``` bash
# cpan `dzil listdeps --author --missing`
$ dzil listdeps --author --missing | cpanm
```
You can also do this via cpanm directly:
``` bash
$ cpanm --reinstall --installdeps --with-develop --with-recommends DBD::Oracle
```
Once installed, here are some dzil commands you might try:
``` bash
$ dzil build
$ dzil test
$ dzil test --release
$ dzil xtest
$ dzil listdeps --json
$ dzil build --notgz
```
## This Is Complicated. Is There an Easier Way?
Actually, yes there is. You can also work directly on the `releases` branch,
which corresponds to the code is generated by Dist::Zilla and
correspond to what is uploaded to CPAN.
It won't contain any of the changes brought to the codebase since the last
CPAN release, but for a small patch that shouldn't be a problem.
## Sending Patches
The code for this distribution is hosted on [GitHub][repository].
You can submit bug reports via the [repository's issue track][bugtracker].
You can also submit code changes by forking the repository, pushing your code
changes to your clone, and then submitting a pull request. Detailed
instructions for doing that is available here:
* https://help.github.com/
* https://help.github.com/articles/creating-a-pull-request
[distzilla]: http://dzil.org/.
[repository]: https://github.com/pythian/DBD-Oracle/
[bugtracker]: https://github.com/pythian/DBD-Oracle/issues
......@@ -14,6 +14,7 @@ thank to all of them.
* Michael Portnoy <portnoy@pythian.com>
* StephenCIQG <StephenCIQG@50811bd7-b8ce-0310-adc1-d9db26280581>
* cjardine <cjardine@50811bd7-b8ce-0310-adc1-d9db26280581>
* gregor herrmann <gregoa@debian.org>
* jurl <jurl@50811bd7-b8ce-0310-adc1-d9db26280581>
* lbaxter <lbaxter@50811bd7-b8ce-0310-adc1-d9db26280581>
* robert <robert@50811bd7-b8ce-0310-adc1-d9db26280581>
Revision history for DBD::Oracle
1.74 2014-04-24
- Promote to stable.
1.73_01 2014-04-23
- Tweak fix for RT-88185. (GH#14, Martin J. Evans)
1.73_00 2014-04-23
- Reverts current fix for RT-88185, as it causes breakage. (GH#14)
1.72 2014-04-14
- promote 1.71_00 to stable.
1.71_00 2014-03-31
- Recognizes __CYGWIN64__. (RT88709, reported by Witold Petriczek)
- CHOOSE hint is deprecated. (RT91217, reported by Andy Bucksch,
fix by Martin J Evans)
- Set UTF8 flag per-connection. (RT88185, reported by Heinrich Mislik, patch by Martin
J. Evans)
- Add a CONTRIBUTING.mkd file. (GH#2)
- Add SELinux trick. (RT#87003, patch submitted by Mike Doherty)
1.70 2014-02-12
- promote 1.69_02 to stable.
1.69_02 2014-01-19
[IMPROVEMENTS]
- The DSN 'dbi:Oracle:sid=foo' is now an alias for 'dbi:Oracle:foo'.
(RT#91775, Yanick Champoux, requested by David Wheeler)
- Support for ORA_SYSBACKUP, ORA_SYSDG and ORA_SYSKM. (RT#91473,
Kris Lemaire)
[BUG FIXES]
- OCI_THREADED setting had been accidentally removed, causing potential
crashes when using threads. (RT#92229, Martin J. Evans, reported
by Detlef Lütticke)
- When using fetch*_hashref the values are decoded but
not the keys so if you have unicode column names they were not
returned correctly. (RT#92134, Martin J. Evans, reported by
Marcel Montes)
1.69_01 2014-01-14
[BUG FIXES]
- Fix RT91698. If you bound an output parameter to a scalar and
repeatedly called execute the memory allocated in your bound
scalar could increase each time. (Martin J. Evans)
1.68 2013-11-25
- promote 1.67_00 to stable.
1.67_00 2013-11-05
[BUG FIXES]
- Fix RT88135. Add statistics_info support (patch by Steffen Goeldner)
- Fix RT89491. Add RULE hint (patch by Steffen Goeldner)
[DOCUMENTATION]
- POD typos (RT#88285, RT#88284, Gregor Herrman).
- Grooming of Hpux troubleshooting pod (GH#7, Martin J. Evans,
Yanick Champoux)
1.66 2013-08-23
- promote 1.65_00 to stable.
......@@ -342,8 +410,8 @@ Revision history for DBD::Oracle
[DOCUMENTATION]
- Mention the release of Oracle Instant Client 64 bit which does not work
on Lion. (Martin J. Evans)
- fix DBD::Oracle::GetInfo blurb (patch by Julián Moreno Patiño) [rt74000]
- fix typos. (patch by Julián Moreno Patiño) [rt73999]
- fix DBD::Oracle::GetInfo blurb (patch by Julián Moreno Patiño) [rt74000]
- fix typos. (patch by Julián Moreno Patiño) [rt73999]
- add troubleshoot doc and diag for error with bequeather. [rt75263]
[OTHERS]
......@@ -358,7 +426,7 @@ Revision history for DBD::Oracle
[ENHANCEMENTS]
- added SYSASM session mode. [RT651211] (patch from
Anthony DeRobertis, reported by Julián Moreno Patiño)
Anthony DeRobertis, reported by Julián Moreno Patiño)
[BUG FIXES]
......@@ -396,7 +464,7 @@ Changes in DBD-Oracle 1.35_00 (18-11-2011)
- Added notes to bind_col documenting the fact that setting a TYPE
does not affect how the column is bound in Oracle, only what
happens after the column data is retrieved (Martin J. Evans)
- fix typo (thanks to Julián Moreno Patiño) [RT72038]
- fix typo (thanks to Julián Moreno Patiño) [RT72038]
- shuffle POD around to improve documentation flow [RT72252]
- major tidying up of the connect() documentation. (by Gwen Shapira)
- Moved LONG examples out of POD and into examples/
......@@ -535,7 +603,7 @@ Changes in DBD-Oracle 1.29_1
This release has been prepared specifically for the 'Debian' http://www.debian.org project. It contains no changes
to functionality or usage. The following has been changed
Fixed some formatting and typos in Pod from Julián Patiño
Fixed some formatting and typos in Pod from Julián Patiño
The Copyright terms for ora_explain have changed and now read as follows:
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.
......@@ -584,7 +652,7 @@ Changes in DBD-Oracle 1.29_1
Fix for rt.cpan.org Ticket #=21920 Bug with Oracle DBD for Mac OS X Instant Client From boingolover
Added a few more constants to get rid of magic numbers from John Scoles
Fix for rt.cpan.org Ticket #=38267 Inserts/Updates to BLOB's via synonyms fails from John Scoles
Fix for rt.cpan.org Ticket #=39603 build problem and fix missing functions in oci.def from Zoltán Sebestyén
Fix for rt.cpan.org Ticket #=39603 build problem and fix missing functions in oci.def from Zoltán Sebestyén
Fix for rt.cpan.org Ticket #=39374 Makefile.PL: error when reducing echo messages from make from Tippa
Fix for rt.cpan.org Ticket #=39232 binding large XMLTYPE fails on 64-bit perl from Jeff Klein
Fix for rt.cpan.org Ticket #=38749 Warning of a NULL column in an aggregate function also added ora_oci_success_warn to display silent OCI warnings from John Scoles
......
......@@ -22,7 +22,7 @@ This is free software, licensed under:
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
......
CONTRIBUTING.mkd
CONTRIBUTORS
Changes
INSTALL
......
......@@ -7,7 +7,7 @@
"Martin J. Evans <mjevans@cpan.org>"
],
"dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.120921",
"generated_by" : "Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640",
"license" : [
"perl_5"
],
......@@ -57,22 +57,21 @@
"provides" : {
"DBD::Oracle" : {
"file" : "lib/DBD/Oracle.pm",
"version" : "1.66"
"version" : "1.74"
},
"DBD::Oracle::GetInfo" : {
"file" : "lib/DBD/Oracle/GetInfo.pm",
"version" : "1.66"
"version" : "1.74"
},
"DBD::Oracle::Object" : {
"file" : "lib/DBD/Oracle/Object.pm",
"version" : "1.66"
"version" : "1.74"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
"mailto" : "bug-dbd-oracle at rt.cpan.org",
"web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=DBD-Oracle"
"web" : "https://github.com/pythian/DBD-Oracle/issues"
},
"homepage" : "http://search.cpan.org/dist/DBD-Oracle/",
"repository" : {
......@@ -81,7 +80,7 @@
"web" : "https://github.com/pythian/DBD-Oracle"
}
},
"version" : "1.66",
"version" : "1.74",
"x_authority" : "cpan:PYTHIAN",
"x_contributors" : [
"David E. Wheeler <david@justatheory.com>",
......@@ -92,13 +91,14 @@
"Michael Portnoy <portnoy@pythian.com>",
"StephenCIQG <StephenCIQG@50811bd7-b8ce-0310-adc1-d9db26280581>",
"cjardine <cjardine@50811bd7-b8ce-0310-adc1-d9db26280581>",
"gregor herrmann <gregoa@debian.org>",
"jurl <jurl@50811bd7-b8ce-0310-adc1-d9db26280581>",
"lbaxter <lbaxter@50811bd7-b8ce-0310-adc1-d9db26280581>",
"robert <robert@50811bd7-b8ce-0310-adc1-d9db26280581>"
],
"x_help_wanted" : [
"coder",
"documentation",
"developer",
"documenter",
"tester"
]
}
......
......@@ -6,49 +6,49 @@ author:
- 'Yanick Champoux <yanick@cpan.org>'
- 'Martin J. Evans <mjevans@cpan.org>'
build_requires:
B: 0
Carp: 0
Data::Dumper: 0
Devel::Peek: 0
Encode: 0
Math::BigInt: 0
Test::More: 0.88
Thread::Semaphore: 0
lib: 0
utf8: 0
vars: 0
B: '0'
Carp: '0'
Data::Dumper: '0'
Devel::Peek: '0'
Encode: '0'
Math::BigInt: '0'
Test::More: '0.88'
Thread::Semaphore: '0'
lib: '0'
utf8: '0'
vars: '0'
configure_requires:
DBI: 1.51
ExtUtils::MakeMaker: 6.30
DBI: '1.51'
ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
generated_by: 'Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.120921'
generated_by: 'Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
version: '1.4'
name: DBD-Oracle
provides:
DBD::Oracle:
file: lib/DBD/Oracle.pm
version: 1.66
version: '1.74'
DBD::Oracle::GetInfo:
file: lib/DBD/Oracle/GetInfo.pm
version: 1.66
version: '1.74'
DBD::Oracle::Object:
file: lib/DBD/Oracle/Object.pm
version: 1.66
version: '1.74'
requires:
DBI: 0
DynaLoader: 0
Exporter: 0
perl: 5.006
strict: 0
warnings: 0
DBI: '0'
DynaLoader: '0'
Exporter: '0'
perl: '5.006'
strict: '0'
warnings: '0'
resources:
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=DBD-Oracle
bugtracker: https://github.com/pythian/DBD-Oracle/issues
homepage: http://search.cpan.org/dist/DBD-Oracle/
repository: https://github.com/pythian/DBD-Oracle.git
version: 1.66
version: '1.74'
x_authority: cpan:PYTHIAN
x_contributors:
- 'David E. Wheeler <david@justatheory.com>'
......@@ -59,10 +59,11 @@ x_contributors:
- 'Michael Portnoy <portnoy@pythian.com>'
- 'StephenCIQG <StephenCIQG@50811bd7-b8ce-0310-adc1-d9db26280581>'
- 'cjardine <cjardine@50811bd7-b8ce-0310-adc1-d9db26280581>'
- 'gregor herrmann <gregoa@debian.org>'
- 'jurl <jurl@50811bd7-b8ce-0310-adc1-d9db26280581>'
- 'lbaxter <lbaxter@50811bd7-b8ce-0310-adc1-d9db26280581>'
- 'robert <robert@50811bd7-b8ce-0310-adc1-d9db26280581>'
x_help_wanted:
- coder
- documentation
- developer
- documenter
- tester
......@@ -30,6 +30,9 @@ constant(name=Nullch)
ORA_SYSDBA = 0x0002
ORA_SYSOPER = 0x0004
ORA_SYSASM = 0x8000
ORA_SYSBACKUP = 0x00020000
ORA_SYSDG = 0x00040000
ORA_SYSKM = 0x00080000
SQLCS_IMPLICIT = SQLCS_IMPLICIT
SQLCS_NCHAR = SQLCS_NCHAR
SQLT_INT = SQLT_INT
......@@ -101,7 +104,7 @@ ora_env_var(name)
sv_setpv(sv, p);
ST(0) = sv;
#ifdef __CYGWIN32__
#if defined(__CYGWIN32__) || defined(__CYGWIN64__)
void
ora_cygwin_set_env(name, value)
char * name
......
......@@ -2,7 +2,7 @@ NAME
DBD::Oracle - Oracle database driver for the DBI module
VERSION
version 1.66
version 1.74
SYNOPSIS
use DBI;
......@@ -26,7 +26,7 @@ DESCRIPTION
CONSTANTS
:ora_session_modes
ORA_SYSDBA ORA_SYSOPER ORA_SYSASM
ORA_SYSDBA ORA_SYSOPER ORA_SYSASM ORA_SYSBACKUP ORA_SYSDG ORA_SYSKM
:ora_types
ORA_VARCHAR2 ORA_STRING ORA_NUMBER ORA_LONG ORA_ROWID ORA_DATE ORA_RAW
......@@ -403,8 +403,9 @@ DBI CLASS METHODS
ora_session_mode
The ora_session_mode attribute can be used to connect with SYSDBA,
SYSOPER and ORA_SYSASM authorization. The ORA_SYSDBA, ORA_SYSOPER and
ORA_SYSASM constants can be imported using
SYSOPER, ORA_SYSASM, ORA_SYSBACKUP, ORA_SYSKM and ORA_SYSDG
authorization. The ORA_SYSDBA, ORA_SYSOPER, ORA_SYSASM, ORA_SYSBACKUP,
ORA_SYSKM and ORA_SYSDG constants can be imported using
use DBD::Oracle qw(:ora_session_modes);
......@@ -1304,6 +1305,37 @@ DATABASE HANDLE METHODS
any case can be used to get info on the column.
statistics_info()
Oracle does not support catalogues so TABLE_CAT is ignored as selection
criterion. The TABLE_CAT field of a fetched row is always NULL (undef).
See "table_info()" for more detailed information.
The INDEX_QUALIFIER field of a fetched row is always NULL (undef), for
the same reason as for TABLE_CAT.
If an index was created without an identifier (e.g. in the course of a
PK creation), INDEX_NAME contains a system generated name with the form
SYS_.
COLUMN_NAME may contain a system generated name (e.g. for function-based
indexes).
For the TYPE column, a simple mapping is used:
NORMAL btree
CLUSTER clustered
... other
The $quick parameter is currently ignored. The method uses the
dictionary with the gathered statistics, thus cannot ensure that the
values for CARDINALITY and PAGES are current.
The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER,
INDEX_NAME, ORDINAL_POSITION.
An identifier is passed *as is*, i.e. as the user provides or Oracle
returns it. See "table_info()" for more detailed information.
selectrow_array
@row_ary = $dbh->selectrow_array($sql);
@row_ary = $dbh->selectrow_array($sql, \%attr);
......
This diff is collapsed.
......@@ -538,9 +538,13 @@ dbd_db_login6(SV *dbh, imp_dbh_t *imp_dbh, char *dbname, char *uid, char *pwd, S
if (!imp_dbh->envhp ) {
SV **init_mode_sv;
ub4 init_mode = OCI_OBJECT; /* needed for LOBs (8.0.4) */
ub4 init_mode = OCI_OBJECT;/* needed for LOBs (8.0.4) */
DBD_ATTRIB_GET_IV(attr, "ora_init_mode",13, init_mode_sv, init_mode);
#if defined(USE_ITHREADS) || defined(MULTIPLICITY) || defined(USE_5005THREADS)
init_mode |= OCI_THREADED;
#endif
{
size_t rsize = 0;
/* Get CLIENT char and nchar charset id values */
......@@ -2549,19 +2553,26 @@ dbd_rebind_ph_char(imp_sth_t *imp_sth, phs_t *phs)
if (imp_sth->ora_pad_empty)
croak("Can't use ora_pad_empty with bind_param_inout");
if (SvTYPE(phs->sv)!=SVt_RV || !at_exec) {
if (phs->ftype == 96){
SvGROW(phs->sv,(STRLEN) (unsigned int)phs->maxlen-1);
SvGROW(phs->sv,(STRLEN) (unsigned int)phs->maxlen-1);
if (DBIc_DBISTATE(imp_sth)->debug >= 6 || dbd_verbose >= 6) {
PerlIO_printf(DBIc_LOGPIO(imp_sth),
"Growing 96 phs sv to %ld resulted in buffer %ld\n", phs->maxlen - 1, SvLEN(phs->sv));
}
} else {
STRLEN min_len = 28;
(void)SvUPGRADE(phs->sv, SVt_PVNV);
/* ensure room for result, 28 is magic number (see sv_2pv) */
/* don't apply 28 char min to CHAR types - probably shouldn't */
/* apply it anywhere really, trying to be too helpful. */
/* phs->sv _is_ the real live variable, it may 'mutate' later */
/* pre-upgrade to high'ish type to reduce risk of SvPVX realloc/move */
SvGROW(phs->sv, (STRLEN)(((unsigned int) phs->maxlen <= min_len) ? min_len : (unsigned int) phs->maxlen)+1/*for null*/);
/* ensure room for result, 28 is magic number (see sv_2pv) */
/* don't apply 28 char min to CHAR types - probably shouldn't */
/* apply it anywhere really, trying to be too helpful. */
/* phs->sv _is_ the real live variable, it may 'mutate' later */
/* pre-upgrade to high'ish type to reduce risk of SvPVX realloc/move */
/* NOTE SvGROW resets SvOOK_offset and we want to do this */
SvGROW(phs->sv, (STRLEN)(((unsigned int) phs->maxlen <= min_len) ? min_len : (unsigned int) phs->maxlen));
if (DBIc_DBISTATE(imp_sth)->debug >= 6 || dbd_verbose >= 6) {
PerlIO_printf(DBIc_LOGPIO(imp_sth),
"Growing phs sv to %ld resulted in buffer %ld\n", phs->maxlen +1, SvLEN(phs->sv));
}
}
}
......@@ -2591,7 +2602,11 @@ dbd_rebind_ph_char(imp_sth_t *imp_sth, phs_t *phs)
phs->maxlen = 4000; /* Just make is a varchar max should be ok for most things*/
} else {
phs->maxlen = ((IV)SvLEN(phs->sv)); /* avail buffer space (64bit safe) Logicaly maxlen should never change but it does why I know not*/
if (DBIc_DBISTATE(imp_sth)->debug >= 6|| dbd_verbose >= 6 ) {
PerlIO_printf(DBIc_LOGPIO(imp_sth),
"Changing maxlen to %ld\n", SvLEN(phs->sv));
}
phs->maxlen = ((IV)SvLEN(phs->sv)); /* avail buffer space (64bit safe) Logicaly maxlen should never change but it does why I know not - MJE because SvGROW can allocate more than you ask for - anyway - I fixed that and it doesn't grow anymore */
}
......@@ -3265,11 +3280,16 @@ dbd_bind_ph(SV *sth, imp_sth_t *imp_sth, SV *ph_namesv, SV *newvalue, IV sql_typ
sv_setsv(phs->sv, newvalue);
if (SvAMAGIC(phs->sv)) /* overloaded. XXX hack, logic ought to be pushed deeper */
sv_pvn_force(phs->sv, &PL_na);
} else if (newvalue != phs->sv) {
if (phs->sv)
SvREFCNT_dec(phs->sv);
} else {
if (newvalue != phs->sv) {
if (phs->sv)
SvREFCNT_dec(phs->sv);
phs->sv = SvREFCNT_inc(newvalue); /* point to live var */
phs->sv = SvREFCNT_inc(newvalue); /* point to live var */
}
/* Add space for NUL - do it now rather than in rebind as it cause problems
in rebind where maxlen continually grows. */
phs->maxlen = phs->maxlen + 1;
}
return dbd_rebind_ph(sth, imp_sth, phs);
......@@ -4325,10 +4345,21 @@ dbd_st_FETCH_attrib(SV *sth, imp_sth_t *imp_sth, SV *keysv)
if (kl==4 && strEQ(key, "NAME")) {
AV *av = newAV();
retsv = newRV(sv_2mortal((SV*)av));
while(--i >= 0)
av_store(av, i, newSVpv((char*)imp_sth->fbh[i].name,0));
SV *x;
D_imp_dbh_from_sth;
retsv = newRV(sv_2mortal((SV*)av));
while(--i >= 0) {
x = newSVpv((char*)imp_sth->fbh[i].name,0);
if (CSFORM_IMPLIES_UTF8(SQLCS_IMPLICIT)) {
#ifdef sv_utf8_decode
sv_utf8_decode(x);
#else
SvUTF8_on(x);
#endif
}
av_store(av, i, x);
}
}
else if (kl==11 && strEQ(key, "ParamValues")) {
HV *pvhv = newHV();
......
......@@ -11,9 +11,7 @@ my $ORACLE_ENV = ($^O eq 'VMS') ? 'ORA_ROOT' : 'ORACLE_HOME';
{
package DBD::Oracle;
{
$DBD::Oracle::VERSION = '1.66';
}
$DBD::Oracle::VERSION = '1.74';
BEGIN {
$DBD::Oracle::AUTHORITY = 'cpan:PYTHIAN';
}
......@@ -35,7 +33,7 @@ BEGIN {
ORA_CLOB ORA_BLOB ORA_RSET ORA_VARCHAR2_TABLE ORA_NUMBER_TABLE
SQLT_INT SQLT_FLT ORA_OCI SQLT_CHR SQLT_BIN
) ],
ora_session_modes => [ qw( ORA_SYSDBA ORA_SYSOPER ORA_SYSASM) ],
ora_session_modes => [ qw( ORA_SYSDBA ORA_SYSOPER ORA_SYSASM ORA_SYSBACKUP ORA_SYSDG ORA_SYSKM) ],
ora_fetch_orient => [ qw( OCI_FETCH_NEXT OCI_FETCH_CURRENT OCI_FETCH_FIRST
OCI_FETCH_LAST OCI_FETCH_PRIOR OCI_FETCH_ABSOLUTE
OCI_FETCH_RELATIVE)],
......@@ -203,6 +201,10 @@ BEGIN {
sub connect {
my ($drh, $dbname, $user, $auth, $attr)= @_;
# Make 'sid=whatever' an alias for 'whatever'.
# see RT91775
$dbname =~ s/^sid=([^;]+)$/$1/;
if ($dbname =~ /;/) {
my ($n,$v);
$dbname =~ s/^\s+//;
......@@ -470,7 +472,7 @@ SQL
SELECT *
FROM
(
SELECT /*+ RULE*/
SELECT /*+ CHOOSE */
NULL TABLE_CAT
, t.OWNER TABLE_SCHEM
, t.TABLE_NAME TABLE_NAME
...