rroonga 5.0.3-x86-mingw32 → 5.0.4-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/README.md +1 -1
 - data/ext/groonga/rb-grn-column.c +2 -0
 - data/ext/groonga/rb-grn-database.c +1 -0
 - data/ext/groonga/rb-grn-flushable.c +81 -0
 - data/ext/groonga/rb-grn-table.c +1 -0
 - data/ext/groonga/rb-grn.h +3 -1
 - data/ext/groonga/rb-groonga.c +1 -0
 - 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/rroonga-build.rb +3 -3
 - data/test/test-flushable.rb +49 -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/libgroonga-0.dll +0 -0
 - data/vendor/local/bin/libmecab-1.dll +0 -0
 - data/vendor/local/bin/libmsgpack-4.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/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/httpd/groonga-httpd.conf +2 -2
 - data/vendor/local/include/groonga/groonga/groonga.h +2 -0
 - data/vendor/local/include/groonga/groonga/plugin.h +5 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.la +2 -2
 - 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.rb +2 -0
 - data/vendor/local/lib/groonga/plugins/sharding/logical_enumerator.rb +135 -21
 - data/vendor/local/lib/groonga/plugins/sharding/logical_select.rb +174 -0
 - data/vendor/local/lib/groonga/plugins/sharding/logical_table_remove.rb +70 -0
 - 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/initialize/post.rb +1 -0
 - data/vendor/local/lib/groonga/scripts/ruby/table.rb +77 -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.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.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.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 -2
 - 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/_sources/development/travis-ci.txt +6 -1
 - 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 +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +3 -3
 - 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 +67 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/dump.txt +11 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/io_flush.txt +60 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_select.txt +100 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_table_remove.txt +94 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga.txt +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/normalizers.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/tuning.txt +32 -30
 - data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/match_columns.txt +6 -6
 - data/vendor/local/share/doc/groonga/en/html/characteristic.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/client.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/community.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/development.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +11 -7
 - data/vendor/local/share/doc/groonga/en/html/genindex.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/index.html +36 -33
 - data/vendor/local/share/doc/groonga/en/html/install.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/install/centos.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/debian.html +9 -9
 - data/vendor/local/share/doc/groonga/en/html/install/fedora.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +8 -8
 - data/vendor/local/share/doc/groonga/en/html/install/windows.html +14 -14
 - data/vendor/local/share/doc/groonga/en/html/limitations.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news.html +129 -46
 - data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/2.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/3.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/4.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/en/html/reference.html +36 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/api.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/column.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/command.html +36 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/command/request_id.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +23 -12
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/io_flush.html +197 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +30 -30
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +27 -27
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +27 -27
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +27 -27
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +29 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +43 -43
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +50 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_select.html +238 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_table_remove.html +232 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +38 -38
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +31 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +29 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +29 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +107 -107
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +27 -27
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +49 -49
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +39 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +238 -105
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/executables.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +6 -6
 - data/vendor/local/share/doc/groonga/en/html/reference/function.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_full.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_html.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_size.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/log.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +6 -6
 - data/vendor/local/share/doc/groonga/en/html/reference/operations.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/output.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/scoring_note.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/tables.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +37 -35
 - data/vendor/local/share/doc/groonga/en/html/reference/types.html +9 -9
 - data/vendor/local/share/doc/groonga/en/html/search.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/en/html/server.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/http.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/memcached.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/server/package.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/spec.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +7 -7
 - data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/development/travis-ci.txt +6 -1
 - 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 +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +3 -3
 - 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 +67 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/dump.txt +11 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/io_flush.txt +60 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_select.txt +100 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_table_remove.txt +94 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga.txt +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/normalizers.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tuning.txt +32 -30
 - data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/match_columns.txt +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/characteristic.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/client.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/community.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/development.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +9 -7
 - data/vendor/local/share/doc/groonga/ja/html/genindex.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/index.html +37 -34
 - data/vendor/local/share/doc/groonga/ja/html/install.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/install/centos.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/debian.html +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/others.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/install/windows.html +14 -14
 - data/vendor/local/share/doc/groonga/ja/html/limitations.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news.html +126 -47
 - data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference.html +37 -34
 - data/vendor/local/share/doc/groonga/ja/html/reference/api.html +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/column.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/command.html +36 -33
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/request_id.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +23 -12
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/io_flush.html +198 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +30 -30
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +27 -27
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +27 -27
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +27 -27
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +29 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +43 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +50 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_select.html +236 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_table_remove.html +230 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +38 -38
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +31 -31
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +29 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +29 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +107 -107
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +27 -27
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +49 -49
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +39 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +238 -105
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/reference/function.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_full.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_html.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_size.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/log.html +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/output.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/scoring_note.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +41 -71
 - data/vendor/local/share/doc/groonga/ja/html/reference/types.html +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/search.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/server.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/server/package.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/spec.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/tutorial.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +7 -7
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
 - data/vendor/local/share/man/ja/man1/groonga.1 +487 -164
 - data/vendor/local/share/man/man1/groonga.1 +492 -129
 - metadata +20 -2
 
