[Groonga-commit] groonga/groonga [master] grn_table_at: support grn_db.

Back to archive index

null+****@clear***** null+****@clear*****
2012年 1月 19日 (木) 15:55:06 JST


Kouhei Sutou	2012-01-19 15:55:06 +0900 (Thu, 19 Jan 2012)

  New Revision: 067346570af6dd06af62bf810e3d6d6471310a80

  Log:
    grn_table_at: support grn_db.

  Modified files:
    lib/db.c
    test/unit/core/test-database.c

  Modified: lib/db.c (+6 -0)
===================================================================
--- lib/db.c    2012-01-19 15:42:45 +0900 (397c752)
+++ lib/db.c    2012-01-19 15:55:06 +0900 (16ca5d6)
@@ -1312,6 +1312,12 @@ grn_table_at(grn_ctx *ctx, grn_obj *table, grn_id id)
   GRN_API_ENTER;
   if (table) {
     switch (table->header.type) {
+    case GRN_DB :
+      {
+        grn_db *db = (grn_db *)table;
+        id = grn_table_at(ctx, db->keys, id);
+      }
+      break;
     case GRN_TABLE_PAT_KEY :
       id = grn_pat_at(ctx, (grn_pat *)table, id);
       break;

  Modified: test/unit/core/test-database.c (+10 -0)
===================================================================
--- test/unit/core/test-database.c    2012-01-19 15:42:45 +0900 (3c28af4)
+++ test/unit/core/test-database.c    2012-01-19 15:55:06 +0900 (3f2cd53)
@@ -32,6 +32,7 @@ void test_size(void);
 void test_expire_cache_on_recreate(void);
 void test_expression_lifetime_over_database(void);
 void test_get(void);
+void test_at(void);
 
 static gchar *tmp_directory;
 
@@ -295,3 +296,12 @@ test_get(void)
                                          short_text_type_name,
                                          strlen(short_text_type_name)));
 }
+
+void
+test_at(void)
+{
+  database = grn_db_create(context, NULL, NULL);
+  grn_test_assert_equal_id(context,
+                           GRN_DB_SHORT_TEXT,
+                           grn_table_at(context, database, GRN_DB_SHORT_TEXT));
+}




Groonga-commit メーリングリストの案内
Back to archive index