RE: DBD-Oracle 1.24a reports ORA-24334 in t/58object.t

[email protected] ("Everett, Timothy S")
Newsgroups perl.dbi.users
Message-ID <5CBBBA126EAC5F4AA1E4C683688941BC768BE9@LISL-XBCK-C1-V2.snaponglobal.com>
Thank you for the patch.  This fixed the ORA-24334 problem.

The test suite now runs to completion.  FYI it still complains about one
subtest in 58object.t.

Results from 'make test':

[snip]
t/56embbeded.t .......... ok
t/58object.t ............ 6/51
t/58object.t ............ Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/51 subtests
t/60reauth.t ............ skipped: ORACLE_USERID_2 not defined.
t/70meta.t .............. ok
t/80ora_charset.t ....... ok

Test Summary Report
-------------------
t/58object.t          (Wstat: 256 Tests: 51 Failed: 1)
  Failed test:  27
  Non-zero exit status: 1
Files=30, Tests=2206, 69 wallclock secs ( 0.65 usr  0.67 sys + 11.16
cusr
2.76 csys = 15.24 CPU)
Result: FAIL
Failed 1/30 test programs. 1/2206 subtests failed.


> perl -Mblib t/58object.t
1..51
ok 1 - use DBI;
ok 2 - ora_objects flag is set to 1
ok 3 - ora_objects flag is set to 0
ok 4 - The object isa DBI::db
ok 5 - Fetch current schema name
ok 6 - old: Prepare select
ok 7 - old: Execute select
ok 8 - old: Fetch first row
ok 9 - old: Row 1 column 2 is an ARRAY
ok 10 - old: Row 1 column 2 is has 2 elements
ok 11 - old: Fetch second row
ok 12 - old: Row 2 column 2 is an ARRAY
ok 13 - old: Row 2 column 2 is has 2 elements
ok 14 - old: Fetch third row
ok 15 - old: Row 3 column 2 is an ARRAY
ok 16 - old: Row 3 column 2 is has 2 elements
ok 17 - old: No more rows expected
ok 18 - new: Prepare select
ok 19 - new: Execute select
ok 20 - new: Fetch first row
ok 21 - new: Row 1 column 2 is an DBD:Oracle::Object
ok 22 - new: Row 1 column 2 object type
ok 23 - new: Row 1 column 2 object attributes
ok 24 - new: Fetch second row
ok 25 - new: Row 2 column 2 is an DBD::Oracle::Object
ok 26 - new: Row 2 column 2 object type
not ok 27 - new: Row 1 column 2 object attributes
ok 28 - new: Fetch third row
ok 29 - new: Row 3 column 2 is an DBD::Oracle::Object
ok 30 - new: Row 3 column 2 object type
ok 31 - new: Row 1 column 2 object attributes
ok 32 - new: No more rows expected
ok 33 - DBD::Oracle::Object->attr_hash
ok 34 - DBD::Oracle::Object->attr
ok 35 - DBD::Oracle::Object->attr("NAME")
ok 36 - new: Prepare select with nested table of objects
ok 37 - new: Execute (nested table)
ok 38 - new: Fetch first row (nested table)
ok 39 - Check propertes of first (and only) item in nested table
ok 40 - new: No more rows expected (nested table)
ok 41 - new: Prepare select with nested object
ok 42 - new: Execute (nested object)
ok 43 - new: Fetch first row (nested object)
ok 44 - Check obj.num
ok 45 - Check obj.obj
ok 46 - new: Fetch second row (nested object)
ok 47 - Check obj.num
ok 48 - Check obj.obj
ok 49 - new: Fetch third row (nested object)
ok 50 - Check obj
ok 51 - new: No more rows expected (nested object)


results from DBI trace level 5:

                100922120 (field=1):
DBD::Oracle::Object=HASH(0x1009bb860)
    <- fetchrow= ( "2" DBD::Oracle::Object=HASH(0x1009bb860) ) [2 items]
row2 at t/58object.t line 156
    -> fetchrow for DBD::Oracle::st
(DBI::st=HASH(0x1009220c0)~0x1009222a0)
  fetch_cleanup_oci_object
        dbd_st_fetch 2 fields...
        dbd_st_fetched 2 fields with status of 0(SUCCESS)
        field #1 with rc=0(OK)

                100922120 (field=0): "3"
        field #2 with rc=0(OK)
 getting an embedded object named  TIM.DBD_TEST__TYPE_A with
typecode=OBJECT
 getting attributes of object named  TIM.DBD_TEST__TYPE_A with
typecode=OBJECT
getting attributes of object subtype  TIM.DBD_TEST__TYPE_B
 getting value of object attribute named  NUM with typecode=INT
 getting value of object attribute named  NAME with typecode=VARCHAR2
 getting value of object attribute named  AMOUNT with typecode=DECIMAL

                100922120 (field=1):
DBD::Oracle::Object=HASH(0x1009c3c20)



Thank you,

Tim Everett

-----Original Message-----
From: Charles Jardine [mailto:[email protected]] 
Sent: Monday, April 19, 2010 10:41 AM
To: [email protected]
Cc: Everett, Timothy S
Subject: Re: DBD-Oracle 1.24a reports ORA-24334 in t/58object.t

On 16/04/10 17:29, Everett, Timothy S wrote:
> This issue was previously reported by other people in thread 
> "DBD-Oracle
> 1.23 reports ORA-24334 in t/58object.t" but I could not find any
> answers.   
> 
> I'm trying to install DBD-Oracle 1.24a with this environment:
> - perl 5.8.7 built for sun4-solaris-64
> - gcc 4.0.2
> - Solaris 10 update 6
> - Oracle 10.2.0.4
> 
> The build succeeds, but an ORA-24334 error is reported in the test 
> script t/58object.t:

This problem does not occur on my platform
 - perl 5.10.1 64-bit
 - gcc 4.1.2
 - SLES 10 SP 3 x86-64
 - Oracle 10.2.0.4

I think your big-endian hardware has discovered a bug which my
little-endian hardware conceals.

 [snip]

> Rows per Fetch=60, Multiple Row Fetch=Off Field #2 is a  object or 
> colection of some sort. Using OCIDefineObject and or OCIObjectPin At 
> level=0 in description an embedded object
>         OCIErrorGet after OCIParamGet (er1:ok): -1, 24334: ORA-24334: 
> no descriptor for this position
> 
>  level=0        type_name = TIM.DBD_TEST__TYPE_A
>         type_namel = 0
>         parmdp = 1008216f8
>         parmap = 0
>         tdo = 10093abf0
>         typecode = OBJECT
>         col_typecode = 0
>         element_typecode = (UNKNOWN OCI TYPECODE 0)
>         obj_ref = 100944e00
>         obj_value = 0
>         obj_type = 10093abf0
>         is_final_type = 0
>         field_count = 131072
>         fields = 10094d960

The field_count above should be 2. It is 2 * 2^16.

Could you please try the attached patch. I think it will fix the
problem, but I don't have any SPARC hardware to test it on.

--
Charles Jardine - Computing Service, University of Cambridge
[email protected]    Tel: +44 1223 334506, Fax: +44 1223 334679
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.