Merge branch 'master' into exceptop

This commit is contained in:
Matei Chiperi 2014-10-02 16:08:51 -07:00
commit f86bddd50a
24 changed files with 262 additions and 169 deletions

View file

@ -208,7 +208,14 @@ func (wk *worker) runIteratorToArrayNoTags(it graph.Iterator, limit int) []strin
func (wk *worker) runIteratorWithCallback(it graph.Iterator, callback otto.Value, this otto.FunctionCall, limit int) {
n := 0
it, _ = it.Optimize()
glog.V(2).Infoln(it.DebugString(0))
if glog.V(2) {
b, err := json.MarshalIndent(it.Describe(), "", " ")
if err != nil {
glog.V(2).Infof("failed to format description: %v", err)
} else {
glog.V(2).Infof("%s", b)
}
}
for {
select {
case <-wk.kill:
@ -271,7 +278,14 @@ func (wk *worker) runIterator(it graph.Iterator) {
return
}
it, _ = it.Optimize()
glog.V(2).Infoln(it.DebugString(0))
if glog.V(2) {
b, err := json.MarshalIndent(it.Describe(), "", " ")
if err != nil {
glog.Infof("failed to format description: %v", err)
} else {
glog.Infof("%s", b)
}
}
for {
select {
case <-wk.kill:

View file

@ -210,17 +210,22 @@ func (s *Session) BuildJSON(result interface{}) {
if data.val == nil {
obj := make(map[string]string)
tags := data.actualResults
tagKeys := make([]string, len(tags))
i := 0
var tagKeys []string
for k := range tags {
tagKeys[i] = k
i++
tagKeys = append(tagKeys, k)
}
sort.Strings(tagKeys)
for _, k := range tagKeys {
obj[k] = s.qs.NameOf(tags[k])
name := s.qs.NameOf(tags[k])
if name != "" {
obj[k] = name
} else {
delete(obj, k)
}
}
if len(obj) != 0 {
s.dataOutput = append(s.dataOutput, obj)
}
s.dataOutput = append(s.dataOutput, obj)
} else {
if data.val.IsObject() {
export, _ := data.val.Export()

View file

@ -85,7 +85,12 @@ func (s *Session) ExecInput(input string, c chan interface{}, _ int) {
}
it, _ := s.currentQuery.it.Optimize()
if glog.V(2) {
glog.V(2).Infoln(it.DebugString(0))
b, err := json.MarshalIndent(it.Describe(), "", " ")
if err != nil {
glog.Infof("failed to format description: %v", err)
} else {
glog.Infof("%s", b)
}
}
for graph.Next(it) {
tags := make(map[string]graph.Value)

View file

@ -89,7 +89,7 @@ func TestTreeConstraintParse(t *testing.T) {
"($a (:is :good))))"
it := BuildIteratorTreeForQuery(qs, query)
if it.Type() != graph.And {
t.Errorf("Odd iterator tree. Got: %s", it.DebugString(0))
t.Errorf("Odd iterator tree. Got: %#v", it.Describe())
}
if !graph.Next(it) {
t.Error("Got no results")
@ -137,7 +137,7 @@ func TestMultipleConstraintParse(t *testing.T) {
)`
it := BuildIteratorTreeForQuery(qs, query)
if it.Type() != graph.And {
t.Errorf("Odd iterator tree. Got: %s", it.DebugString(0))
t.Errorf("Odd iterator tree. Got: %#v", it.Describe())
}
if !graph.Next(it) {
t.Error("Got no results")

View file

@ -17,6 +17,7 @@ package sexp
// Defines a running session of the sexp query language.
import (
"encoding/json"
"errors"
"fmt"
"sort"
@ -74,7 +75,12 @@ func (s *Session) ExecInput(input string, out chan interface{}, limit int) {
}
if s.debug {
fmt.Println(it.DebugString(0))
b, err := json.MarshalIndent(it.Describe(), "", " ")
if err != nil {
fmt.Printf("failed to format description: %v", err)
} else {
fmt.Printf("%s", b)
}
}
nResults := 0
for graph.Next(it) {