null+****@clear*****
null+****@clear*****
2010年 8月 22日 (日) 06:46:28 JST
Tasuku SUENAGA a.k.a. gunyarakun 2010-08-21 21:46:28 +0000 (Sat, 21 Aug 2010)
New Revision: 32be03b3cebf26fca26c3fc9c81d6de84bb5bb4b
Log:
Fixed inspect for tables with no column.
Modified files:
lib/db.c
Modified: lib/db.c (+11 -9)
===================================================================
--- lib/db.c 2010-08-21 07:00:23 +0000 (037b708)
+++ lib/db.c 2010-08-21 21:46:28 +0000 (e94f1c6)
@@ -2608,16 +2608,18 @@ grn_table_columns(grn_ctx *ctx, grn_obj *table, const char *name, unsigned name_
int n = 0;
GRN_API_ENTER;
if (GRN_OBJ_TABLEP(table) && !(DB_OBJ(table)->id & GRN_OBJ_TMP_OBJECT)) {
- grn_obj bulk;
grn_db *s = (grn_db *)DB_OBJ(table)->db;
- GRN_TEXT_INIT(&bulk, 0);
- grn_pat_get_key2(ctx, s->keys, DB_OBJ(table)->id, &bulk);
- GRN_TEXT_PUTC(ctx, &bulk, GRN_DB_DELIMITER);
- grn_bulk_write(ctx, &bulk, name, name_size);
- grn_pat_prefix_search(ctx, s->keys, GRN_BULK_HEAD(&bulk), GRN_BULK_VSIZE(&bulk),
- (grn_hash *)res);
- grn_obj_close(ctx, &bulk);
- n = grn_table_size(ctx, res);
+ if (s->keys) {
+ grn_obj bulk;
+ GRN_TEXT_INIT(&bulk, 0);
+ grn_pat_get_key2(ctx, s->keys, DB_OBJ(table)->id, &bulk);
+ GRN_TEXT_PUTC(ctx, &bulk, GRN_DB_DELIMITER);
+ grn_bulk_write(ctx, &bulk, name, name_size);
+ grn_pat_prefix_search(ctx, s->keys, GRN_BULK_HEAD(&bulk), GRN_BULK_VSIZE(&bulk),
+ (grn_hash *)res);
+ grn_obj_close(ctx, &bulk);
+ n = grn_table_size(ctx, res);
+ }
}
GRN_API_RETURN(n);
}