Skip to Content.
Sympa Menu

freetds - [freetds] compute rows

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: John Kendall <john AT capps.com>
  • To: FreeTDS Group <freetds AT lists.ibiblio.org>
  • Subject: [freetds] compute rows
  • Date: Sat, 6 Feb 2016 09:33:06 +0000

I am having trouble with the output of compute rows. I found the following
exchange from 2007 between jkl and Michael Peppler that summarizes what I'm
experiencing in 2016:

https://lists.ibiblio.org/sympa/arc/freetds/2007q1/020954.html

To summarize, sqsh (and other tools linked to freetds) do not produce usable
output for compute rows. Michael Peppler says that sqsh acts correctly when
linked to sybase libs. I have an old copy of isql that handles compute
statements in a very predictable way, for example:

select col1=1, col2=1, col3=1 into tempdb..tab
insert tempdb..tab select 2,2,2
insert tempdb..tab select 3,3,3
go
select * from tempdb..tab compute sum(col1), avg(col1), min(col1),
count(col1), avg(col2), max(col3), min(col3)
go
col1 col2 col3
----------- ----------- -----------
1 1 1
2 2 2
3 3 3
sum
===========
6
avg avg
=========== ===========
2 2
min min
=========== ===========
1 1
count
===========
3
max
===========
3

(4 rows affected)


sqsh, linked to freetds, produces:

col1 col2 col3
----------- ----------- -----------
1 1 1
2 2 2
3 3 3

===========
6

===========
2

===========
1

=========== =========== ===========
3 2 3

===========
1

(4 rows affected)


Note how sqsh doesn't label the aggregate columns, and it combined count, avg
and max into one row, while not combining the two min rows. Pretty useless.

I no longer have access to sybase libs, so I cannot test sqsh linked to them.

Just for comparison, fisql has a different set of problems:

col1 col2 col3
----------- ----------- -----------
1 1 1
2 2 2
3 3 3
sum avg min count avg max min

----------- ----------- ----------- ----------- ----------- -----------
-----------
6 2 1 3 2 3 1


(4 rows affected)

Micheal's theory was that an API call in CTlib wasn't quite right, such as
ct_describe() or ct_compute_info().
Any ideas anyone?
Thanks,
John






Archive powered by MHonArc 2.6.24.

Top of Page