Applied. Thanks!
Tim.
On Wed, Aug 29, 2001 at 05:55:04PM -0500, Stephen Clouse wrote:
> Building on 9.0.1 on Linux, I had two problems:
>
> 1. There was an issue with one of Oracle's Stupid Makefile Tricks (tm), using a
> variable called $(I_SYM) instead of a literal -I in the includes. It wound
> up as an undefined variable in the final makefile so none of the include
> files could be found. To fix, I just changed the assignment to $MK{INCLUDE}
> to do an expand_mkvars() first so the variable gets substituted beforehand.
>
> 2. You seem to have forgotten my bizarro LOB write bug patch :) The new build
> failed my local regression test when reinstalling one of our apps, and that's
> when I noticed the dbd_ph_rebind_lob code hadn't been changed.
>
> I've bundled both fixes into one short patch, attached.
>
> --
> Stephen Clouse <[EMAIL PROTECTED]>
> Senior Programmer, IQ Coordinator Project Lead
> The IQ Group, Inc. <http://www.theiqgroup.com/>
> diff -ru DBD-Oracle-1.09.orig/Makefile.PL DBD-Oracle-1.09/Makefile.PL
> --- DBD-Oracle-1.09.orig/Makefile.PL Wed Aug 29 14:39:20 2001
> +++ DBD-Oracle-1.09/Makefile.PL Wed Aug 29 17:41:12 2001
> @@ -411,7 +411,7 @@
> $opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g @linkwith_o \$(COMPOBJS)" };
> }
>
> - my $OCIINCLUDE = $MK{INCLUDE} || '';
> + my $OCIINCLUDE = expand_mkvars($MK{INCLUDE} || '', 0, 0);
> $OCIINCLUDE .= " -I$OH/rdbms/demo";
> my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
> $opts{INC} = "$OCIINCLUDE $inc -I$dbi_arch_dir";
> diff -ru DBD-Oracle-1.09.orig/oci8.c DBD-Oracle-1.09/oci8.c
> --- DBD-Oracle-1.09.orig/oci8.c Wed Aug 29 11:37:59 2001
> +++ DBD-Oracle-1.09/oci8.c Wed Aug 29 17:46:57 2001
> @@ -547,6 +547,15 @@
> sword status;
> ub4 lobEmpty = 0;
>
> + if (!SvPOK(phs->sv)) { /* normalizations for special cases */
> + if (SvOK(phs->sv)) { /* ie a number, convert to string ASAP */
> + if (!(SvROK(phs->sv) && phs->is_inout))
> + sv_2pv(phs->sv, &na);
> + }
> + else /* ensure we're at least an SVt_PV (so SvPVX etc work) */
> + SvUPGRADE(phs->sv, SVt_PV);
> + }
> +
> if (!phs->desc_h) {
> ++imp_sth->has_lobs;
> phs->desc_t = OCI_DTYPE_LOB;