[Groonga-commit] groonga/groonga [master] Ignore unknown column in output_columns

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Oct 24 10:56:00 JST 2012


Kouhei Sutou	2012-10-24 10:56:00 +0900 (Wed, 24 Oct 2012)

  New Revision: ef7330c0be49fd1a2827be6c7241e2a72550e663
  https://github.com/groonga/groonga/commit/ef7330c0be49fd1a2827be6c7241e2a72550e663

  Merged 2fbecbf: Merge pull request #36 from groonga/accept-star-in-output-columns

  Log:
    Ignore unknown column in output_columns

  Modified files:
    lib/expr.c

  Modified: lib/expr.c (+21 -2)
===================================================================
--- lib/expr.c    2012-10-19 16:09:41 +0900 (e16bac0)
+++ lib/expr.c    2012-10-24 10:56:00 +0900 (a6ed179)
@@ -5344,6 +5344,8 @@ static grn_rc
 parse_script(grn_ctx *ctx, efs_info *q)
 {
   grn_rc rc = GRN_SUCCESS;
+  grn_bool ignore_unknown_identifier = GRN_FALSE;
+  grn_bool skip_next_comma = GRN_FALSE;
   for (;;) {
     skip_space(ctx, q);
     if (q->cur >= q->str_end) { rc = GRN_END_OF_DATA; goto exit; }
@@ -5378,7 +5380,9 @@ parse_script(grn_ctx *ctx, efs_info *q)
       break;
     case ',' :
       q->cur++;
-      PARSE(GRN_EXPR_TOKEN_COMMA);
+      if (!skip_next_comma) {
+        PARSE(GRN_EXPR_TOKEN_COMMA);
+      }
       break;
     case '.' :
       q->cur++;
@@ -5756,10 +5760,25 @@ parse_script(grn_ctx *ctx, efs_info *q)
       }
       break;
     default :
-      if ((rc = get_identifier(ctx, q))) { goto exit; }
+      if ((rc = get_identifier(ctx, q))) {
+        if (rc == GRN_SYNTAX_ERROR &&
+            q->flags & GRN_EXPR_SYNTAX_OUTPUT_COLUMNS) {
+          ignore_unknown_identifier = GRN_TRUE;
+          rc = GRN_SUCCESS;
+        } else {
+          goto exit;
+        }
+      }
       break;
     }
     if (ctx->rc) { rc = ctx->rc; break; }
+
+    if (ignore_unknown_identifier) {
+      skip_next_comma = GRN_TRUE;
+      ignore_unknown_identifier = GRN_FALSE;
+    } else {
+      skip_next_comma = GRN_FALSE;
+    }
   }
 exit :
   PARSE(0);
-------------- next part --------------
HTML����������������������������...
Download 



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