Description
Created new dataset to specifically test ordering a fields containing mixed types (and to ensure index range scans produce consistent results)
tuq panic'd on my first query to the new dataset:
SELECT field FROM mixed ORDER BY field
./tuqtng -couchbase http://localhost:8091
15:50:05.368660 tuqtng started...
15:50:05.368762 version: 0.0.0
15:50:05.368771 site: http://localhost:8091
15:50:18.560977 ERROR: Query Execution Panic: runtime error: slice bounds out of range
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/xpipeline/base.go:129 (0x26c6f3)
com/couchbaselabs/tuqtng/xpipeline.(*BaseOperator).RecoverPanic: clog.Error(fmt.Errorf("Query Execution Panic: %v\n%s", r, debug.Stack()))
/Users/mschoch/Documents/research/go/go/src/pkg/runtime/panic.c:229 (0x15f01)
panic: reflect·call(d->fn, (byte*)d->args, d->siz);
/Users/mschoch/Documents/research/go/go/src/pkg/runtime/panic.c:487 (0x166a3)
panicstring: runtime·panic(err);
/Users/mschoch/Documents/research/go/go/src/pkg/runtime/panic.c:448 (0x16505)
panicslice: runtime·panicstring("slice bounds out of range");
/Users/mschoch/go/src/github.com/dustin/go-jsonpointer/pointer.go:114 (0x1324d0)
com/dustin/go-jsonpointer.Find: current = current[:len(current)-1]
/Users/mschoch/go/src/github.com/couchbaselabs/dparval/value.go:162 (0xb9f7c)
com/couchbaselabs/dparval.(*Value).Path: res, err := jsonpointer.Find(this.raw, "/"+path)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/ast/property.go:34 (0x61a66)
com/couchbaselabs/tuqtng/ast.(*Property).Evaluate: pv, err := item.Path(this.Path)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/ast/member.go:45 (0x5dc16)
com/couchbaselabs/tuqtng/ast.(*DotMemberOperator).Evaluate: return this.Right.Evaluate(lv)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/xpipeline/project_common.go:34 (0x27207d)
com/couchbaselabs/tuqtng/xpipeline.projectedValueOfResultExpression: val, err := resultExpr.Expr.Evaluate(item)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/xpipeline/project.go:54 (0x271aff)
com/couchbaselabs/tuqtng/xpipeline.(*Project).processItem: val, err := projectedValueOfResultExpression(item, resultItem)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/xpipeline/base.go:107 (0x26c510)
com/couchbaselabs/tuqtng/xpipeline.(*BaseOperator).RunOperator: ok = oper.processItem(item)
/Users/mschoch/go/src/github.com/couchbaselabs/tuqtng/xpipeline/project.go:46 (0x2719d1)
com/couchbaselabs/tuqtng/xpipeline.(*Project).Run: this.Base.RunOperator(this, stopChannel)
/Users/mschoch/Documents/research/go/go/src/pkg/runtime/proc.c:1223 (0x19a60)
goexit: runtime·goexit(void)
– xpipeline.(*BaseOperator).RecoverPanic() at base.go:129