[Groonga-commit] groonga/groonga [master] Swap sequences of conditions on suggest func.

Back to archive index

null+****@clear***** null+****@clear*****
2010年 8月 20日 (金) 21:09:08 JST


Tasuku SUENAGA a.k.a. gunyarakun	2010-08-20 12:09:08 +0000 (Fri, 20 Aug 2010)

  New Revision: 6e5dae8f9474e561482619ef8feca3239022986c

  Log:
    Swap sequences of conditions on suggest func.

  Modified files:
    modules/suggest/suggest.c

  Modified: modules/suggest/suggest.c (+19 -19)
===================================================================
--- modules/suggest/suggest.c    2010-08-20 08:49:15 +0000 (5b32ca0)
+++ modules/suggest/suggest.c    2010-08-20 12:09:08 +0000 (4b90720)
@@ -31,20 +31,20 @@ func_suggest(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
     grn_obj *col;
     if ((col = grn_obj_column(ctx, table, GRN_TEXT_VALUE(VAR(1)),
                               GRN_TEXT_LEN(VAR(1))))) {
-      grn_obj *index;
-      /* FIXME: support index selection */
-      if (grn_column_index(ctx, col, GRN_OP_PREFIX,
-                           &index, 1, NULL)) {
-        grn_table_cursor *cur;
-        if ((cur = grn_table_cursor_open(ctx, grn_ctx_at(ctx, index->header.domain),
-                                         GRN_TEXT_VALUE(VAR(2)), GRN_TEXT_LEN(VAR(2)),
-                                         NULL, 0,
-                                         0, -1,
-                                         GRN_CURSOR_PREFIX | GRN_CURSOR_RK))) {
-          grn_obj *res;
-          if ((res = grn_table_create(ctx, NULL, 0, NULL,
-                                       GRN_TABLE_HASH_KEY|GRN_OBJ_WITH_SUBREC, table, NULL))) {
-            /* RK search */
+      grn_obj *res;
+      if ((res = grn_table_create(ctx, NULL, 0, NULL,
+                                   GRN_TABLE_HASH_KEY|GRN_OBJ_WITH_SUBREC, table, NULL))) {
+        /* RK search */
+        grn_obj *index;
+        /* FIXME: support index selection */
+        if (grn_column_index(ctx, col, GRN_OP_PREFIX,
+                             &index, 1, NULL)) {
+          grn_table_cursor *cur;
+          if ((cur = grn_table_cursor_open(ctx, grn_ctx_at(ctx, index->header.domain),
+                                           GRN_TEXT_VALUE(VAR(2)), GRN_TEXT_LEN(VAR(2)),
+                                           NULL, 0,
+                                           0, -1,
+                                           GRN_CURSOR_PREFIX | GRN_CURSOR_RK))) {
             grn_id id;
             while ((id = grn_table_cursor_next(ctx, cur))) {
               grn_ii_cursor *icur;
@@ -97,16 +97,16 @@ func_suggest(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
                 ERR(GRN_UNKNOWN_ERROR, "cannot create temporary sort table.");
               }
             }
-            grn_obj_close(ctx, res);
+            grn_table_cursor_close(ctx, cur);
           } else {
-            ERR(GRN_UNKNOWN_ERROR, "cannot create temporary table.");
+            ERR(GRN_UNKNOWN_ERROR, "cannot open cursor for pk.");
           }
-          grn_table_cursor_close(ctx, cur);
         } else {
-          ERR(GRN_UNKNOWN_ERROR, "cannot open cursor for pk.");
+          ERR(GRN_UNKNOWN_ERROR, "cannot find index for prefix search.");
         }
+        grn_obj_close(ctx, res);
       } else {
-        ERR(GRN_UNKNOWN_ERROR, "cannot find index for prefix search.");
+        ERR(GRN_UNKNOWN_ERROR, "cannot create temporary table.");
       }
     } else {
       ERR(GRN_INVALID_ARGUMENT, "invalid column.");




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