Susumu Yata
null+****@clear*****
Thu Sep 14 14:21:37 JST 2017
Susumu Yata 2017-09-14 14:21:37 +0900 (Thu, 14 Sep 2017) New Revision: 9226a58d9167665cd228dcbefdbda241f2d8f8f6 https://github.com/groonga/grnci/commit/9226a58d9167665cd228dcbefdbda241f2d8f8f6 Message: Update DB.ObjectExist to return whether or not the target exists. Modified files: v2/db.go v2/libgrn/db_test.go Modified: v2/db.go (+19 -3) =================================================================== --- v2/db.go 2017-09-14 14:13:35 +0900 (2164194) +++ v2/db.go 2017-09-14 14:21:37 +0900 (c1ead41) @@ -1042,14 +1042,30 @@ func (db *DB) NormalizerList() ([]DBNormalizer, error) { } // ObjectExist executes object_exist. -func (db *DB) ObjectExist(name string) error { +func (db *DB) ObjectExist(name string) (bool, error) { resp, err := db.Invoke("object_exist", map[string]interface{}{ "name": name, }, nil) if err != nil { - return err + return false, err } - return db.recvBool(resp) + // recvBool must not be used because an object_exist can return false + // even if the operation completes successfully. + defer resp.Close() + if err := resp.Err(); err != nil { + return false, err + } + jsonData, err := ioutil.ReadAll(resp) + if err != nil { + return false, err + } + var result bool + if err := json.Unmarshal(jsonData, &result); err != nil { + return false, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ + "error": err.Error(), + }) + } + return result, nil } // DBObjectIDName is a part of DBObject*. Modified: v2/libgrn/db_test.go (+1 -1) =================================================================== --- v2/libgrn/db_test.go 2017-09-14 14:13:35 +0900 (53ec239) +++ v2/libgrn/db_test.go 2017-09-14 14:21:37 +0900 (b71135e) @@ -84,7 +84,7 @@ func TestDBColumnCreate(t *testing.T) { if err := db.ColumnCreate("Tbl.col", "Text", nil); err != nil { t.Fatalf("db.ColumnCreate failed: %v", err) } - if err := db.ObjectExist("Tbl.col"); err != nil { + if ok, err := db.ObjectExist("Tbl.col"); !ok { t.Fatalf("db.ObjectExist failed: %v", err) } } -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170914/e9dbb8b2/attachment-0001.htm