<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <dl style="line-height: 1.5; margin-left: 2em">
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">Author</dt>
      <dd style="margin-left: 8.5em">Kouhei Sutou &lt;kou****@clear*****&gt;</dd>
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">Date</dt>
      <dd style="margin-left: 8.5em">2015-10-07 18:30:45 +0900 (Wed, 07 Oct 2015)</dd>
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">New Revision</dt>
      <dd style="margin-left: 8.5em"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0">66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0</a></dd>
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">Message</dt>
      <dd style="margin-left: 8.5em"><pre style="border: 1px solid #aaa; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; padding: 0.5em; width: auto">Add query rewrite system

TODO:

  * Support customizing rewriter registration table
  * Support ordering rewriters</pre></dd>
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">Added files</dt>
      <dd style="margin-left: 8.5em">
        <ul>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1">lib/mrb/scripts/expression_rewriter.rb</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621">lib/mrb/scripts/expression_rewriters.rb</a></li>
        </ul>
      </dd>
      <dt style="clear: both; float: left; font-weight: bold; width: 8em">Modified files</dt>
      <dd style="margin-left: 8.5em">
        <ul>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8">include/groonga/expr.h</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7de">lib/expr.c</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8">lib/grn_scanner.h</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7">lib/mrb/mrb_expr.c</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275e">lib/mrb/mrb_expr.h</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0c">lib/mrb/scripts/expression.rb</a></li>
          <li><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5">lib/scanner.c</a></li>
        </ul>
      </dd>
    </dl>

    <div class="diff-section" style="clear: both">
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: include/groonga/expr.h (+2 -1)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L1">1</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L2">2</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L3">3</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L4">4</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L5">5</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L54">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L55">55</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L56">56</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L57">57</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L58">58</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L59">59</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8L60">60</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R1">1</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R2">2</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R3">3</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R4">4</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R5">5</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R54">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R55">55</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R56">56</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R57">57</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R58">58</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R59">59</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R60">60</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-4f2c2ca556127e6d118fa74aa9f423c8R61">61</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -1,5 +1,5 @@</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> /*</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  Copyright(C) 2009-2014 Brazil</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  Copyright(C) 2009-2015 Brazil</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre">   This library is free software; you can redistribute it and/or</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   modify it under the terms of the GNU Lesser General Public</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -55,6 +55,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">GRN_API grn_rc grn_expr_syntax_escape_query(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">                                             grn_obj *escaped_query);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> GRN_API grn_rc grn_expr_compile(grn_ctx *ctx, grn_obj *expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+GRN_API grn_obj *grn_expr_rewrite(grn_ctx *ctx, grn_obj *expr);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> GRN_API grn_rc grn_expr_dump_plan(grn_ctx *ctx, grn_obj *expr, grn_obj *buffer);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> GRN_API grn_obj *grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/expr.c (+17 -1)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1223">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1224">1224</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1225">1225</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1226">1226</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1227">1227</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1228">1228</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL1229">1229</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5470">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5471">5471</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5472">5472</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5473">5473</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5474">5474</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5475">5475</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5476">5476</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deL5477">5477</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1223">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1224">1224</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1225">1225</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1226">1226</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1227">1227</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1228">1228</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1229">1229</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1230">1230</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1231">1231</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1232">1232</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1233">1233</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1234">1234</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1235">1235</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1236">1236</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1237">1237</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1238">1238</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1239">1239</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1240">1240</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1241">1241</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1242">1242</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1243">1243</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1244">1244</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR1245">1245</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5486">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5487">5487</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5488">5488</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5489">5489</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5490">5490</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5491">5491</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5492">5492</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e78975e2685896edaae06774d692d7deR5493">5493</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -1224,6 +1224,22 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_expr_compile(grn_ctx *ctx, grn_obj *expr)</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">   return ctx-&gt;rc;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+grn_obj *</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+grn_expr_rewrite(grn_ctx *ctx, grn_obj *expr)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  grn_obj *rewritten = NULL;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  GRN_API_ENTER;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+#ifdef GRN_WITH_MRUBY</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (ctx-&gt;impl-&gt;mrb.state) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    rewritten = grn_mrb_expr_rewrite(ctx, expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  }</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+#endif</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  GRN_API_RETURN(rewritten);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #define WITH_SPSAVE(block) do {\</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   ctx-&gt;impl-&gt;stack_curr = sp - ctx-&gt;impl-&gt;stack;\</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   e-&gt;values_curr = vp - e-&gt;values;\</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -5471,7 +5487,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_table_select(grn_ctx *ctx, grn_obj *table, grn_obj *expr,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">     scanner = grn_scanner_open(ctx, expr, op, res_size &gt; 0);</span>
<span class="diff-not-changed" style="display: block; white-space: pre">     if (scanner) {</span>
<span class="diff-not-changed" style="display: block; white-space: pre">       grn_obj res_stack;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-      grn_expr *e = (grn_expr *)expr;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      grn_expr *e = (grn_expr *)scanner-&gt;expr;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">       grn_expr_code *codes = e-&gt;codes;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">       uint32_t codes_curr = e-&gt;codes_curr;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">       GRN_PTR_INIT(&amp;res_stack, GRN_OBJ_VECTOR, GRN_ID_NIL);</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/grn_scanner.h (+1 -1)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L26">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L29">29</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L30">30</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L32">32</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8L33">33</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R26">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R29">29</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R30">30</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R32">32</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-cf1a14ad01822871928388a2437bb4f8R33">33</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -27,7 +27,7 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">extern &quot;C&quot; {</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> typedef struct _grn_scaner {</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   grn_obj *expr;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  grn_obj *rewritten_expr;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  grn_obj *source_expr;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   scan_info **sis;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   unsigned int n_sis;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> } grn_scanner;</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/mrb/mrb_expr.c (+32 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L808">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L809">809</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L810">810</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L811">811</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L812">812</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L813">813</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7L814">814</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R808">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R809">809</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R810">810</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R811">811</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R812">812</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R813">813</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R814">814</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R815">815</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R816">816</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R817">817</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R818">818</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R819">819</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R820">820</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R821">821</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R822">822</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R823">823</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R824">824</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R825">825</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R826">826</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R827">827</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R828">828</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R829">829</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R830">830</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R831">831</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R832">832</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R833">833</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R834">834</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R835">835</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R836">836</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R837">837</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R838">838</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R839">839</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R840">840</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R841">841</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R842">842</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R843">843</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R844">844</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R845">845</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-65c1298f49c362e3e46ad023cbc0fdd7R846">846</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -809,6 +809,38 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_mrb_expr_init(grn_ctx *ctx)</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">                     mrb_grn_expression_append_operator, MRB_ARGS_REQ(2));</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+grn_obj *</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+grn_mrb_expr_rewrite(grn_ctx *ctx, grn_obj *expr)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+{</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  grn_mrb_data *data = &amp;(ctx-&gt;impl-&gt;mrb);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_state *mrb = data-&gt;state;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_value mrb_expression;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_value mrb_rewritten_expression;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  grn_obj *rewritten_expression = NULL;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  int arena_index;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  arena_index = mrb_gc_arena_save(mrb);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_expression = grn_mrb_value_from_grn_obj(mrb, expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_rewritten_expression = mrb_funcall(mrb, mrb_expression, &quot;rewrite&quot;, 0);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (mrb_nil_p(mrb_rewritten_expression)) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    goto exit;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  }</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (mrb_type(mrb_rewritten_expression) == MRB_TT_EXCEPTION) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    mrb-&gt;exc = mrb_obj_ptr(mrb_rewritten_expression);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    mrb_print_error(mrb);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    goto exit;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  }</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  rewritten_expression = DATA_PTR(mrb_rewritten_expression);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+exit:</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  mrb_gc_arena_restore(mrb, arena_index);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  return rewritten_expression;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+}</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> scan_info **</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_mrb_scan_info_build(grn_ctx *ctx,</span>
<span class="diff-not-changed" style="display: block; white-space: pre">                         grn_obj *expr,</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/mrb/mrb_expr.h (+2 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL26">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL29">29</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL30">30</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eL32">32</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR26">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR27">27</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR29">29</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR30">30</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR32">32</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR33">33</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-e4b6ae01125ff2d81e3a354059ac275eR34">34</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -27,6 +27,8 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">extern &quot;C&quot; {</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #endif</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> void grn_mrb_expr_init(grn_ctx *ctx);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+grn_obj *grn_mrb_expr_rewrite(grn_ctx *ctx, grn_obj *expr);</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> scan_info **grn_mrb_scan_info_build(grn_ctx *ctx,</span>
<span class="diff-not-changed" style="display: block; white-space: pre">                                     grn_obj *expr,</span>
<span class="diff-not-changed" style="display: block; white-space: pre">                                     int *n,</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/mrb/scripts/expression.rb (+28 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0c">...</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL1">1</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL2">2</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL3">3</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL4">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL5">5</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL6">6</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL7">7</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL8">8</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL9">9</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cL10">10</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0c">...</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR1">1</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR2">2</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR3">3</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR4">4</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR5">5</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR6">6</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR7">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR8">8</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR9">9</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR10">10</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR11">11</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR12">12</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR13">13</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR14">14</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR15">15</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR16">16</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR17">17</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR18">18</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR19">19</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR20">20</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR21">21</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR22">22</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR23">23</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR24">24</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR25">25</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR26">26</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR27">27</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR28">28</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR29">29</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR30">30</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR31">31</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR32">32</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR33">33</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR34">34</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR35">35</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR36">36</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR37">37</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-fd64fa1a7019f69fbbb1da2431900b0cR38">38</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -1,3 +1,6 @@</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+require &quot;expression_rewriter&quot;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+require &quot;expression_rewriters&quot;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> require &quot;scan_info&quot;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> require &quot;scan_info_builder&quot;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -5,6 +8,31 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">require &quot;expression_size_estimator&quot;</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> module Groonga</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   class Expression</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    def rewrite</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      rewritten = nil</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      begin</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        source = self</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        ExpressionRewriters.classes.each do |rewriter_class|</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          rewriter = rewriter_class.new(source)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          new_rewritten = rewriter.rewrite</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          if new_rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            rewritten.close if rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            rewritten = new_rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            source = rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      rescue GroongaError =&gt; groonga_error</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        context.set_groonga_error(groonga_error)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewritten.close if rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewritten = nil</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      rescue =&gt; error</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        context.record_error(:invalid_argument, error)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewritten.close if rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewritten = nil</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      rewritten</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-not-changed" style="display: block; white-space: pre">     def build_scan_info(op, record_exist)</span>
<span class="diff-not-changed" style="display: block; white-space: pre">       begin</span>
<span class="diff-not-changed" style="display: block; white-space: pre">         builder = ScanInfoBuilder.new(self, op, record_exist)</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Added: lib/mrb/scripts/expression_rewriter.rb (+22 -0) 100644</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1">...</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1">...</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R1">1</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R2">2</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R3">3</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R4">4</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R5">5</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R6">6</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R7">7</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R8">8</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R9">9</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R10">10</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R11">11</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R12">12</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R13">13</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R14">14</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R15">15</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R16">16</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R17">17</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R18">18</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R19">19</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R20">20</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R21">21</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-bae4bb87c90bcc7a72ed55018e3aafe1R22">22</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -0,0 +1,22 @@</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+module Groonga</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  class ExpressionRewriter</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    class &lt;&lt; self</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      def register(name)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        ExpressionRewriters.register(name, self)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    def initialize(expression)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      @expression = expression</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    def rewrite</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      nil</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    private</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    def context</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      @context ||= Context.instance</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+end</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Added: lib/mrb/scripts/expression_rewriters.rb (+29 -0) 100644</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621">...</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621">...</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R1">1</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R2">2</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R3">3</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R4">4</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R5">5</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R6">6</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R7">7</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R8">8</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R9">9</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R10">10</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R11">11</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R12">12</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R13">13</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R14">14</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R15">15</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R16">16</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R17">17</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R18">18</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R19">19</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R20">20</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R21">21</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R22">22</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R23">23</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R24">24</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R25">25</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R26">26</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R27">27</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R28">28</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-28daf45724b7761a2fabb6505ddf3621R29">29</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -0,0 +1,29 @@</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+module Groonga</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  module ExpressionRewriters</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    @@rewriters = {}</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    class &lt;&lt; self</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      def register(name, rewriter_class)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        @@rewriters[name] = rewriter_class</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      def classes</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewriters_table = Context.instance[&quot;rewriters&quot;]</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        return [] if rewriters_table.nil?</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        rewriters_table.collect do |id|</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          record = Record.new(rewriters_table, id)</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          name = record.key</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          rewriter = @@rewriters[name]</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          if rewriter.nil?</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            plugin_name = record.plugin_name.value</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            require plugin_name</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            rewriter = @@rewriters[name]</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+            raise &quot;unknown rewriter: &lt;#{name}&gt;:&lt;#{plugin_name}&gt;&quot; if rewriter.nil?</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+          rewriter</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+        end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  end</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+end</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
      <table style="border-collapse: collapse; border: 1px solid #aaa">
        <thead>
          <tr class="diff-header" style="border: 1px solid #aaa">
            <td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">  Modified: lib/scanner.c (+23 -26)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
            </td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L17">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L18">18</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L19">19</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L20">20</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L21">21</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L22">22</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L23">23</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L24">24</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L25">25</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L26">26</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L27">27</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L28">28</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L29">29</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L30">30</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L32">32</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L33">33</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L34">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L35">35</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L36">36</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L37">37</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L38">38</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L39">39</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L40">40</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L41">41</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L42">42</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L43">43</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L44">44</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L45">45</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L46">46</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L47">47</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L48">48</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L49">49</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L50">50</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L51">51</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L52">52</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L53">53</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L54">54</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L55">55</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L56">56</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L57">57</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L58">58</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L63">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L64">64</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L65">65</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L66">66</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L67">67</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L68">68</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L69">69</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L70">70</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L71">71</a></span>
<span class="diff-line-number-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L72">72</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L73">73</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L74">74</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5L75">75</a></span>
</pre>
            </th>
            <th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R17">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R18">18</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R19">19</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R20">20</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R21">21</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R22">22</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R23">23</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R24">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R25">25</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R26">26</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R27">27</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R28">28</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R29">29</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R30">30</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R31">31</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R32">32</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R33">33</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R34">34</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R35">35</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R36">36</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R37">37</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R38">38</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R39">39</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R40">40</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R41">41</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R42">42</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R43">43</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R44">44</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R45">45</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R46">46</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R47">47</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R48">48</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R49">49</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R50">50</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R51">51</a></span>
<span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R56">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R57">57</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R58">58</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R59">59</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R60">60</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R61">61</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R62">62</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R63">63</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R64">64</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R65">65</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R66">66</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R67">67</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre">&nbsp;</span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R68">68</a></span>
<span class="diff-line-number-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R69">69</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R70">70</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R71">71</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga/commit/66e87a9ca527dfb3caae8e01e0d5ebab3f191ed0#diff-f4b1505c1892dd39ed52167d032175e5R72">72</a></span>
</pre>
            </th>
            <td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, &quot;Liberation Mono&quot;, Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -18,16 +18,6 @@</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre"> #include &quot;grn_scanner.h&quot;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-static void</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-sis_free(grn_ctx *ctx, scan_info **sis, unsigned int n_sis)</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-{</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  int i;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  for (i = 0; i &lt; n_sis; i++) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-    grn_scan_info_close(ctx, sis[i]);</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  }</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  GRN_FREE(sis);</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-}</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_scanner *</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_scanner_open(grn_ctx *ctx,</span>
<span class="diff-not-changed" style="display: block; white-space: pre">                  grn_obj *expr,</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -35,24 +25,27 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_scanner_open(grn_ctx *ctx,</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">                  grn_bool record_exist)</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> {</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   grn_scanner *scanner;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  scan_info **sis;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  unsigned int n_sis;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  sis = grn_scan_info_build(ctx, expr, &amp;n_sis, op, record_exist);</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  if (!sis) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-    return NULL;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre">   scanner = GRN_MALLOC(sizeof(grn_scanner));</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   if (!scanner) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-    sis_free(ctx, sis, n_sis);</span>
<span class="diff-not-changed" style="display: block; white-space: pre">     return NULL;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  scanner-&gt;expr = expr;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  scanner-&gt;rewritten_expr = NULL;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  scanner-&gt;sis = sis;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  scanner-&gt;n_sis = n_sis;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  scanner-&gt;source_expr = expr;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  scanner-&gt;expr = grn_expr_rewrite(ctx, expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (!scanner-&gt;expr) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    scanner-&gt;expr = expr;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  }</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  scanner-&gt;sis = grn_scan_info_build(ctx,</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+                                     scanner-&gt;expr,</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+                                     &amp;(scanner-&gt;n_sis),</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+                                     op,</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+                                     record_exist);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (!scanner-&gt;sis) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    grn_scanner_close(ctx, scanner);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    return NULL;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre">   return scanner;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> }</span>
<span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -64,12 +57,16 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">grn_scanner_close(grn_ctx *ctx, grn_scanner *scanner)</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre">     return;</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  if (scanner-&gt;rewritten_expr) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-    grn_obj_close(ctx, scanner-&gt;rewritten_expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (scanner-&gt;sis) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    int i;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    for (i = 0; i &lt; scanner-&gt;n_sis; i++) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+      grn_scan_info_close(ctx, scanner-&gt;sis[i]);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    }</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    GRN_FREE(scanner-&gt;sis);</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-  if (scanner-&gt;sis) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">-    sis_free(ctx, scanner-&gt;sis, scanner-&gt;n_sis);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+  if (scanner-&gt;expr != scanner-&gt;source_expr) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+    grn_obj_close(ctx, scanner-&gt;expr);</span>
<span class="diff-not-changed" style="display: block; white-space: pre">   }</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
<span class="diff-not-changed" style="display: block; white-space: pre">   GRN_FREE(scanner);</span>
</pre>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </body>
</html>