<!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 <kou****@clear*****></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, "Liberation Mono", 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, "Liberation Mono", 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, "Liberation Mono", 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"> </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"> </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, "Liberation Mono", 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"> </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, "Liberation Mono", 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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </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, "Liberation Mono", 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"> </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, "Liberation Mono", 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->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->impl->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->impl->stack_curr = sp - ctx->impl->stack;\</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> e->values_curr = vp - e->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 > 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->expr;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> grn_expr_code *codes = e->codes;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> uint32_t codes_curr = e->codes_curr;</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> GRN_PTR_INIT(&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, "Liberation Mono", 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, "Liberation Mono", 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"> </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, "Liberation Mono", 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"> </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, "Liberation Mono", 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 "C" {</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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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, "Liberation Mono", 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, "Liberation Mono", 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 = &(ctx->impl->mrb);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ mrb_state *mrb = data->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, "rewrite", 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->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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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, "Liberation Mono", 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, "Liberation Mono", 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 "C" {</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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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, "Liberation Mono", 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, "Liberation Mono", 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 "expression_rewriter"</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+require "expression_rewriters"</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 "scan_info"</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> require "scan_info_builder"</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 "expression_size_estimator"</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 => 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 => 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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", 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, "Liberation Mono", 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 << 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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", 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, "Liberation Mono", 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 << 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["rewriters"]</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 "unknown rewriter: <#{name}>:<#{plugin_name}>" 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, "Liberation Mono", 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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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, "Liberation Mono", 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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </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, "Liberation Mono", 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 "grn_scanner.h"</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 < 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, &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->expr = expr;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">- scanner->rewritten_expr = NULL;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">- scanner->sis = sis;</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">- scanner->n_sis = n_sis;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ scanner->source_expr = expr;</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ scanner->expr = grn_expr_rewrite(ctx, expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ if (!scanner->expr) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ scanner->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->sis = grn_scan_info_build(ctx,</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ scanner->expr,</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ &(scanner->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->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->rewritten_expr) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">- grn_obj_close(ctx, scanner->rewritten_expr);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ if (scanner->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 < scanner->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->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->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->sis) {</span>
<span class="diff-deleted" style="background-color: #ffaaaa; color: #000000; display: block; white-space: pre">- sis_free(ctx, scanner->sis, scanner->n_sis);</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ if (scanner->expr != scanner->source_expr) {</span>
<span class="diff-added" style="background-color: #aaffaa; color: #000000; display: block; white-space: pre">+ grn_obj_close(ctx, scanner->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>