On Thu, Oct 13, 2005 at 12:57:52PM -0400, Eric Lenio wrote:
> > > # failed test 36 at line 109. 
> > > FAILED tests 12, 24, 36-38
> > >         Failed 5/35 tests, 85.71% okay
> > > t/21nchar............... Database and client versions and character sets:
> > > Database 9.2.0.3.0 CHAR set is AL32UTF8 (Unicode), NCHAR set is UTF8 
> > > (Unicode)
> > > Client 9.2.0.3 NLS_LANG is 'AMERICAN_AMERICA.AL32UTF8', NLS_NCHAR is 
> > > '<unset>'
> > > 
> > > FYI I have another Oracle instance on the same machine which if I use this
> > > instance instead of the original one used above the tests all pass.
> > 
> > What client and server character set details are output by make test
> > for that instance?
> 
> Here is the char set details for the instance that passes the tests:
> 
> t/21nchar............... Database and client versions and character sets:
> Database 9.2.0.3.0 CHAR set is WE8ISO8859P1 (Non-Unicode), NCHAR set is 
> AL16UTF16 (Unicode)
> Client 9.2.0.3 NLS_LANG is 'AMERICAN_AMERICA.AL32UTF8', NLS_NCHAR is '<unset>'

Here's an off-the-top-of-my-head patch, totally untested and barely
thought about, but it seems plausible...

Index: oci8.c
===================================================================
--- oci8.c      (revision 1086)
+++ oci8.c      (working copy)
@@ -1223,9 +1223,9 @@
                /* FALLTHRU */
        case  96:                               /* CHAR         */
                fbh->disize = fbh->dbsize;
+               fbh->prec   = fbh->disize;
                if (CS_IS_UTF8(fbh->csid)) 
                    fbh->disize = fbh->dbsize * 4;
-               fbh->prec   = fbh->disize;
                break;
        case  23:                               /* RAW          */
                fbh->disize = fbh->dbsize * 2;

Let me know if the test suite runs clean with this.

Tim.

Reply via email to