Re: bsqldb crashes, fisql does not give the desired results

Frantisek Hanzlik <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Frediano Ziglio wrote:
> Sorry, I didn't note I don't have all required tables. Can you do and send
> a dump (TDSDUMP) ?
> 
> Frediano
> 
> 
> 2014-07-02 17:33 GMT+01:00 Frantisek Hanzlik <[email protected]>:
> 
>> I'm absolute newbie in SQL, thus please forgive me if I do something
>> stupid.
>> I tried run this script (which is working fine with
>> \Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe
>> from MS SQL server 2005 on Windows 2003 server) :
>>
>>
>> --- script begin
>> declare
>>         @CityOd varchar(10),
>>         @CityDo varchar(10),
>>         @datumStavu datetime
>>
>> set @CityOd = 'ADAMOV'
>> set @CityDo = 'WIEN'
>> set @datumStavu = '2014-07-02'
>>
>> create table #tmp(no_ varchar(20), up decimal(38,20),
>> s12 decimal(38,20), s14 decimal(38,20), s5416 decimal(38,20))
>> declare c cursor for
>> select No_, [Unit Price] from [MyDB$Item] k
>> where [Item Category Code] = 'E-SHOP'
>>
>> declare @no varchar(20),
>>         @up decimal(38,20),
>>         @s12 decimal(38,20),
>>         @s14 decimal(38,20),
>>         @s5416 decimal(38,20)
>>
>> open c
>> fetch c into @no, @up
>> while @@fetch_status=0
>> begin
>>         SELECT @s12 = isnull(SUM([s12]),0),@s14=isnull(SUM([s14]),0) FROM
>> [MyDB$TBL1]
>>         WITH (READUNCOMMITTED)  WHERE (bucket=5 AND f2=@no AND
>> ((f8>=@CityOd AND f8<=@CityDo)))
>>         AND f3 < @datumStavu
>>
>>         SELECT @s5416=isnull(SUM([s5416]),0) FROM [MyDB$TBL2] WITH
>> (READUNCOMMITTED)
>>         WHERE (bucket=6 AND f1=1 AND f5=2 AND f6=@no AND ((f7>=@CityOd AND
>> f7<=@CityDo)))
>>         and f10 < @datumStavu
>>
>>         insert into #tmp values(@no, @up, @s12, @s14, @s5416)
>>         fetch c into @no, @up
>> end
>> close c
>> deallocate c
>> select * from #tmp
>> drop table #tmp
>> go
>> --- script end
>>
>> on bsqldb and fisql from freetds-0.91-6.gitf3ae29d.fc19.x86_64 on
>> Fedora 19 x86_64.
>>
>> When I run bsqldb with params:
>> -i SQL -U user -P pwd -S sqlsrv -D test -t " " -e SQLerr -o SQLout -h -v
>>
>> *** Error in `/bin/bsqldb': free(): invalid pointer: 0x000000000064ae00 ***
>> ======= Backtrace: =========
>> /lib64/libc.so.6[0x3b2607d0b8]
>> /lib64/libsybdb.so.5(dbnextrow+0x369)[0x3ec820e1b9]
>> /bin/bsqldb[0x40308b]
>> /bin/bsqldb[0x4022a2]
>> /lib64/libc.so.6(__libc_start_main+0xf5)[0x3b26021b45]
>> /bin/bsqldb[0x402431]
>> ======= Memory map: ========
>> 00400000-00406000 r-xp 00000000 09:01 1736030
>>  /usr/bin/bsqldb
>> 00605000-00606000 r--p 00005000 09:01 1736030
>>  /usr/bin/bsqldb
>> 00606000-0060a000 rw-p 00006000 09:01 1736030
>>  /usr/bin/bsqldb
>> 0060a000-0064f000 rw-p 00000000 00:00 0
>>  [heap]
>> 3974200000-3974279000 r-xp 00000000 09:01 1707453
>>  /usr/lib64/libfreebl3.so
>> 3974279000-3974478000 ---p 00079000 09:01 1707453
>>  /usr/lib64/libfreebl3.so
>> ...
>> 7ffff1ab2000-7ffff7fd7000 r--p 00000000 09:01 1734848
>>  /usr/lib/locale/locale-archive
>> 7ffff7fd7000-7ffff7fe3000 rw-p 00000000 00:00 0
>> 7ffff7ff1000-7ffff7ff4000 rw-p 00000000 00:00 0
>> 7ffff7ff4000-7ffff7ffb000 r--s 00000000 09:01 1734941
>>  /usr/lib64/gconv/gconv-modules.cache
>> 7ffff7ffb000-7ffff7ffd000 rw-p 00000000 00:00 0
>> 7ffff7ffd000-7ffff7fff000 r-xp 00000000 00:00 0
>>  [vdso]
>> 7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0
>>  [stack]
>> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
>>  [vsyscall]
>>
>> Program received signal SIGABRT, Aborted.
>> 0x0000003b260359e9 in __GI_raise (sig=sig@entry=6) at
>> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>> 56        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
>>
>> And stack backtrace is:
>> #0  0x0000003b260359e9 in __GI_raise (sig=sig@entry=6) at
>> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>> #1  0x0000003b260370f8 in __GI_abort () at abort.c:90
>> #2  0x0000003b26075d17 in __libc_message (do_abort=do_abort@entry=2,
>> fmt=fmt@entry=0x3b2617e568 "*** Error in `%s': %s: 0x%s ***\n") at
>> ../sysdeps/unix/sysv/linux/libc_fatal.c:196
>> #3  0x0000003b2607d0b8 in malloc_printerr (ptr=<optimized out>,
>> str=0x3b2617bc75 "free(): invalid pointer", action=3) at malloc.c:4937
>> #4  _int_free (av=0x3b263ba780 <main_arena>, p=<optimized out>,
>> have_lock=0) at malloc.c:3789
>> #5  0x0000003ec820e1b9 in buffer_add_row (resinfo=0x614440,
>> dbproc=0x6133c0) at buffering.h:500
>> #6  dbnextrow (dbproc=dbproc@entry=0x6133c0) at dblib.c:2071
>> #7  0x000000000040308b in print_results (dbproc=dbproc@entry=0x6133c0) at
>> bsqldb.c:535
>> #8  0x00000000004022a2 in main (argc=<optimized out>, argv=0x7fffffffe508)
>> at bsqldb.c:210
>>
>>
>>
>> When I tried run this SQL script with 'fisql' with params:
>> -i SQL -U user -P pwd -S sqlsrv -D test -e SQLerr -o SQLout -w 65500 -n
>>
>> then program run seemingly without error, but SQLout output is weird:
>>
>> no_
>>        up s12 s14 s5416
>> --------------------------------------------------------------------------------
>> -- --- --- -----
>> DB-LIBRARY error:
>>         Data conversion resulted in overflow
>> Operating-system error:
>>         Success
>> K2030446
>>       -- --- --- -----
>> DB-LIBRARY error:
>>         Data conversion resulted in overflow
>> Operating-system error:
>>         Success
>> K2030457
>>       -- --- --- -----
>> DB-LIBRARY error:
>>         Data conversion resulted in overflow
>> Operating-system error:
>>         Success
>> K2030469
>>       -- --- --- -----
>> DB-LIBRARY error:
>>         Data conversion resulted in overflow
>> Operating-system error:
>>         Success
>> K2030471
>>       -- --- --- -----
>> ...
>>
>>
>> Can anyone advise me what I'm doing wrong?
>>
>> Thanks in advance, Franta Hanzlik

Hi Frediano,

thank you for the quick reply. Please, could you specify a little
more detail, what should I do? Although MS osql result output is
approx. 3100 rows and 600 kB size, source tables are big (table
MyDB$Item has ~ 64 MB, table MyDB$TBL1 ~ 426 MB and table MyDB$TBL2
~ 444 MB). Also, I not know what is "TDSDUMP", sorry.

Thanks, Franta Hanzlik
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.