rroonga 5.0.0-x86-mingw32 → 5.0.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
 - data/.yardopts +1 -0
 - data/Rakefile +1 -16
 - data/example/bookmark.rb +1 -6
 - data/example/index-html.rb +0 -1
 - data/ext/groonga/extconf.rb +4 -7
 - data/ext/groonga/rb-grn-array.c +1 -1
 - data/ext/groonga/rb-grn-column.c +33 -67
 - data/ext/groonga/rb-grn-context.c +5 -5
 - data/ext/groonga/rb-grn-database.c +2 -2
 - data/ext/groonga/rb-grn-double-array-trie.c +4 -2
 - data/ext/groonga/rb-grn-encoding-support.c +7 -1
 - data/ext/groonga/rb-grn-equal-operator.c +85 -0
 - data/ext/groonga/rb-grn-exception.c +17 -0
 - data/ext/groonga/rb-grn-expression.c +85 -43
 - data/ext/groonga/rb-grn-greater-equal-operator.c +88 -0
 - data/ext/groonga/rb-grn-greater-operator.c +85 -0
 - data/ext/groonga/rb-grn-hash.c +1 -1
 - data/ext/groonga/rb-grn-index-column.c +150 -11
 - data/ext/groonga/rb-grn-less-equal-operator.c +88 -0
 - data/ext/groonga/rb-grn-less-operator.c +85 -0
 - data/ext/groonga/rb-grn-logger.c +5 -5
 - data/ext/groonga/rb-grn-match-operator.c +86 -0
 - data/ext/groonga/rb-grn-normalizer.c +8 -1
 - data/ext/groonga/rb-grn-not-equal-operator.c +85 -0
 - data/ext/groonga/rb-grn-object.c +170 -36
 - data/ext/groonga/rb-grn-operator.c +395 -172
 - data/ext/groonga/rb-grn-patricia-trie.c +10 -8
 - data/ext/groonga/rb-grn-plugin.c +51 -3
 - data/ext/groonga/rb-grn-prefix-operator.c +86 -0
 - data/ext/groonga/rb-grn-procedure-type.c +4 -0
 - data/ext/groonga/rb-grn-query-logger.c +4 -4
 - data/ext/groonga/rb-grn-regexp-operator.c +85 -0
 - data/ext/groonga/rb-grn-snippet.c +1 -1
 - data/ext/groonga/rb-grn-table-key-support.c +9 -5
 - data/ext/groonga/rb-grn-table.c +52 -66
 - data/ext/groonga/rb-grn-type.c +1 -1
 - data/ext/groonga/rb-grn-utils.c +22 -3
 - data/ext/groonga/rb-grn.h +31 -4
 - data/ext/groonga/rb-groonga.c +9 -9
 - data/lib/1.9/groonga.so +0 -0
 - data/lib/2.0/groonga.so +0 -0
 - data/lib/2.1/groonga.so +0 -0
 - data/lib/2.2/groonga.so +0 -0
 - data/lib/groonga/context.rb +31 -0
 - data/lib/groonga/expression-builder.rb +14 -1
 - data/lib/groonga/record.rb +10 -8
 - data/lib/groonga/schema.rb +3 -1
 - data/rroonga-build.rb +2 -2
 - data/rroonga.gemspec +3 -3
 - data/test/groonga-test-utils.rb +4 -0
 - data/test/test-column.rb +28 -26
 - data/test/test-exception.rb +1 -0
 - data/test/test-expression-builder.rb +83 -1
 - data/test/test-expression.rb +80 -48
 - data/test/test-index-column.rb +102 -29
 - data/test/test-normalizer.rb +35 -29
 - data/test/test-operator.rb +214 -0
 - data/test/test-plugin.rb +24 -6
 - data/test/test-procedure.rb +29 -0
 - data/test/test-schema-type.rb +14 -0
 - data/test/test-table-select-mecab.rb +1 -4
 - data/test/test-table.rb +7 -0
 - data/test/test-token-regexp.rb +30 -0
 - data/test/test-type.rb +24 -0
 - data/vendor/local/bin/grndb.exe +0 -0
 - data/vendor/local/bin/groonga-benchmark.exe +0 -0
 - data/vendor/local/bin/groonga.exe +0 -0
 - data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
 - data/vendor/local/bin/libgroonga-0.dll +0 -0
 - data/vendor/local/bin/libmecab-1.dll +0 -0
 - data/vendor/local/bin/libmsgpack-3.dll +0 -0
 - data/vendor/local/bin/libmsgpackc-2.dll +0 -0
 - data/vendor/local/bin/libonig-5.dll +0 -0
 - data/vendor/local/bin/libstdc++-6.dll +0 -0
 - data/vendor/local/bin/lz4.exe +0 -0
 - data/vendor/local/bin/lz4c.exe +0 -0
 - data/vendor/local/bin/lz4cat +0 -0
 - data/vendor/local/bin/mecab-config +2 -2
 - data/vendor/local/bin/mecab.exe +0 -0
 - data/vendor/local/bin/onig-config +1 -1
 - data/vendor/local/bin/zlib1.dll +0 -0
 - data/vendor/local/etc/groonga/groonga.conf +1 -1
 - data/vendor/local/etc/groonga/httpd/groonga-httpd.conf +2 -2
 - data/vendor/local/include/groonga/groonga.h +1 -0
 - data/vendor/local/include/groonga/groonga/expr.h +2 -0
 - data/vendor/local/include/groonga/groonga/groonga.h +32 -5
 - data/vendor/local/include/groonga/groonga/ii.h +7 -0
 - data/vendor/local/include/groonga/groonga/obj.h +37 -0
 - data/vendor/local/include/groonga/groonga/scorer.h +95 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +2 -2
 - data/vendor/local/lib/groonga/plugins/ruby/eval.a +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/eval.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/eval.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/eval.la +2 -2
 - data/vendor/local/lib/groonga/plugins/ruby/load.a +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/load.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/load.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/ruby/load.la +2 -2
 - data/vendor/local/lib/groonga/plugins/sharding/logical_count.rb +6 -3
 - data/vendor/local/lib/groonga/plugins/sharding/logical_enumerator.rb +6 -5
 - data/vendor/local/lib/groonga/plugins/sharding/logical_range_filter.rb +421 -17
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.la +2 -2
 - data/vendor/local/lib/groonga/plugins/table/table.a +0 -0
 - data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/table/table.la +2 -2
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.a +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.la +2 -2
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +2 -2
 - data/vendor/local/lib/groonga/scripts/ruby/backtrace_entry.rb +12 -4
 - data/vendor/local/lib/groonga/scripts/ruby/database.rb +11 -3
 - data/vendor/local/lib/groonga/scripts/ruby/expression.rb +23 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_size_estimator.rb +158 -0
 - data/vendor/local/lib/groonga/scripts/ruby/index_column.rb +39 -0
 - data/vendor/local/lib/groonga/scripts/ruby/initialize/post.rb +4 -0
 - data/vendor/local/lib/groonga/scripts/ruby/initialize/pre.rb +2 -0
 - data/vendor/local/lib/groonga/scripts/ruby/logger.rb +11 -7
 - data/vendor/local/lib/groonga/scripts/ruby/object.rb +11 -0
 - data/vendor/local/lib/groonga/scripts/ruby/operator.rb +22 -0
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info.rb +7 -2
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_builder.rb +7 -11
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_data.rb +137 -34
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_search_index.rb +9 -0
 - data/vendor/local/lib/libgroonga.a +0 -0
 - data/vendor/local/lib/libgroonga.dll.a +0 -0
 - data/vendor/local/lib/libgroonga.la +2 -2
 - data/vendor/local/lib/liblz4.a +0 -0
 - data/vendor/local/lib/liblz4.dll +0 -0
 - data/vendor/local/lib/liblz4.dll.1 +0 -0
 - data/vendor/local/lib/liblz4.dll.1.5.0 +0 -0
 - data/vendor/local/lib/libmecab.a +0 -0
 - data/vendor/local/lib/libmecab.dll.a +0 -0
 - data/vendor/local/lib/libmecab.la +2 -2
 - data/vendor/local/lib/libmsgpack.a +0 -0
 - data/vendor/local/lib/libmsgpack.dll.a +0 -0
 - data/vendor/local/lib/libmsgpack.la +2 -2
 - data/vendor/local/lib/libmsgpackc.a +0 -0
 - data/vendor/local/lib/libmsgpackc.dll.a +0 -0
 - data/vendor/local/lib/libmsgpackc.la +2 -2
 - data/vendor/local/lib/libonig.a +0 -0
 - data/vendor/local/lib/libonig.dll.a +0 -0
 - data/vendor/local/lib/libonig.la +2 -2
 - data/vendor/local/lib/libz.a +0 -0
 - data/vendor/local/lib/libz.dll.a +0 -0
 - data/vendor/local/lib/pkgconfig/groonga.pc +3 -3
 - data/vendor/local/lib/pkgconfig/liblz4.pc +5 -5
 - data/vendor/local/lib/pkgconfig/msgpack.pc +1 -1
 - data/vendor/local/lib/pkgconfig/oniguruma.pc +6 -6
 - data/vendor/local/lib/pkgconfig/zlib.pc +3 -3
 - data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
 - data/vendor/local/sbin/groonga-httpd-restart +1 -1
 - data/vendor/local/sbin/groonga-httpd.exe +0 -0
 - data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_images/used-when-indexing.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_images/used-when-searching.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/characteristic.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/contribution/development/release.txt +32 -17
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +9 -9
 - data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +194 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/1.0.x.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/3.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/4.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference.txt +2 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/api.txt +3 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/api/grn_ctx.txt +42 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/api/overview.txt +54 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/cache_limit.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_create.txt +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_list.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_rename.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/delete.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/load.txt +5 -5
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/lock_clear.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_count.txt +173 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_range_filter.txt +112 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/normalize.txt +7 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/plugin_register.txt +64 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/plugin_unregister.txt +63 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/register.txt +11 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/request_cancel.txt +3 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/ruby_eval.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/ruby_load.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/select.txt +17 -17
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/suggest.txt +12 -12
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_create.txt +7 -7
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_tokenize.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/tokenize.txt +6 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/truncate.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga.txt +47 -26
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/between.txt +5 -5
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/geo_distance.txt +3 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/highlight_full.txt +6 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/highlight_html.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/html_untag.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/in_values.txt +54 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/query.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/sub_filter.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/query_syntax.txt +44 -18
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/script_syntax.txt +41 -11
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/indexing.txt +2 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/normalizers.txt +4 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/operations.txt +2 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/regular_expression.txt +403 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorer.txt +217 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorers/scorer_tf_at_most.txt +22 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorers/scorer_tf_idf.txt +110 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/scoring_note.txt +13 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/tables.txt +8 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/tokenizers.txt +530 -16
 - data/vendor/local/share/doc/groonga/en/html/_sources/server.txt +2 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/server/memcached.txt +15 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/spec/gqtp.txt +66 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/troubleshooting/different_results_with_the_same_keyword.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/network.txt +0 -81
 - data/vendor/local/share/doc/groonga/en/html/_static/basic.css +6 -68
 - data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +1 -26
 - data/vendor/local/share/doc/groonga/en/html/_static/down-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/down.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/file.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/jquery.js +9404 -4
 - data/vendor/local/share/doc/groonga/en/html/_static/minus.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/plus.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_static/underscore.js +1415 -31
 - data/vendor/local/share/doc/groonga/en/html/_static/up-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/up.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/websupport.js +15 -15
 - data/vendor/local/share/doc/groonga/en/html/characteristic.html +18 -20
 - data/vendor/local/share/doc/groonga/en/html/client.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/community.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution.html +18 -20
 - data/vendor/local/share/doc/groonga/en/html/contribution/development.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +51 -38
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/contribution/report.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/development.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/genindex.html +26 -14
 - data/vendor/local/share/doc/groonga/en/html/index.html +150 -130
 - data/vendor/local/share/doc/groonga/en/html/install.html +32 -34
 - data/vendor/local/share/doc/groonga/en/html/install/centos.html +28 -30
 - data/vendor/local/share/doc/groonga/en/html/install/debian.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/install/fedora.html +28 -30
 - data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/install/others.html +87 -89
 - data/vendor/local/share/doc/groonga/en/html/install/solaris.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +25 -27
 - data/vendor/local/share/doc/groonga/en/html/install/windows.html +30 -32
 - data/vendor/local/share/doc/groonga/en/html/limitations.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/news.html +256 -27
 - data/vendor/local/share/doc/groonga/en/html/news/0.x.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +19 -21
 - data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +32 -34
 - data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +27 -29
 - data/vendor/local/share/doc/groonga/en/html/news/2.x.html +98 -100
 - data/vendor/local/share/doc/groonga/en/html/news/3.x.html +68 -70
 - data/vendor/local/share/doc/groonga/en/html/news/4.x.html +102 -104
 - data/vendor/local/share/doc/groonga/en/html/news/senna.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/en/html/reference.html +139 -118
 - data/vendor/local/share/doc/groonga/en/html/reference/api.html +51 -52
 - data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +49 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +60 -62
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +80 -82
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +37 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +130 -80
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +48 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +79 -81
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +41 -43
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +41 -43
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +89 -91
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +75 -77
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +64 -66
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +202 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +58 -60
 - data/vendor/local/share/doc/groonga/en/html/reference/cast.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/column.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +58 -60
 - data/vendor/local/share/doc/groonga/en/html/reference/command.html +56 -54
 - data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +53 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/command/request_id.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +94 -96
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +43 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +23 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +71 -73
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +37 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +35 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +43 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +49 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +23 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +24 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +26 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +314 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +252 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +87 -89
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +46 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +195 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +193 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +38 -40
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +37 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +61 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +72 -74
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +54 -56
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +54 -56
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +590 -592
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +37 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +92 -94
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +152 -154
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +49 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +68 -70
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +103 -105
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +45 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +52 -54
 - data/vendor/local/share/doc/groonga/en/html/reference/executables.html +19 -21
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +35 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +21 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +26 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +73 -75
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +34 -36
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +124 -90
 - data/vendor/local/share/doc/groonga/en/html/reference/function.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +66 -68
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +113 -115
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +55 -57
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +45 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_full.html +81 -83
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_html.html +65 -67
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +54 -56
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +135 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +81 -83
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +43 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +67 -69
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +66 -70
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +39 -41
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +349 -286
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +483 -417
 - data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +35 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/log.html +38 -40
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +44 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/operations.html +30 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +32 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/output.html +32 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +60 -62
 - data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +931 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +442 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +153 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +287 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/scoring_note.html +114 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +45 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +51 -53
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +38 -40
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +40 -42
 - data/vendor/local/share/doc/groonga/en/html/reference/tables.html +52 -54
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters.html +36 -38
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +1394 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +57 -59
 - data/vendor/local/share/doc/groonga/en/html/reference/types.html +38 -40
 - data/vendor/local/share/doc/groonga/en/html/search.html +11 -11
 - data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/en/html/server.html +23 -24
 - data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +28 -30
 - data/vendor/local/share/doc/groonga/en/html/server/http.html +42 -44
 - data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +68 -70
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +30 -32
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +29 -31
 - data/vendor/local/share/doc/groonga/en/html/server/memcached.html +137 -0
 - data/vendor/local/share/doc/groonga/en/html/server/package.html +36 -38
 - data/vendor/local/share/doc/groonga/en/html/spec.html +22 -24
 - data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +208 -129
 - data/vendor/local/share/doc/groonga/en/html/spec/search.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +18 -20
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +18 -20
 - data/vendor/local/share/doc/groonga/en/html/tutorial.html +21 -25
 - data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +31 -33
 - data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +20 -22
 - data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +17 -19
 - data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +21 -23
 - data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +50 -52
 - data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +27 -125
 - data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +18 -20
 - data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +20 -22
 - data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +33 -35
 - data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_images/used-when-indexing.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_images/used-when-searching.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/characteristic.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/contribution/development/release.txt +32 -17
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +194 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/1.0.x.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/3.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/4.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference.txt +2 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api.txt +3 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api/grn_ctx.txt +42 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api/overview.txt +54 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/cache_limit.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_create.txt +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_list.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_rename.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/delete.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/load.txt +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/lock_clear.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_count.txt +173 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_range_filter.txt +112 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/normalize.txt +7 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/plugin_register.txt +64 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/plugin_unregister.txt +63 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/register.txt +11 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/request_cancel.txt +3 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/ruby_eval.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/ruby_load.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/select.txt +17 -17
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/suggest.txt +12 -12
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_create.txt +7 -7
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_tokenize.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/tokenize.txt +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/truncate.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga.txt +47 -26
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/between.txt +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/geo_distance.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/highlight_full.txt +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/highlight_html.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/html_untag.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/in_values.txt +54 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/query.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/sub_filter.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/query_syntax.txt +44 -18
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/script_syntax.txt +41 -11
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/indexing.txt +2 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/normalizers.txt +4 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/operations.txt +2 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/regular_expression.txt +403 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorer.txt +217 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorers/scorer_tf_at_most.txt +22 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorers/scorer_tf_idf.txt +110 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scoring_note.txt +13 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tables.txt +8 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tokenizers.txt +530 -16
 - data/vendor/local/share/doc/groonga/ja/html/_sources/server.txt +2 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/server/memcached.txt +15 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/spec/gqtp.txt +66 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/troubleshooting/different_results_with_the_same_keyword.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/network.txt +0 -81
 - data/vendor/local/share/doc/groonga/ja/html/_static/basic.css +6 -68
 - data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +1 -26
 - data/vendor/local/share/doc/groonga/ja/html/_static/down-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/down.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/file.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/jquery.js +9404 -4
 - data/vendor/local/share/doc/groonga/ja/html/_static/minus.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/plus.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_static/underscore.js +1415 -31
 - data/vendor/local/share/doc/groonga/ja/html/_static/up-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/up.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/websupport.js +15 -15
 - data/vendor/local/share/doc/groonga/ja/html/characteristic.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/client.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/community.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution.html +18 -20
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +51 -38
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +24 -26
 - data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/development.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +20 -22
 - data/vendor/local/share/doc/groonga/ja/html/genindex.html +26 -14
 - data/vendor/local/share/doc/groonga/ja/html/index.html +150 -130
 - data/vendor/local/share/doc/groonga/ja/html/install.html +32 -34
 - data/vendor/local/share/doc/groonga/ja/html/install/centos.html +31 -33
 - data/vendor/local/share/doc/groonga/ja/html/install/debian.html +25 -27
 - data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +29 -31
 - data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/install/others.html +78 -80
 - data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +21 -23
 - data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +26 -28
 - data/vendor/local/share/doc/groonga/ja/html/install/windows.html +29 -31
 - data/vendor/local/share/doc/groonga/ja/html/limitations.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/news.html +210 -27
 - data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +19 -21
 - data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +32 -34
 - data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +27 -29
 - data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +91 -93
 - data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +59 -61
 - data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +89 -91
 - data/vendor/local/share/doc/groonga/ja/html/news/senna.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference.html +139 -118
 - data/vendor/local/share/doc/groonga/ja/html/reference/api.html +51 -52
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +49 -51
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +55 -57
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +80 -82
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +37 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +126 -76
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +48 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +44 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +74 -76
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +44 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +41 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +41 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +40 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +89 -91
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +44 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +39 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +75 -77
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +64 -66
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +40 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +39 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +197 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +58 -60
 - data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/column.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +48 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/command.html +56 -54
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +43 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/request_id.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +93 -95
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +35 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +43 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +23 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +39 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +62 -64
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +24 -26
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +37 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +24 -26
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +32 -34
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +33 -35
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +48 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +23 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +24 -26
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +26 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +314 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +250 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +80 -81
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +46 -48
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +188 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +190 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +37 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +57 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +71 -73
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +53 -55
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +53 -55
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +394 -396
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +37 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +78 -80
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +123 -125
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +49 -51
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +39 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +61 -63
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +89 -91
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +46 -48
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +51 -53
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +19 -21
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +35 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +21 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +26 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +61 -63
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +34 -36
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +126 -90
 - data/vendor/local/share/doc/groonga/ja/html/reference/function.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +63 -65
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +44 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +94 -96
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +55 -57
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +45 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_full.html +66 -68
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_html.html +55 -57
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +53 -55
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +135 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +40 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +70 -72
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +43 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +53 -55
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +56 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +36 -38
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +229 -171
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +381 -322
 - data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +34 -36
 - data/vendor/local/share/doc/groonga/ja/html/reference/log.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +28 -30
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +32 -34
 - data/vendor/local/share/doc/groonga/ja/html/reference/output.html +28 -30
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +39 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +878 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +442 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +154 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +287 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/scoring_note.html +115 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +45 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +48 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +40 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +40 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters.html +37 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +1300 -34
 - data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +57 -59
 - data/vendor/local/share/doc/groonga/ja/html/reference/types.html +38 -40
 - data/vendor/local/share/doc/groonga/ja/html/search.html +11 -11
 - data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/server.html +23 -24
 - data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +28 -30
 - data/vendor/local/share/doc/groonga/ja/html/server/http.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +62 -64
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +30 -32
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +29 -31
 - data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +138 -0
 - data/vendor/local/share/doc/groonga/ja/html/server/package.html +35 -37
 - data/vendor/local/share/doc/groonga/ja/html/spec.html +22 -24
 - data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +207 -128
 - data/vendor/local/share/doc/groonga/ja/html/spec/search.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +18 -20
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +18 -20
 - data/vendor/local/share/doc/groonga/ja/html/tutorial.html +21 -25
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +30 -32
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +17 -19
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +23 -25
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +47 -49
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +27 -125
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +18 -20
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +20 -22
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +31 -33
 - data/vendor/local/share/license/mruby/README.md +2 -2
 - data/vendor/local/share/man/ja/man1/groonga.1 +6205 -2251
 - data/vendor/local/share/man/man1/groonga.1 +7210 -3029
 - metadata +75 -11
 - data/doc/text/news.textile +0 -1217
 - data/vendor/local/share/doc/groonga/en/html/_static/jquery-1.11.1.js +0 -10308
 - data/vendor/local/share/doc/groonga/en/html/_static/underscore-1.3.1.js +0 -999
 - data/vendor/local/share/doc/groonga/ja/html/_static/jquery-1.11.1.js +0 -10308
 - data/vendor/local/share/doc/groonga/ja/html/_static/underscore-1.3.1.js +0 -999
 
    
        data/vendor/local/bin/mecab.exe
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/vendor/local/bin/zlib1.dll
    CHANGED
    
    | 
         Binary file 
     | 
