Open Bugs | New Bug anonymous
Login/Register

Equi4 SoftwareEdit Bug

Title: groupby with sort/select wrong in 1-row subviews (Tcl) Status: closed
Product: Metakit Severity: major
Version: 2.4.9.2 Type: bug
Assign to:
Platform:
Message:

File:
Description:

Messages

2003/10/10 jcw
# expose bad grouping bug in MK 2.4.9.2
# Oct 2003
mk::file open db
mk::view layout db.v a b c
mk::row append db.v a 0 b 1 c 10
mk::row append db.v a 1 b 1 c 20
mk::row append db.v a 2 b 2 c 30
mk::row append db.v a 3 b 3 c 40
mk::row append db.v a 4 b 3 c 50
foreach x {0 1 2 3 4} {
puts [mk::get db.v!$x]
}
set v [mk::view open db.v]
puts v=[$v size]
set g [$v view groupby d:V b]
puts g=[$g size]
foreach x {0 1 2} {
set s [$g open $x d]
set n [$s size]
puts n=$n
set o [$s select -sort c]
set m [$o size]
for {set i 0} {$i < $m} {incr i} {
puts " v!$x.d!$i orig = [$s get $i]"
puts " v!$x.d!$i sorted = [$o get $i]"
}
}
# output:
#
# a 0 b 1 c 10
# a 1 b 1 c 20
# a 2 b 2 c 30
# a 3 b 3 c 40
# a=4 b 3 c 50
# v=5
# g=3
# n=2
# v!0.d!0 orig = a 0 c 10
# v!0.d!0 sorted = c 10 a 0
# v!0.d!1 orig = a 1 c 20
# v!0.d!1 sorted = c 20 a 1
# n=1
# v!1.d!0 orig = a 2 c 30
# v!1.d!0 sorted = index 0
# n=2
# v!2.d!0 orig = a 3 c 40
# v!2.d!0 sorted = c 40 a 3
# v!2.d!1 orig = a 4 c 50
# v!2.d!1 sorted = c 50 a 4
#
# note the change of property order
# and the junk in a 1-sized subview
2003/10/10 jcw
it looks like this is only a problem in the Tcl binding
2003/10/10 jcw
Works ok in C++, and in Python:
import metakit as mk
db=mk.storage()
v=db.getas('v[a:I,b:I,c:I]')
v.append((0,1,10))
v.append((1,1,20))
v.append((2,2,30))
v.append((3,3,40))
v.append((4,3,50))
mk.dump(v,'data')
g=v.groupby(v.b,'d')
mk.dump(g,'grouped')
for r in g:
mk.dump(r.d.sort(),'sorted')
# output:
#
# data
# a b c
# - - --
# 0 1 10
# 1 1 20
# 2 2 30
# 3 3 40
# 4 3 50
# - - --
# Total: 5 rows
# grouped
# b d
# - --------------------
# 1 <PyView object at...
# 2 <PyView object at...
# 3 <PyView object at...
# - --------------------
# Total: 3 rows
# sorted
# a c
# - --
# 0 10
# 1 20
# - --
# Total: 2 rows
# sorted
# a c
# - --
# 2 30
# - --
# Total: 1 rows
# sorted
# a c
# - --
# 3 40
# 4 50
# - --
# Total: 2 rows
2003/12/21 jcw
Just checked in a fix to this nasty bug. It does not affect Mk4tcl, only
Mk4too (where "select" returns a view, not an int list).

Bug Tracker © 2002 McMillan Enterprises, Inc.