| 
         @@ -20,15 +20,37 @@ module Groonga 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  private
         
     | 
| 
       22 
22 
     | 
    
         
             
                  def each_internal(order)
         
     | 
| 
       23 
     | 
    
         
            -
                    prefix = "#{@logical_table}_"
         
     | 
| 
       24 
23 
     | 
    
         
             
                    context = Context.instance
         
     | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                       
     | 
| 
      
 24 
     | 
    
         
            +
                    each_shard_with_around(order) do |prev_shard, current_shard, next_shard|
         
     | 
| 
      
 25 
     | 
    
         
            +
                      table = current_shard.table
         
     | 
| 
      
 26 
     | 
    
         
            +
                      shard_range_data = current_shard.range_data
         
     | 
| 
      
 27 
     | 
    
         
            +
                      shard_range = nil
         
     | 
| 
       29 
28 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                       
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
                      if shard_range_data.day.nil?
         
     | 
| 
      
 30 
     | 
    
         
            +
                        if order == :ascending
         
     | 
| 
      
 31 
     | 
    
         
            +
                          if next_shard
         
     | 
| 
      
 32 
     | 
    
         
            +
                            next_shard_range_data = next_shard.range_data
         
     | 
| 
      
 33 
     | 
    
         
            +
                          else
         
     | 
| 
      
 34 
     | 
    
         
            +
                            next_shard_range_data = nil
         
     | 
| 
      
 35 
     | 
    
         
            +
                          end
         
     | 
| 
      
 36 
     | 
    
         
            +
                        else
         
     | 
| 
      
 37 
     | 
    
         
            +
                          if prev_shard
         
     | 
| 
      
 38 
     | 
    
         
            +
                            next_shard_range_data = prev_shard.range_data
         
     | 
| 
      
 39 
     | 
    
         
            +
                          else
         
     | 
| 
      
 40 
     | 
    
         
            +
                            next_shard_range_data = nil
         
     | 
| 
      
 41 
     | 
    
         
            +
                          end
         
     | 
| 
      
 42 
     | 
    
         
            +
                        end
         
     | 
| 
      
 43 
     | 
    
         
            +
                        max_day = compute_month_shard_max_day(shard_range_data.year,
         
     | 
| 
      
 44 
     | 
    
         
            +
                                                              shard_range_data.month,
         
     | 
| 
      
 45 
     | 
    
         
            +
                                                              next_shard_range_data)
         
     | 
| 
      
 46 
     | 
    
         
            +
                        shard_range = MonthShardRange.new(shard_range_data.year,
         
     | 
| 
      
 47 
     | 
    
         
            +
                                                          shard_range_data.month,
         
     | 
| 
      
 48 
     | 
    
         
            +
                                                          max_day)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      else
         
     | 
| 
      
 50 
     | 
    
         
            +
                        shard_range = DayShardRange.new(shard_range_data.year,
         
     | 
| 
      
 51 
     | 
    
         
            +
                                                        shard_range_data.month,
         
     | 
| 
      
 52 
     | 
    
         
            +
                                                        shard_range_data.day)
         
     | 
| 
      
 53 
     | 
    
         
            +
                      end
         
     | 
| 
       32 
54 
     | 
    
         | 
| 
       33 
55 
     | 
    
         
             
                      physical_shard_key_name = "#{table.name}.#{@shard_key_name}"
         
     | 
| 
       34 
56 
     | 
    
         
             
                      shard_key = context[physical_shard_key_name]
         
     | 
| 
         @@ -43,6 +65,36 @@ module Groonga 
     | 
|
| 
       43 
65 
     | 
    
         
             
                    end
         
     | 
| 
       44 
66 
     | 
    
         
             
                  end
         
     | 
| 
       45 
67 
     | 
    
         | 
| 
      
 68 
     | 
    
         
            +
                  def each_shard_with_around(order)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    context = Context.instance
         
     | 
