null+****@clear*****
null+****@clear*****
2012年 1月 23日 (月) 22:06:15 JST
Daijiro MORI 2012-01-23 22:06:15 +0900 (Mon, 23 Jan 2012) New Revision: 5f26c1cef1a4765fb6b945f7dc68d4a20a51e2d7 Log: Added grn_obj_path_by_id Modified files: include/groonga.h lib/db.c lib/ii.c Modified: include/groonga.h (+10 -0) =================================================================== --- include/groonga.h 2012-01-20 15:07:56 +0900 (f108759) +++ include/groonga.h 2012-01-23 22:06:15 +0900 (0ea76cd) @@ -1826,6 +1826,16 @@ GRN_API int grn_column_index(grn_ctx *ctx, grn_obj *column, grn_operator op, **/ GRN_API grn_rc grn_obj_delete_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, grn_bool removep); +/** + * grn_obj_path_by_id: + * @db: The target database. + * @id: The object (table, column and so on) ID to be deleted. + * @buffer: path string corresponding to the id willl be set in this buffer. + * + * dbのidに対応するpathを返します。mroonga向けに用意した内部APIです。 + **/ +GRN_API grn_rc grn_obj_path_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, char *buffer); + /* geo */ typedef struct { Modified: lib/db.c (+14 -0) =================================================================== --- lib/db.c 2012-01-20 15:07:56 +0900 (0c84f06) +++ lib/db.c 2012-01-23 22:06:15 +0900 (a6c728c) @@ -6551,6 +6551,20 @@ grn_obj_delete_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, grn_bool removep) GRN_API_RETURN(rc); } + +grn_rc +grn_obj_path_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, char *buffer) +{ + grn_rc rc = GRN_SUCCESS; + GRN_API_ENTER; + if (!GRN_DB_P(db) || !buffer) { + rc = GRN_INVALID_ARGUMENT; + } else { + gen_pathname(grn_obj_io(db)->path, buffer, id); + } + GRN_API_RETURN(rc); +} + /* db must be validated by caller */ grn_rc grn_db_obj_init(grn_ctx *ctx, grn_obj *db, grn_id id, grn_db_obj *obj) Modified: lib/ii.c (+1 -0) =================================================================== --- lib/ii.c 2012-01-20 15:07:56 +0900 (1890f2b) +++ lib/ii.c 2012-01-23 22:06:15 +0900 (27b257f) @@ -6377,6 +6377,7 @@ typedef struct { grn_obj *target; grn_obj *lexicon; grn_obj *source; + grn_obj *tmp_lexicon; builder_block *blocks; uint32_t nblocks; int tmpfd;