Susumu Yata
null+****@clear*****
Mon Sep 11 18:00:27 JST 2017
Susumu Yata 2017-09-11 18:00:27 +0900 (Mon, 11 Sep 2017) New Revision: 42602cf9e130f74a78abea9c449a0af244323828 https://github.com/groonga/grnci/commit/42602cf9e130f74a78abea9c449a0af244323828 Message: Simplify DB.TableTokenize and DB.Tokenize. Ref: #42 Modified files: v2/db.go v2/libgrn/db_test.go Modified: v2/db.go (+18 -20) =================================================================== --- v2/db.go 2017-09-11 17:51:04 +0900 (ddd8806) +++ v2/db.go 2017-09-11 18:00:27 +0900 (d58b820) @@ -2408,7 +2408,7 @@ type DBToken struct { } // TableTokenize executes tokenize. -func (db *DB) TableTokenize(tbl, str string, options *DBTableTokenizeOptions) ([]DBToken, Response, error) { +func (db *DB) TableTokenize(tbl, str string, options *DBTableTokenizeOptions) ([]DBToken, error) { if options == nil { options = NewDBTableTokenizeOptions() } @@ -2427,23 +2427,22 @@ func (db *DB) TableTokenize(tbl, str string, options *DBTableTokenizeOptions) ([ } resp, err := db.Invoke("table_tokenize", params, nil) if err != nil { - return nil, nil, err + return nil, err } defer resp.Close() jsonData, err := ioutil.ReadAll(resp) if err != nil { - return nil, resp, err + return nil, err } var result []DBToken - if err := json.Unmarshal(jsonData, &result); err != nil { - if resp.Err() != nil { - return nil, resp, nil + if len(jsonData) != 0 { + if err := json.Unmarshal(jsonData, &result); err != nil { + return nil, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ + "error": err.Error(), + }) } - return nil, resp, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ - "error": err.Error(), - }) } - return result, resp, nil + return result, resp.Err() } // ThreadLimit executes thread_limit. @@ -2476,7 +2475,7 @@ func NewDBTokenizeOptions() *DBTokenizeOptions { } // Tokenize executes tokenize. -func (db *DB) Tokenize(tokenizer, str string, options *DBTokenizeOptions) ([]DBToken, Response, error) { +func (db *DB) Tokenize(tokenizer, str string, options *DBTokenizeOptions) ([]DBToken, error) { if options == nil { options = NewDBTokenizeOptions() } @@ -2498,23 +2497,22 @@ func (db *DB) Tokenize(tokenizer, str string, options *DBTokenizeOptions) ([]DBT } resp, err := db.Invoke("tokenize", params, nil) if err != nil { - return nil, nil, err + return nil, err } defer resp.Close() jsonData, err := ioutil.ReadAll(resp) if err != nil { - return nil, resp, err + return nil, err } var result []DBToken - if err := json.Unmarshal(jsonData, &result); err != nil { - if resp.Err() != nil { - return nil, resp, nil + if len(jsonData) != 0 { + if err := json.Unmarshal(jsonData, &result); err != nil { + return nil, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ + "error": err.Error(), + }) } - return nil, resp, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ - "error": err.Error(), - }) } - return result, resp, nil + return result, resp.Err() } // DBTokenizer is a result of tokenizer_list. Modified: v2/libgrn/db_test.go (+6 -26) =================================================================== --- v2/libgrn/db_test.go 2017-09-11 17:51:04 +0900 (9a0bd02) +++ v2/libgrn/db_test.go 2017-09-11 18:00:27 +0900 (17da67d) @@ -573,10 +573,7 @@ func TestDBTableTokenize(t *testing.T) { if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { t.Fatalf("db.Restore failed: %v", err) } - result, resp, err := db.TableTokenize("Tbl", "あいうえお", nil) - if err == nil { - err = resp.Err() - } + result, err := db.TableTokenize("Tbl", "あいうえお", nil) if err != nil { t.Fatalf("db.TableTokenize failed: %v", err) } @@ -598,11 +595,7 @@ func TestDBTableTokenizeInvalidTable(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) - _, resp, err := db.TableTokenize("no_such_table", "あいうえお", nil) - if err != nil { - t.Fatalf("db.TableTokenize failed: %v", err) - } - if resp.Err() == nil { + if _, err := db.TableTokenize("no_such_table", "あいうえお", nil); err == nil { t.Fatalf("db.TableTokenize wrongly succeeded") } } @@ -618,10 +611,7 @@ func TestDBTableTokenizeWithOptions(t *testing.T) { options := grnci.NewDBTableTokenizeOptions() options.Flags = []string{"NONE"} options.Mode = "ADD" - result, resp, err := db.TableTokenize("Tbl", "あいうえお", options) - if err == nil { - err = resp.Err() - } + result, err := db.TableTokenize("Tbl", "あいうえお", options) if err != nil { t.Fatalf("db.TableTokenize failed: %v", err) } @@ -643,10 +633,7 @@ func TestDBTokenize(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) - result, resp, err := db.Tokenize("TokenBigram", "あいうえお", nil) - if err == nil { - err = resp.Err() - } + result, err := db.Tokenize("TokenBigram", "あいうえお", nil) if err != nil { t.Fatalf("db.Tokenize failed: %v", err) } @@ -668,11 +655,7 @@ func TestDBTokenizeInvalidTokenizer(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) - _, resp, err := db.Tokenize("", "あいうえお", nil) - if err != nil { - t.Fatalf("db.Tokenize failed: %v", err) - } - if resp.Err() == nil { + if _, err := db.Tokenize("", "あいうえお", nil); err == nil { t.Fatalf("db.Tokenize wrongly succeeded") } } @@ -687,10 +670,7 @@ func TestDBTokenizeWithOptions(t *testing.T) { options.Flags = []string{"NONE"} options.Mode = "ADD" options.TokenFilters = []string{"TokenFilterStem"} - result, resp, err := db.Tokenize("TokenBigram", "It works well.", options) - if err == nil { - err = resp.Err() - } + result, err := db.Tokenize("TokenBigram", "It works well.", options) if err != nil { t.Fatalf("db.Tokenize failed: %v", err) } -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170911/5603b2ad/attachment-0001.htm