| 
      
 70 
     | 
    
         
            +
                    prefix = "#{@logical_table}_"
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    shards = [nil]
         
     | 
| 
      
 73 
     | 
    
         
            +
                    context.database.each_table(:prefix => prefix,
         
     | 
| 
      
 74 
     | 
    
         
            +
                                                :order_by => :key,
         
     | 
| 
      
 75 
     | 
    
         
            +
                                                :order => order) do |table|
         
     | 
| 
      
 76 
     | 
    
         
            +
                      shard_range_raw = table.name[prefix.size..-1]
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                      case shard_range_raw
         
     | 
| 
      
 79 
     | 
    
         
            +
                      when /\A(\d{4})(\d{2})\z/
         
     | 
| 
      
 80 
     | 
    
         
            +
                        shard_range_data = ShardRangeData.new($1.to_i, $2.to_i, nil)
         
     | 
| 
      
 81 
     | 
    
         
            +
                      when /\A(\d{4})(\d{2})(\d{2})\z/
         
     | 
| 
      
 82 
     | 
    
         
            +
                        shard_range_data = ShardRangeData.new($1.to_i, $2.to_i, $3.to_i)
         
     | 
| 
      
 83 
     | 
    
         
            +
                      else
         
     | 
| 
      
 84 
     | 
    
         
            +
                        next
         
     | 
| 
      
 85 
     | 
    
         
            +
                      end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                      shards << Shard.new(table, shard_range_data)
         
     | 
| 
      
 88 
     | 
    
         
            +
                      next if shards.size < 3
         
     | 
| 
      
 89 
     | 
    
         
            +
                      yield(*shards)
         
     | 
| 
      
 90 
     | 
    
         
            +
                      shards.shift
         
     | 
| 
      
 91 
     | 
    
         
            +
                    end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                    if shards.size == 2
         
     | 
| 
      
 94 
     | 
    
         
            +
                      yield(shards[0], shards[1], nil)
         
     | 
| 
      
 95 
     | 
    
         
            +
                    end
         
     | 
| 
      
 96 
     | 
    
         
            +
                  end
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
       46 
98 
     | 
    
         
             
                  private
         
     | 
| 
       47 
99 
     | 
    
         
             
                  def initialize_parameters
         
     | 
| 
       48 
100 
     | 
    
         
             
                    @logical_table = @input[:logical_table]
         
     | 
| 
         @@ -58,13 +110,84 @@ module Groonga 
     | 
|
| 
       58 
110 
     | 
    
         
             
                    @target_range = TargetRange.new(@command_name, @input)
         
     | 
| 
       59 
111 
     | 
    
         
             
                  end
         
     | 
| 
       60 
112 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                   
     | 
| 
      
 113 
     | 
    
         
            +
                  def compute_month_shard_max_day(year, month, next_shard_range)
         
     | 
| 
      
 114 
     | 
    
         
            +
                    return nil if next_shard_range.nil?
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                    return nil if month != next_shard_range.month
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                    next_shard_range.day
         
     | 
| 
      
 119 
     | 
    
         
            +
                  end
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                  class Shard
         
     | 
| 
      
 122 
     | 
    
         
            +
                    attr_reader :table, :range_data
         
     | 
| 
      
 123 
     | 
    
         
            +
                    def initialize(table, range_data)
         
     | 
| 
      
 124 
     | 
    
         
            +
                      @table = table
         
     | 
| 
      
 125 
     | 
    
         
            +
                      @range_data = range_data
         
     | 
| 
      
 126 
     | 
    
         
            +
                    end
         
     | 
| 
      
 127 
     | 
    
         
            +
                  end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                  class ShardRangeData
         
     | 
| 
      
 130 
     | 
    
         
            +
                    attr_reader :year, :month, :day
         
     | 
| 
      
 131 
     | 
    
         
            +
                    def initialize(year, month, day)
         
     | 
| 
      
 132 
     | 
    
         
            +
                      @year = year
         
     | 
| 
      
 133 
     | 
    
         
            +
                      @month = month
         
     | 
| 
      
 134 
     | 
    
         
            +
                      @day = day
         
     | 
| 
      
 135 
     | 
    
         
            +
                    end
         
     | 
| 
      
 136 
     | 
    
         
            +
                  end
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
                  class DayShardRange
         
     | 
| 
       62 
139 
     | 
    
         
             
                    attr_reader :year, :month, :day
         
     | 
| 
       63 
140 
     | 
    
         
             
                    def initialize(year, month, day)
         
     | 
| 
       64 
141 
     | 
    
         
             
                      @year = year
         
     | 
