[Groonga-commit] groonga/groonga at 4391b91 [master] Add error check on using index for resolving accessor for data column

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Aug 23 20:07:37 JST 2016


Kouhei Sutou	2016-08-23 20:07:37 +0900 (Tue, 23 Aug 2016)

  New Revision: 4391b91123832d7cfe53281f4951e05cc09415e6
  https://github.com/groonga/groonga/commit/4391b91123832d7cfe53281f4951e05cc09415e6

  Message:
    Add error check on using index for resolving accessor for data column

  Modified files:
    lib/db.c

  Modified: lib/db.c (+32 -0)
===================================================================
--- lib/db.c    2016-08-23 20:05:25 +0900 (ab7299e)
+++ lib/db.c    2016-08-23 20:07:37 +0900 (e6caf88)
@@ -3290,6 +3290,38 @@ grn_accessor_resolve_one_data_column(grn_ctx *ctx, grn_accessor *accessor,
   if (n_index_data == 0) {
     return GRN_INVALID_ARGUMENT;
   }
+
+  {
+    grn_obj *lexicon;
+    lexicon = grn_ctx_at(ctx, index_datum.index->header.domain);
+    if (grn_obj_id(ctx, lexicon) != current_res->header.domain) {
+      char index_name[GRN_TABLE_MAX_KEY_SIZE];
+      int index_name_size;
+      grn_obj *expected;
+      char expected_name[GRN_TABLE_MAX_KEY_SIZE];
+      int expected_name_size;
+
+      index_name_size = grn_obj_name(ctx,
+                                     index_datum.index,
+                                     index_name,
+                                     GRN_TABLE_MAX_KEY_SIZE);
+      expected = grn_ctx_at(ctx, current_res->header.domain);
+      expected_name_size = grn_obj_name(ctx,
+                                        expected,
+                                        expected_name,
+                                        GRN_TABLE_MAX_KEY_SIZE);
+      ERR(GRN_INVALID_ARGUMENT,
+          "[accessor][resolve][data-column] lexicon mismatch index: "
+          "<%.*s> "
+          "expected:<%.*s>",
+          index_name_size,
+          index_name,
+          expected_name_size,
+          expected_name);
+      return ctx->rc;
+    }
+  }
+
   next_res_domain_id = DB_OBJ(index_datum.index)->range;
 
   grn_report_index(ctx,
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index