Author: byterock
Date: Wed Jan 14 07:41:36 2009
New Revision: 12439
Removed:
dbd-oracle/branches/new_obj/
dbd-oracle/branches/utf8_ea/
dbd-oracle/branches/utf8_ea_2/
Modified:
dbd-oracle/branches/xml/MANIFEST
dbd-oracle/branches/xml/Makefile.PL
dbd-oracle/branches/xml/Oracle.h
dbd-oracle/branches/xml/Oracle.pm
dbd-oracle/branches/xml/Oracle.xs
dbd-oracle/branches/xml/dbdimp.h
dbd-oracle/branches/xml/oci.def
dbd-oracle/branches/xml/oci8.c
dbd-oracle/branches/xml/ocitrace.h
dbd-oracle/branches/xml/typemap
Log:
old junk I do not need
Modified: dbd-oracle/branches/xml/MANIFEST
==============================================================================
--- dbd-oracle/branches/xml/MANIFEST (original)
+++ dbd-oracle/branches/xml/MANIFEST Wed Jan 14 07:41:36 2009
@@ -10,7 +10,6 @@
lib/DBD/Oracle/GetInfo.pm
Makefile.PL
MANIFEST
-META.yml Module meta-data (added by MakeMaker)
mk.pm
mkta.pl
oci.def OCI.DLL export declarations
Modified: dbd-oracle/branches/xml/Makefile.PL
==============================================================================
--- dbd-oracle/branches/xml/Makefile.PL (original)
+++ dbd-oracle/branches/xml/Makefile.PL Wed Jan 14 07:41:36 2009
@@ -35,6 +35,7 @@
my $dbi_dir = dbd_dbi_dir();
my $dbi_arch_dir = dbd_dbi_arch_dir();
+my $debug = 1;
my $os = $^O;
my $so = $Config{so}; # typically 'so', 'dylib' on Darwin/OSX
my $osvers = $Config{osvers}; $osvers =~ s/^\s*(\d+\.\d+).*/$1/; # drop
sub-sub-version: 2.5.1 -> 2.5
@@ -192,7 +193,11 @@
my $linkwith_msg = "";
my $need_ldlp_env;
+if ($debug) {print "os ='$os'\n";}
+
if ($os eq 'VMS') {
+ if ($debug) {print "VMS\n";}
+
my $OCIINCLUDE = join " ", vmsify("$OH/rdbms/"),
vmsify("$OH/rdbms/public"),
vmsify("$OH/rdbms/demo/"),
@@ -218,7 +223,8 @@
}
elsif (($os eq 'MSWin32') or ($os =~ /cygwin/i)) {
-
+ if ($debug) {print "MSWin32 or cygwin\n";}
+
my $OCIDIR = "";
find( sub {
print "Found $_ directory\n" if /^OCI\d*$/i;
@@ -290,6 +296,8 @@
elsif ($::opt_l and # use -l to enable this direct-link approach
@_=grep { m:/lib(cl(ie)?ntsh|oracle).\w+$:o } <$OH/lib/lib*>
) {
+ if ($debug) {print "Direct link with unix\n";}
+
# --- the simple modern way ---
foreach(@_) { s:\Q$OH/lib/::g }
print "Found direct-link candidates: @_\n";
@@ -370,6 +378,7 @@
}
else { # --- trawl the guts of Oracle's make files looking the how it wants to
link
+ if ($debug) {print "Trawl guts of Oracle\n";}
#Lincoln: pick the right library path
check_ldlibpthname();
my $libdir = ora_libdir();
@@ -499,22 +508,31 @@
# (on my system, using gcc, the flags can't be removed entirely;
# instead, they have to be converted to the ld-compatible equivs.
# -- Sweth (<[email protected]>)
+ if ($debug) {print "Sweth's funny mods linkwith=$linkwith\n";}
+
if ( $Config{'cc'} eq 'cc' ) {
+ if ($debug) {print "Have cc?\n";}
$linkwith =~ s/-Wl,\+[sn]//g;
} elsif ( $Config{'gccversion'} ) {
$linkwith =~ s/-Wl,(\+[sn])/$1/g;
};
+ if ($debug) {print "Now linkwith is ".$linkwith."\n";}
+
# Oracle 8.0.5 drags in these which also cause link errors:
# this produces a good link with the 32bit version of oracle
# (64bit version of 8.0.5 fails to link
# someone else will have to hack that one out)
$linkwith =~ s/\+D[AS]2\.0[W]* / /g;
+ if ($debug) {print "Now linkwith is $linkwith\n";}
+
#Lincoln: pick the right library path
my $libdir = ora_libdir();
$linkwith =~ s!/lib\b!/$libdir!g;
+if ($debug) {print "Now linkwith is $linkwith\n";}
+
# A number of folks have had to add this library to resolve
# undefined symbol errors reported at runtime by ld.sl (the
# library loader) libqsmashr defines LhrStringInsert()...
@@ -524,6 +542,8 @@
$linkwith =~ s/$/ -lqsmashr/ if ( $linkwith !~ m/-lqsmshr/ );
}
+ if ($debug) {print "Now linkwith is $linkwith\n";}
+
if ( ($Config{'libswanted'} !~ m/\bcl\b/) or $Config{'libswanted'} !~
m/\bpthread\b/ ) {
print "WARNING: Oracle is built with multi-threading libraries\n"
. " You will most likely need to rebuild perl from
sources\n"
@@ -537,6 +557,8 @@
" seems to conflict with -l:libcl.a\n" ;
$linkwith =~ s/\s*-lcl\b//g;
}
+if ($debug) {print "Now linkwith is $linkwith\n";}
+
# Lincoln: Jay Strauss's Oracle 8.1.6 fix... I did this manually
# when I still had 8.1.6 to deal with (its in the README):
#
@@ -556,6 +578,7 @@
#
# Jay: Add Librarys where one gets Unresolved symbols
#
+
if ( ( $osvers >= 11 and $client_version_full =~ /^8\.1\.6/ )
or ( $osvers >= 11 and $OH =~ m,/8\.1\.6, ) ) {
my @extraLib = qw[libqsmashr.sl libclntsh.sl];
@@ -566,11 +589,13 @@
}
}
}
+if ($debug) {print "Now linkwith is $linkwith\n";}
if ($osvers >= 11 and $linkwith =~ m/-l:libcl.a/) {
print "WARNING: stripping -l:libcl.a from liblist (conflict with ld
looking for shared libs)\n";
$linkwith =~ s/\s*-l:libcl.a\b//g;
}
+if ($debug) {print "Now linkwith is $linkwith\n";}
#lincoln: this is bringing back everything we thought we removed...
(like libcl.a)
# I wonder if this should targetted less specifically than
only HPUX 11
@@ -583,6 +608,7 @@
" compiled with +z or +Z (PIC) causing link to
fail.\n",
" Furthermore, we should have already grabbed these
libraries\n";;
}
+if ($debug) {print "Now linkwith is $linkwith\n";}
my $ccf = join " ", map { $_ || '' } @Config{qw(ccflags ccldflags
cccdlflags)};
if ($Config{cc} =~ /gcc/i) {
@@ -601,18 +627,22 @@
if ($::opt_b) { # The simple approach
+ if ($debug) {print "The simple approach\n";}
+
$opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g $linkwith" };
$linkwith_msg = "OTHERLDFLAGS = $linkwith [from '$build_target' rule]";
}
else { # the not-so-simple approach!
# get a cut down $linkwith to pass to MakeMaker liblist
my $linkwith_s = expand_mkvars($linkwith, 1, 1);
+if ($debug) {print "Now linkwith_s is $linkwith_s\n";}
# convert "/full/path/libFOO.a" into "-L/full/path -lFOO"
# to cater for lack of smarts in MakeMaker / Liblist
# which ignores /foo/bar.a entries!
my $lib_ext_re = "(a|$Config{dlext}|$Config{so})";
$linkwith_s =~ s!(\S+)/lib(\w+)\.($lib_ext_re)\b!-L$1 -l$2!g;
+if ($debug) {print "Now linkwith_s is $linkwith_s\n";}
# Platform specific fix-ups:
# delete problematic crt?.o on solaris
@@ -621,6 +651,9 @@
# this kind of stuff should be in a ./hints/* file:
$linkwith_s .= " -lc" if $Config{osname} eq 'dynixptx'
or $Config{archname} =~ /-pc-sco3\.2v5/;
+
+if ($debug) {print "Now linkwith_s is $linkwith_s\n";}
+
if ($os eq 'solaris' and $linkwith_s =~ /-lthread/
and $osvers >= 2.3 and $osvers <= 2.6
) {
@@ -628,6 +661,7 @@
print "Deleting -lthread from link list as a possible workround
($osvers).\n";
$linkwith_s =~ s/\s*-lthread\b/ /g;
}
+if ($debug) {print "Now linkwith_s is $linkwith_s\n";}
# extract object files, keep for use later
my @linkwith_o;
@@ -696,6 +730,8 @@
# Since the # .a libs that Oracle supplies contain non-PIC object
# files, we sadly have to build static on HP-UX 9 :(
if ($os eq 'hpux') {
+if ($debug) {print "HP-UX 9 cannot link test\n";}
+
if ($osvers < 10) {
print "WARNING: Forced to build static not dynamic on $os
$osvers.$BELL\n";
$opts{LINKTYPE} = 'static';
@@ -809,6 +845,8 @@
if ($os eq 'VMS') { # sanity check VMS logical names
sub search_in_search_list {
+ if ($debug) {print "subroutine that searches list arg1 for item arg2\n";}
+
# subroutine that searches list arg1 for item arg2
my ($search_list_name , $logical) = @_ ;
$search_list_name =~ s/;// ;
@@ -1126,6 +1164,7 @@
);
my %edit; @ed...@edit} = ('$_ = ""') x @edit;
+
$edit{ORA_NLS} = $edit{ORA_NLS33} = $edit{ORA_NLS32} = q{
print "Deleting $_\n",
" because it is not already set in the environment\n",
Modified: dbd-oracle/branches/xml/Oracle.h
==============================================================================
--- dbd-oracle/branches/xml/Oracle.h (original)
+++ dbd-oracle/branches/xml/Oracle.h Wed Jan 14 07:41:36 2009
@@ -39,6 +39,7 @@
#include <ocidfn.h>
#include <orid.h>
#include <ori.h>
+
/* ------ end of Oracle include files ------ */
@@ -130,4 +131,8 @@
sb4 ind, OCIXMLType **retInstance _*/);
+sword OCIXMLTypeExists(/*_ OCIError *errhp, OCIXMLType *doc,
+ OraText *xpathexpr, ub4 xpathexpr_Len,
+ OraText *nsmap, ub4 nsmap_Len,
+ boolean *retval _*/);
/* end of Oracle.h */
Modified: dbd-oracle/branches/xml/Oracle.pm
==============================================================================
--- dbd-oracle/branches/xml/Oracle.pm (original)
+++ dbd-oracle/branches/xml/Oracle.pm Wed Jan 14 07:41:36 2009
@@ -80,6 +80,7 @@
DBD::Oracle::st->install_method("ora_ping");
DBD::Oracle::st->install_method("ora_stmt_type_name");
DBD::Oracle::st->install_method("ora_stmt_type");
+ DBD::Oracle::db->install_method("ora_xml_node_exists");
$drh;
}
@@ -993,7 +994,7 @@
+---------------------+----+-------------+---------+------+--------+
| 1.20 | N | N | N | Y | Y |
+---------------------+----+-------------+---------+------+--------+
- | 1.21 | N | N | N | Y | Y |
+ | 1.21 | N | N | N | N | Y |
+---------------------+----+-------------+---------+------+--------+
| 1.22 | N | N | N | N | Y |
+---------------------+----+-------------+---------+------+--------+
Modified: dbd-oracle/branches/xml/Oracle.xs
==============================================================================
--- dbd-oracle/branches/xml/Oracle.xs (original)
+++ dbd-oracle/branches/xml/Oracle.xs Wed Jan 14 07:41:36 2009
@@ -95,6 +95,7 @@
INCLUDE: Oracle.xsi
MODULE = DBD::Oracle PACKAGE = DBD::Oracle::st
+MODULE = DBD::Oracle PACKAGE = DBD::Oracle::db
void ora_stmt_type(sth)
SV * sth
@@ -179,6 +180,7 @@
? &sv_yes : &sv_no;
}
+
void
ora_fetch(sth)
SV * sth
@@ -256,7 +258,6 @@
ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
-MODULE = DBD::Oracle PACKAGE = DBD::Oracle::db
void
@@ -292,6 +293,18 @@
ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
void
+ora_xml_node_exists(dbh, xml,node_name,node_value)
+ SV *dbh
+ OCIXMLType *xml
+ SV *node_name
+ SV *node_value
+ PREINIT:
+ D_imp_dbh(dbh);
+ CODE:
+ ST(0) = ora_node_exists(dbh,imp_dbh,xml,node_name,node_value) ? &sv_yes
: &sv_no;
+
+
+void
ora_lob_write(dbh, locator, offset, data)
SV *dbh
OCILobLocator *locator
@@ -399,6 +412,9 @@
ST(0) = &sv_yes;
}
+
+
+
void
ora_lob_read(dbh, locator, offset, length)
SV *dbh
Modified: dbd-oracle/branches/xml/dbdimp.h
==============================================================================
--- dbd-oracle/branches/xml/dbdimp.h (original)
+++ dbd-oracle/branches/xml/dbdimp.h Wed Jan 14 07:41:36 2009
@@ -286,6 +286,7 @@
fb_ary_t *fb_ary_cb_alloc _((ub4 piece_size,ub4 max_len, int size));
int ora_db_reauthenticate _((SV *dbh, imp_dbh_t *imp_dbh, char *uid, char
*pwd));
+int ora_node_exists _((SV *dbh, imp_dbh_t *imp_dbh,OCIXMLType *xml, char
*node_name, char *node_value));
void dbd_phs_sv_complete _((phs_t *phs, SV *sv, I32 debug));
void dbd_phs_avsv_complete _((phs_t *phs, I32 index, I32 debug));
@@ -315,7 +316,6 @@
SV *tuples_status, SV *columns, ub4 exe_count));
-SV * ora_create_xml _((SV *dbh, char *source));
void ora_free_lob_refetch _((SV *sth, imp_sth_t *imp_sth));
void dbd_phs_avsv_complete _((phs_t *phs, I32 index, I32 debug));
Modified: dbd-oracle/branches/xml/oci.def
==============================================================================
--- dbd-oracle/branches/xml/oci.def (original)
+++ dbd-oracle/branches/xml/oci.def Wed Jan 14 07:41:36 2009
@@ -378,6 +378,7 @@
OCILobLocatorAssign
OCILobCreateTemporary
OCIXMLTypeCreateFromSrc
+OCIXMLTypeExists
OCIDateTimeToText
OCIIntervalToText
OCIDateTimeGetTimeZoneOffset
Modified: dbd-oracle/branches/xml/oci8.c
==============================================================================
--- dbd-oracle/branches/xml/oci8.c (original)
+++ dbd-oracle/branches/xml/oci8.c Wed Jan 14 07:41:36 2009
@@ -3240,7 +3240,19 @@
return OCI_CRED_RDBMS;
}
+int
+ora_node_exists(SV *dbh, imp_dbh_t *imp_dbh,OCIXMLType *xml, char
*node_name, char *node_value)
+{
+ dTHX;
+ sword status;
+ boolean found;
+ STRLEN node_name_len;
+ STRLEN node_value_len;
+ OCIXMLTypeExists_log_stat(imp_dbh->errhp,xml,(CONST
oratext**)&node_name,strlen(node_name),node_value,strlen(node_value),found,status);
+
+return 1;
+}
int
ora_db_reauthenticate(SV *dbh, imp_dbh_t *imp_dbh, char *uid, char *pwd)
{
Modified: dbd-oracle/branches/xml/ocitrace.h
==============================================================================
--- dbd-oracle/branches/xml/ocitrace.h (original)
+++ dbd-oracle/branches/xml/ocitrace.h Wed Jan 14 07:41:36 2009
@@ -36,13 +36,20 @@
If done well the log will read like a compilable program.
*/
+#define OCIXMLTypeExists_log_stat(errhp,xmldoc,nn,nnl,nv,nvl,b,stat)\
+ stat =OCIXMLTypeExists(errhp,xmldoc,nn.nnl,nv,nvl,b);\
+ (DBD_OCI_TRACEON) \
+ ? PerlIO_printf(DBD_OCI_TRACEFP,\
+ "%sOCIXMLTypeExists_log_stat(%s,%s)=%s\n",\
+ OciTp, nn,nv,oci_status_name(stat)),stat \
+ : stat
#define OCIServerVersion_log_stat(sc,errhp,b,bl,ht,stat)\
stat =OCIServerVersion(sc,errhp,b,bl,ht);\
(DBD_OCI_TRACEON) \
? PerlIO_printf(DBD_OCI_TRACEFP,\
- "%sCIServerVersion_log_stat(%p,%s)=%s\n",\
+ "%sOCIServerVersion_log_stat(%p,%s)=%s\n",\
OciTp, sc,b,oci_status_name(stat)),stat \
: stat
#define
OCIStmtGetPieceInfo_log_stat(stmhp,errhp,hdlptr,hdltyp,in_out,iter,idx,piece,stat)\
Modified: dbd-oracle/branches/xml/typemap
==============================================================================
--- dbd-oracle/branches/xml/typemap (original)
+++ dbd-oracle/branches/xml/typemap Wed Jan 14 07:41:36 2009
@@ -1 +1,2 @@
-OCILobLocator * T_PTROBJ
+OCILobLocator * T_PTROBJ
+OCIXMLType * T_PTROBJ
\ No newline at end of file