| 
       65 
142 
     | 
    
         
             
                      @month = month
         
     | 
| 
       66 
143 
     | 
    
         
             
                      @day = day
         
     | 
| 
       67 
144 
     | 
    
         
             
                    end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                    def least_over_time
         
     | 
| 
      
 147 
     | 
    
         
            +
                      Time.local(@year, @month, @day + 1)
         
     | 
| 
      
 148 
     | 
    
         
            +
                    end
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
                    def min_time
         
     | 
| 
      
 151 
     | 
    
         
            +
                      Time.local(@year, @month, @day)
         
     | 
| 
      
 152 
     | 
    
         
            +
                    end
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
                    def include?(time)
         
     | 
| 
      
 155 
     | 
    
         
            +
                      @year == time.year and
         
     | 
| 
      
 156 
     | 
    
         
            +
                        @month == time.month and
         
     | 
| 
      
 157 
     | 
    
         
            +
                        @day == time.day
         
     | 
| 
      
 158 
     | 
    
         
            +
                    end
         
     | 
| 
      
 159 
     | 
    
         
            +
                  end
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
                  class MonthShardRange
         
     | 
| 
      
 162 
     | 
    
         
            +
                    attr_reader :year, :month, :max_day
         
     | 
| 
      
 163 
     | 
    
         
            +
                    def initialize(year, month, max_day)
         
     | 
| 
      
 164 
     | 
    
         
            +
                      @year = year
         
     | 
| 
      
 165 
     | 
    
         
            +
                      @month = month
         
     | 
| 
      
 166 
     | 
    
         
            +
                      @max_day = max_day
         
     | 
| 
      
 167 
     | 
    
         
            +
                    end
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                    def least_over_time
         
     | 
| 
      
 170 
     | 
    
         
            +
                      if @max_day.nil?
         
     | 
| 
      
 171 
     | 
    
         
            +
                        Time.local(@year, @month + 1, 1)
         
     | 
| 
      
 172 
     | 
    
         
            +
                      else
         
     | 
| 
      
 173 
     | 
    
         
            +
                        Time.local(@year, @month, @max_day + 1)
         
     | 
| 
      
 174 
     | 
    
         
            +
                      end
         
     | 
| 
      
 175 
     | 
    
         
            +
                    end
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
                    def min_time
         
     | 
| 
      
 178 
     | 
    
         
            +
                      Time.local(@year, @month, 1)
         
     | 
| 
      
 179 
     | 
    
         
            +
                    end
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
                    def include?(time)
         
     | 
| 
      
 182 
     | 
    
         
            +
                      return false unless @year == time.year
         
     | 
| 
      
 183 
     | 
    
         
            +
                      return false unless @month == time.month
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
                      if @max_day.nil?
         
     | 
| 
      
 186 
     | 
    
         
            +
                        true
         
     | 
| 
      
 187 
     | 
    
         
            +
                      else
         
     | 
| 
      
 188 
     | 
    
         
            +
                        time.day <= @max_day
         
     | 
| 
      
 189 
     | 
    
         
            +
                      end
         
     | 
| 
      
 190 
     | 
    
         
            +
                    end
         
     | 
| 
       68 
191 
     | 
    
         
             
                  end
         
     | 
| 
       69 
192 
     | 
    
         | 
| 
       70 
193 
     | 
    
         
             
                  class TargetRange
         
     | 
| 
         @@ -139,16 +262,11 @@ module Groonga 
     | 
|
| 
       139 
262 
     | 
    
         
             
                    end
         
     | 
| 
       140 
263 
     | 
    
         | 
| 
       141 
264 
     | 
    
         
             
                    def in_min?(shard_range)
         
     | 
| 
       142 
     | 
    
         
            -
                       
     | 
| 
       143 
     | 
    
         
            -
                                             shard_range.month,
         
     | 
| 
       144 
     | 
    
         
            -
                                             shard_range.day + 1)
         
     | 
| 
       145 
     | 
    
         
            -
                      @min < base_time
         
     | 
| 
      
 265 
     | 
    
         
            +
                      @min < shard_range.least_over_time
         
     | 
| 
       146 
266 
     | 
    
         
             
                    end
         
     | 
| 
       147 
267 
     | 
    
         | 
| 
       148 
268 
     | 
    
         
             
                    def in_min_partial?(shard_range)
         
     | 
| 
       149 
     | 
    
         
            -
                      return false unless @min 
     | 
| 
       150 
     | 
    
         
            -
                      return false unless @min.month == shard_range.month
         
     | 
