Repository: lucy
Updated Branches:
  refs/heads/master 19921d847 -> dc3a17e88


Add error to Go binding for MakeCompiler.


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/dac0e2bd
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/dac0e2bd
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/dac0e2bd

Branch: refs/heads/master
Commit: dac0e2bd5d4f93f84842d393a59d3f84f215bf88
Parents: 6d0a55f
Author: Marvin Humphrey <[email protected]>
Authored: Mon Nov 16 14:30:20 2015 -0800
Committer: Marvin Humphrey <[email protected]>
Committed: Fri Nov 20 16:43:37 2015 -0800

----------------------------------------------------------------------
 go/build.go            |  4 ++++
 go/lucy/search.go      | 13 +++++++++++++
 go/lucy/search_test.go |  6 +++---
 3 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/dac0e2bd/go/build.go
----------------------------------------------------------------------
diff --git a/go/build.go b/go/build.go
index fc73f64..6dff074 100644
--- a/go/build.go
+++ b/go/build.go
@@ -228,6 +228,10 @@ func specClasses(parcel *cfc.Parcel) {
        hitsBinding.SetSuppressStruct(true)
        hitsBinding.Register()
 
+       queryBinding := cfc.NewGoClass(parcel, "Lucy::Search::Query")
+       queryBinding.SpecMethod("Make_Compiler", "MakeCompiler(Searcher, 
float32, bool) (Compiler, error)")
+       queryBinding.Register()
+
        compilerBinding := cfc.NewGoClass(parcel, "Lucy::Search::Compiler")
        compilerBinding.SpecMethod("Make_Matcher", "MakeMatcher(SegReader, 
bool) (Matcher, error)")
        compilerBinding.Register()

http://git-wip-us.apache.org/repos/asf/lucy/blob/dac0e2bd/go/lucy/search.go
----------------------------------------------------------------------
diff --git a/go/lucy/search.go b/go/lucy/search.go
index c539044..2db169b 100644
--- a/go/lucy/search.go
+++ b/go/lucy/search.go
@@ -245,6 +245,19 @@ func (td *TopDocsIMP) GetMatchDocs() []MatchDoc {
        return slice
 }
 
+func (q *QueryIMP) MakeCompiler(searcher Searcher, boost float32,
+       subordinate bool) (retval Compiler, err error) {
+       err = clownfish.TrapErr(func() {
+               self := (*C.lucy_Query)(clownfish.Unwrap(q, "q"))
+               searcherCF := (*C.lucy_Searcher)(clownfish.Unwrap(searcher, 
"searcher"))
+               retvalCF := C.LUCY_Query_Make_Compiler(self, searcherCF, 
C.float(boost), C.bool(subordinate))
+               if retvalCF != nil {
+                       retval = 
clownfish.WRAPAny(unsafe.Pointer(retvalCF)).(Compiler)
+               }
+       })
+       return retval, err
+}
+
 func (c *CompilerIMP) MakeMatcher(reader SegReader, needScore bool) (retval 
Matcher, err error) {
        err = clownfish.TrapErr(func() {
                self := (*C.lucy_Compiler)(clownfish.Unwrap(c, "c"))

http://git-wip-us.apache.org/repos/asf/lucy/blob/dac0e2bd/go/lucy/search_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/search_test.go b/go/lucy/search_test.go
index a92708c..1127f72 100644
--- a/go/lucy/search_test.go
+++ b/go/lucy/search_test.go
@@ -55,9 +55,9 @@ func checkQueryEquals(t *testing.T, query Query) {
 func checkQueryMakeCompiler(t *testing.T, query Query) {
        index := createTestIndex("foo", "bar", "baz")
        searcher, _ := OpenIndexSearcher(index)
-       compiler := query.MakeCompiler(searcher, 1.0, false)
-       if got, ok := compiler.(Compiler); !ok {
-               t.Error("MakeCompiler failed: got '%v'", got)
+       compiler, err := query.MakeCompiler(searcher, 1.0, false)
+       if _, ok := compiler.(Compiler); !ok || err != nil {
+               t.Error("MakeCompiler for %v failed: %v", query, err)
        }
 }
 

Reply via email to