Menu

#133 [Perl]Segment default will appear of cubrid_st_lob_export () method

open
nobody
None
5
2012-03-21
2012-03-21
Jira Trac
No

Test Build:CUBRID 2008 R4.1 (8.4.1.1018)
OS: Linux 64
Description:
At first using cubrid_lob_get to get value and getting value will fail.
And then using cubrid_lob_export() method to export value.
segment default will appear.d

Repro steps:
1. exectute:
gdb perl
run test2.pl demodb 33000 localhost
bt

statement in test2.pl
{noformat}
$db=$ARGV[0];
$port=$ARGV[1];
$hostname=$ARGV[2];
my $user=dba;
my $pass=;

my $dsn=dbi:cubrid:database=$db;host=$hostname;port=$port;
my $dbh;
$dbh=DBI-connect($dsn, $user, $pass,{RaiseError = 1}) or die connect error: $dbh-errstr;
$dbh - do(drop table if EXISTS image_t;) or die drop error: $dbh-errstr;
$dbh-do(CREATE TABLE image_t (image_id VARCHAR(36) PRIMARY KEY, doc_id VARCHAR(64) NOT NULL, image BLOB);) or die create error: $dbh-
errstr;
$dbh-do(INSERT INTO image_t VALUES ('image-0', 'doc-0', BIT_TO_BLOB(X'000001'));) or die insert error: $dbh-errstr;
$dbh-do(INSERT INTO image_t VALUES ('image-1', 'doc-1', BIT_TO_BLOB(X'000010'));) or die insert error: $dbh-errstr;
$dbh-do(INSERT INTO image_t VALUES ('image-2', 'doc-2', BIT_TO_BLOB(X'000100'));) or die insert error: $dbh-errstr;

my $sth=$dbh-prepare( select BLOB_TO_BIT (image) from image_t; ) or die prepare error: $dbh-errstr;
$sth-execute() or die execute error: $dbh-errstr;

$sth-cubrid_lob_get(1);
my $err=$dbh-errstr;
print $err .\n;
$sth-cubrid_lob_export(1,export1B.txt) or die cubrid_lob_export error: $dbh-errstr;
$sth-cubrid_lob_export(2,export2B.jpg) or die cubrid_lob_export error: $dbh-errstr;
$sth-cubrid_lob_export(3,~/export3B.jpg) or die cubrid_lob_export error: $dbh-errstr;
{noformat}

Actual result
{noformat}
(gdb) run test2.pl demodb 33000 localhost
Starting program: /home/perl/opt/perl5/bin/perl test2.pl demodb 33000 localhost
...........................................................
[Thread debugging using libthread_db enabled]
[New Thread 0x2b3d0f964e10 (LWP 21588)]
ERROR: CLIENT, -2005, Not a lob type, can only support SQL_BLOB or SQL_CLOB

Program received signal SIGSEGV, Segmentation fault.
0x00002b3d1336a174 in cubrid_st_lob_export () from /home/perl/opt/perl5/lib/site_perl/5.14.2/x86_64-linux/auto/DBD/cubrid/cubrid.so
(gdb) bt
#0 0x00002b3d1336a174 in cubrid_st_lob_export () from /home/perl/opt/perl5/lib/site_perl/5.14.2/x86_64-linux/auto/DBD/cubrid/cubrid.so
#1 0x00002b3d13365f69 in XS_DBD__cubrid__st_cubrid_lob_export ()
from /home/perl/opt/perl5/lib/site_perl/5.14.2/x86_64-linux/auto/DBD/cubrid/cubrid.so
#2 0x00002b3d12f552c0 in XS_DBI_dispatch () from /home/perl/opt/perl5/lib/site_perl/5.14.2/x86_64-linux/auto/DBI/DBI.so
#3 0x000000000048c0cc in Perl_pp_entersub ()
#4 0x000000000048a863 in Perl_runops_standard ()
#5 0x000000000042fa36 in perl_run ()
#6 0x000000000041bfe5 in main ()
{noformat}

Expect result:
Maybe segment default doesn't appear

Discussion

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.