| 
       151 
     | 
    
         
            -
                      return false unless @min.day == shard_range.day
         
     | 
| 
      
 269 
     | 
    
         
            +
                      return false unless shard_range.include?(@min)
         
     | 
| 
       152 
270 
     | 
    
         | 
| 
       153 
271 
     | 
    
         
             
                      return true if @min_border == :exclude
         
     | 
| 
       154 
272 
     | 
    
         | 
| 
         @@ -159,9 +277,7 @@ module Groonga 
     | 
|
| 
       159 
277 
     | 
    
         
             
                    end
         
     | 
| 
       160 
278 
     | 
    
         | 
| 
       161 
279 
     | 
    
         
             
                    def in_max?(shard_range)
         
     | 
| 
       162 
     | 
    
         
            -
                      max_base_time =  
     | 
| 
       163 
     | 
    
         
            -
                                                 shard_range.month,
         
     | 
| 
       164 
     | 
    
         
            -
                                                 shard_range.day)
         
     | 
| 
      
 280 
     | 
    
         
            +
                      max_base_time = shard_range.min_time
         
     | 
| 
       165 
281 
     | 
    
         
             
                      if @max_border == :include
         
     | 
| 
       166 
282 
     | 
    
         
             
                        @max >= max_base_time
         
     | 
| 
       167 
283 
     | 
    
         
             
                      else
         
     | 
| 
         @@ -170,9 +286,7 @@ module Groonga 
     | 
|
| 
       170 
286 
     | 
    
         
             
                    end
         
     | 
| 
       171 
287 
     | 
    
         | 
| 
       172 
288 
     | 
    
         
             
                    def in_max_partial?(shard_range)
         
     | 
| 
       173 
     | 
    
         
            -
                      @max 
     | 
| 
       174 
     | 
    
         
            -
                        @max.month == shard_range.month and
         
     | 
| 
       175 
     | 
    
         
            -
                        @max.day == shard_range.day
         
     | 
| 
      
 289 
     | 
    
         
            +
                      shard_range.include?(@max)
         
     | 
| 
       176 
290 
     | 
    
         
             
                    end
         
     | 
| 
       177 
291 
     | 
    
         
             
                  end
         
     | 
| 
       178 
292 
     | 
    
         
             
                end
         
     | 
| 
         @@ -0,0 +1,174 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Groonga
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Sharding
         
     | 
| 
      
 3 
     | 
    
         
            +
                class LogicalSelectCommand < Command
         
     | 
| 
      
 4 
     | 
    
         
            +
                  register("logical_select",
         
     | 
| 
      
 5 
     | 
    
         
            +
                           [
         
     | 
| 
      
 6 
     | 
    
         
            +
                             "logical_table",
         
     | 
| 
      
 7 
     | 
    
         
            +
                             "shard_key",
         
     | 
| 
      
 8 
     | 
    
         
            +
                             "min",
         
     | 
| 
      
 9 
     | 
    
         
            +
                             "min_border",
         
     | 
| 
      
 10 
     | 
    
         
            +
                             "max",
         
     | 
| 
      
 11 
     | 
    
         
            +
                             "max_border",
         
     | 
| 
      
 12 
     | 
    
         
            +
                             "filter",
         
     | 
| 
      
 13 
     | 
    
         
            +
                           ])
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  def run_body(input)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    output_columns = input[:output_columns] || "_key, *"
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    enumerator = LogicalEnumerator.new("logical_select", input)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                    context = ExecuteContext.new(input)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 22 
     | 
    
         
            +
                      executor = Executor.new(context)
         
     | 
| 
      
 23 
     | 
    
         
            +
                      executor.execute
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                      result_sets = context.result_sets
         
     | 
| 
      
 26 
     | 
    
         
            +
                      n_hits = 0
         
     | 
| 
      
 27 
     | 
    
         
            +
                      n_elements = 2 # for N hits and columns
         
     | 
| 
      
 28 
     | 
    
         
            +
                      result_sets.each do |result_set|
         
     | 
| 
      
 29 
     | 
    
         
            +
                        n_hits += result_set.size
         
     | 
| 
      
 30 
     | 
    
         
            +
                        n_elements += result_set.size
         
     | 
| 
      
 31 
     | 
    
         
            +
                      end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                      writer.array("RESULTSET", n_elements) do
         
     | 
| 
      
 34 
     | 
    
         
            +
                        writer.array("NHITS", 1) do
         
     | 
| 
      
 35 
     | 
    
         
            +
                          writer.write(n_hits)
         
     | 