| 
         @@ -15,7 +15,7 @@ http { 
     | 
|
| 
       15 
15 
     | 
    
         
             
              keepalive_timeout 65;
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
              # The default groonga database path.
         
     | 
| 
       18 
     | 
    
         
            -
              groonga_database /home/ 
     | 
| 
      
 18 
     | 
    
         
            +
              groonga_database /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/var/lib/groonga/db/db;
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              # Create a groonga database automatically if the groonga database doesn't
         
     | 
| 
       21 
21 
     | 
    
         
             
              # exist.
         
     | 
| 
         @@ -45,7 +45,7 @@ http { 
     | 
|
| 
       45 
45 
     | 
    
         
             
                }
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                location / {
         
     | 
| 
       48 
     | 
    
         
            -
                  root /home/ 
     | 
| 
      
 48 
     | 
    
         
            +
                  root /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/share/groonga/html/admin;
         
     | 
| 
       49 
49 
     | 
    
         
             
                  index index.html;
         
     | 
| 
       50 
50 
     | 
    
         
             
                }
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
         @@ -121,6 +121,7 @@ typedef enum { 
     | 
|
| 
       121 
121 
     | 
    
         
             
              GRN_TOKEN_FILTER_ERROR = -73,
         
     | 
| 
       122 
122 
     | 
    
         
             
              GRN_COMMAND_ERROR = -74,
         
     | 
| 
       123 
123 
     | 
    
         
             
              GRN_PLUGIN_ERROR = -75,
         
     | 
| 
      
 124 
     | 
    
         
            +
              GRN_SCORER_ERROR = -76
         
     | 
| 
       124 
125 
     | 
    
         
             
            } grn_rc;
         
     | 
| 
       125 
126 
     | 
    
         | 
| 
       126 
127 
     | 
    
         
             
            GRN_API grn_rc grn_init(void);
         
     | 
| 
         @@ -181,7 +182,8 @@ typedef enum { 
     | 
|
| 
       181 
182 
     | 
    
         
             
              GRN_CONTENT_TSV,
         
     | 
| 
       182 
183 
     | 
    
         
             
              GRN_CONTENT_JSON,
         
     | 
| 
       183 
184 
     | 
    
         
             
              GRN_CONTENT_XML,
         
     | 
| 
       184 
     | 
    
         
            -
              GRN_CONTENT_MSGPACK
         
     | 
| 
      
 185 
     | 
    
         
            +
              GRN_CONTENT_MSGPACK,
         
     | 
| 
      
 186 
     | 
    
         
            +
              GRN_CONTENT_GROONGA_COMMAND_LIST
         
     | 
| 
       185 
187 
     | 
    
         
             
            } grn_content_type;
         
     | 
| 
       186 
188 
     | 
    
         | 
| 
       187 
189 
     | 
    
         
             
            typedef struct _grn_obj grn_obj;
         
     | 
| 
         @@ -431,6 +433,7 @@ GRN_API grn_rc grn_db_recover(grn_ctx *ctx, grn_obj *db); 
     | 
|
| 
       431 
433 
     | 
    
         
             
            GRN_API grn_rc grn_ctx_use(grn_ctx *ctx, grn_obj *db);
         
     | 
| 
       432 
434 
     | 
    
         
             
            GRN_API grn_obj *grn_ctx_db(grn_ctx *ctx);
         
     | 
| 
       433 
435 
     | 
    
         
             
            GRN_API grn_obj *grn_ctx_get(grn_ctx *ctx, const char *name, int name_size);
         
     | 
| 
      
 436 
     | 
    
         
            +
            GRN_API grn_rc grn_ctx_get_all_tables(grn_ctx *ctx, grn_obj *tables_buffer);
         
     | 
| 
       434 
437 
     | 
    
         | 
| 
       435 
438 
     | 
    
         
             
            typedef enum {
         
     | 
| 
       436 
439 
     | 
    
         
             
              GRN_DB_VOID = 0,
         
     | 
| 
         @@ -468,7 +471,9 @@ GRN_API grn_obj *grn_type_create(grn_ctx *ctx, const char *name, unsigned int na 
     | 
|
| 
       468 
471 
     | 
    
         
             
                                             grn_obj_flags flags, unsigned int size);
         
     | 
| 
       469 
472 
     | 
    
         | 
| 
       470 
473 
     | 
    
         
             
            GRN_API grn_rc grn_plugin_register(grn_ctx *ctx, const char *name);
         
     | 
| 
      
 474 
     | 
    
         
            +
            GRN_API grn_rc grn_plugin_unregister(grn_ctx *ctx, const char *name);
         
     | 
| 
       471 
475 
     | 
    
         
             
            GRN_API grn_rc grn_plugin_register_by_path(grn_ctx *ctx, const char *path);
         
     | 
| 
      
 476 
     | 
    
         
            +
            GRN_API grn_rc grn_plugin_unregister_by_path(grn_ctx *ctx, const char *path);
         
     | 
| 
       472 
477 
     | 
    
         
             
            GRN_API const char *grn_plugin_get_system_plugins_dir(void);
         
     | 
| 
       473 
478 
     | 
    
         
             
            GRN_API const char *grn_plugin_get_suffix(void);
         
     | 
| 
       474 
479 
     | 
    
         | 
| 
         @@ -487,7 +492,8 @@ typedef enum { 
     | 
|
| 
       487 
492 
     | 
    
         
             
              GRN_PROC_FUNCTION,
         
     | 
| 
       488 
493 
     | 
    
         
             
              GRN_PROC_HOOK,
         
     | 
| 
       489 
494 
     | 
    
         
             
              GRN_PROC_NORMALIZER,
         
     | 
| 
       490 
     | 
    
         
            -
              GRN_PROC_TOKEN_FILTER
         
     | 
| 
      
 495 
     | 
    
         
            +
              GRN_PROC_TOKEN_FILTER,
         
     | 
| 
      
 496 
     | 
    
         
            +
              GRN_PROC_SCORER
         
     | 
| 
       491 
497 
     | 
    
         
             
            } grn_proc_type;
         
     | 
| 
       492 
498 
     | 
    
         | 
| 
       493 
499 
     | 
    
         
             
            GRN_API grn_obj *grn_proc_create(grn_ctx *ctx,
         
     | 
| 
         @@ -707,7 +713,8 @@ typedef enum { 
     | 
|
| 
       707 
713 
     | 
    
         
             
              GRN_OP_TABLE_SORT,
         
     | 
| 
       708 
714 
     | 
    
         
             
              GRN_OP_TABLE_GROUP,
         
     | 
| 
       709 
715 
     | 
    
         
             
              GRN_OP_JSON_PUT,
         
     | 
| 
       710 
     | 
    
         
            -
              GRN_OP_GET_MEMBER
         
     | 
| 
      
 716 
     | 
    
         
            +
              GRN_OP_GET_MEMBER,
         
     | 
| 
      
 717 
     | 
    
         
            +
              GRN_OP_REGEXP
         
     | 
| 
       711 
718 
     | 
    
         
             
            } grn_operator;
         
     | 
| 
       712 
719 
     | 
    
         | 
| 
       713 
720 
     | 
    
         
             
            GRN_API const char *grn_operator_to_string(grn_operator op);
         
     | 
| 
         @@ -720,6 +727,12 @@ GRN_API grn_bool grn_operator_exec_less_equal(grn_ctx *ctx, 
     | 
|
| 
       720 
727 
     | 
    
         
             
                                                          grn_obj *x, grn_obj *y);
         
     | 
| 
       721 
728 
     | 
    
         
             
            GRN_API grn_bool grn_operator_exec_greater_equal(grn_ctx *ctx,
         
     | 
| 
       722 
729 
     | 
    
         
             
                                                             grn_obj *x, grn_obj *y);
         
     | 
| 
      
 730 
     | 
    
         
            +
            GRN_API grn_bool grn_operator_exec_match(grn_ctx *ctx,
         
     | 
| 
      
 731 
     | 
    
         
            +
                                                     grn_obj *target, grn_obj *sub_text);
         
     | 
| 
      
 732 
     | 
    
         
            +
            GRN_API grn_bool grn_operator_exec_prefix(grn_ctx *ctx,
         
     | 
| 
      
 733 
     | 
    
         
            +
                                                      grn_obj *target, grn_obj *prefix);
         
     | 
| 
      
 734 
     | 
    
         
            +
            GRN_API grn_bool grn_operator_exec_regexp(grn_ctx *ctx,
         
     | 
| 
      
 735 
     | 
    
         
            +
                                                      grn_obj *target, grn_obj *pattern);
         
     | 
| 
       723 
736 
     | 
    
         | 
| 
       724 
737 
     | 
    
         
             
            struct _grn_table_group_result {
         
     | 
| 
       725 
738 
     | 
    
         
             
              grn_obj *table;
         
     | 
| 
         @@ -834,8 +847,6 @@ GRN_API grn_obj *grn_obj_get_element_info(grn_ctx *ctx, grn_obj *obj, grn_id id, 
     | 
|
| 
       834 
847 
     | 
    
         
             
            GRN_API grn_rc grn_obj_set_element_info(grn_ctx *ctx, grn_obj *obj, grn_id id,
         
     | 
| 
       835 
848 
     | 
    
         
             
                                                    grn_info_type type, grn_obj *value);
         
     | 
| 
       836 
849 
     | 
    
         | 
| 
       837 
     | 
    
         
            -
            GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
       838 
     | 
    
         
            -
             
     | 
| 
       839 
850 
     | 
    
         
             
            GRN_API grn_obj *grn_obj_get_value(grn_ctx *ctx, grn_obj *obj, grn_id id, grn_obj *value);
         
     | 
| 
       840 
851 
     | 
    
         
             
            GRN_API int grn_obj_get_values(grn_ctx *ctx, grn_obj *obj, grn_id offset, void **values);
         
     | 
| 
       841 
852 
     | 
    
         | 
| 
         @@ -910,6 +921,9 @@ struct _grn_search_optarg { 
     | 
|
| 
       910 
921 
     | 
    
         
             
              int vector_size;
         
     | 
| 
       911 
922 
     | 
    
         
             
              grn_obj *proc;
         
     | 
| 
       912 
923 
     | 
    
         
             
              int max_size;
         
     | 
| 
      
 924 
     | 
    
         
            +
              grn_obj *scorer;
         
     | 
| 
      
 925 
     | 
    
         
            +
              grn_obj *scorer_args_expr;
         
     | 
| 
      
 926 
     | 
    
         
            +
              unsigned int scorer_args_expr_offset;
         
     | 
| 
       913 
927 
     | 
    
         
             
            };
         
     | 
| 
       914 
928 
     | 
    
         | 
| 
       915 
929 
     | 
    
         
             
            GRN_API grn_rc grn_obj_search(grn_ctx *ctx, grn_obj *obj, grn_obj *query,
         
     | 
| 
         @@ -975,9 +989,22 @@ GRN_API grn_rc grn_obj_delete_hook(grn_ctx *ctx, grn_obj *obj, grn_hook_entry en 
     | 
|
| 
       975 
989 
     | 
    
         | 
| 
       976 
990 
     | 
    
         
             
            GRN_API grn_obj *grn_obj_open(grn_ctx *ctx, unsigned char type, grn_obj_flags flags, grn_id domain);
         
     | 
| 
       977 
991 
     | 
    
         | 
| 
      
 992 
     | 
    
         
            +
            /* Deprecated since 5.0.1. Use grn_column_find_indexes() instead. */
         
     | 
| 
       978 
993 
     | 
    
         
             
            GRN_API int grn_column_index(grn_ctx *ctx, grn_obj *column, grn_operator op,
         
     | 
| 
       979 
994 
     | 
    
         
             
                                         grn_obj **indexbuf, int buf_size, int *section);
         
     | 
| 
       980 
995 
     | 
    
         | 
| 
      
 996 
     | 
    
         
            +
            /* @since 5.0.1. */
         
     | 
| 
      
 997 
     | 
    
         
            +
            typedef struct _grn_index_datum {
         
     | 
| 
      
 998 
     | 
    
         
            +
              grn_obj *index;
         
     | 
| 
      
 999 
     | 
    
         
            +
              unsigned int section;
         
     | 
| 
      
 1000 
     | 
    
         
            +
            } grn_index_datum;
         
     | 
| 
      
 1001 
     | 
    
         
            +
             
     | 
| 
      
 1002 
     | 
    
         
            +
            /* @since 5.0.1. */
         
     | 
| 
      
 1003 
     | 
    
         
            +
            GRN_API unsigned int grn_column_find_index_data(grn_ctx *ctx, grn_obj *column,
         
     | 
| 
      
 1004 
     | 
    
         
            +
                                                            grn_operator op,
         
     | 
| 
      
 1005 
     | 
    
         
            +
                                                            grn_index_datum *index_data,
         
     | 
| 
      
 1006 
     | 
    
         
            +
                                                            unsigned int n_index_data);
         
     | 
| 
      
 1007 
     | 
    
         
            +
             
     | 
| 
       981 
1008 
     | 
    
         
             
            GRN_API grn_rc grn_obj_delete_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, grn_bool removep);
         
     | 
| 
       982 
1009 
     | 
    
         
             
            GRN_API grn_rc grn_obj_path_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, char *buffer);
         
     | 
| 
       983 
1010 
     | 
    
         | 
| 
         @@ -28,6 +28,13 @@ typedef struct _grn_ii grn_ii; 
     | 
|
| 
       28 
28 
     | 
    
         
             
            typedef struct _grn_ii_buffer grn_ii_buffer;
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
            GRN_API unsigned int grn_ii_estimate_size(grn_ctx *ctx, grn_ii *ii, grn_id tid);
         
     | 
| 
      
 31 
     | 
    
         
            +
            GRN_API unsigned int grn_ii_estimate_size_for_query(grn_ctx *ctx, grn_ii *ii,
         
     | 
| 
      
 32 
     | 
    
         
            +
                                                                const char *query,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                                                unsigned int query_len,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                                                grn_search_optarg *optarg);
         
     | 
| 
      
 35 
     | 
    
         
            +
            GRN_API unsigned int grn_ii_estimate_size_for_lexicon_cursor(grn_ctx *ctx,
         
     | 
| 
      
 36 
     | 
    
         
            +
                                                                         grn_ii *ii,
         
     | 
| 
      
 37 
     | 
    
         
            +
                                                                         grn_table_cursor *lexicon_cursor);
         
     | 
| 
       31 
38 
     | 
    
         | 
| 
       32 
39 
     | 
    
         
             
            GRN_API grn_ii_buffer *grn_ii_buffer_open(grn_ctx *ctx, grn_ii *ii,
         
     | 
| 
       33 
40 
     | 
    
         
             
                                                      long long unsigned int update_buffer_size);
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* -*- c-basic-offset: 2 -*- */
         
     | 
| 
      
 2 
     | 
    
         
            +
            /*
         
     | 
| 
      
 3 
     | 
    
         
            +
              Copyright(C) 2015 Brazil
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              This library is free software; you can redistribute it and/or
         
     | 
| 
      
 6 
     | 
    
         
            +
              modify it under the terms of the GNU Lesser General Public
         
     | 
| 
      
 7 
     | 
    
         
            +
              License as published by the Free Software Foundation; either
         
     | 
| 
      
 8 
     | 
    
         
            +
              version 2.1 of the License, or (at your option) any later version.
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              This library is distributed in the hope that it will be useful,
         
     | 
| 
      
 11 
     | 
    
         
            +
              but WITHOUT ANY WARRANTY; without even the implied warranty of
         
     | 
| 
      
 12 
     | 
    
         
            +
              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
         
     | 
| 
      
 13 
     | 
    
         
            +
              Lesser General Public License for more details.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              You should have received a copy of the GNU Lesser General Public
         
     | 
| 
      
 16 
     | 
    
         
            +
              License along with this library; if not, write to the Free Software
         
     | 
| 
      
 17 
     | 
    
         
            +
              Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
         
     | 
| 
      
 18 
     | 
    
         
            +
            */
         
     | 
| 
      
 19 
     | 
    
         
            +
            #ifndef GROONGA_OBJ_H
         
     | 
| 
      
 20 
     | 
    
         
            +
            #define GROONGA_OBJ_H
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            #ifdef  __cplusplus
         
     | 
| 
      
 23 
     | 
    
         
            +
            extern "C" {
         
     | 
| 
      
 24 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 27 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_table(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 28 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_proc(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 29 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_function_proc(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 30 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_selector_proc(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 31 
     | 
    
         
            +
            GRN_API grn_bool grn_obj_is_scorer_proc(grn_ctx *ctx, grn_obj *obj);
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            #ifdef __cplusplus
         
     | 
| 
      
 34 
     | 
    
         
            +
            }
         
     | 
| 
      
 35 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            #endif /* GROONGA_OBJ_H */
         
     | 
| 
         @@ -0,0 +1,95 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* -*- c-basic-offset: 2 -*- */
         
     | 
| 
      
 2 
     | 
    
         
            +
            /*
         
     | 
| 
      
 3 
     | 
    
         
            +
              Copyright(C) 2015 Brazil
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              This library is free software; you can redistribute it and/or
         
     | 
| 
      
 6 
     | 
    
         
            +
              modify it under the terms of the GNU Lesser General Public
         
     | 
| 
      
 7 
     | 
    
         
            +
              License version 2.1 as published by the Free Software Foundation.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              This library is distributed in the hope that it will be useful,
         
     | 
| 
      
 10 
     | 
    
         
            +
              but WITHOUT ANY WARRANTY; without even the implied warranty of
         
     | 
| 
      
 11 
     | 
    
         
            +
              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
         
     | 
| 
      
 12 
     | 
    
         
            +
              Lesser General Public License for more details.
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              You should have received a copy of the GNU Lesser General Public
         
     | 
| 
      
 15 
     | 
    
         
            +
              License along with this library; if not, write to the Free Software
         
     | 
| 
      
 16 
     | 
    
         
            +
              Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
         
     | 
| 
      
 17 
     | 
    
         
            +
            */
         
     | 
| 
      
 18 
     | 
    
         
            +
            #ifndef GROONGA_SCORER_H
         
     | 
| 
      
 19 
     | 
    
         
            +
            #define GROONGA_SCORER_H
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            #include <groonga/plugin.h>
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            #ifdef __cplusplus
         
     | 
| 
      
 24 
     | 
    
         
            +
            extern "C" {
         
     | 
| 
      
 25 
     | 
    
         
            +
            #endif  /* __cplusplus */
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            typedef struct _grn_scorer_matched_record grn_scorer_matched_record;
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            GRN_API grn_obj *
         
     | 
| 
      
 30 
     | 
    
         
            +
              grn_scorer_matched_record_get_table(grn_ctx *ctx,
         
     | 
| 
      
 31 
     | 
    
         
            +
                                                  grn_scorer_matched_record *record);
         
     | 
| 
      
 32 
     | 
    
         
            +
            GRN_API grn_obj *
         
     | 
| 
      
 33 
     | 
    
         
            +
              grn_scorer_matched_record_get_lexicon(grn_ctx *ctx,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                                    grn_scorer_matched_record *record);
         
     | 
| 
      
 35 
     | 
    
         
            +
            GRN_API grn_id
         
     | 
| 
      
 36 
     | 
    
         
            +
              grn_scorer_matched_record_get_id(grn_ctx *ctx,
         
     | 
| 
      
 37 
     | 
    
         
            +
                                               grn_scorer_matched_record *record);
         
     | 
| 
      
 38 
     | 
    
         
            +
            GRN_API grn_obj *
         
     | 
| 
      
 39 
     | 
    
         
            +
              grn_scorer_matched_record_get_terms(grn_ctx *ctx,
         
     | 
| 
      
 40 
     | 
    
         
            +
                                                  grn_scorer_matched_record *record);
         
     | 
| 
      
 41 
     | 
    
         
            +
            GRN_API grn_obj *
         
     | 
| 
      
 42 
     | 
    
         
            +
              grn_scorer_matched_record_get_term_weights(grn_ctx *ctx,
         
     | 
| 
      
 43 
     | 
    
         
            +
                                                         grn_scorer_matched_record *record);
         
     | 
| 
      
 44 
     | 
    
         
            +
            GRN_API unsigned int
         
     | 
| 
      
 45 
     | 
    
         
            +
              grn_scorer_matched_record_get_total_term_weights(grn_ctx *ctx,
         
     | 
| 
      
 46 
     | 
    
         
            +
                                                               grn_scorer_matched_record *record);
         
     | 
| 
      
 47 
     | 
    
         
            +
            GRN_API long long unsigned int
         
     | 
| 
      
 48 
     | 
    
         
            +
              grn_scorer_matched_record_get_n_documents(grn_ctx *ctx,
         
     | 
| 
      
 49 
     | 
    
         
            +
                                                        grn_scorer_matched_record *record);
         
     | 
| 
      
 50 
     | 
    
         
            +
            GRN_API unsigned int
         
     | 
| 
      
 51 
     | 
    
         
            +
              grn_scorer_matched_record_get_n_occurrences(grn_ctx *ctx,
         
     | 
| 
      
 52 
     | 
    
         
            +
                                                          grn_scorer_matched_record *record);
         
     | 
| 
      
 53 
     | 
    
         
            +
            GRN_API long long unsigned int
         
     | 
| 
      
 54 
     | 
    
         
            +
              grn_scorer_matched_record_get_n_candidates(grn_ctx *ctx,
         
     | 
| 
      
 55 
     | 
    
         
            +
                                                         grn_scorer_matched_record *record);
         
     | 
| 
      
 56 
     | 
    
         
            +
            GRN_API unsigned int
         
     | 
| 
      
 57 
     | 
    
         
            +
              grn_scorer_matched_record_get_n_tokens(grn_ctx *ctx,
         
     | 
| 
      
 58 
     | 
    
         
            +
                                                     grn_scorer_matched_record *record);
         
     | 
| 
      
 59 
     | 
    
         
            +
            GRN_API int
         
     | 
| 
      
 60 
     | 
    
         
            +
              grn_scorer_matched_record_get_weight(grn_ctx *ctx,
         
     | 
| 
      
 61 
     | 
    
         
            +
                                                   grn_scorer_matched_record *record);
         
     | 
| 
      
 62 
     | 
    
         
            +
            GRN_API grn_obj *
         
     | 
| 
      
 63 
     | 
    
         
            +
              grn_scorer_matched_record_get_arg(grn_ctx *ctx,
         
     | 
| 
      
 64 
     | 
    
         
            +
                                                grn_scorer_matched_record *record,
         
     | 
| 
      
 65 
     | 
    
         
            +
                                                unsigned int i);
         
     | 
| 
      
 66 
     | 
    
         
            +
            GRN_API unsigned int
         
     | 
| 
      
 67 
     | 
    
         
            +
              grn_scorer_matched_record_get_n_args(grn_ctx *ctx,
         
     | 
| 
      
 68 
     | 
    
         
            +
                                                   grn_scorer_matched_record *record);
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            typedef double grn_scorer_score_func(grn_ctx *ctx,
         
     | 
| 
      
 73 
     | 
    
         
            +
                                                 grn_scorer_matched_record *record);
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            /*
         
     | 
| 
      
 76 
     | 
    
         
            +
              grn_scorer_register() registers a plugin to the database which is
         
     | 
| 
      
 77 
     | 
    
         
            +
              associated with `ctx'. `plugin_name_ptr' and `plugin_name_length' specify the
         
     | 
| 
      
 78 
     | 
    
         
            +
              plugin name. Alphabetic letters ('A'-'Z' and 'a'-'z'), digits ('0'-'9') and
         
     | 
| 
      
 79 
     | 
    
         
            +
              an underscore ('_') are capable characters.
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
              `score' is called for scoring matched records one by one.
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
              grn_scorer_register() returns GRN_SUCCESS on success, an error
         
     | 
| 
      
 84 
     | 
    
         
            +
              code on failure.
         
     | 
| 
      
 85 
     | 
    
         
            +
             */
         
     | 
| 
      
 86 
     | 
    
         
            +
            GRN_PLUGIN_EXPORT grn_rc grn_scorer_register(grn_ctx *ctx,
         
     | 
| 
      
 87 
     | 
    
         
            +
                                                         const char *plugin_name_ptr,
         
     | 
| 
      
 88 
     | 
    
         
            +
                                                         int plugin_name_length,
         
     | 
| 
      
 89 
     | 
    
         
            +
                                                         grn_scorer_score_func *score);
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            #ifdef __cplusplus
         
     | 
| 
      
 92 
     | 
    
         
            +
            }  /* extern "C" */
         
     | 
| 
      
 93 
     | 
    
         
            +
            #endif  /* __cplusplus */
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            #endif  /* GROONGA_SCORER_H */
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='tsv.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/home/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32'
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            # Names of additional weak libraries provided by this library
         
     | 
| 
       23 
23 
     | 
    
         
             
            weak_library_names=''
         
     | 
| 
         @@ -38,4 +38,4 @@ dlopen='' 
     | 
|
| 
       38 
38 
     | 
    
         
             
            dlpreopen=''
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
            # Directory that this library needs to be installed in:
         
     | 
| 
       41 
     | 
    
         
            -
            libdir='/home/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/query_expanders'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='eval.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/home/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            # Names of additional weak libraries provided by this library
         
     | 
| 
       23 
23 
     | 
    
         
             
            weak_library_names=''
         
     | 
| 
         @@ -38,4 +38,4 @@ dlopen='' 
     | 
|
| 
       38 
38 
     | 
    
         
             
            dlpreopen=''
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
            # Directory that this library needs to be installed in:
         
     | 
| 
       41 
     | 
    
         
            -
            libdir='/home/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='load.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/home/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            # Names of additional weak libraries provided by this library
         
     | 
| 
       23 
23 
     | 
    
         
             
            weak_library_names=''
         
     | 
| 
         @@ -38,4 +38,4 @@ dlopen='' 
     | 
|
| 
       38 
38 
     | 
    
         
             
            dlpreopen=''
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
            # Directory that this library needs to be installed in:
         
     | 
| 
       41 
     | 
    
         
            -
            libdir='/home/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
         
     | 
| 
         @@ -17,10 +17,10 @@ module Groonga 
     | 
|
| 
       17 
17 
     | 
    
         
             
                    filter = input[:filter]
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                    total = 0
         
     | 
| 
       20 
     | 
    
         
            -
                    enumerator.each do |table, shard_key, shard_range 
     | 
| 
      
 20 
     | 
    
         
            +
                    enumerator.each do |table, shard_key, shard_range|
         
     | 
| 
       21 
21 
     | 
    
         
             
                      total += count_n_records(table, filter,
         
     | 
| 
       22 
22 
     | 
    
         
             
                                               shard_key, shard_range,
         
     | 
| 
       23 
     | 
    
         
            -
                                               enumerator.target_range 
     | 
| 
      
 23 
     | 
    
         
            +
                                               enumerator.target_range)
         
     | 
| 
       24 
24 
     | 
    
         
             
                    end
         
     | 
| 
       25 
25 
     | 
    
         
             
                    writer.write(total)
         
     | 
| 
       26 
26 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -28,7 +28,10 @@ module Groonga 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  private
         
     | 
| 
       29 
29 
     | 
    
         
             
                  def count_n_records(table, filter,
         
     | 
| 
       30 
30 
     | 
    
         
             
                                      shard_key, shard_range,
         
     | 
| 
       31 
     | 
    
         
            -
                                      target_range 
     | 
| 
      
 31 
     | 
    
         
            +
                                      target_range)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    cover_type = target_range.cover_type(shard_range)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    return 0 if cover_type == :none
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       32 
35 
     | 
    
         
             
                    if cover_type == :all
         
     | 
| 
       33 
36 
     | 
    
         
             
                      if filter.nil?
         
     | 
| 
       34 
37 
     | 
    
         
             
                        return table.size
         
     | 
| 
         @@ -2,6 +2,8 @@ module Groonga 
     | 
|
| 
       2 
2 
     | 
    
         
             
              module Sharding
         
     | 
| 
       3 
3 
     | 
    
         
             
                class LogicalEnumerator
         
     | 
| 
       4 
4 
     | 
    
         
             
                  attr_reader :target_range
         
     | 
| 
      
 5 
     | 
    
         
            +
                  attr_reader :logical_table
         
     | 
| 
      
 6 
     | 
    
         
            +
                  attr_reader :shard_key_name
         
     | 
| 
       5 
7 
     | 
    
         
             
                  def initialize(command_name, input)
         
     | 
| 
       6 
8 
     | 
    
         
             
                    @command_name = command_name
         
     | 
| 
       7 
9 
     | 
    
         
             
                    @input = input
         
     | 
| 
         @@ -11,7 +13,9 @@ module Groonga 
     | 
|
| 
       11 
13 
     | 
    
         
             
                  def each
         
     | 
| 
       12 
14 
     | 
    
         
             
                    prefix = "#{@logical_table}_"
         
     | 
| 
       13 
15 
     | 
    
         
             
                    context = Context.instance
         
     | 
| 
       14 
     | 
    
         
            -
                    context.database.each_table(:prefix => prefix 
     | 
| 
      
 16 
     | 
    
         
            +
                    context.database.each_table(:prefix => prefix,
         
     | 
| 
      
 17 
     | 
    
         
            +
                                                :order_by => :key,
         
     | 
| 
      
 18 
     | 
    
         
            +
                                                :order => :ascending) do |table|
         
     | 
| 
       15 
19 
     | 
    
         
             
                      shard_range_raw = table.name[prefix.size..-1]
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
       17 
21 
     | 
    
         
             
                      next unless /\A(\d{4})(\d{2})(\d{2})\z/ =~ shard_range_raw
         
     | 
| 
         @@ -26,10 +30,7 @@ module Groonga 
     | 
|
| 
       26 
30 
     | 
    
         
             
                        raise InvalidArgument, message
         
     | 
| 
       27 
31 
     | 
    
         
             
                      end
         
     | 
| 
       28 
32 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                       
     | 
| 
       30 
     | 
    
         
            -
                      next if cover_type == :none
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                      yield(table, shard_key, shard_range, cover_type)
         
     | 
| 
      
 33 
     | 
    
         
            +
                      yield(table, shard_key, shard_range)
         
     | 
| 
       33 
34 
     | 
    
         
             
                    end
         
     | 
| 
       34 
35 
     | 
    
         
             
                  end
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
         @@ -17,32 +17,436 @@ module Groonga 
     | 
|
| 
       17 
17 
     | 
    
         
             
                           ])
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                  def run_body(input)
         
     | 
| 
       20 
     | 
    
         
            -
                    enumerator = LogicalEnumerator.new("logical_range_filter", input)
         
     | 
| 
       21 
     | 
    
         
            -
                    filter = input[:filter]
         
     | 
| 
       22 
     | 
    
         
            -
                    offset = input[:offset] || 0
         
     | 
| 
       23 
     | 
    
         
            -
                    limit = input[:limit] || 10
         
     | 
| 
       24 
20 
     | 
    
         
             
                    output_columns = input[:output_columns] || "_key, *"
         
     | 
| 
       25 
21 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                     
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
       28 
     | 
    
         
            -
                       
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                       
     | 
| 
       32 
     | 
    
         
            -
                    else
         
     | 
| 
      
 22 
     | 
    
         
            +
                    context = ExecuteContext.new(input)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 24 
     | 
    
         
            +
                      executor = Executor.new(context)
         
     | 
| 
      
 25 
     | 
    
         
            +
                      executor.execute
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                      result_sets = context.result_sets
         
     | 
| 
       33 
28 
     | 
    
         
             
                      n_elements = 1 # for columns
         
     | 
| 
       34 
29 
     | 
    
         
             
                      result_sets.each do |result_set|
         
     | 
| 
       35 
30 
     | 
    
         
             
                        n_elements += result_set.size
         
     | 
| 
       36 
31 
     | 
    
         
             
                      end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                      writer.array("RESULTSET", n_elements) do
         
     | 
| 
      
 34 
     | 
    
         
            +
                        first_result_set = result_sets.first
         
     | 
| 
      
 35 
     | 
    
         
            +
                        if first_result_set
         
     | 
| 
      
 36 
     | 
    
         
            +
                          writer.write_table_columns(first_result_set, output_columns)
         
     | 
| 
      
 37 
     | 
    
         
            +
                        end
         
     | 
| 
      
 38 
     | 
    
         
            +
                        result_sets.each do |result_set|
         
     | 
| 
      
 39 
     | 
    
         
            +
                          writer.write_table_records(result_set, output_columns)
         
     | 
| 
      
 40 
     | 
    
         
            +
                        end
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 43 
     | 
    
         
            +
                      context.close
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  class ExecuteContext
         
     | 
| 
      
 48 
     | 
    
         
            +
                    attr_reader :enumerator
         
     | 
| 
      
 49 
     | 
    
         
            +
                    attr_reader :order
         
     | 
| 
      
 50 
     | 
    
         
            +
                    attr_reader :filter
         
     | 
| 
      
 51 
     | 
    
         
            +
                    attr_reader :offset
         
     | 
| 
      
 52 
     | 
    
         
            +
                    attr_reader :limit
         
     | 
| 
      
 53 
     | 
    
         
            +
                    attr_accessor :current_offset
         
     | 
| 
      
 54 
     | 
    
         
            +
                    attr_accessor :current_limit
         
     | 
| 
      
 55 
     | 
    
         
            +
                    attr_reader :result_sets
         
     | 
| 
      
 56 
     | 
    
         
            +
                    attr_reader :unsorted_result_sets
         
     | 
| 
      
 57 
     | 
    
         
            +
                    attr_reader :threshold
         
     | 
| 
      
 58 
     | 
    
         
            +
                    def initialize(input)
         
     | 
| 
      
 59 
     | 
    
         
            +
                      @input = input
         
     | 
| 
      
 60 
     | 
    
         
            +
                      @enumerator = LogicalEnumerator.new("logical_range_filter", @input)
         
     | 
| 
      
 61 
     | 
    
         
            +
                      @order = parse_order(@input, :order)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      @filter = @input[:filter]
         
     | 
| 
      
 63 
     | 
    
         
            +
                      @offset = (@input[:offset] || 0).to_i
         
     | 
| 
      
 64 
     | 
    
         
            +
                      @limit = (@input[:limit] || 10).to_i
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                      @current_offset = 0
         
     | 
| 
      
 67 
     | 
    
         
            +
                      @current_limit = @limit
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                      @result_sets = []
         
     | 
| 
      
 70 
     | 
    
         
            +
                      @unsorted_result_sets = []
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                      @threshold = compute_threshold
         
     | 
| 
       37 
73 
     | 
    
         
             
                    end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                       
     | 
| 
       41 
     | 
    
         
            -
                         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                    def close
         
     | 
| 
      
 76 
     | 
    
         
            +
                      @unsorted_result_sets.each do |result_set|
         
     | 
| 
      
 77 
     | 
    
         
            +
                        result_set.close if result_set.temporary?
         
     | 
| 
       42 
78 
     | 
    
         
             
                      end
         
     | 
| 
       43 
     | 
    
         
            -
                      result_sets.each do |result_set|
         
     | 
| 
       44 
     | 
    
         
            -
                         
     | 
| 
      
 79 
     | 
    
         
            +
                      @result_sets.each do |result_set|
         
     | 
| 
      
 80 
     | 
    
         
            +
                        result_set.close if result_set.temporary?
         
     | 
| 
      
 81 
     | 
    
         
            +
                      end
         
     | 
| 
      
 82 
     | 
    
         
            +
                    end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                    private
         
     | 
| 
      
 85 
     | 
    
         
            +
                    def parse_order(input, name)
         
     | 
| 
      
 86 
     | 
    
         
            +
                      order = input[name]
         
     | 
| 
      
 87 
     | 
    
         
            +
                      return :ascending if order.nil?
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                      case order
         
     | 
| 
      
 90 
     | 
    
         
            +
                      when "ascending"
         
     | 
| 
      
 91 
     | 
    
         
            +
                        :ascending
         
     | 
| 
      
 92 
     | 
    
         
            +
                      when "descending"
         
     | 
| 
      
 93 
     | 
    
         
            +
                        :descending
         
     | 
| 
      
 94 
     | 
    
         
            +
                      else
         
     | 
| 
      
 95 
     | 
    
         
            +
                        message =
         
     | 
| 
      
 96 
     | 
    
         
            +
                          "[logical_range_filter] #{name} must be " +
         
     | 
| 
      
 97 
     | 
    
         
            +
                          "\"ascending\" or \"descending\": <#{order}>"
         
     | 
| 
      
 98 
     | 
    
         
            +
                        raise InvalidArgument, message
         
     | 
| 
      
 99 
     | 
    
         
            +
                      end
         
     | 
| 
      
 100 
     | 
    
         
            +
                    end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                    def compute_threshold
         
     | 
| 
      
 103 
     | 
    
         
            +
                      threshold_env = ENV["GRN_LOGICAL_RANGE_FILTER_THRESHOLD"]
         
     | 
| 
      
 104 
     | 
    
         
            +
                      default_threshold = 0.000058 # 15000 / 259200000.0
         
     | 
| 
      
 105 
     | 
    
         
            +
                      (threshold_env || default_threshold).to_f
         
     | 
| 
      
 106 
     | 
    
         
            +
                    end
         
     | 
| 
      
 107 
     | 
    
         
            +
                  end
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                  class Executor
         
     | 
| 
      
 110 
     | 
    
         
            +
                    def initialize(context)
         
     | 
| 
      
 111 
     | 
    
         
            +
                      @context = context
         
     | 
| 
      
 112 
     | 
    
         
            +
                    end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                    def execute
         
     | 
| 
      
 115 
     | 
    
         
            +
                      first_table = nil
         
     | 
| 
      
 116 
     | 
    
         
            +
                      enumerator = @context.enumerator
         
     | 
| 
      
 117 
     | 
    
         
            +
                      enumerator.each do |table, shard_key, shard_range|
         
     | 
| 
      
 118 
     | 
    
         
            +
                        first_table ||= table
         
     | 
| 
      
 119 
     | 
    
         
            +
                        next if table.empty?
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                        shard_executor = ShardExecutor.new(@context,
         
     | 
| 
      
 122 
     | 
    
         
            +
                                                           table, shard_key, shard_range)
         
     | 
| 
      
 123 
     | 
    
         
            +
                        shard_executor.execute
         
     | 
| 
      
 124 
     | 
    
         
            +
                        break if @context.current_limit == 0
         
     | 
| 
      
 125 
     | 
    
         
            +
                      end
         
     | 
| 
      
 126 
     | 
    
         
            +
                      if first_table.nil?
         
     | 
| 
      
 127 
     | 
    
         
            +
                        message =
         
     | 
| 
      
 128 
     | 
    
         
            +
                          "[logical_range_filter] no shard exists: " +
         
     | 
| 
      
 129 
     | 
    
         
            +
                          "logical_table: <#{enumerator.logical_table}>: " +
         
     | 
| 
      
 130 
     | 
    
         
            +
                          "shard_key: <#{enumerator.shard_key_name}>"
         
     | 
| 
      
 131 
     | 
    
         
            +
                        raise InvalidArgument, message
         
     | 
| 
      
 132 
     | 
    
         
            +
                      end
         
     | 
| 
      
 133 
     | 
    
         
            +
                      if @context.result_sets.empty?
         
     | 
| 
      
 134 
     | 
    
         
            +
                        result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
         
     | 
| 
      
 135 
     | 
    
         
            +
                                                      :key_type => first_table)
         
     | 
| 
      
 136 
     | 
    
         
            +
                        @context.result_sets << result_set
         
     | 
| 
      
 137 
     | 
    
         
            +
                      end
         
     | 
| 
      
 138 
     | 
    
         
            +
                    end
         
     | 
| 
      
 139 
     | 
    
         
            +
                  end
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
                  class ShardExecutor
         
     | 
| 
      
 142 
     | 
    
         
            +
                    def initialize(context, table, shard_key, shard_range)
         
     | 
| 
      
 143 
     | 
    
         
            +
                      @context = context
         
     | 
| 
      
 144 
     | 
    
         
            +
                      @table = table
         
     | 
| 
      
 145 
     | 
    
         
            +
                      @shard_key = shard_key
         
     | 
| 
      
 146 
     | 
    
         
            +
                      @shard_range = shard_range
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
                      @filter = @context.filter
         
     | 
| 
      
 149 
     | 
    
         
            +
                      @result_sets = @context.result_sets
         
     | 
| 
      
 150 
     | 
    
         
            +
                      @unsorted_result_sets = @context.unsorted_result_sets
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
                      @target_range = @context.enumerator.target_range
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
                      @cover_type = @target_range.cover_type(@shard_range)
         
     | 
| 
      
 155 
     | 
    
         
            +
                    end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                    def execute
         
     | 
| 
      
 158 
     | 
    
         
            +
                      return if @cover_type == :none
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                      index_info = @shard_key.find_index(Operator::LESS)
         
     | 
| 
      
 161 
     | 
    
         
            +
                      if index_info
         
     | 
| 
      
 162 
     | 
    
         
            +
                        range_index = index_info.index
         
     | 
| 
      
 163 
     | 
    
         
            +
                        range_index = nil unless use_range_index?(range_index)
         
     | 
| 
      
 164 
     | 
    
         
            +
                      else
         
     | 
| 
      
 165 
     | 
    
         
            +
                        range_index = nil
         
     | 
| 
      
 166 
     | 
    
         
            +
                      end
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
                      case @cover_type
         
     | 
| 
      
 169 
     | 
    
         
            +
                      when :all
         
     | 
| 
      
 170 
     | 
    
         
            +
                        filter_shard_all(range_index)
         
     | 
| 
      
 171 
     | 
    
         
            +
                      when :partial_min
         
     | 
| 
      
 172 
     | 
    
         
            +
                        if range_index
         
     | 
| 
      
 173 
     | 
    
         
            +
                          filter_by_range(range_index,
         
     | 
| 
      
 174 
     | 
    
         
            +
                                          @target_range.min, @target_range.min_border,
         
     | 
| 
      
 175 
     | 
    
         
            +
                                          nil, nil)
         
     | 
| 
      
 176 
     | 
    
         
            +
                        else
         
     | 
| 
      
 177 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 178 
     | 
    
         
            +
                            build_expression_partial_min(expression)
         
     | 
| 
      
 179 
     | 
    
         
            +
                          end
         
     | 
| 
      
 180 
     | 
    
         
            +
                        end
         
     | 
| 
      
 181 
     | 
    
         
            +
                      when :partial_max
         
     | 
| 
      
 182 
     | 
    
         
            +
                        if range_index
         
     | 
| 
      
 183 
     | 
    
         
            +
                          filter_by_range(range_index,
         
     | 
| 
      
 184 
     | 
    
         
            +
                                          nil, nil,
         
     | 
| 
      
 185 
     | 
    
         
            +
                                          @target_range.max, @target_range.max_border)
         
     | 
| 
      
 186 
     | 
    
         
            +
                        else
         
     | 
| 
      
 187 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 188 
     | 
    
         
            +
                            build_expression_partial_max(expression)
         
     | 
| 
      
 189 
     | 
    
         
            +
                          end
         
     | 
| 
      
 190 
     | 
    
         
            +
                        end
         
     | 
| 
      
 191 
     | 
    
         
            +
                      when :partial_min_and_max
         
     | 
| 
      
 192 
     | 
    
         
            +
                        if range_index
         
     | 
| 
      
 193 
     | 
    
         
            +
                          filter_by_range(range_index,
         
     | 
| 
      
 194 
     | 
    
         
            +
                                          @target_range.min, @target_range.min_border,
         
     | 
| 
      
 195 
     | 
    
         
            +
                                          @target_range.max, @target_range.max_border)
         
     | 
| 
      
 196 
     | 
    
         
            +
                        else
         
     | 
| 
      
 197 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 198 
     | 
    
         
            +
                            build_expression_partial_min_and_max(expression)
         
     | 
| 
      
 199 
     | 
    
         
            +
                          end
         
     | 
| 
      
 200 
     | 
    
         
            +
                        end
         
     | 
| 
      
 201 
     | 
    
         
            +
                      end
         
     | 
| 
      
 202 
     | 
    
         
            +
                    end
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
                    private
         
     | 
| 
      
 205 
     | 
    
         
            +
                    def build_expression_all(expression)
         
     | 
| 
      
 206 
     | 
    
         
            +
                      expression.parse(@filter)
         
     | 
| 
      
 207 
     | 
    
         
            +
                    end
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
                    def build_expression_partial_min(expression)
         
     | 
| 
      
 210 
     | 
    
         
            +
                      expression.append_object(@shard_key, Operator::PUSH, 1)
         
     | 
| 
      
 211 
     | 
    
         
            +
                      expression.append_operator(Operator::GET_VALUE, 1)
         
     | 
| 
      
 212 
     | 
    
         
            +
                      expression.append_constant(@target_range.min, Operator::PUSH, 1)
         
     | 
| 
      
 213 
     | 
    
         
            +
                      if @target_range.min_border == :include
         
     | 
| 
      
 214 
     | 
    
         
            +
                        expression.append_operator(Operator::GREATER_EQUAL, 2)
         
     | 
| 
      
 215 
     | 
    
         
            +
                      else
         
     | 
| 
      
 216 
     | 
    
         
            +
                        expression.append_operator(Operator::GREATER, 2)
         
     | 
| 
      
 217 
     | 
    
         
            +
                      end
         
     | 
| 
      
 218 
     | 
    
         
            +
                      if @filter
         
     | 
| 
      
 219 
     | 
    
         
            +
                        expression.parse(@filter)
         
     | 
| 
      
 220 
     | 
    
         
            +
                        expression.append_operator(Operator::AND, 2)
         
     | 
| 
      
 221 
     | 
    
         
            +
                      end
         
     | 
| 
      
 222 
     | 
    
         
            +
                    end
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
                    def build_expression_partial_max(expression)
         
     | 
| 
      
 225 
     | 
    
         
            +
                      expression.append_object(@shard_key, Operator::PUSH, 1)
         
     | 
| 
      
 226 
     | 
    
         
            +
                      expression.append_operator(Operator::GET_VALUE, 1)
         
     | 
| 
      
 227 
     | 
    
         
            +
                      expression.append_constant(@target_range.max, Operator::PUSH, 1)
         
     | 
| 
      
 228 
     | 
    
         
            +
                      if @target_range.max_border == :include
         
     | 
| 
      
 229 
     | 
    
         
            +
                        expression.append_operator(Operator::LESS_EQUAL, 2)
         
     | 
| 
      
 230 
     | 
    
         
            +
                      else
         
     | 
| 
      
 231 
     | 
    
         
            +
                        expression.append_operator(Operator::LESS, 2)
         
     | 
| 
      
 232 
     | 
    
         
            +
                      end
         
     | 
| 
      
 233 
     | 
    
         
            +
                      if @filter
         
     | 
| 
      
 234 
     | 
    
         
            +
                        expression.parse(@filter)
         
     | 
| 
      
 235 
     | 
    
         
            +
                        expression.append_operator(Operator::AND, 2)
         
     | 
| 
      
 236 
     | 
    
         
            +
                      end
         
     | 
| 
      
 237 
     | 
    
         
            +
                    end
         
     | 
| 
      
 238 
     | 
    
         
            +
             
     | 
| 
      
 239 
     | 
    
         
            +
                    def build_expression_partial_min_and_max(expression)
         
     | 
| 
      
 240 
     | 
    
         
            +
                      between = Groonga::Context.instance["between"]
         
     | 
| 
      
 241 
     | 
    
         
            +
                      expression.append_object(between, Operator::PUSH, 1)
         
     | 
| 
      
 242 
     | 
    
         
            +
                      expression.append_object(@shard_key, Operator::PUSH, 1)
         
     | 
| 
      
 243 
     | 
    
         
            +
                      expression.append_operator(Operator::GET_VALUE, 1)
         
     | 
| 
      
 244 
     | 
    
         
            +
                      expression.append_constant(@target_range.min, Operator::PUSH, 1)
         
     | 
| 
      
 245 
     | 
    
         
            +
                      expression.append_constant(@target_range.min_border,
         
     | 
| 
      
 246 
     | 
    
         
            +
                                                 Operator::PUSH, 1)
         
     | 
| 
      
 247 
     | 
    
         
            +
                      expression.append_constant(@target_range.max, Operator::PUSH, 1)
         
     | 
| 
      
 248 
     | 
    
         
            +
                      expression.append_constant(@target_range.max_border,
         
     | 
| 
      
 249 
     | 
    
         
            +
                                                 Operator::PUSH, 1)
         
     | 
| 
      
 250 
     | 
    
         
            +
                      expression.append_operator(Operator::CALL, 5)
         
     | 
| 
      
 251 
     | 
    
         
            +
                      if @filter
         
     | 
| 
      
 252 
     | 
    
         
            +
                        expression.parse(@filter)
         
     | 
| 
      
 253 
     | 
    
         
            +
                        expression.append_operator(Operator::AND, 2)
         
     | 
| 
      
 254 
     | 
    
         
            +
                      end
         
     | 
| 
      
 255 
     | 
    
         
            +
                    end
         
     | 
| 
      
 256 
     | 
    
         
            +
             
     | 
| 
      
 257 
     | 
    
         
            +
                    def use_range_index?(range_index)
         
     | 
| 
      
 258 
     | 
    
         
            +
                      return false unless ENV["GRN_LOGICAL_RANGE_FILTER_ENABLED"] == "yes"
         
     | 
| 
      
 259 
     | 
    
         
            +
             
     | 
| 
      
 260 
     | 
    
         
            +
                      required_n_records = @context.current_offset + @context.current_limit
         
     | 
| 
      
 261 
     | 
    
         
            +
                      max_n_records = @table.size
         
     | 
| 
      
 262 
     | 
    
         
            +
                      if max_n_records <= required_n_records
         
     | 
| 
      
 263 
     | 
    
         
            +
                        return false
         
     | 
| 
      
 264 
     | 
    
         
            +
                      end
         
     | 
| 
      
 265 
     | 
    
         
            +
             
     | 
| 
      
 266 
     | 
    
         
            +
                      threshold = @context.threshold
         
     | 
| 
      
 267 
     | 
    
         
            +
                      if threshold <= 0
         
     | 
| 
      
 268 
     | 
    
         
            +
                        return false
         
     | 
| 
      
 269 
     | 
    
         
            +
                      end
         
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
      
 271 
     | 
    
         
            +
                      estimated_n_records = 0
         
     | 
| 
      
 272 
     | 
    
         
            +
                      case @cover_type
         
     | 
| 
      
 273 
     | 
    
         
            +
                      when :all
         
     | 
| 
      
 274 
     | 
    
         
            +
                        if @filter
         
     | 
| 
      
 275 
     | 
    
         
            +
                          create_expression(@table) do |expression|
         
     | 
| 
      
 276 
     | 
    
         
            +
                            build_expression_all(expression)
         
     | 
| 
      
 277 
     | 
    
         
            +
                            estimated_n_records = expression.estimate_size
         
     | 
| 
      
 278 
     | 
    
         
            +
                          end
         
     | 
| 
      
 279 
     | 
    
         
            +
                        else
         
     | 
| 
      
 280 
     | 
    
         
            +
                          estimated_n_records = max_n_records
         
     | 
| 
      
 281 
     | 
    
         
            +
                        end
         
     | 
| 
      
 282 
     | 
    
         
            +
                      when :partial_min
         
     | 
| 
      
 283 
     | 
    
         
            +
                        create_expression(@table) do |expression|
         
     | 
| 
      
 284 
     | 
    
         
            +
                            build_expression_partial_min(expression)
         
     | 
| 
      
 285 
     | 
    
         
            +
                          estimated_n_records = expression.estimate_size
         
     | 
| 
      
 286 
     | 
    
         
            +
                        end
         
     | 
| 
      
 287 
     | 
    
         
            +
                      when :partial_max
         
     | 
| 
      
 288 
     | 
    
         
            +
                        create_expression(@table) do |expression|
         
     | 
| 
      
 289 
     | 
    
         
            +
                          build_expression_partial_max(expression)
         
     | 
| 
      
 290 
     | 
    
         
            +
                          estimated_n_records = expression.estimate_size
         
     | 
| 
      
 291 
     | 
    
         
            +
                        end
         
     | 
| 
      
 292 
     | 
    
         
            +
                      when :partial_min_and_max
         
     | 
| 
      
 293 
     | 
    
         
            +
                        create_expression(@table) do |expression|
         
     | 
| 
      
 294 
     | 
    
         
            +
                          build_expression_partial_min_and_max(expression)
         
     | 
| 
      
 295 
     | 
    
         
            +
                          estimated_n_records = expression.estimate_size
         
     | 
| 
      
 296 
     | 
    
         
            +
                        end
         
     | 
| 
      
 297 
     | 
    
         
            +
                      end
         
     | 
| 
      
 298 
     | 
    
         
            +
             
     | 
| 
      
 299 
     | 
    
         
            +
                      if estimated_n_records <= required_n_records
         
     | 
| 
      
 300 
     | 
    
         
            +
                        return false
         
     | 
| 
      
 301 
     | 
    
         
            +
                      end
         
     | 
| 
      
 302 
     | 
    
         
            +
             
     | 
| 
      
 303 
     | 
    
         
            +
                      hit_ratio = estimated_n_records / max_n_records.to_f
         
     | 
| 
      
 304 
     | 
    
         
            +
                      hit_ratio >= threshold
         
     | 
| 
      
 305 
     | 
    
         
            +
                    end
         
     | 
| 
      
 306 
     | 
    
         
            +
             
     | 
| 
      
 307 
     | 
    
         
            +
                    def filter_shard_all(range_index)
         
     | 
| 
      
 308 
     | 
    
         
            +
                      if @filter.nil?
         
     | 
| 
      
 309 
     | 
    
         
            +
                        if @table.size <= @context.current_offset
         
     | 
| 
      
 310 
     | 
    
         
            +
                          @context.current_offset -= @table.size
         
     | 
| 
      
 311 
     | 
    
         
            +
                          return
         
     | 
| 
      
 312 
     | 
    
         
            +
                        end
         
     | 
| 
      
 313 
     | 
    
         
            +
                        if range_index
         
     | 
| 
      
 314 
     | 
    
         
            +
                          filter_by_range(range_index,
         
     | 
| 
      
 315 
     | 
    
         
            +
                                          nil, nil,
         
     | 
| 
      
 316 
     | 
    
         
            +
                                          nil, nil)
         
     | 
| 
      
 317 
     | 
    
         
            +
                        else
         
     | 
| 
      
 318 
     | 
    
         
            +
                          sort_result_set(@table)
         
     | 
| 
      
 319 
     | 
    
         
            +
                        end
         
     | 
| 
      
 320 
     | 
    
         
            +
                      else
         
     | 
| 
      
 321 
     | 
    
         
            +
                        if range_index
         
     | 
| 
      
 322 
     | 
    
         
            +
                          filter_by_range(range_index,
         
     | 
| 
      
 323 
     | 
    
         
            +
                                          nil, nil,
         
     | 
| 
      
 324 
     | 
    
         
            +
                                          nil, nil)
         
     | 
| 
      
 325 
     | 
    
         
            +
                        else
         
     | 
| 
      
 326 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 327 
     | 
    
         
            +
                            build_expression_all(expression)
         
     | 
| 
      
 328 
     | 
    
         
            +
                          end
         
     | 
| 
      
 329 
     | 
    
         
            +
                        end
         
     | 
| 
      
 330 
     | 
    
         
            +
                      end
         
     | 
| 
      
 331 
     | 
    
         
            +
                    end
         
     | 
| 
      
 332 
     | 
    
         
            +
             
     | 
| 
      
 333 
     | 
    
         
            +
                    def create_expression(table)
         
     | 
| 
      
 334 
     | 
    
         
            +
                      expression = Expression.create(table)
         
     | 
| 
      
 335 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 336 
     | 
    
         
            +
                        yield(expression)
         
     | 
| 
      
 337 
     | 
    
         
            +
                      ensure
         
     | 
| 
      
 338 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 339 
     | 
    
         
            +
                      end
         
     | 
| 
      
 340 
     | 
    
         
            +
                    end
         
     | 
| 
      
 341 
     | 
    
         
            +
             
     | 
| 
      
 342 
     | 
    
         
            +
                    def filter_by_range(range_index,
         
     | 
| 
      
 343 
     | 
    
         
            +
                                        min, min_border, max, max_border)
         
     | 
| 
      
 344 
     | 
    
         
            +
                      lexicon = range_index.domain
         
     | 
| 
      
 345 
     | 
    
         
            +
                      data_table = range_index.range
         
     | 
| 
      
 346 
     | 
    
         
            +
                      flags = build_range_search_flags(min_border, max_border)
         
     | 
| 
      
 347 
     | 
    
         
            +
             
     | 
| 
      
 348 
     | 
    
         
            +
                      result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
         
     | 
| 
      
 349 
     | 
    
         
            +
                                                    :key_type => data_table)
         
     | 
| 
      
 350 
     | 
    
         
            +
                      n_matched_records = 0
         
     | 
| 
      
 351 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 352 
     | 
    
         
            +
                        TableCursor.open(lexicon,
         
     | 
| 
      
 353 
     | 
    
         
            +
                                         :min => min,
         
     | 
| 
      
 354 
     | 
    
         
            +
                                         :max => max,
         
     | 
| 
      
 355 
     | 
    
         
            +
                                         :flags => flags) do |table_cursor|
         
     | 
| 
      
 356 
     | 
    
         
            +
                          options = {
         
     | 
| 
      
 357 
     | 
    
         
            +
                            :offset => @context.current_offset,
         
     | 
| 
      
 358 
     | 
    
         
            +
                            :limit => @context.current_limit,
         
     | 
| 
      
 359 
     | 
    
         
            +
                          }
         
     | 
| 
      
 360 
     | 
    
         
            +
                          if @filter
         
     | 
| 
      
 361 
     | 
    
         
            +
                            create_expression(data_table) do |expression|
         
     | 
| 
      
 362 
     | 
    
         
            +
                              expression.parse(@filter)
         
     | 
| 
      
 363 
     | 
    
         
            +
                              options[:expression] = expression
         
     | 
| 
      
 364 
     | 
    
         
            +
                              IndexCursor.open(table_cursor, range_index) do |index_cursor|
         
     | 
| 
      
 365 
     | 
    
         
            +
                                n_matched_records = index_cursor.select(result_set, options)
         
     | 
| 
      
 366 
     | 
    
         
            +
                              end
         
     | 
| 
      
 367 
     | 
    
         
            +
                            end
         
     | 
| 
      
 368 
     | 
    
         
            +
                          else
         
     | 
| 
      
 369 
     | 
    
         
            +
                            IndexCursor.open(table_cursor, range_index) do |index_cursor|
         
     | 
| 
      
 370 
     | 
    
         
            +
                              n_matched_records = index_cursor.select(result_set, options)
         
     | 
| 
      
 371 
     | 
    
         
            +
                            end
         
     | 
| 
      
 372 
     | 
    
         
            +
                          end
         
     | 
| 
      
 373 
     | 
    
         
            +
                        end
         
     | 
| 
      
 374 
     | 
    
         
            +
                      rescue
         
     | 
| 
      
 375 
     | 
    
         
            +
                        result_set.close
         
     | 
| 
      
 376 
     | 
    
         
            +
                        raise
         
     | 
| 
      
 377 
     | 
    
         
            +
                      end
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
                      if n_matched_records <= @context.current_offset
         
     | 
| 
      
 380 
     | 
    
         
            +
                        @context.current_offset -= n_matched_records
         
     | 
| 
      
 381 
     | 
    
         
            +
                        result_set.close
         
     | 
| 
      
 382 
     | 
    
         
            +
                        return
         
     | 
| 
      
 383 
     | 
    
         
            +
                      end
         
     | 
| 
      
 384 
     | 
    
         
            +
             
     | 
| 
      
 385 
     | 
    
         
            +
                      if @context.current_offset > 0
         
     | 
| 
      
 386 
     | 
    
         
            +
                        @context.current_offset = 0
         
     | 
| 
      
 387 
     | 
    
         
            +
                      end
         
     | 
| 
      
 388 
     | 
    
         
            +
                      @context.current_limit -= result_set.size
         
     | 
| 
      
 389 
     | 
    
         
            +
                      @result_sets << result_set
         
     | 
| 
      
 390 
     | 
    
         
            +
                    end
         
     | 
| 
      
 391 
     | 
    
         
            +
             
     | 
| 
      
 392 
     | 
    
         
            +
                    def build_range_search_flags(min_border, max_border)
         
     | 
| 
      
 393 
     | 
    
         
            +
                      flags = TableCursorFlags::BY_KEY
         
     | 
| 
      
 394 
     | 
    
         
            +
                      case @context.order
         
     | 
| 
      
 395 
     | 
    
         
            +
                      when :ascending
         
     | 
| 
      
 396 
     | 
    
         
            +
                        flags |= TableCursorFlags::ASCENDING
         
     | 
| 
      
 397 
     | 
    
         
            +
                      when :descending
         
     | 
| 
      
 398 
     | 
    
         
            +
                        flags |= TableCursorFlags::DESCENDING
         
     | 
| 
      
 399 
     | 
    
         
            +
                      end
         
     | 
| 
      
 400 
     | 
    
         
            +
                      case min_border
         
     | 
| 
      
 401 
     | 
    
         
            +
                      when :include
         
     | 
| 
      
 402 
     | 
    
         
            +
                        flags |= TableCursorFlags::GE
         
     | 
| 
      
 403 
     | 
    
         
            +
                      when :exclude
         
     | 
| 
      
 404 
     | 
    
         
            +
                        flags |= TableCursorFlags::GT
         
     | 
| 
      
 405 
     | 
    
         
            +
                      end
         
     | 
| 
      
 406 
     | 
    
         
            +
                      case max_border
         
     | 
| 
      
 407 
     | 
    
         
            +
                      when :include
         
     | 
| 
      
 408 
     | 
    
         
            +
                        flags |= TableCursorFlags::LE
         
     | 
| 
      
 409 
     | 
    
         
            +
                      when :exclude
         
     | 
| 
      
 410 
     | 
    
         
            +
                        flags |= TableCursorFlags::LT
         
     | 
| 
      
 411 
     | 
    
         
            +
                      end
         
     | 
| 
      
 412 
     | 
    
         
            +
                      flags
         
     | 
| 
      
 413 
     | 
    
         
            +
                    end
         
     | 
| 
      
 414 
     | 
    
         
            +
             
     | 
| 
      
 415 
     | 
    
         
            +
                    def filter_table
         
     | 
| 
      
 416 
     | 
    
         
            +
                      create_expression(@table) do |expression|
         
     | 
| 
      
 417 
     | 
    
         
            +
                        yield(expression)
         
     | 
| 
      
 418 
     | 
    
         
            +
                        result_set = @table.select(expression)
         
     | 
| 
      
 419 
     | 
    
         
            +
                        sort_result_set(result_set)
         
     | 
| 
      
 420 
     | 
    
         
            +
                      end
         
     | 
| 
      
 421 
     | 
    
         
            +
                    end
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
      
 423 
     | 
    
         
            +
                    def sort_result_set(result_set)
         
     | 
| 
      
 424 
     | 
    
         
            +
                      if result_set.empty?
         
     | 
| 
      
 425 
     | 
    
         
            +
                        result_set.close if result_set.temporary?
         
     | 
| 
      
 426 
     | 
    
         
            +
                        return
         
     | 
| 
      
 427 
     | 
    
         
            +
                      end
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
                      if result_set.size <= @context.current_offset
         
     | 
| 
      
 430 
     | 
    
         
            +
                        @context.current_offset -= result_set.size
         
     | 
| 
      
 431 
     | 
    
         
            +
                        result_set.close if result_set.temporary?
         
     | 
| 
      
 432 
     | 
    
         
            +
                        return
         
     | 
| 
      
 433 
     | 
    
         
            +
                      end
         
     | 
| 
      
 434 
     | 
    
         
            +
             
     | 
| 
      
 435 
     | 
    
         
            +
                      @unsorted_result_sets << result_set if result_set.temporary?
         
     | 
| 
      
 436 
     | 
    
         
            +
                      sort_keys = [
         
     | 
| 
      
 437 
     | 
    
         
            +
                        {
         
     | 
| 
      
 438 
     | 
    
         
            +
                          :key => @context.enumerator.shard_key_name,
         
     | 
| 
      
 439 
     | 
    
         
            +
                          :order => @context.order,
         
     | 
| 
      
 440 
     | 
    
         
            +
                        },
         
     | 
| 
      
 441 
     | 
    
         
            +
                      ]
         
     | 
| 
      
 442 
     | 
    
         
            +
                      sorted_result_set = result_set.sort(sort_keys,
         
     | 
| 
      
 443 
     | 
    
         
            +
                                                          :offset => @context.current_offset,
         
     | 
| 
      
 444 
     | 
    
         
            +
                                                          :limit => @context.current_limit)
         
     | 
| 
      
 445 
     | 
    
         
            +
                      @result_sets << sorted_result_set
         
     | 
| 
      
 446 
     | 
    
         
            +
                      if @context.current_offset > 0
         
     | 
| 
      
 447 
     | 
    
         
            +
                        @context.current_offset = 0
         
     | 
| 
       45 
448 
     | 
    
         
             
                      end
         
     | 
| 
      
 449 
     | 
    
         
            +
                      @context.current_limit -= sorted_result_set.size
         
     | 
| 
       46 
450 
     | 
    
         
             
                    end
         
     | 
| 
       47 
451 
     | 
    
         
             
                  end
         
     | 
| 
       48 
452 
     | 
    
         
             
                end
         
     |