PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Peter Sinnott <psinnottie at aol dot com>
Subject: Re: Bulk-Loading routines in DBD::Sybase
Date: Jul 13 2004 9:54AM

On Tue, Jul 13, 2004 at 10:26:09AM +0200, Michael Peppler wrote:
> I've just uploaded DBD::Sybase 1.04.2 to
> http://www.peppler.org/downloads/
> 
> The new t/xblk.t script has a few examples and tests for various
> conditions.
> 
> Bugs: the t/xblk.t script segfaults when using the 10.0.x OpenClient
> libs (for linux), apparently a problem with the cs_diag() call. I don't
> have any 11.1.x libs around to test with, so I don't know how extensive
> this problem might be.
> 
> Please give this a try/test if you are interested in using the BLK api,
> or if you have situations where you need to load large amounts of data
> fairly quickly.
> 

t/xblk.t is also falling over with 11.x OpenClient on HPUX( see
below ). It seems to be happening when it dereferences a reference and
casts it to code ( cv = (CV*)SvRV(sv); ). This is with perl 5.8.0 btw.

It passes with 12.5 OpenClient on linux once you change line 648 of dbdimp.c
to BLK_VERSION = BLK_VERSION_125;


ok 1 - use DBI;
ok 2 - Connect
ok 3 - Create table
ok 4 - Prepare \#1
ok 5 - Send row 1 - test 1
0 0 0 0    insert #tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
ok 6 - Send row 2 - test 1
ok 7 - Send row 3 - test 1
ok 8 - Commit test 1
ok 9 - Rows test 1
ok 10 - prepare \#2
0 0 0 0   blk_rowxfer(): blk layer: internal BLK-Library error: Failed
in conversion routine - condition overflow.  col = 5 row = 1. insert
#tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
ok 11 - Execute row 1, test 2
0 0 0 0    insert #tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
0 0 0 0   blk_rowxfer(): blk layer: internal BLK-Library error: Failed
in conversion routine - condition overflow.  col = 3 row = 1. insert
#tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
ok 12 - Execute row 2, test 2
0 0 0 0    insert #tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
0 0 0 0   blk_rowxfer(): blk layer: internal BLK-Library error: Failed
in conversion routine - condition overflow.  col = 4 row = 1. insert
#tmp values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
ok 13 - Execute row 3, test 2
0 0 0 0   blk_rowxfer(): blk layer: internal BLK-Library error: Failed
in conversion routine - syntax error.  col = 8 row = 1. insert #tmp
values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?) client
ok 14 - Execute row 4, test 2
ok 15 - Commit test 2
ok 16 - Rows, test 2
ok 17 - Prepare \#3
ok 18 - Execute row 1, test 3
Segmentation fault (core dumped)

#0  0xa73f4 in Perl_pp_entersub () at pp_hot.c:2522
#1  0x2cfa0 in S_call_body (myop=0x7b041808, is_eval=0) at perl.c:2042
#2  0x2cc20 in Perl_call_sv (sv=0x0, flags=4) at perl.c:1963
#3  0xc125f510 in clientmsg_cb (context=0x7b041808,
connection=0x401ca610, 
    errmsg=0x7b040e08) at dbdimp.c:152
#4  0xc1267764 in get_cs_msg (context=0x401cd310, connection=0x401ca610)
    at dbdimp.c:2825
#5  0xc1267a64 in syb_blk_execute (imp_dbh=0x401f0080,
imp_sth=0x401f3d48)
    at dbdimp.c:2873
#6  0xc1267c44 in syb_st_execute (sth=0x401efe68, imp_sth=0x401f3d48)
    at dbdimp.c:2933
#7  0xc125ce18 in XS_DBD__Sybase__st_execute (cv=0x7b041808) at
Sybase.xsi:311
#8  0xc0aedd90 in XS_DBI_dispatch (cv=0x40190ab0) at DBI.xs:2407
#9  0xa770c in Perl_pp_entersub () at pp_hot.c:2773
#10 0x9af00 in Perl_runops_debug () at dump.c:1398
#11 0x2c22c in S_run_body (oldscope=1) at perl.c:1681
#12 0x2bdcc in perl_run (my_perl=0x7b041808) at perl.c:1600
#13 0x280b0 in main (argc=2, argv=0x7b040564, env=0x7204980) at
perlmain.c:85

-- 
We have committed to quickly maintain performance based services to exceed 
customer expectations