| 
      
 36 
     | 
    
         
            +
                        end
         
     | 
| 
      
 37 
     | 
    
         
            +
                        first_result_set = result_sets.first
         
     | 
| 
      
 38 
     | 
    
         
            +
                        if first_result_set
         
     | 
| 
      
 39 
     | 
    
         
            +
                          writer.write_table_columns(first_result_set, output_columns)
         
     | 
| 
      
 40 
     | 
    
         
            +
                        end
         
     | 
| 
      
 41 
     | 
    
         
            +
                        options = {}
         
     | 
| 
      
 42 
     | 
    
         
            +
                        result_sets.each do |result_set|
         
     | 
| 
      
 43 
     | 
    
         
            +
                          writer.write_table_records(result_set, output_columns, options)
         
     | 
| 
      
 44 
     | 
    
         
            +
                        end
         
     | 
| 
      
 45 
     | 
    
         
            +
                      end
         
     | 
| 
      
 46 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 47 
     | 
    
         
            +
                      context.close
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  class ExecuteContext
         
     | 
| 
      
 52 
     | 
    
         
            +
                    attr_reader :enumerator
         
     | 
| 
      
 53 
     | 
    
         
            +
                    attr_reader :filter
         
     | 
| 
      
 54 
     | 
    
         
            +
                    attr_reader :offset
         
     | 
| 
      
 55 
     | 
    
         
            +
                    attr_reader :limit
         
     | 
| 
      
 56 
     | 
    
         
            +
                    attr_reader :result_sets
         
     | 
| 
      
 57 
     | 
    
         
            +
                    def initialize(input)
         
     | 
| 
      
 58 
     | 
    
         
            +
                      @input = input
         
     | 
| 
      
 59 
     | 
    
         
            +
                      @enumerator = LogicalEnumerator.new("logical_select", @input)
         
     | 
| 
      
 60 
     | 
    
         
            +
                      @filter = @input[:filter]
         
     | 
| 
      
 61 
     | 
    
         
            +
                      @offset = 0
         
     | 
| 
      
 62 
     | 
    
         
            +
                      @limit = 10
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                      @result_sets = []
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    def close
         
     | 
| 
      
 68 
     | 
    
         
            +
                      @result_sets.each do |result_set|
         
     | 
| 
      
 69 
     | 
    
         
            +
                        result_set.close if result_set.temporary?
         
     | 
| 
      
 70 
     | 
    
         
            +
                      end
         
     | 
| 
      
 71 
     | 
    
         
            +
                    end
         
     | 
| 
      
 72 
     | 
    
         
            +
                  end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                  class Executor
         
     | 
| 
      
 75 
     | 
    
         
            +
                    def initialize(context)
         
     | 
| 
      
 76 
     | 
    
         
            +
                      @context = context
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                    def execute
         
     | 
| 
      
 80 
     | 
    
         
            +
                      first_table = nil
         
     | 
| 
      
 81 
     | 
    
         
            +
                      enumerator = @context.enumerator
         
     | 
| 
      
 82 
     | 
    
         
            +
                      enumerator.each do |table, shard_key, shard_range|
         
     | 
| 
      
 83 
     | 
    
         
            +
                        first_table ||= table
         
     | 
| 
      
 84 
     | 
    
         
            +
                        next if table.empty?
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                        shard_executor = ShardExecutor.new(@context,
         
     | 
| 
      
 87 
     | 
    
         
            +
                                                           table, shard_key, shard_range)
         
     | 
| 
      
 88 
     | 
    
         
            +
                        shard_executor.execute
         
     | 
| 
      
 89 
     | 
    
         
            +
                      end
         
     | 
| 
      
 90 
     | 
    
         
            +
                      if first_table.nil?
         
     | 
| 
      
 91 
     | 
    
         
            +
                        message =
         
     | 
| 
      
 92 
     | 
    
         
            +
                          "[logical_select] no shard exists: " +
         
     | 
| 
      
 93 
     | 
    
         
            +
                          "logical_table: <#{enumerator.logical_table}>: " +
         
     | 
| 
      
 94 
     | 
    
         
            +
                          "shard_key: <#{enumerator.shard_key_name}>"
         
     | 
| 
      
 95 
     | 
    
         
            +
                        raise InvalidArgument, message
         
     | 
| 
      
 96 
     | 
    
         
            +
                      end
         
     | 
| 
      
 97 
     | 
    
         
            +
                      if @context.result_sets.empty?
         
     | 
| 
      
 98 
     | 
    
         
            +
                        result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
         
     | 
