Author: byterock
Date: Wed Mar 19 10:41:04 2008
New Revision: 10955

Modified:
   dbd-oracle/branches/dblink/Oracle.pm
   dbd-oracle/branches/dblink/Oracle.xs
   dbd-oracle/branches/dblink/oci8.c

Log:
well that was easy support for inserts now.  All I have do do was add the 
SQLT_CHR to the PM and use it on the bind

Modified: dbd-oracle/branches/dblink/Oracle.pm
==============================================================================
--- dbd-oracle/branches/dblink/Oracle.pm        (original)
+++ dbd-oracle/branches/dblink/Oracle.pm        Wed Mar 19 10:41:04 2008
@@ -22,7 +22,7 @@
            ORA_VARCHAR2 ORA_STRING ORA_NUMBER ORA_LONG ORA_ROWID ORA_DATE
            ORA_RAW ORA_LONGRAW ORA_CHAR ORA_CHARZ ORA_MLSLABEL ORA_NTY
            ORA_CLOB ORA_BLOB ORA_RSET ORA_VARCHAR2_TABLE ORA_NUMBER_TABLE
-           SQLT_INT SQLT_FLT XMLType
+           SQLT_INT SQLT_FLT SQLT_CHR
        ) ],
         ora_session_modes => [ qw( ORA_SYSDBA ORA_SYSOPER ) ],
     );

Modified: dbd-oracle/branches/dblink/Oracle.xs
==============================================================================
--- dbd-oracle/branches/dblink/Oracle.xs        (original)
+++ dbd-oracle/branches/dblink/Oracle.xs        Wed Mar 19 10:41:04 2008
@@ -32,7 +32,8 @@
     SQLCS_IMPLICIT = SQLCS_IMPLICIT
     SQLCS_NCHAR    = SQLCS_NCHAR
     SQLT_INT     = SQLT_INT
-    SQLT_FLT     = SQLT_FLT    
+    SQLT_FLT     = SQLT_FLT
+    SQLT_CHR     = SQLT_CHR
     CODE:
     if (!ix) {
        if (!name) name = GvNAME(CvGV(cv));
@@ -110,7 +111,7 @@
     ST(0) = dbd_bind_ph(sth, imp_sth, param,av_value, sql_type, attribs, TRUE, 
maxlen)
                ? &sv_yes : &sv_no;
 }
-    
+
 void
 ora_fetch(sth)
     SV *       sth
@@ -227,7 +228,7 @@
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
        ST(0) = &sv_undef;
         return;
-    }    
+    }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, 
status );
@@ -429,6 +430,6 @@
        dbd_init_oci(DBIS) ;
        dbd_init_oci_drh(imp_drh) ;
 
-    
 
-       
+
+

Modified: dbd-oracle/branches/dblink/oci8.c
==============================================================================
--- dbd-oracle/branches/dblink/oci8.c   (original)
+++ dbd-oracle/branches/dblink/oci8.c   Wed Mar 19 10:41:04 2008
@@ -327,7 +327,7 @@
        /* negative value. OCI_ATTR_PREFETCH_MEMORY */
 
     if (!DBIc_ACTIVE(imp_dbh)) {
-       oci_error(sth, NULL, OCI_ERROR, "Database disconnected");
+               oci_error(sth, NULL, OCI_ERROR, "Database disconnected");
         return 0;
     }
 
@@ -348,22 +348,22 @@
 
     imp_sth->auto_lob = 1;
     if (attribs) {
-       SV **svp;
-       IV ora_auto_lob = 1;
-       DBD_ATTRIB_GET_IV(  attribs, "ora_parse_lang", 14, svp, oparse_lng);
-       DBD_ATTRIB_GET_IV(  attribs, "ora_placeholders", 16, svp, 
ora_placeholders);
-       DBD_ATTRIB_GET_IV(  attribs, "ora_auto_lob",   12, svp, ora_auto_lob);
-       DBD_ATTRIB_GET_IV(  attribs, "ora_dblink_lob",   14, svp, 
ora_dblink_lob);
-
-       imp_sth->auto_lob = (ora_auto_lob) ? 1 : 0;
-       imp_sth->dblink_lob = (ora_auto_lob) ? 1 : 0;
-       /* ora_check_sql only works for selects owing to Oracle behaviour */
-       DBD_ATTRIB_GET_IV(  attribs, "ora_check_sql",  13, svp, ora_check_sql);
+               SV **svp;
+               IV ora_auto_lob = 1;
+               DBD_ATTRIB_GET_IV(  attribs, "ora_parse_lang", 14, svp, 
oparse_lng);
+               DBD_ATTRIB_GET_IV(  attribs, "ora_placeholders", 16, svp, 
ora_placeholders);
+               DBD_ATTRIB_GET_IV(  attribs, "ora_auto_lob",   12, svp, 
ora_auto_lob);
+               DBD_ATTRIB_GET_IV(  attribs, "ora_dblink_lob",   14, svp, 
ora_dblink_lob);
+
+               imp_sth->auto_lob = (ora_auto_lob) ? 1 : 0;
+               imp_sth->dblink_lob = (ora_auto_lob) ? 1 : 0;
+               /* ora_check_sql only works for selects owing to Oracle 
behaviour */
+               DBD_ATTRIB_GET_IV(  attribs, "ora_check_sql",  13, svp, 
ora_check_sql);
    }
 
     /* scan statement for '?', ':1' and/or ':foo' style placeholders   */
     if (ora_placeholders)
-       dbd_preparse(imp_sth, statement);
+               dbd_preparse(imp_sth, statement);
     else imp_sth->statement = savepv(statement);
 
     imp_sth->envhp = imp_dbh->envhp;
@@ -401,8 +401,8 @@
     DBIc_IMPSET_on(imp_sth);
 
     if (ora_check_sql) {
-       if (!dbd_describe(sth, imp_sth))
-           return 0;
+               if (!dbd_describe(sth, imp_sth))
+                   return 0;
     }
     else {
       /* set initial cache size by memory */
@@ -2245,10 +2245,9 @@
                fbh->ftype  = fbh->dbtype;
                 /* do we need some addition size logic here? (lab) */
         if (imp_sth->dblink_lob){
-               fbh->disize= 2*1022*1024*1024-1; /*2 gig*/
+               fbh->disize= 2*1022*1024*1024-1; /*2 gig -1 so it will not max 
out.*/
                        fbh->ftype=SQLT_CHR;
                } else {
-
                        fbh->disize = fbh->dbsize *10 ; /* XXX! */
                        fbh->fetch_func = (imp_sth->auto_lob) ? 
fetch_func_autolob : fetch_func_getrefpv;
                        fbh->bless  = "OCILobLocatorPtr";

Reply via email to