Author: byterock
Date: Fri Oct 31 11:26:49 2008
New Revision: 12017
Modified:
dbd-oracle/trunk/Changes
dbd-oracle/trunk/Oracle.h
dbd-oracle/trunk/Oracle.pm
dbd-oracle/trunk/Oracle.xs
dbd-oracle/trunk/dbdimp.c
dbd-oracle/trunk/oci8.c
Log:
Added a few more constants to get rid of magic numbers
Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes (original)
+++ dbd-oracle/trunk/Changes Fri Oct 31 11:26:49 2008
@@ -1,5 +1,6 @@
-=head1 Changes in DBD-Oracle 1.23(svn rev #####)
- Fix for rt.cpan.org Ticket #=38267: Inserts/Updates to BLOB's via synonyms
fails from John Scoles
+=head1 Changes in DBD-Oracle 1.23(svn rev #####)
+ 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 #=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
Modified: dbd-oracle/trunk/Oracle.h
==============================================================================
--- dbd-oracle/trunk/Oracle.h (original)
+++ dbd-oracle/trunk/Oracle.h Fri Oct 31 11:26:49 2008
@@ -95,11 +95,25 @@
long offset, UV len, long destoffset));
/* Oracle types */
-
+#define ORA_VARCHAR2 1
+#define ORA_STRING 5
+#define ORA_NUMBER 2
+#define ORA_LONG 8
+#define ORA_ROWID 11
+#define ORA_DATE 12
+#define ORA_RAW 23
+#define ORA_LONGRAW 24
+#define ORA_CHAR 96
+#define ORA_CHARZ 97
+#define ORA_MLSLABEL 105
+#define ORA_CLOB 112
+#define ORA_BLOB 113
+#define ORA_RSET 116
#define ORA_VARCHAR2_TABLE 201
#define ORA_NUMBER_TABLE 202
#define ORA_XMLTYPE 108
+
/* other Oracle not in noraml API defines
most of these are largly undocumented XML functions that are in the API but
not defined
Modified: dbd-oracle/trunk/Oracle.pm
==============================================================================
--- dbd-oracle/trunk/Oracle.pm (original)
+++ dbd-oracle/trunk/Oracle.pm Fri Oct 31 11:26:49 2008
@@ -19,7 +19,7 @@
use Exporter ();
@ISA = qw(DynaLoader Exporter);
%EXPORT_TAGS = (
- ora_types => [ qw(
+ ora_types => [ qw(
ORA_VARCHAR2 ORA_STRING ORA_NUMBER ORA_LONG ORA_ROWID ORA_DATE
ORA_RAW ORA_LONGRAW ORA_CHAR ORA_CHARZ ORA_MLSLABEL ORA_XMLTYPE
ORA_CLOB ORA_BLOB ORA_RSET ORA_VARCHAR2_TABLE ORA_NUMBER_TABLE
Modified: dbd-oracle/trunk/Oracle.xs
==============================================================================
--- dbd-oracle/trunk/Oracle.xs (original)
+++ dbd-oracle/trunk/Oracle.xs Fri Oct 31 11:26:49 2008
@@ -10,21 +10,21 @@
constant(name=Nullch)
char *name
ALIAS:
- ORA_VARCHAR2 = 1
- ORA_NUMBER = 2
- ORA_STRING = 5
- ORA_LONG = 8
- ORA_ROWID = 11
- ORA_DATE = 12
- ORA_RAW = 23
- ORA_LONGRAW = 24
- ORA_CHAR = 96
- ORA_CHARZ = 97
+ ORA_VARCHAR2 = ORA_VARCHAR2
+ ORA_NUMBER = ORA_NUMBER
+ ORA_STRING = ORA_STRING
+ ORA_LONG = ORA_LONG
+ ORA_ROWID = ORA_ROWID
+ ORA_DATE = ORA_DATE
+ ORA_RAW = ORA_RAW
+ ORA_LONGRAW = ORA_LONGRAW
+ ORA_CHAR = ORA_CHAR
+ ORA_CHARZ = ORA_CHARZ
ORA_MLSLABEL = 105
ORA_XMLTYPE = ORA_XMLTYPE
- ORA_CLOB = 112
- ORA_BLOB = 113
- ORA_RSET = 116
+ ORA_CLOB = ORA_CLOB
+ ORA_BLOB = ORA_BLOB
+ ORA_RSET = ORA_RSET
ORA_VARCHAR2_TABLE = ORA_VARCHAR2_TABLE
ORA_NUMBER_TABLE = ORA_NUMBER_TABLE
ORA_SYSDBA = 0x0002
Modified: dbd-oracle/trunk/dbdimp.c
==============================================================================
--- dbd-oracle/trunk/dbdimp.c (original)
+++ dbd-oracle/trunk/dbdimp.c Fri Oct 31 11:26:49 2008
@@ -2795,7 +2795,7 @@
phs->ftype = ora_sql_type(imp_sth, phs->name,
(int)sql_type);
/* treat Oracle7 SQLT_CUR as SQLT_RSET for Oracle8 */
if (phs->ftype==102)
- phs->ftype = 116;
+ phs->ftype = ORA_RSET;
/* some types require the trailing null included in the length. */
/* SQLT_STR=5=STRING, SQLT_AVC=97=VARCHAR */
@@ -3247,7 +3247,7 @@
phs->maxlen = 1;
/* treat Oracle7 SQLT_CUR as SQLT_RSET for Oracle8 */
if (phs->ftype==102)
- phs->ftype = 116;
+ phs->ftype = ORA_RSET;
/* some types require the trailing null included in the length. */
/* SQLT_STR=5=STRING, SQLT_AVC=97=VARCHAR */
phs->alen_incnull = (phs->ftype==SQLT_STR || phs->ftype==SQLT_AVC);
Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c (original)
+++ dbd-oracle/trunk/oci8.c Fri Oct 31 11:26:49 2008
@@ -2626,10 +2626,10 @@
switch (fbh->dbtype) {
/* the simple types */
- case 1: /* VARCHAR2
*/
+ case ORA_VARCHAR2: /*
VARCHAR2 */
avg_width = fbh->dbsize / 2;
/* FALLTHRU */
- case 96: /* CHAR
*/
+ case ORA_CHAR: /* CHAR
*/
if ( CSFORM_IMPLIES_UTF8(fbh->csform) &&
!CS_IS_UTF8(fbh->csid) )
fbh->disize = fbh->dbsize * 4;
else
@@ -2637,12 +2637,12 @@
fbh->prec = fbh->disize;
break;
- case 23: /* RAW
*/
+ case ORA_RAW: /* RAW
*/
fbh->disize = fbh->dbsize * 2;
fbh->prec = fbh->disize;
break;
- case 2: /* NUMBER
*/
+ case ORA_NUMBER: /*
NUMBER */
case 21: /* BINARY FLOAT
os-endian */
case 22: /* BINARY
DOUBLE os-endian */
case 100: /* BINARY FLOAT
oracle-endian */
@@ -2651,14 +2651,14 @@
avg_width = 4; /* NUMBER approx +/-
1_000_000 */
break;
- case 12: /* DATE
*/
+ case ORA_DATE: /* DATE
*/
/* actually dependent on NLS default date
format*/
fbh->disize = 75; /* a generous default
*/
fbh->prec = fbh->disize;
avg_width = 8; /* size in SQL*Net packet */
break;
- case 8: /* LONG
*/
+ case ORA_LONG: /* LONG
*/
if (imp_sth->clbk_lob){ /*get by peice with callback
a slow*/
@@ -2703,7 +2703,7 @@
}
break;
- case 24: /* LONG RAW
*/
+ case ORA_LONGRAW: /* LONG
RAW */
if (imp_sth->clbk_lob){ /*get by peice with
callback a slow*/
fbh->clbk_lob = 1;
@@ -2741,7 +2741,7 @@
}
break;
- case 11: /* ROWID
*/
+ case ORA_ROWID: /*
ROWID */
case 104: /* ROWID Desc
*/
fbh->disize = 20;
fbh->prec = fbh->disize;
@@ -2762,8 +2762,8 @@
}
break;
- case 112: /* CLOB & NCLOB
*/
- case 113: /* BLOB
*/
+ case ORA_CLOB: /* CLOB & NCLOB
*/
+ case ORA_BLOB: /* BLOB
*/
case 114: /* BFILE
*/
fbh->ftype = fbh->dbtype;
@@ -2773,7 +2773,7 @@
if (imp_sth->pers_lob){ /*get as one peice fasted but limited
to how big you can get.*/
fbh->pers_lob = 1;
fbh->disize =
fbh->disize+long_readlen; /*user set max value for the fetch*/
- if (fbh->dbtype == 112){
+ if (fbh->dbtype == ORA_CLOB){
fbh->ftype = SQLT_CHR;
} else {
fbh->ftype = SQLT_LVB; /*Binary
form seems this is the only value where we cna get the length correctly*/
@@ -2790,7 +2790,7 @@
imp_sth->piece_size=imp_sth->long_readlen;
}
- if (fbh->dbtype == 112){
+ if (fbh->dbtype == ORA_CLOB){
fbh->ftype = SQLT_CHR;
} else {
fbh->ftype = SQLT_BIN; /*other Binary*/
@@ -2809,7 +2809,7 @@
if (!imp_sth->piece_size){ /*if not set
use max value*/
imp_sth->piece_size=imp_sth->long_readlen;
}
- if (fbh->dbtype == 112){
+ if (fbh->dbtype == ORA_CLOB){
fbh->ftype = SQLT_CHR;
} else {
fbh->ftype = SQLT_BIN; /*other
Binary */
@@ -2832,7 +2832,7 @@
break;
#endif
- case 116: /* RSET
*/
+ case ORA_RSET: /* RSET
*/
fbh->ftype = fbh->dbtype;
fbh->disize = sizeof(OCIStmt *);
fbh->fetch_func = fetch_func_rset;
@@ -2918,7 +2918,7 @@
/*add one extra byte incase the size of the lob is
equal to the define_len*/
}
- if (fbh->ftype == 116) { /* RSET */
+ if (fbh->ftype == ORA_RSET) { /* RSET */
OCIHandleAlloc_ok(imp_sth->envhp,
(dvoid*)&((OCIStmt **)fb_ary->abuf)[0],
OCI_HTYPE_STMT, status);