| 
      
 99 
     | 
    
         
            +
                                                      :key_type => first_table)
         
     | 
| 
      
 100 
     | 
    
         
            +
                        @context.result_sets << result_set
         
     | 
| 
      
 101 
     | 
    
         
            +
                      end
         
     | 
| 
      
 102 
     | 
    
         
            +
                    end
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                  class ShardExecutor
         
     | 
| 
      
 106 
     | 
    
         
            +
                    def initialize(context, table, shard_key, shard_range)
         
     | 
| 
      
 107 
     | 
    
         
            +
                      @context = context
         
     | 
| 
      
 108 
     | 
    
         
            +
                      @table = table
         
     | 
| 
      
 109 
     | 
    
         
            +
                      @shard_key = shard_key
         
     | 
| 
      
 110 
     | 
    
         
            +
                      @shard_range = shard_range
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                      @filter = @context.filter
         
     | 
| 
      
 113 
     | 
    
         
            +
                      @result_sets = @context.result_sets
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                      @target_range = @context.enumerator.target_range
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
                      @cover_type = @target_range.cover_type(@shard_range)
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                      @expression_builder = RangeExpressionBuilder.new(@shard_key,
         
     | 
| 
      
 120 
     | 
    
         
            +
                                                                       @target_range,
         
     | 
| 
      
 121 
     | 
    
         
            +
                                                                       @filter)
         
     | 
| 
      
 122 
     | 
    
         
            +
                    end
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
                    def execute
         
     | 
| 
      
 125 
     | 
    
         
            +
                      return if @cover_type == :none
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
                      case @cover_type
         
     | 
| 
      
 128 
     | 
    
         
            +
                      when :all
         
     | 
| 
      
 129 
     | 
    
         
            +
                        filter_shard_all
         
     | 
| 
      
 130 
     | 
    
         
            +
                      when :partial_min
         
     | 
| 
      
 131 
     | 
    
         
            +
                        filter_table do |expression|
         
     | 
| 
      
 132 
     | 
    
         
            +
                          @expression_builder.build_partial_min(expression)
         
     | 
| 
      
 133 
     | 
    
         
            +
                        end
         
     | 
| 
      
 134 
     | 
    
         
            +
                      when :partial_max
         
     | 
| 
      
 135 
     | 
    
         
            +
                        filter_table do |expression|
         
     | 
| 
      
 136 
     | 
    
         
            +
                          @expression_builder.build_partial_max(expression)
         
     | 
| 
      
 137 
     | 
    
         
            +
                        end
         
     | 
| 
      
 138 
     | 
    
         
            +
                      when :partial_min_and_max
         
     | 
| 
      
 139 
     | 
    
         
            +
                        filter_table do |expression|
         
     | 
| 
      
 140 
     | 
    
         
            +
                          @expression_builder.build_partial_min_and_max(expression)
         
     | 
| 
      
 141 
     | 
    
         
            +
                        end
         
     | 
| 
      
 142 
     | 
    
         
            +
                      end
         
     | 
| 
      
 143 
     | 
    
         
            +
                    end
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
                    private
         
     | 
| 
      
 146 
     | 
    
         
            +
                    def filter_shard_all
         
     | 
| 
      
 147 
     | 
    
         
            +
                      if @filter.nil?
         
     | 
| 
      
 148 
     | 
    
         
            +
                        @result_sets << @table
         
     | 
| 
      
 149 
     | 
    
         
            +
                      else
         
     | 
| 
      
 150 
     | 
    
         
            +
                        filter_table do |expression|
         
     | 
| 
      
 151 
     | 
    
         
            +
                          @expression_builder.build_all(expression)
         
     | 
| 
      
 152 
     | 
    
         
            +
                        end
         
     | 
| 
      
 153 
     | 
    
         
            +
                      end
         
     | 
| 
      
 154 
     | 
    
         
            +
                    end
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
                    def create_expression(table)
         
     | 
| 
      
 157 
     | 
    
         
            +
                      expression = Expression.create(table)
         
     | 
| 
      
 158 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 159 
     | 
    
         
            +
                        yield(expression)
         
     | 
| 
      
 160 
     | 
    
         
            +
                      ensure
         
     | 
| 
      
 161 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 162 
     | 
    
         
            +
                      end
         
     | 
| 
      
 163 
     | 
    
         
            +
                    end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                    def filter_table
         
     | 
| 
      
 166 
     | 
    
         
            +
                      create_expression(@table) do |expression|
         
     | 
