fix the broken tests.

pull/17/head
John Shahid 2013-10-17 13:54:43 -04:00
parent ea41a98727
commit 400611df54
1 changed files with 12 additions and 2 deletions

View File

@ -46,11 +46,14 @@ func (self *Query) GetReferencedColumns() (mapping map[string][]string) {
for _, column := range mapping[name] {
allNames[column] = true
}
mapping[name] = nil
mapping[name] = []string{}
for column, _ := range allNames {
mapping[name] = append(mapping[name], column)
}
sort.Strings(mapping[name])
if len(mapping[name]) > 1 && mapping[name][0] == "*" {
mapping[name] = mapping[name][1:]
}
}
return
@ -121,9 +124,16 @@ func getReferencedColumnsFromValue(v *Value, mapping map[string][]string) (notAs
return
}
notAssigned = append(notAssigned, v.Name)
case ValueWildcard:
notAssigned = append(notAssigned, "*")
case ValueFunctionCall:
for _, value := range v.Elems {
notAssigned = append(notAssigned, getReferencedColumnsFromValue(value, mapping)...)
newNotAssignedColumns := getReferencedColumnsFromValue(value, mapping)
if len(newNotAssignedColumns) > 0 && newNotAssignedColumns[0] == "*" {
newNotAssignedColumns = newNotAssignedColumns[1:]
}
notAssigned = append(notAssigned, newNotAssignedColumns...)
}
}
return