On 12/07/11 23:22, Smart, Dan wrote:
Running:
Ubuntu
Linux jaxnetutility 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 
UTC 2009 i686 GNU/Linux
Perl 5.10
unixODBC 2.2.11
/var/cache/apt/archives/freetds-common_0.82-6_all.deb
/var/cache/apt/archives/freetds-dev_0.82-6_i386.deb
/var/cache/apt/archives/tdsodbc_0.82-6_i386.deb

I get the following....

All the tests which fail are true failures with freeTDS. At one stage I mailed 
Frediano Ziglio and James K. Lowden on the freeTDS list offering to work with 
them to sort the problems out but nothing came of it.
t/12blob.t ...................
1..24
ok 1 - use ODBCTEST;
ok 2 - default putdata_start
ok 3 - GetTypeInfo
ok 4 - table DBD_ODBC_drop_me created
ok 5 - prepare for insert
ok 6 - insert clob
ok 7 - select test data back
ok 8 - sizes of insert/select compare
ok 9 - data read back compares
ok 10 - delete records from test table
ok 11 - retrieved putdata_start = set value
ok 12 - prepare for insert
ok 13 - insert clob
ok 14 - select test data back
ok 15 - sizes of insert/select compare
ok 16 - data read back compares
ok 17 - delete records from test table
ok 18 - retrieved putdata_start = set value
ok 19 - prepare for insert
ok 20 - insert clob
ok 21 - select test data back
not ok 22 - sizes of insert/select compare
ok 23 # skip sizes do not match

#   Failed test 'sizes of insert/select compare'
#   at t/12blob.t line 144.
#          got: '32256'
#     expected: '60000'

The data selected does not match the data inserted.

ok 24 - delete records from test table
# Looks like you failed 1 test of 24.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/24 subtests
         (less 1 skipped subtest: 22 okay)
t/20SqlServer.t ..............
1..65
ok 1 - use ODBCTEST;
ok 2 - use Data::Dumper;
ok 3 - got DBMS name: Microsoft SQL Server
ok 4 - got DBMS version: 09.00.4266
ok 5 - got DBMS major version: 09
ok 6 - got Driver Name: libtdsodbc.so
ok 7 - create PERL_DBD_TABLE1 and insert test data
ok 8 - fetchrow for varchar(max)
ok 9 - data received from varchar(max)
ok 10 - all data (1000) received from varchar(max)
ok 11 - create PERL_DBD_TABLE1 and insert test data
ok 12 - fetchrow for varbinary(max)
ok 13 - data received from varbinary(max)
ok 14 - all data (1000) received from varbinary(max)
ok 15 - create PERL_DBD_TABLE1 and insert test data
ok 16 - fetchrow for nvarchar(max)
ok 17 - data received from nvarchar(max)
ok 18 - all data (1000) received from nvarchar(max)
ok 19 - create perl_dbd_proc1 procedure
ok 20 - create perl_dbd_proc2 procedure
ok 21 - prepare for PERL_DBD_PROC1
ok 22 - execute for PERL_DBD_PROC1
ok 23 - NUM_OF_FIELDS for PERL_DBD_PROC1
ok 24 - numeric fields
ok 25 - prepare for PERL_DBD_PROC2
ok 26 - execute for PERL_DBD_PROC2
ok 27 - NUM_OF_FIELDS for PERL_DBD_PROC2
ok 28 - numeric fields
ok 29 - errors on data comparison
ok 30 - temporary table handling
ok 31 - bind param in out with insert result set
ok 32 - test output params accurate
ok 33 - verify select data
ok 34 - timestamp handling
ok 35 - procedure outputs results as result set
ok 36 - procedure outputs results as result set2
ok 37 - procedure outputs results as result set 3
ok 38 - setting force_rebind
ok 39 - resetting force_rebind
ok 40 - testing force rebind after procedure call
ok 41 - force rebind test part 2
ok 42 - force rebind test part 3
ok 43 - force rebind test part 4
ok 44 - forced rebind final
ok 45 - Select data available
ok 46 - output param not yet available
ok 47 - output param not yet available2
ok 48 - Output param data available
ok 49 - Output param data available 2
ok 50 - select data done
ok 51 - valid output data
ok 52 - test procedure with no input params
not ok 53 - test odbc_async_exec attribute set

#   Failed test 'test odbc_async_exec attribute set'
#   at t/20SqlServer.t line 614.
#          got: '0'
#     expected: '1'

The test sets asynchronous mode then asks the driver what asynchronous mode it 
is in and discovers it is not set and yet no error was given setting it in the 
first place.

ok 54 - dbcc messages being returned
ok 55 - reset async exec
ok 56 - test setting odbc_exec_direct
ok 57 - Valid select results with print statements
ok 58 - ensure 2 error messages from two print statements
ok 59 - validate error messages being retrieved
ok 60 - Connected with MARS_Connection
ok 61 - Multiple concurrent statements should fail


The next test attempts to set a cursor type and use multiple concurrent 
statements. I cannot tell you why it hangs in freeTDS but other MS SQL Server 
drivers don't (including 2 of Microsofts and at least 2 other commercial ones I 
know of). I presume there is a protocol error which is causing freeTDS to be 
blocking on a read on a socket when SQL Server has no intention of sending 
anything but that is just a guess.

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to