| 
      
 167 
     | 
    
         
            +
                        yield(expression)
         
     | 
| 
      
 168 
     | 
    
         
            +
                        @result_sets << @table.select(expression)
         
     | 
| 
      
 169 
     | 
    
         
            +
                      end
         
     | 
| 
      
 170 
     | 
    
         
            +
                    end
         
     | 
| 
      
 171 
     | 
    
         
            +
                  end
         
     | 
| 
      
 172 
     | 
    
         
            +
                end
         
     | 
| 
      
 173 
     | 
    
         
            +
              end
         
     | 
| 
      
 174 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Groonga
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Sharding
         
     | 
| 
      
 3 
     | 
    
         
            +
                class LogicalTableRemoveCommand < Command
         
     | 
| 
      
 4 
     | 
    
         
            +
                  register("logical_table_remove",
         
     | 
| 
      
 5 
     | 
    
         
            +
                           [
         
     | 
| 
      
 6 
     | 
    
         
            +
                             "logical_table",
         
     | 
| 
      
 7 
     | 
    
         
            +
                             "shard_key",
         
     | 
| 
      
 8 
     | 
    
         
            +
                             "min",
         
     | 
| 
      
 9 
     | 
    
         
            +
                             "min_border",
         
     | 
| 
      
 10 
     | 
    
         
            +
                             "max",
         
     | 
| 
      
 11 
     | 
    
         
            +
                             "max_border",
         
     | 
| 
      
 12 
     | 
    
         
            +
                           ])
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def run_body(input)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    enumerator = LogicalEnumerator.new("logical_table_remove", input)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    succeess = true
         
     | 
| 
      
 18 
     | 
    
         
            +
                    enumerator.each do |table, shard_key, shard_range|
         
     | 
| 
      
 19 
     | 
    
         
            +
                      remove_table(table,
         
     | 
| 
      
 20 
     | 
    
         
            +
                                   shard_key,
         
     | 
| 
      
 21 
     | 
    
         
            +
                                   shard_range,
         
     | 
| 
      
 22 
     | 
    
         
            +
                                   enumerator.target_range)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                    writer.write(succeess)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  private
         
     | 
| 
      
 28 
     | 
    
         
            +
                  def remove_table(table, shard_key, shard_range, target_range)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    cover_type = target_range.cover_type(shard_range)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    return if cover_type == :none
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    expression_builder = RangeExpressionBuilder.new(shard_key,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                                                    target_range,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                                                    nil)
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    case cover_type
         
     | 
| 
      
 37 
     | 
    
         
            +
                    when :all
         
     | 
| 
      
 38 
     | 
    
         
            +
                      table.remove
         
     | 
| 
      
 39 
     | 
    
         
            +
                    when :partial_min
         
     | 
| 
      
 40 
     | 
    
         
            +
                      remove_records(table) do |expression|
         
     | 
| 
      
 41 
     | 
    
         
            +
                        expression_builder.build_partial_min(expression)
         
     | 
| 
      
 42 
     | 
    
         
            +
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
                      table.remove if table.empty?
         
     | 
| 
      
 44 
     | 
    
         
            +
                    when :partial_max
         
     | 
| 
      
 45 
     | 
    
         
            +
                      remove_records(table) do |expression|
         
     | 
| 
      
 46 
     | 
    
         
            +
                        expression_builder.build_partial_max(expression)
         
     | 
| 
      
 47 
     | 
    
         
            +
                      end
         
     | 
| 
      
 48 
     | 
    
         
            +
                      table.remove if table.empty?
         
     | 
| 
      
 49 
     | 
    
         
            +
                    when :partial_min_and_max
         
     | 
| 
      
 50 
     | 
    
         
            +
                      remove_records(table) do |expression|
         
     | 
| 
      
 51 
     | 
    
         
            +
                        expression_builder.build_partial_min_and_max(expression)
         
     | 
| 
      
 52 
     | 
    
         
            +
                      end
         
     | 
| 
      
 53 
     | 
    
         
            +
                      table.remove if table.empty?
         
     | 
| 
      
 54 
     | 
    
         
            +
                    end
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  def remove_records(table)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    expression = nil
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 61 
     | 
    
         
            +
                      expression = Expression.create(table)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      yield(expression)
         
     | 
| 
      
 63 
     | 
    
         
            +
                      table.delete(:expression => expression)
         
     | 
| 
      
 64 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 65 
     | 
    
         
            +
                      expression.close if expression
         
     | 
| 
      
 66 
     | 
    
         
            +
                    end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     |