rroonga 6.1.3-x64-mingw32 → 7.0.2-x64-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 +4 -4
 - data/Rakefile +1 -0
 - data/doc/text/news.md +28 -0
 - data/ext/groonga/rb-grn-column.c +53 -32
 - data/ext/groonga/rb-grn-context.c +1 -1
 - data/ext/groonga/rb-grn-data-column.c +103 -0
 - data/ext/groonga/rb-grn-default-cache.c +104 -0
 - data/ext/groonga/rb-grn-index-column.c +93 -15
 - data/ext/groonga/rb-grn-inverted-index-cursor.c +269 -0
 - data/ext/groonga/rb-grn-object.c +1 -1
 - data/ext/groonga/rb-grn-plugin.c +1 -1
 - data/ext/groonga/rb-grn-table-cursor.c +1 -1
 - data/ext/groonga/rb-grn-table-key-support.c +6 -0
 - data/ext/groonga/rb-grn-table.c +0 -3
 - data/ext/groonga/rb-grn-utils.c +35 -7
 - data/ext/groonga/rb-grn.h +13 -4
 - data/ext/groonga/rb-groonga.c +2 -0
 - data/lib/2.1/groonga.so +0 -0
 - data/lib/2.2/groonga.so +0 -0
 - data/lib/2.3/groonga.so +0 -0
 - data/rroonga-build.rb +7 -7
 - data/rroonga.gemspec +2 -1
 - data/test/test-data-column.rb +71 -2
 - data/test/test-default-cache.rb +43 -0
 - data/test/test-double-array-trie.rb +7 -0
 - data/test/test-fix-size-column.rb +12 -0
 - data/test/test-hash.rb +7 -0
 - data/test/test-index-column.rb +12 -0
 - data/test/test-index-cursor.rb +93 -28
 - data/test/test-patricia-trie.rb +7 -0
 - data/test/test-variable-size-column.rb +19 -0
 - data/vendor/local/bin/grndb.exe +0 -0
 - data/vendor/local/bin/groonga-benchmark.exe +0 -0
 - data/vendor/local/bin/groonga-suggest-create-dataset.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-2.dll +0 -0
 - data/vendor/local/bin/libmsgpackc.dll +0 -0
 - data/vendor/local/bin/libonigmo-6.dll +0 -0
 - data/vendor/local/bin/libpcre-1.dll +0 -0
 - data/vendor/local/bin/libpcrecpp-0.dll +0 -0
 - data/vendor/local/bin/libpcreposix-0.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/onigmo-config +2 -2
 - data/vendor/local/bin/pcre-config +1 -1
 - data/vendor/local/bin/pcregrep.exe +0 -0
 - data/vendor/local/bin/pcretest.exe +0 -0
 - data/vendor/local/bin/zlib1.dll +0 -0
 - data/vendor/local/etc/groonga/httpd/groonga-httpd.conf +16 -3
 - data/vendor/local/include/groonga/groonga.h +2 -1
 - data/vendor/local/include/groonga/groonga/cache.h +49 -0
 - data/vendor/local/include/groonga/groonga/column.h +1 -1
 - data/vendor/local/include/groonga/groonga/groonga.h +26 -16
 - data/vendor/local/include/groonga/groonga/ii.h +7 -1
 - data/vendor/local/include/groonga/groonga/obj.h +8 -1
 - data/vendor/local/include/groonga/groonga/plugin.h +6 -1
 - data/vendor/local/include/groonga/groonga/table.h +5 -0
 - data/vendor/local/include/groonga/groonga/util.h +4 -1
 - data/vendor/local/include/groonga/groonga/window_function.h +5 -1
 - data/vendor/local/include/onigmo.h +6 -5
 - data/vendor/local/include/zconf.h +32 -9
 - data/vendor/local/include/zlib.h +298 -154
 - data/vendor/local/lib/groonga/plugins/functions/number.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.la +2 -2
 - data/vendor/local/lib/groonga/plugins/functions/string.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.la +2 -2
 - data/vendor/local/lib/groonga/plugins/functions/time.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.la +2 -2
 - 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/normalizers/mysql.a +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.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/sharding/logical_count.rb +2 -2
 - data/vendor/local/lib/groonga/plugins/sharding/logical_enumerator.rb +2 -2
 - data/vendor/local/lib/groonga/plugins/sharding/logical_range_filter.rb +2 -2
 - data/vendor/local/lib/groonga/plugins/sharding/logical_select.rb +392 -53
 - data/vendor/local/lib/groonga/plugins/sharding/logical_table_remove.rb +1 -2
 - data/vendor/local/lib/groonga/plugins/sharding/range_expression_builder.rb +37 -14
 - 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/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/command.rb +0 -1
 - data/vendor/local/lib/groonga/scripts/ruby/command_input.rb +15 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression.rb +1 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_size_estimator.rb +2 -136
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/function_call.rb +12 -1
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree_builder.rb +1 -1
 - data/vendor/local/lib/groonga/scripts/ruby/initialize/post.rb +1 -0
 - data/vendor/local/lib/groonga/scripts/ruby/logger.rb +7 -8
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_builder.rb +234 -80
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_data_size_estimator.rb +185 -0
 - data/vendor/local/lib/groonga/scripts/ruby/table.rb +27 -2
 - 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/libmsgpackc.a +0 -0
 - data/vendor/local/lib/libmsgpackc.dll.a +0 -0
 - data/vendor/local/lib/libonigmo.a +0 -0
 - data/vendor/local/lib/libonigmo.dll.a +0 -0
 - data/vendor/local/lib/libonigmo.la +3 -3
 - data/vendor/local/lib/libpcre.a +0 -0
 - data/vendor/local/lib/libpcre.dll.a +0 -0
 - data/vendor/local/lib/libpcre.la +2 -2
 - data/vendor/local/lib/libpcrecpp.a +0 -0
 - data/vendor/local/lib/libpcrecpp.dll.a +0 -0
 - data/vendor/local/lib/libpcrecpp.la +2 -2
 - data/vendor/local/lib/libpcreposix.a +0 -0
 - data/vendor/local/lib/libpcreposix.dll.a +0 -0
 - data/vendor/local/lib/libpcreposix.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/libpcre.pc +1 -1
 - data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
 - data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
 - data/vendor/local/lib/pkgconfig/msgpack.pc +1 -1
 - data/vendor/local/lib/pkgconfig/onigmo.pc +7 -7
 - data/vendor/local/lib/pkgconfig/zlib.pc +4 -4
 - 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/share/doc/groonga/en/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/contribution/development/release.txt +11 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +13 -47
 - data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +6 -5
 - 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 -4
 - 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 +181 -891
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/1.2.x.txt +2 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/2.x.txt +11 -9
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/3.x.txt +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/5.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/en/html/_sources/news/6.x.txt +1086 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference.txt +1 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/command/request_timeout.txt +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/log_level.txt +45 -19
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_select.txt +632 -91
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/object_inspect.txt +514 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/select.txt +902 -55
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/grnslap.txt +5 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-benchmark.txt +11 -9
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-httpd.txt +71 -23
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-suggest-httpd.txt +2 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-suggest-learner.txt +8 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga.txt +51 -25
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/in_records.txt +195 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/query.txt +100 -15
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/string_length.txt +33 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/vector_new.txt +38 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/query_syntax.txt +35 -7
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/script_syntax.txt +24 -10
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/log.txt +6 -6
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/window_function.txt +22 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/window_functions/record_number.txt +28 -0
 - data/vendor/local/share/doc/groonga/en/html/_sources/reference/window_functions/window_record_number.txt +25 -0
 - data/vendor/local/share/doc/groonga/{ja/html/_sources/reference/functions/record_number.txt → en/html/_sources/reference/window_functions/window_sum.txt} +5 -3
 - data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/query_expansion.txt +3 -3
 - 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/build.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_autotools.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_cmake.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/windows_cmake.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 +102 -93
 - 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 +5 -5
 - data/vendor/local/share/doc/groonga/en/html/genindex.html +326 -251
 - data/vendor/local/share/doc/groonga/en/html/index.html +111 -104
 - data/vendor/local/share/doc/groonga/en/html/install.html +8 -9
 - data/vendor/local/share/doc/groonga/en/html/install/centos.html +24 -65
 - data/vendor/local/share/doc/groonga/en/html/install/debian.html +12 -11
 - data/vendor/local/share/doc/groonga/en/html/install/fedora.html +9 -9
 - 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 -9
 - 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 +213 -898
 - 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 +7 -6
 - 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 +16 -14
 - data/vendor/local/share/doc/groonga/en/html/news/3.x.html +9 -9
 - data/vendor/local/share/doc/groonga/en/html/news/4.x.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/news/5.x.html +7 -7
 - data/vendor/local/share/doc/groonga/en/html/news/6.x.html +1148 -0
 - 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 +90 -82
 - data/vendor/local/share/doc/groonga/en/html/reference/alias.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/api.html +39 -39
 - data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +22 -22
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +22 -22
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +22 -22
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_thread.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +20 -20
 - data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +22 -22
 - 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 +5 -5
 - 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/pretty_print.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/request_timeout.html +6 -6
 - 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_copy.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/config_delete.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/config_get.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/config_set.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/database_unmap.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 +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/io_flush.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_acquire.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_release.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +61 -17
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_parameters.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_select.html +1727 -408
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_shard_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_table_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_exist.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_inspect.html +526 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/query_expand.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/reindex.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/schema.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +1685 -492
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_copy.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_rename.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/thread_limit.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/configuration.html +19 -19
 - 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 +14 -14
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +32 -32
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +75 -34
 - 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 +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +107 -82
 - data/vendor/local/share/doc/groonga/en/html/reference/function.html +25 -23
 - 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/fuzzy_search.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 +10 -10
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_records.html +355 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +30 -30
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +25 -25
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/number_classify.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/prefix_rk_search.html +31 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +155 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +28 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +15 -15
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/{record_number.html → string_length.html} +36 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/string_substring.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +31 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_hour.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_minute.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_month.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_second.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_week.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_year.html +24 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_new.html +170 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_size.html +28 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_slice.html +24 -24
 - 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 +36 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +27 -15
 - data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +21 -21
 - data/vendor/local/share/doc/groonga/en/html/reference/log.html +29 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/operations.html +17 -17
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +20 -20
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/prefix_rk_search.html +26 -26
 - 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/sharding.html +23 -23
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +33 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +32 -32
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +28 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +26 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +28 -28
 - 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 +35 -35
 - data/vendor/local/share/doc/groonga/en/html/reference/types.html +5 -5
 - data/vendor/local/share/doc/groonga/en/html/reference/window_function.html +147 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/record_number.html +164 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_record_number.html +163 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_sum.html +163 -0
 - 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 +9 -9
 - 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 +5 -5
 - 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 +8 -8
 - 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/contribution/development/release.txt +11 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +13 -47
 - data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +6 -5
 - 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 -4
 - 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 +181 -891
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/1.2.x.txt +2 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/2.x.txt +11 -9
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/3.x.txt +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/5.x.txt +2 -2
 - data/vendor/local/share/doc/groonga/ja/html/_sources/news/6.x.txt +1086 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference.txt +1 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/command/request_timeout.txt +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/log_level.txt +45 -19
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_select.txt +632 -91
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/object_inspect.txt +514 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/select.txt +902 -55
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/grnslap.txt +5 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-benchmark.txt +11 -9
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-httpd.txt +71 -23
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-suggest-httpd.txt +2 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-suggest-learner.txt +8 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga.txt +51 -25
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/in_records.txt +195 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/query.txt +100 -15
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/string_length.txt +33 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/vector_new.txt +38 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/query_syntax.txt +35 -7
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/script_syntax.txt +24 -10
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/log.txt +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/window_function.txt +22 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/window_functions/record_number.txt +28 -0
 - data/vendor/local/share/doc/groonga/ja/html/_sources/reference/window_functions/window_record_number.txt +25 -0
 - data/vendor/local/share/doc/groonga/{en/html/_sources/reference/functions/record_number.txt → ja/html/_sources/reference/window_functions/window_sum.txt} +5 -3
 - data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/query_expansion.txt +3 -3
 - data/vendor/local/share/doc/groonga/ja/html/characteristic.html +5 -5
 - 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/build.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_autotools.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_cmake.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/windows_cmake.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 +102 -93
 - 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 +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/genindex.html +186 -118
 - data/vendor/local/share/doc/groonga/ja/html/index.html +111 -104
 - data/vendor/local/share/doc/groonga/ja/html/install.html +8 -9
 - data/vendor/local/share/doc/groonga/ja/html/install/centos.html +24 -61
 - data/vendor/local/share/doc/groonga/ja/html/install/debian.html +12 -11
 - data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +9 -9
 - 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 +9 -9
 - 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 -9
 - data/vendor/local/share/doc/groonga/ja/html/install/windows.html +14 -14
 - data/vendor/local/share/doc/groonga/ja/html/limitations.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/news.html +132 -761
 - 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 +6 -6
 - 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 +10 -10
 - data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +9 -9
 - data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/news/5.x.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/news/6.x.html +1064 -0
 - 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 +90 -82
 - data/vendor/local/share/doc/groonga/ja/html/reference/alias.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/api.html +39 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +22 -22
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +22 -22
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +22 -22
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_thread.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +20 -20
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +22 -22
 - 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 +5 -5
 - 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/pretty_print.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/request_timeout.html +6 -6
 - 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_copy.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/config_delete.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_get.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_set.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/database_unmap.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 +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/io_flush.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_acquire.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_release.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +67 -17
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_parameters.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_select.html +1629 -383
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_shard_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_table_remove.html +6 -6
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_exist.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_inspect.html +508 -33
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/query_expand.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/reindex.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/schema.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +1606 -478
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_copy.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_rename.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/thread_limit.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/configuration.html +19 -19
 - 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 +14 -14
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +32 -32
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +76 -48
 - 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 +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +103 -82
 - data/vendor/local/share/doc/groonga/ja/html/reference/function.html +25 -23
 - 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/fuzzy_search.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 +10 -10
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_records.html +370 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +30 -30
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/number_classify.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/prefix_rk_search.html +31 -31
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +150 -52
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +28 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +15 -15
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/{record_number.html → string_length.html} +36 -31
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_substring.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +31 -31
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_hour.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_minute.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_month.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_second.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_week.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_year.html +24 -24
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_new.html +171 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_size.html +28 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_slice.html +24 -24
 - 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 +36 -26
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +19 -7
 - data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +21 -21
 - data/vendor/local/share/doc/groonga/ja/html/reference/log.html +25 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +17 -17
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +20 -20
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/prefix_rk_search.html +26 -26
 - 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 +6 -6
 - 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/sharding.html +23 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +33 -33
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +32 -32
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +28 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +26 -26
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +28 -28
 - 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 +35 -35
 - data/vendor/local/share/doc/groonga/ja/html/reference/types.html +5 -5
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_function.html +146 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/record_number.html +165 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_record_number.html +164 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_sum.html +164 -0
 - 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 +9 -9
 - 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 +5 -5
 - 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 +5 -5
 - 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 +8 -8
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
 - data/vendor/local/share/groonga/mruby/LEGAL +4 -0
 - data/vendor/local/share/license/mruby/AUTHORS +1 -0
 - data/vendor/local/share/license/mruby/MITL +1 -1
 - data/vendor/local/share/license/zlib/README +3 -3
 - metadata +100 -67
 - data/lib/2.4/groonga.so +0 -0
 - data/vendor/local/sbin/groonga-httpd-restart +0 -105
 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='number.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/functions'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='string.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/functions'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='time.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/functions'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='vector.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/functions'
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -17,7 +17,7 @@ old_library='mysql.a' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            inherited_linker_flags=''
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            # Libraries that this one depends upon.
         
     | 
| 
       20 
     | 
    
         
            -
            dependency_libs=' -L/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/normalizers'
         
     | 
| 
         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/ 
     | 
| 
      
 20 
     | 
    
         
            +
            dependency_libs=' -L/build/dist-x64/lib /build/dist-x64/lib/libgroonga.la -lmsgpackc /build/dist-x64/lib/libonigmo.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='/ 
     | 
| 
      
 41 
     | 
    
         
            +
            libdir='/build/dist-x64/lib/groonga/plugins/query_expanders'
         
     | 
| 
         @@ -66,8 +66,8 @@ module Groonga 
     | 
|
| 
       66 
66 
     | 
    
         
             
                    table_name = shard.table_name
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
68 
     | 
    
         
             
                    expression_builder = RangeExpressionBuilder.new(shard_key,
         
     | 
| 
       69 
     | 
    
         
            -
                                                                    target_range 
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
      
 69 
     | 
    
         
            +
                                                                    target_range)
         
     | 
| 
      
 70 
     | 
    
         
            +
                    expression_builder.filter = filter
         
     | 
| 
       71 
71 
     | 
    
         
             
                    if cover_type == :all
         
     | 
| 
       72 
72 
     | 
    
         
             
                      log_use_range_index(false, table_name, __LINE__, __method__)
         
     | 
| 
       73 
73 
     | 
    
         
             
                      if filter.nil?
         
     | 
| 
         @@ -211,8 +211,8 @@ module Groonga 
     | 
|
| 
       211 
211 
     | 
    
         
             
                      end
         
     | 
| 
       212 
212 
     | 
    
         | 
| 
       213 
213 
     | 
    
         
             
                      expression_builder = RangeExpressionBuilder.new(shard_key,
         
     | 
| 
       214 
     | 
    
         
            -
                                                                      @target_range 
     | 
| 
       215 
     | 
    
         
            -
             
     | 
| 
      
 214 
     | 
    
         
            +
                                                                      @target_range)
         
     | 
| 
      
 215 
     | 
    
         
            +
                      expression_builder.filter = @filter
         
     | 
| 
       216 
216 
     | 
    
         | 
| 
       217 
217 
     | 
    
         
             
                      index_info = shard_key.find_index(Operator::LESS)
         
     | 
| 
       218 
218 
     | 
    
         
             
                      if index_info
         
     | 
| 
         @@ -10,17 +10,24 @@ module Groonga 
     | 
|
| 
       10 
10 
     | 
    
         
             
                             "max",
         
     | 
| 
       11 
11 
     | 
    
         
             
                             "max_border",
         
     | 
| 
       12 
12 
     | 
    
         
             
                             "filter",
         
     | 
| 
      
 13 
     | 
    
         
            +
                             # Deprecated since 6.1.5. Use sort_keys instead.
         
     | 
| 
       13 
14 
     | 
    
         
             
                             "sortby",
         
     | 
| 
       14 
15 
     | 
    
         
             
                             "output_columns",
         
     | 
| 
       15 
16 
     | 
    
         
             
                             "offset",
         
     | 
| 
       16 
17 
     | 
    
         
             
                             "limit",
         
     | 
| 
       17 
18 
     | 
    
         
             
                             "drilldown",
         
     | 
| 
      
 19 
     | 
    
         
            +
                             # Deprecated since 6.1.5. Use drilldown_sort_keys instead.
         
     | 
| 
       18 
20 
     | 
    
         
             
                             "drilldown_sortby",
         
     | 
| 
       19 
21 
     | 
    
         
             
                             "drilldown_output_columns",
         
     | 
| 
       20 
22 
     | 
    
         
             
                             "drilldown_offset",
         
     | 
| 
       21 
23 
     | 
    
         
             
                             "drilldown_limit",
         
     | 
| 
       22 
24 
     | 
    
         
             
                             "drilldown_calc_types",
         
     | 
| 
       23 
25 
     | 
    
         
             
                             "drilldown_calc_target",
         
     | 
| 
      
 26 
     | 
    
         
            +
                             "sort_keys",
         
     | 
| 
      
 27 
     | 
    
         
            +
                             "drilldown_sort_keys",
         
     | 
| 
      
 28 
     | 
    
         
            +
                             "match_columns",
         
     | 
| 
      
 29 
     | 
    
         
            +
                             "query",
         
     | 
| 
      
 30 
     | 
    
         
            +
                             "drilldown_filter",
         
     | 
| 
       24 
31 
     | 
    
         
             
                           ])
         
     | 
| 
       25 
32 
     | 
    
         | 
| 
       26 
33 
     | 
    
         
             
                  def run_body(input)
         
     | 
| 
         @@ -55,6 +62,9 @@ module Groonga 
     | 
|
| 
       55 
62 
     | 
    
         | 
| 
       56 
63 
     | 
    
         
             
                  private
         
     | 
| 
       57 
64 
     | 
    
         
             
                  def cache_key(input)
         
     | 
| 
      
 65 
     | 
    
         
            +
                    sort_keys = input[:sort_keys] || input[:sortby]
         
     | 
| 
      
 66 
     | 
    
         
            +
                    drilldown_sort_keys =
         
     | 
| 
      
 67 
     | 
    
         
            +
                      input[:drilldown_sort_keys] || input[:drilldown_sortby]
         
     | 
| 
       58 
68 
     | 
    
         
             
                    key = "logical_select\0"
         
     | 
| 
       59 
69 
     | 
    
         
             
                    key << "#{input[:logical_table]}\0"
         
     | 
| 
       60 
70 
     | 
    
         
             
                    key << "#{input[:shard_key]}\0"
         
     | 
| 
         @@ -63,17 +73,20 @@ module Groonga 
     | 
|
| 
       63 
73 
     | 
    
         
             
                    key << "#{input[:max]}\0"
         
     | 
| 
       64 
74 
     | 
    
         
             
                    key << "#{input[:max_border]}\0"
         
     | 
| 
       65 
75 
     | 
    
         
             
                    key << "#{input[:filter]}\0"
         
     | 
| 
       66 
     | 
    
         
            -
                    key << "#{ 
     | 
| 
      
 76 
     | 
    
         
            +
                    key << "#{sort_keys}\0"
         
     | 
| 
       67 
77 
     | 
    
         
             
                    key << "#{input[:output_columns]}\0"
         
     | 
| 
       68 
78 
     | 
    
         
             
                    key << "#{input[:offset]}\0"
         
     | 
| 
       69 
79 
     | 
    
         
             
                    key << "#{input[:limit]}\0"
         
     | 
| 
       70 
80 
     | 
    
         
             
                    key << "#{input[:drilldown]}\0"
         
     | 
| 
       71 
     | 
    
         
            -
                    key << "#{ 
     | 
| 
      
 81 
     | 
    
         
            +
                    key << "#{drilldown_sort_keys}\0"
         
     | 
| 
      
 82 
     | 
    
         
            +
                    key << "#{input[:match_columns]}\0"
         
     | 
| 
      
 83 
     | 
    
         
            +
                    key << "#{input[:query]}\0"
         
     | 
| 
       72 
84 
     | 
    
         
             
                    key << "#{input[:drilldown_output_columns]}\0"
         
     | 
| 
       73 
85 
     | 
    
         
             
                    key << "#{input[:drilldown_offset]}\0"
         
     | 
| 
       74 
86 
     | 
    
         
             
                    key << "#{input[:drilldown_limit]}\0"
         
     | 
| 
       75 
87 
     | 
    
         
             
                    key << "#{input[:drilldown_calc_types]}\0"
         
     | 
| 
       76 
88 
     | 
    
         
             
                    key << "#{input[:drilldown_calc_target]}\0"
         
     | 
| 
      
 89 
     | 
    
         
            +
                    key << "#{input[:drilldown_filter]}\0"
         
     | 
| 
       77 
90 
     | 
    
         
             
                    labeled_drilldowns = LabeledDrilldowns.parse(input).sort_by(&:label)
         
     | 
| 
       78 
91 
     | 
    
         
             
                    labeled_drilldowns.each do |drilldown|
         
     | 
| 
       79 
92 
     | 
    
         
             
                      key << "#{drilldown.label}\0"
         
     | 
| 
         @@ -83,10 +96,33 @@ module Groonga 
     | 
|
| 
       83 
96 
     | 
    
         
             
                      key << "#{drilldown.limit}\0"
         
     | 
| 
       84 
97 
     | 
    
         
             
                      key << "#{drilldown.calc_types}\0"
         
     | 
| 
       85 
98 
     | 
    
         
             
                      key << "#{drilldown.calc_target_name}\0"
         
     | 
| 
      
 99 
     | 
    
         
            +
                      key << "#{drilldown.filter}\0"
         
     | 
| 
      
 100 
     | 
    
         
            +
                      cache_key_dynamic_columns(key, drilldown.dynamic_columns)
         
     | 
| 
       86 
101 
     | 
    
         
             
                    end
         
     | 
| 
      
 102 
     | 
    
         
            +
                    dynamic_columns = DynamicColumns.parse(input)
         
     | 
| 
      
 103 
     | 
    
         
            +
                    cache_key_dynamic_columns(key, dynamic_columns)
         
     | 
| 
       87 
104 
     | 
    
         
             
                    key
         
     | 
| 
       88 
105 
     | 
    
         
             
                  end
         
     | 
| 
       89 
106 
     | 
    
         | 
| 
      
 107 
     | 
    
         
            +
                  def cache_key_dynamic_columns(key, dynamic_columns)
         
     | 
| 
      
 108 
     | 
    
         
            +
                    [
         
     | 
| 
      
 109 
     | 
    
         
            +
                      :initial,
         
     | 
| 
      
 110 
     | 
    
         
            +
                      :filtered,
         
     | 
| 
      
 111 
     | 
    
         
            +
                      :output
         
     | 
| 
      
 112 
     | 
    
         
            +
                    ].each do |stage|
         
     | 
| 
      
 113 
     | 
    
         
            +
                      target_dynamic_columns = dynamic_columns.__send__("each_#{stage}").to_a
         
     | 
| 
      
 114 
     | 
    
         
            +
                      target_dynamic_columns.sort_by(&:label).each do |dynamic_column|
         
     | 
| 
      
 115 
     | 
    
         
            +
                        key << "#{dynamic_column.label}\0"
         
     | 
| 
      
 116 
     | 
    
         
            +
                        key << "#{dynamic_column.stage}\0"
         
     | 
| 
      
 117 
     | 
    
         
            +
                        key << "#{dynamic_column.type}\0"
         
     | 
| 
      
 118 
     | 
    
         
            +
                        key << "#{dynamic_column.flags}\0"
         
     | 
| 
      
 119 
     | 
    
         
            +
                        key << "#{dynamic_column.value}\0"
         
     | 
| 
      
 120 
     | 
    
         
            +
                        key << "#{dynamic_column.window_sort_keys.join(',')}\0"
         
     | 
| 
      
 121 
     | 
    
         
            +
                        key << "#{dynamic_column.window_group_keys.join(',')}\0"
         
     | 
| 
      
 122 
     | 
    
         
            +
                      end
         
     | 
| 
      
 123 
     | 
    
         
            +
                    end
         
     | 
| 
      
 124 
     | 
    
         
            +
                  end
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
       90 
126 
     | 
    
         
             
                  def write_records(writer, context)
         
     | 
| 
       91 
127 
     | 
    
         
             
                    result_sets = context.result_sets
         
     | 
| 
       92 
128 
     | 
    
         | 
| 
         @@ -191,6 +227,24 @@ module Groonga 
     | 
|
| 
       191 
227 
     | 
    
         
             
                    end
         
     | 
| 
       192 
228 
     | 
    
         
             
                  end
         
     | 
| 
       193 
229 
     | 
    
         | 
| 
      
 230 
     | 
    
         
            +
                  class LabeledArgumentParser
         
     | 
| 
      
 231 
     | 
    
         
            +
                    def initialize(parameters)
         
     | 
| 
      
 232 
     | 
    
         
            +
                      @parameters = parameters
         
     | 
| 
      
 233 
     | 
    
         
            +
                    end
         
     | 
| 
      
 234 
     | 
    
         
            +
             
     | 
| 
      
 235 
     | 
    
         
            +
                    def parse(prefix_pattern)
         
     | 
| 
      
 236 
     | 
    
         
            +
                      pattern = /\A#{prefix_pattern}\[(.+?)\]\.(.+)\z/
         
     | 
| 
      
 237 
     | 
    
         
            +
                      labeled_arguments = {}
         
     | 
| 
      
 238 
     | 
    
         
            +
                      @parameters.each do |key, value|
         
     | 
| 
      
 239 
     | 
    
         
            +
                        match_data = pattern.match(key)
         
     | 
| 
      
 240 
     | 
    
         
            +
                        next if match_data.nil?
         
     | 
| 
      
 241 
     | 
    
         
            +
                        labeled_argument = (labeled_arguments[match_data[1]] ||= {})
         
     | 
| 
      
 242 
     | 
    
         
            +
                        labeled_argument[match_data[2]] = value
         
     | 
| 
      
 243 
     | 
    
         
            +
                      end
         
     | 
| 
      
 244 
     | 
    
         
            +
                      labeled_arguments
         
     | 
| 
      
 245 
     | 
    
         
            +
                    end
         
     | 
| 
      
 246 
     | 
    
         
            +
                  end
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
       194 
248 
     | 
    
         
             
                  module KeysParsable
         
     | 
| 
       195 
249 
     | 
    
         
             
                    private
         
     | 
| 
       196 
250 
     | 
    
         
             
                    def parse_keys(raw_keys)
         
     | 
| 
         @@ -237,29 +291,42 @@ module Groonga 
     | 
|
| 
       237 
291 
     | 
    
         
             
                    include KeysParsable
         
     | 
| 
       238 
292 
     | 
    
         | 
| 
       239 
293 
     | 
    
         
             
                    attr_reader :enumerator
         
     | 
| 
      
 294 
     | 
    
         
            +
                    attr_reader :match_columns
         
     | 
| 
      
 295 
     | 
    
         
            +
                    attr_reader :query
         
     | 
| 
       240 
296 
     | 
    
         
             
                    attr_reader :filter
         
     | 
| 
       241 
297 
     | 
    
         
             
                    attr_reader :offset
         
     | 
| 
       242 
298 
     | 
    
         
             
                    attr_reader :limit
         
     | 
| 
       243 
299 
     | 
    
         
             
                    attr_reader :sort_keys
         
     | 
| 
       244 
300 
     | 
    
         
             
                    attr_reader :output_columns
         
     | 
| 
      
 301 
     | 
    
         
            +
                    attr_reader :dynamic_columns
         
     | 
| 
       245 
302 
     | 
    
         
             
                    attr_reader :result_sets
         
     | 
| 
       246 
303 
     | 
    
         
             
                    attr_reader :unsorted_result_sets
         
     | 
| 
       247 
304 
     | 
    
         
             
                    attr_reader :plain_drilldown
         
     | 
| 
       248 
305 
     | 
    
         
             
                    attr_reader :labeled_drilldowns
         
     | 
| 
      
 306 
     | 
    
         
            +
                    attr_reader :temporary_tables
         
     | 
| 
      
 307 
     | 
    
         
            +
                    attr_reader :expressions
         
     | 
| 
       249 
308 
     | 
    
         
             
                    def initialize(input)
         
     | 
| 
       250 
309 
     | 
    
         
             
                      @input = input
         
     | 
| 
       251 
310 
     | 
    
         
             
                      @enumerator = LogicalEnumerator.new("logical_select", @input)
         
     | 
| 
      
 311 
     | 
    
         
            +
                      @match_columns = @input[:match_columns]
         
     | 
| 
      
 312 
     | 
    
         
            +
                      @query = @input[:query]
         
     | 
| 
       252 
313 
     | 
    
         
             
                      @filter = @input[:filter]
         
     | 
| 
       253 
314 
     | 
    
         
             
                      @offset = (@input[:offset] || 0).to_i
         
     | 
| 
       254 
315 
     | 
    
         
             
                      @limit = (@input[:limit] || 10).to_i
         
     | 
| 
       255 
     | 
    
         
            -
                      @sort_keys = parse_keys(@input[:sortby])
         
     | 
| 
      
 316 
     | 
    
         
            +
                      @sort_keys = parse_keys(@input[:sort_keys] || @input[:sortby])
         
     | 
| 
       256 
317 
     | 
    
         
             
                      @output_columns = @input[:output_columns] || "_id, _key, *"
         
     | 
| 
       257 
318 
     | 
    
         | 
| 
      
 319 
     | 
    
         
            +
                      @dynamic_columns = DynamicColumns.parse(@input)
         
     | 
| 
      
 320 
     | 
    
         
            +
             
     | 
| 
       258 
321 
     | 
    
         
             
                      @result_sets = []
         
     | 
| 
       259 
322 
     | 
    
         
             
                      @unsorted_result_sets = []
         
     | 
| 
       260 
323 
     | 
    
         | 
| 
       261 
324 
     | 
    
         
             
                      @plain_drilldown = PlainDrilldownExecuteContext.new(@input)
         
     | 
| 
       262 
325 
     | 
    
         
             
                      @labeled_drilldowns = LabeledDrilldowns.parse(@input)
         
     | 
| 
      
 326 
     | 
    
         
            +
             
     | 
| 
      
 327 
     | 
    
         
            +
                      @temporary_tables = []
         
     | 
| 
      
 328 
     | 
    
         
            +
             
     | 
| 
      
 329 
     | 
    
         
            +
                      @expressions = []
         
     | 
| 
       263 
330 
     | 
    
         
             
                    end
         
     | 
| 
       264 
331 
     | 
    
         | 
| 
       265 
332 
     | 
    
         
             
                    def close
         
     | 
| 
         @@ -272,6 +339,150 @@ module Groonga 
     | 
|
| 
       272 
339 
     | 
    
         | 
| 
       273 
340 
     | 
    
         
             
                      @plain_drilldown.close
         
     | 
| 
       274 
341 
     | 
    
         
             
                      @labeled_drilldowns.close
         
     | 
| 
      
 342 
     | 
    
         
            +
             
     | 
| 
      
 343 
     | 
    
         
            +
                      @dynamic_columns.close
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                      @temporary_tables.each do |table|
         
     | 
| 
      
 346 
     | 
    
         
            +
                        table.close
         
     | 
| 
      
 347 
     | 
    
         
            +
                      end
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
                      @expressions.each do |expression|
         
     | 
| 
      
 350 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 351 
     | 
    
         
            +
                      end
         
     | 
| 
      
 352 
     | 
    
         
            +
                    end
         
     | 
| 
      
 353 
     | 
    
         
            +
                  end
         
     | 
| 
      
 354 
     | 
    
         
            +
             
     | 
| 
      
 355 
     | 
    
         
            +
                  class DynamicColumns
         
     | 
| 
      
 356 
     | 
    
         
            +
                    class << self
         
     | 
| 
      
 357 
     | 
    
         
            +
                      def parse(input)
         
     | 
| 
      
 358 
     | 
    
         
            +
                        parser = LabeledArgumentParser.new(input)
         
     | 
| 
      
 359 
     | 
    
         
            +
                        columns = parser.parse(/columns?/)
         
     | 
| 
      
 360 
     | 
    
         
            +
             
     | 
| 
      
 361 
     | 
    
         
            +
                        initial_contexts = []
         
     | 
| 
      
 362 
     | 
    
         
            +
                        filtered_contexts = []
         
     | 
| 
      
 363 
     | 
    
         
            +
                        output_contexts = []
         
     | 
| 
      
 364 
     | 
    
         
            +
                        columns.each do |label, parameters|
         
     | 
| 
      
 365 
     | 
    
         
            +
                          contexts = nil
         
     | 
| 
      
 366 
     | 
    
         
            +
                          case parameters["stage"]
         
     | 
| 
      
 367 
     | 
    
         
            +
                          when "initial"
         
     | 
| 
      
 368 
     | 
    
         
            +
                            contexts = initial_contexts
         
     | 
| 
      
 369 
     | 
    
         
            +
                          when "filtered"
         
     | 
| 
      
 370 
     | 
    
         
            +
                            contexts = filtered_contexts
         
     | 
| 
      
 371 
     | 
    
         
            +
                          when "output"
         
     | 
| 
      
 372 
     | 
    
         
            +
                            contexts = output_contexts
         
     | 
| 
      
 373 
     | 
    
         
            +
                          else
         
     | 
| 
      
 374 
     | 
    
         
            +
                            next
         
     | 
| 
      
 375 
     | 
    
         
            +
                          end
         
     | 
| 
      
 376 
     | 
    
         
            +
                          contexts << DynamicColumnExecuteContext.new(label, parameters)
         
     | 
| 
      
 377 
     | 
    
         
            +
                        end
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
                        new(initial_contexts,
         
     | 
| 
      
 380 
     | 
    
         
            +
                            filtered_contexts,
         
     | 
| 
      
 381 
     | 
    
         
            +
                            output_contexts)
         
     | 
| 
      
 382 
     | 
    
         
            +
                      end
         
     | 
| 
      
 383 
     | 
    
         
            +
                    end
         
     | 
| 
      
 384 
     | 
    
         
            +
             
     | 
| 
      
 385 
     | 
    
         
            +
                    def initialize(initial_contexts,
         
     | 
| 
      
 386 
     | 
    
         
            +
                                   filtered_contexts,
         
     | 
| 
      
 387 
     | 
    
         
            +
                                   output_contexts)
         
     | 
| 
      
 388 
     | 
    
         
            +
                      @initial_contexts = initial_contexts
         
     | 
| 
      
 389 
     | 
    
         
            +
                      @filtered_contexts = filtered_contexts
         
     | 
| 
      
 390 
     | 
    
         
            +
                      @output_contexts = output_contexts
         
     | 
| 
      
 391 
     | 
    
         
            +
                    end
         
     | 
| 
      
 392 
     | 
    
         
            +
             
     | 
| 
      
 393 
     | 
    
         
            +
                    def each_initial(&block)
         
     | 
| 
      
 394 
     | 
    
         
            +
                      @initial_contexts.each(&block)
         
     | 
| 
      
 395 
     | 
    
         
            +
                    end
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
      
 397 
     | 
    
         
            +
                    def each_filtered(&block)
         
     | 
| 
      
 398 
     | 
    
         
            +
                      @filtered_contexts.each(&block)
         
     | 
| 
      
 399 
     | 
    
         
            +
                    end
         
     | 
| 
      
 400 
     | 
    
         
            +
             
     | 
| 
      
 401 
     | 
    
         
            +
                    def each_output(&block)
         
     | 
| 
      
 402 
     | 
    
         
            +
                      @output_contexts.each(&block)
         
     | 
| 
      
 403 
     | 
    
         
            +
                    end
         
     | 
| 
      
 404 
     | 
    
         
            +
             
     | 
| 
      
 405 
     | 
    
         
            +
                    def close
         
     | 
| 
      
 406 
     | 
    
         
            +
                      @initial_contexts.each do |context|
         
     | 
| 
      
 407 
     | 
    
         
            +
                        context.close
         
     | 
| 
      
 408 
     | 
    
         
            +
                      end
         
     | 
| 
      
 409 
     | 
    
         
            +
                      @filtered_contexts.each do |context|
         
     | 
| 
      
 410 
     | 
    
         
            +
                        context.close
         
     | 
| 
      
 411 
     | 
    
         
            +
                      end
         
     | 
| 
      
 412 
     | 
    
         
            +
                      @output_contexts.each do |context|
         
     | 
| 
      
 413 
     | 
    
         
            +
                        context.close
         
     | 
| 
      
 414 
     | 
    
         
            +
                      end
         
     | 
| 
      
 415 
     | 
    
         
            +
                    end
         
     | 
| 
      
 416 
     | 
    
         
            +
                  end
         
     | 
| 
      
 417 
     | 
    
         
            +
             
     | 
| 
      
 418 
     | 
    
         
            +
                  class DynamicColumnExecuteContext
         
     | 
| 
      
 419 
     | 
    
         
            +
                    include KeysParsable
         
     | 
| 
      
 420 
     | 
    
         
            +
             
     | 
| 
      
 421 
     | 
    
         
            +
                    attr_reader :label
         
     | 
| 
      
 422 
     | 
    
         
            +
                    attr_reader :stage
         
     | 
| 
      
 423 
     | 
    
         
            +
                    attr_reader :type
         
     | 
| 
      
 424 
     | 
    
         
            +
                    attr_reader :flags
         
     | 
| 
      
 425 
     | 
    
         
            +
                    attr_reader :value
         
     | 
| 
      
 426 
     | 
    
         
            +
                    attr_reader :window_sort_keys
         
     | 
| 
      
 427 
     | 
    
         
            +
                    attr_reader :window_group_keys
         
     | 
| 
      
 428 
     | 
    
         
            +
                    def initialize(label, parameters)
         
     | 
| 
      
 429 
     | 
    
         
            +
                      @label = label
         
     | 
| 
      
 430 
     | 
    
         
            +
                      @stage = parameters["stage"]
         
     | 
| 
      
 431 
     | 
    
         
            +
                      @type = parse_type(parameters["type"])
         
     | 
| 
      
 432 
     | 
    
         
            +
                      @flags = parse_flags(parameters["flags"] || "COLUMN_SCALAR")
         
     | 
| 
      
 433 
     | 
    
         
            +
                      @value = parameters["value"]
         
     | 
| 
      
 434 
     | 
    
         
            +
                      @window_sort_keys = parse_keys(parameters["window.sort_keys"])
         
     | 
| 
      
 435 
     | 
    
         
            +
                      @window_group_keys = parse_keys(parameters["window.group_keys"])
         
     | 
| 
      
 436 
     | 
    
         
            +
                    end
         
     | 
| 
      
 437 
     | 
    
         
            +
             
     | 
| 
      
 438 
     | 
    
         
            +
                    def close
         
     | 
| 
      
 439 
     | 
    
         
            +
                    end
         
     | 
| 
      
 440 
     | 
    
         
            +
             
     | 
| 
      
 441 
     | 
    
         
            +
                    def apply(table, condition=nil)
         
     | 
| 
      
 442 
     | 
    
         
            +
                      column = table.create_column(@label, @flags, @type)
         
     | 
| 
      
 443 
     | 
    
         
            +
                      return if table.empty?
         
     | 
| 
      
 444 
     | 
    
         
            +
             
     | 
| 
      
 445 
     | 
    
         
            +
                      expression = Expression.create(table)
         
     | 
| 
      
 446 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 447 
     | 
    
         
            +
                        expression.parse(@value)
         
     | 
| 
      
 448 
     | 
    
         
            +
                        if @window_sort_keys.empty? and @window_group_keys.empty?
         
     | 
| 
      
 449 
     | 
    
         
            +
                          expression.condition = condition if condition
         
     | 
| 
      
 450 
     | 
    
         
            +
                          table.apply_expression(column, expression)
         
     | 
| 
      
 451 
     | 
    
         
            +
                        else
         
     | 
| 
      
 452 
     | 
    
         
            +
                          table.apply_window_function(column, expression,
         
     | 
| 
      
 453 
     | 
    
         
            +
                                                      :sort_keys => @window_sort_keys,
         
     | 
| 
      
 454 
     | 
    
         
            +
                                                      :group_keys => @window_group_keys)
         
     | 
| 
      
 455 
     | 
    
         
            +
                        end
         
     | 
| 
      
 456 
     | 
    
         
            +
                      ensure
         
     | 
| 
      
 457 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 458 
     | 
    
         
            +
                      end
         
     | 
| 
      
 459 
     | 
    
         
            +
                    end
         
     | 
| 
      
 460 
     | 
    
         
            +
             
     | 
| 
      
 461 
     | 
    
         
            +
                    private
         
     | 
| 
      
 462 
     | 
    
         
            +
                    def parse_type(type_raw)
         
     | 
| 
      
 463 
     | 
    
         
            +
                      return nil if type_raw.nil?
         
     | 
| 
      
 464 
     | 
    
         
            +
             
     | 
| 
      
 465 
     | 
    
         
            +
                      type = Context.instance[type_raw]
         
     | 
| 
      
 466 
     | 
    
         
            +
                      if type.nil?
         
     | 
| 
      
 467 
     | 
    
         
            +
                        message = "#{error_message_tag} unknown type: <#{type_raw}>"
         
     | 
| 
      
 468 
     | 
    
         
            +
                        raise InvalidArgument, message
         
     | 
| 
      
 469 
     | 
    
         
            +
                      end
         
     | 
| 
      
 470 
     | 
    
         
            +
             
     | 
| 
      
 471 
     | 
    
         
            +
                      case type
         
     | 
| 
      
 472 
     | 
    
         
            +
                      when Type, Table
         
     | 
| 
      
 473 
     | 
    
         
            +
                        type
         
     | 
| 
      
 474 
     | 
    
         
            +
                      else
         
     | 
| 
      
 475 
     | 
    
         
            +
                        message = "#{error_message_tag} invalid type: #{type.grn_inspect}"
         
     | 
| 
      
 476 
     | 
    
         
            +
                        raise InvalidArgument, message
         
     | 
| 
      
 477 
     | 
    
         
            +
                      end
         
     | 
| 
      
 478 
     | 
    
         
            +
                    end
         
     | 
| 
      
 479 
     | 
    
         
            +
             
     | 
| 
      
 480 
     | 
    
         
            +
                    def parse_flags(flags_raw)
         
     | 
| 
      
 481 
     | 
    
         
            +
                      Column.parse_flags(error_message_tag, flags_raw)
         
     | 
| 
      
 482 
     | 
    
         
            +
                    end
         
     | 
| 
      
 483 
     | 
    
         
            +
             
     | 
| 
      
 484 
     | 
    
         
            +
                    def error_message_tag
         
     | 
| 
      
 485 
     | 
    
         
            +
                      "[logical_select][columns][#{@stage}][#{@label}]"
         
     | 
| 
       275 
486 
     | 
    
         
             
                    end
         
     | 
| 
       276 
487 
     | 
    
         
             
                  end
         
     | 
| 
       277 
488 
     | 
    
         | 
| 
         @@ -286,21 +497,30 @@ module Groonga 
     | 
|
| 
       286 
497 
     | 
    
         
             
                    attr_reader :output_columns
         
     | 
| 
       287 
498 
     | 
    
         
             
                    attr_reader :calc_target_name
         
     | 
| 
       288 
499 
     | 
    
         
             
                    attr_reader :calc_types
         
     | 
| 
      
 500 
     | 
    
         
            +
                    attr_reader :filter
         
     | 
| 
       289 
501 
     | 
    
         
             
                    attr_reader :result_sets
         
     | 
| 
       290 
502 
     | 
    
         
             
                    attr_reader :unsorted_result_sets
         
     | 
| 
      
 503 
     | 
    
         
            +
                    attr_reader :temporary_tables
         
     | 
| 
      
 504 
     | 
    
         
            +
                    attr_reader :expressions
         
     | 
| 
       291 
505 
     | 
    
         
             
                    def initialize(input)
         
     | 
| 
       292 
506 
     | 
    
         
             
                      @input = input
         
     | 
| 
       293 
507 
     | 
    
         
             
                      @keys = parse_keys(@input[:drilldown])
         
     | 
| 
       294 
508 
     | 
    
         
             
                      @offset = (@input[:drilldown_offset] || 0).to_i
         
     | 
| 
       295 
509 
     | 
    
         
             
                      @limit = (@input[:drilldown_limit] || 10).to_i
         
     | 
| 
       296 
     | 
    
         
            -
                      @sort_keys = parse_keys(@input[: 
     | 
| 
      
 510 
     | 
    
         
            +
                      @sort_keys = parse_keys(@input[:drilldown_sort_keys] ||
         
     | 
| 
      
 511 
     | 
    
         
            +
                                              @input[:drilldown_sortby])
         
     | 
| 
       297 
512 
     | 
    
         
             
                      @output_columns = @input[:drilldown_output_columns]
         
     | 
| 
       298 
513 
     | 
    
         
             
                      @output_columns ||= "_key, _nsubrecs"
         
     | 
| 
       299 
514 
     | 
    
         
             
                      @calc_target_name = @input[:drilldown_calc_target]
         
     | 
| 
       300 
515 
     | 
    
         
             
                      @calc_types = parse_calc_types(@input[:drilldown_calc_types])
         
     | 
| 
      
 516 
     | 
    
         
            +
                      @filter = @input[:drilldown_filter]
         
     | 
| 
       301 
517 
     | 
    
         | 
| 
       302 
518 
     | 
    
         
             
                      @result_sets = []
         
     | 
| 
       303 
519 
     | 
    
         
             
                      @unsorted_result_sets = []
         
     | 
| 
      
 520 
     | 
    
         
            +
             
     | 
| 
      
 521 
     | 
    
         
            +
                      @temporary_tables = []
         
     | 
| 
      
 522 
     | 
    
         
            +
             
     | 
| 
      
 523 
     | 
    
         
            +
                      @expressions = []
         
     | 
| 
       304 
524 
     | 
    
         
             
                    end
         
     | 
| 
       305 
525 
     | 
    
         | 
| 
       306 
526 
     | 
    
         
             
                    def close
         
     | 
| 
         @@ -310,6 +530,14 @@ module Groonga 
     | 
|
| 
       310 
530 
     | 
    
         
             
                      @unsorted_result_sets.each do |result_set|
         
     | 
| 
       311 
531 
     | 
    
         
             
                        result_set.close
         
     | 
| 
       312 
532 
     | 
    
         
             
                      end
         
     | 
| 
      
 533 
     | 
    
         
            +
             
     | 
| 
      
 534 
     | 
    
         
            +
                      @temporary_tables.each do |table|
         
     | 
| 
      
 535 
     | 
    
         
            +
                        table.close
         
     | 
| 
      
 536 
     | 
    
         
            +
                      end
         
     | 
| 
      
 537 
     | 
    
         
            +
             
     | 
| 
      
 538 
     | 
    
         
            +
                      @expressions.each do |expression|
         
     | 
| 
      
 539 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 540 
     | 
    
         
            +
                      end
         
     | 
| 
       313 
541 
     | 
    
         
             
                    end
         
     | 
| 
       314 
542 
     | 
    
         | 
| 
       315 
543 
     | 
    
         
             
                    def have_keys?
         
     | 
| 
         @@ -323,27 +551,19 @@ module Groonga 
     | 
|
| 
       323 
551 
     | 
    
         | 
| 
       324 
552 
     | 
    
         
             
                  class LabeledDrilldowns
         
     | 
| 
       325 
553 
     | 
    
         
             
                    include Enumerable
         
     | 
| 
      
 554 
     | 
    
         
            +
                    include TSort
         
     | 
| 
       326 
555 
     | 
    
         | 
| 
       327 
556 
     | 
    
         
             
                    class << self
         
     | 
| 
       328 
557 
     | 
    
         
             
                      def parse(input)
         
     | 
| 
       329 
     | 
    
         
            -
                         
     | 
| 
       330 
     | 
    
         
            -
                         
     | 
| 
       331 
     | 
    
         
            -
                        argument = Record.new(arguments, nil)
         
     | 
| 
       332 
     | 
    
         
            -
                        arguments.each do |argument_id|
         
     | 
| 
       333 
     | 
    
         
            -
                          argument.id = argument_id
         
     | 
| 
       334 
     | 
    
         
            -
                          key = argument.key
         
     | 
| 
       335 
     | 
    
         
            -
                          match_data = /\Adrilldown\[(.+?)\]\.(.+)\z/.match(key)
         
     | 
| 
       336 
     | 
    
         
            -
                          next if match_data.nil?
         
     | 
| 
       337 
     | 
    
         
            -
                          drilldown = (drilldowns[match_data[1]] ||= {})
         
     | 
| 
       338 
     | 
    
         
            -
                          drilldown[match_data[2]] = input[key]
         
     | 
| 
       339 
     | 
    
         
            -
                        end
         
     | 
| 
      
 558 
     | 
    
         
            +
                        parser = LabeledArgumentParser.new(input)
         
     | 
| 
      
 559 
     | 
    
         
            +
                        drilldowns = parser.parse(/drilldowns?/)
         
     | 
| 
       340 
560 
     | 
    
         | 
| 
       341 
     | 
    
         
            -
                        contexts =  
     | 
| 
      
 561 
     | 
    
         
            +
                        contexts = {}
         
     | 
| 
       342 
562 
     | 
    
         
             
                        drilldowns.each do |label, parameters|
         
     | 
| 
       343 
563 
     | 
    
         
             
                          next if parameters["keys"].nil?
         
     | 
| 
       344 
     | 
    
         
            -
                           
     | 
| 
      
 564 
     | 
    
         
            +
                          context = LabeledDrilldownExecuteContext.new(label, parameters)
         
     | 
| 
      
 565 
     | 
    
         
            +
                          contexts[label] = context
         
     | 
| 
       345 
566 
     | 
    
         
             
                        end
         
     | 
| 
       346 
     | 
    
         
            -
                        return nil if contexts.nil?
         
     | 
| 
       347 
567 
     | 
    
         | 
| 
       348 
568 
     | 
    
         
             
                        new(contexts)
         
     | 
| 
       349 
569 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -351,16 +571,32 @@ module Groonga 
     | 
|
| 
       351 
571 
     | 
    
         | 
| 
       352 
572 
     | 
    
         
             
                    def initialize(contexts)
         
     | 
| 
       353 
573 
     | 
    
         
             
                      @contexts = contexts
         
     | 
| 
      
 574 
     | 
    
         
            +
                      @dependencies = {}
         
     | 
| 
      
 575 
     | 
    
         
            +
                      @contexts.each do |label, context|
         
     | 
| 
      
 576 
     | 
    
         
            +
                        if context.table
         
     | 
| 
      
 577 
     | 
    
         
            +
                          depended_context = @contexts[context.table]
         
     | 
| 
      
 578 
     | 
    
         
            +
                          if depended_context.nil?
         
     | 
| 
      
 579 
     | 
    
         
            +
                            raise "Unknown drilldown: <#{context.table}>"
         
     | 
| 
      
 580 
     | 
    
         
            +
                          end
         
     | 
| 
      
 581 
     | 
    
         
            +
                          @dependencies[label] = [depended_context]
         
     | 
| 
      
 582 
     | 
    
         
            +
                        else
         
     | 
| 
      
 583 
     | 
    
         
            +
                          @dependencies[label] = []
         
     | 
| 
      
 584 
     | 
    
         
            +
                        end
         
     | 
| 
      
 585 
     | 
    
         
            +
                      end
         
     | 
| 
       354 
586 
     | 
    
         
             
                    end
         
     | 
| 
       355 
587 
     | 
    
         | 
| 
       356 
588 
     | 
    
         
             
                    def close
         
     | 
| 
       357 
     | 
    
         
            -
                      @contexts. 
     | 
| 
      
 589 
     | 
    
         
            +
                      @contexts.each_value do |context|
         
     | 
| 
       358 
590 
     | 
    
         
             
                        context.close
         
     | 
| 
       359 
591 
     | 
    
         
             
                      end
         
     | 
| 
       360 
592 
     | 
    
         
             
                    end
         
     | 
| 
       361 
593 
     | 
    
         | 
| 
      
 594 
     | 
    
         
            +
                    def [](label)
         
     | 
| 
      
 595 
     | 
    
         
            +
                      @contexts[label]
         
     | 
| 
      
 596 
     | 
    
         
            +
                    end
         
     | 
| 
      
 597 
     | 
    
         
            +
             
     | 
| 
       362 
598 
     | 
    
         
             
                    def have_keys?
         
     | 
| 
       363 
     | 
    
         
            -
                      @contexts. 
     | 
| 
      
 599 
     | 
    
         
            +
                      not @contexts.empty?
         
     | 
| 
       364 
600 
     | 
    
         
             
                    end
         
     | 
| 
       365 
601 
     | 
    
         | 
| 
       366 
602 
     | 
    
         
             
                    def n_result_sets
         
     | 
| 
         @@ -368,7 +604,15 @@ module Groonga 
     | 
|
| 
       368 
604 
     | 
    
         
             
                    end
         
     | 
| 
       369 
605 
     | 
    
         | 
| 
       370 
606 
     | 
    
         
             
                    def each(&block)
         
     | 
| 
       371 
     | 
    
         
            -
                      @contexts. 
     | 
| 
      
 607 
     | 
    
         
            +
                      @contexts.each_value(&block)
         
     | 
| 
      
 608 
     | 
    
         
            +
                    end
         
     | 
| 
      
 609 
     | 
    
         
            +
             
     | 
| 
      
 610 
     | 
    
         
            +
                    def tsort_each_node(&block)
         
     | 
| 
      
 611 
     | 
    
         
            +
                      @contexts.each_value(&block)
         
     | 
| 
      
 612 
     | 
    
         
            +
                    end
         
     | 
| 
      
 613 
     | 
    
         
            +
             
     | 
| 
      
 614 
     | 
    
         
            +
                    def tsort_each_child(context, &block)
         
     | 
| 
      
 615 
     | 
    
         
            +
                      @dependencies[context.label].each(&block)
         
     | 
| 
       372 
616 
     | 
    
         
             
                    end
         
     | 
| 
       373 
617 
     | 
    
         
             
                  end
         
     | 
| 
       374 
618 
     | 
    
         | 
| 
         @@ -384,26 +628,50 @@ module Groonga 
     | 
|
| 
       384 
628 
     | 
    
         
             
                    attr_reader :output_columns
         
     | 
| 
       385 
629 
     | 
    
         
             
                    attr_reader :calc_target_name
         
     | 
| 
       386 
630 
     | 
    
         
             
                    attr_reader :calc_types
         
     | 
| 
      
 631 
     | 
    
         
            +
                    attr_reader :filter
         
     | 
| 
      
 632 
     | 
    
         
            +
                    attr_reader :table
         
     | 
| 
      
 633 
     | 
    
         
            +
                    attr_reader :dynamic_columns
         
     | 
| 
       387 
634 
     | 
    
         
             
                    attr_accessor :result_set
         
     | 
| 
       388 
635 
     | 
    
         
             
                    attr_accessor :unsorted_result_set
         
     | 
| 
      
 636 
     | 
    
         
            +
                    attr_reader :temporary_tables
         
     | 
| 
      
 637 
     | 
    
         
            +
                    attr_reader :expressions
         
     | 
| 
       389 
638 
     | 
    
         
             
                    def initialize(label, parameters)
         
     | 
| 
       390 
639 
     | 
    
         
             
                      @label = label
         
     | 
| 
       391 
640 
     | 
    
         
             
                      @keys = parse_keys(parameters["keys"])
         
     | 
| 
       392 
641 
     | 
    
         
             
                      @offset = (parameters["offset"] || 0).to_i
         
     | 
| 
       393 
642 
     | 
    
         
             
                      @limit = (parameters["limit"] || 10).to_i
         
     | 
| 
       394 
     | 
    
         
            -
                      @sort_keys = parse_keys(parameters[" 
     | 
| 
      
 643 
     | 
    
         
            +
                      @sort_keys = parse_keys(parameters["sort_keys"] ||
         
     | 
| 
      
 644 
     | 
    
         
            +
                                              parameters["sortby"])
         
     | 
| 
       395 
645 
     | 
    
         
             
                      @output_columns = parameters["output_columns"]
         
     | 
| 
       396 
646 
     | 
    
         
             
                      @output_columns ||= "_key, _nsubrecs"
         
     | 
| 
       397 
647 
     | 
    
         
             
                      @calc_target_name = parameters["calc_target"]
         
     | 
| 
       398 
648 
     | 
    
         
             
                      @calc_types = parse_calc_types(parameters["calc_types"])
         
     | 
| 
      
 649 
     | 
    
         
            +
                      @filter = parameters["filter"]
         
     | 
| 
      
 650 
     | 
    
         
            +
                      @table = parameters["table"]
         
     | 
| 
      
 651 
     | 
    
         
            +
             
     | 
| 
      
 652 
     | 
    
         
            +
                      @dynamic_columns = DynamicColumns.parse(parameters)
         
     | 
| 
       399 
653 
     | 
    
         | 
| 
       400 
654 
     | 
    
         
             
                      @result_set = nil
         
     | 
| 
       401 
655 
     | 
    
         
             
                      @unsorted_result_set = nil
         
     | 
| 
      
 656 
     | 
    
         
            +
             
     | 
| 
      
 657 
     | 
    
         
            +
                      @temporary_tables = []
         
     | 
| 
      
 658 
     | 
    
         
            +
             
     | 
| 
      
 659 
     | 
    
         
            +
                      @expressions = []
         
     | 
| 
       402 
660 
     | 
    
         
             
                    end
         
     | 
| 
       403 
661 
     | 
    
         | 
| 
       404 
662 
     | 
    
         
             
                    def close
         
     | 
| 
       405 
663 
     | 
    
         
             
                      @result_set.close if @result_set
         
     | 
| 
       406 
664 
     | 
    
         
             
                      @unsorted_result_set.close if @unsorted_result_set
         
     | 
| 
      
 665 
     | 
    
         
            +
             
     | 
| 
      
 666 
     | 
    
         
            +
                      @dynamic_columns.close
         
     | 
| 
      
 667 
     | 
    
         
            +
             
     | 
| 
      
 668 
     | 
    
         
            +
                      @temporary_tables.each do |table|
         
     | 
| 
      
 669 
     | 
    
         
            +
                        table.close
         
     | 
| 
      
 670 
     | 
    
         
            +
                      end
         
     | 
| 
      
 671 
     | 
    
         
            +
             
     | 
| 
      
 672 
     | 
    
         
            +
                      @expressions.each do |expression|
         
     | 
| 
      
 673 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 674 
     | 
    
         
            +
                      end
         
     | 
| 
       407 
675 
     | 
    
         
             
                    end
         
     | 
| 
       408 
676 
     | 
    
         | 
| 
       409 
677 
     | 
    
         
             
                    def need_command_version2?
         
     | 
| 
         @@ -462,6 +730,12 @@ module Groonga 
     | 
|
| 
       462 
730 
     | 
    
         
             
                      if @context.result_sets.empty?
         
     | 
| 
       463 
731 
     | 
    
         
             
                        result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
         
     | 
| 
       464 
732 
     | 
    
         
             
                                                      :key_type => first_shard.table)
         
     | 
| 
      
 733 
     | 
    
         
            +
                        @context.dynamic_columns.each_initial do |dynamic_column|
         
     | 
| 
      
 734 
     | 
    
         
            +
                          dynamic_column.apply(result_set)
         
     | 
| 
      
 735 
     | 
    
         
            +
                        end
         
     | 
| 
      
 736 
     | 
    
         
            +
                        @context.dynamic_columns.each_filtered do |dynamic_column|
         
     | 
| 
      
 737 
     | 
    
         
            +
                          dynamic_column.apply(result_set)
         
     | 
| 
      
 738 
     | 
    
         
            +
                        end
         
     | 
| 
       465 
739 
     | 
    
         
             
                        @context.result_sets << result_set
         
     | 
| 
       466 
740 
     | 
    
         
             
                      end
         
     | 
| 
       467 
741 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -482,6 +756,7 @@ module Groonga 
     | 
|
| 
       482 
756 
     | 
    
         
             
                            end
         
     | 
| 
       483 
757 
     | 
    
         
             
                          end
         
     | 
| 
       484 
758 
     | 
    
         
             
                          result_set = group_result.table
         
     | 
| 
      
 759 
     | 
    
         
            +
                          result_set = apply_drilldown_filter(drilldown, result_set)
         
     | 
| 
       485 
760 
     | 
    
         
             
                          if drilldown.sort_keys.empty?
         
     | 
| 
       486 
761 
     | 
    
         
             
                            drilldown.result_sets << result_set
         
     | 
| 
       487 
762 
     | 
    
         
             
                          else
         
     | 
| 
         @@ -498,7 +773,7 @@ module Groonga 
     | 
|
| 
       498 
773 
     | 
    
         
             
                    def execute_labeled_drilldowns
         
     | 
| 
       499 
774 
     | 
    
         
             
                      drilldowns = @context.labeled_drilldowns
         
     | 
| 
       500 
775 
     | 
    
         | 
| 
       501 
     | 
    
         
            -
                      drilldowns. 
     | 
| 
      
 776 
     | 
    
         
            +
                      drilldowns.tsort_each do |drilldown|
         
     | 
| 
       502 
777 
     | 
    
         
             
                        group_result = TableGroupResult.new
         
     | 
| 
       503 
778 
     | 
    
         
             
                        keys = drilldown.keys
         
     | 
| 
       504 
779 
     | 
    
         
             
                        begin
         
     | 
| 
         @@ -509,13 +784,25 @@ module Groonga 
     | 
|
| 
       509 
784 
     | 
    
         
             
                          end
         
     | 
| 
       510 
785 
     | 
    
         
             
                          group_result.limit = 1
         
     | 
| 
       511 
786 
     | 
    
         
             
                          group_result.flags = drilldown.calc_types
         
     | 
| 
       512 
     | 
    
         
            -
                           
     | 
| 
      
 787 
     | 
    
         
            +
                          if drilldown.table
         
     | 
| 
      
 788 
     | 
    
         
            +
                            target_table = drilldowns[drilldown.table].result_set
         
     | 
| 
       513 
789 
     | 
    
         
             
                            with_calc_target(group_result,
         
     | 
| 
       514 
     | 
    
         
            -
                                             drilldown.calc_target( 
     | 
| 
       515 
     | 
    
         
            -
                               
     | 
| 
      
 790 
     | 
    
         
            +
                                             drilldown.calc_target(target_table)) do
         
     | 
| 
      
 791 
     | 
    
         
            +
                              target_table.group(keys, group_result)
         
     | 
| 
      
 792 
     | 
    
         
            +
                            end
         
     | 
| 
      
 793 
     | 
    
         
            +
                          else
         
     | 
| 
      
 794 
     | 
    
         
            +
                            @context.result_sets.each do |result_set|
         
     | 
| 
      
 795 
     | 
    
         
            +
                              with_calc_target(group_result,
         
     | 
| 
      
 796 
     | 
    
         
            +
                                               drilldown.calc_target(result_set)) do
         
     | 
| 
      
 797 
     | 
    
         
            +
                                result_set.group(keys, group_result)
         
     | 
| 
      
 798 
     | 
    
         
            +
                              end
         
     | 
| 
       516 
799 
     | 
    
         
             
                            end
         
     | 
| 
       517 
800 
     | 
    
         
             
                          end
         
     | 
| 
       518 
801 
     | 
    
         
             
                          result_set = group_result.table
         
     | 
| 
      
 802 
     | 
    
         
            +
                          drilldown.dynamic_columns.each_initial do |dynamic_column|
         
     | 
| 
      
 803 
     | 
    
         
            +
                            dynamic_column.apply(result_set)
         
     | 
| 
      
 804 
     | 
    
         
            +
                          end
         
     | 
| 
      
 805 
     | 
    
         
            +
                          result_set = apply_drilldown_filter(drilldown, result_set)
         
     | 
| 
       519 
806 
     | 
    
         
             
                          if drilldown.sort_keys.empty?
         
     | 
| 
       520 
807 
     | 
    
         
             
                            drilldown.result_set = result_set
         
     | 
| 
       521 
808 
     | 
    
         
             
                          else
         
     | 
| 
         @@ -538,6 +825,18 @@ module Groonga 
     | 
|
| 
       538 
825 
     | 
    
         
             
                        group_result.calc_target = nil
         
     | 
| 
       539 
826 
     | 
    
         
             
                      end
         
     | 
| 
       540 
827 
     | 
    
         
             
                    end
         
     | 
| 
      
 828 
     | 
    
         
            +
             
     | 
| 
      
 829 
     | 
    
         
            +
                    def apply_drilldown_filter(drilldown, result_set)
         
     | 
| 
      
 830 
     | 
    
         
            +
                      filter = drilldown.filter
         
     | 
| 
      
 831 
     | 
    
         
            +
                      return result_set if filter.nil?
         
     | 
| 
      
 832 
     | 
    
         
            +
             
     | 
| 
      
 833 
     | 
    
         
            +
                      expression = Expression.create(result_set)
         
     | 
| 
      
 834 
     | 
    
         
            +
                      drilldown.expressions << expression
         
     | 
| 
      
 835 
     | 
    
         
            +
                      expression.parse(filter)
         
     | 
| 
      
 836 
     | 
    
         
            +
                      filtered_result_set = result_set.select(expression)
         
     | 
| 
      
 837 
     | 
    
         
            +
                      drilldown.temporary_tables << result_set
         
     | 
| 
      
 838 
     | 
    
         
            +
                      filtered_result_set
         
     | 
| 
      
 839 
     | 
    
         
            +
                    end
         
     | 
| 
       541 
840 
     | 
    
         
             
                  end
         
     | 
| 
       542 
841 
     | 
    
         | 
| 
       543 
842 
     | 
    
         
             
                  class ShardExecutor
         
     | 
| 
         @@ -546,6 +845,10 @@ module Groonga 
     | 
|
| 
       546 
845 
     | 
    
         
             
                      @shard = shard
         
     | 
| 
       547 
846 
     | 
    
         
             
                      @shard_range = shard_range
         
     | 
| 
       548 
847 
     | 
    
         | 
| 
      
 848 
     | 
    
         
            +
                      @target_table = @shard.table
         
     | 
| 
      
 849 
     | 
    
         
            +
             
     | 
| 
      
 850 
     | 
    
         
            +
                      @match_columns = @context.match_columns
         
     | 
| 
      
 851 
     | 
    
         
            +
                      @query = @context.query
         
     | 
| 
       549 
852 
     | 
    
         
             
                      @filter = @context.filter
         
     | 
| 
       550 
853 
     | 
    
         
             
                      @sort_keys = @context.sort_keys
         
     | 
| 
       551 
854 
     | 
    
         
             
                      @result_sets = @context.result_sets
         
     | 
| 
         @@ -558,7 +861,7 @@ module Groonga 
     | 
|
| 
       558 
861 
     | 
    
         | 
| 
       559 
862 
     | 
    
         
             
                    def execute
         
     | 
| 
       560 
863 
     | 
    
         
             
                      return if @cover_type == :none
         
     | 
| 
       561 
     | 
    
         
            -
                      return if @ 
     | 
| 
      
 864 
     | 
    
         
            +
                      return if @target_table.empty?
         
     | 
| 
       562 
865 
     | 
    
         | 
| 
       563 
866 
     | 
    
         
             
                      shard_key = @shard.key
         
     | 
| 
       564 
867 
     | 
    
         
             
                      if shard_key.nil?
         
     | 
| 
         @@ -567,31 +870,39 @@ module Groonga 
     | 
|
| 
       567 
870 
     | 
    
         
             
                        raise InvalidArgument, message
         
     | 
| 
       568 
871 
     | 
    
         
             
                      end
         
     | 
| 
       569 
872 
     | 
    
         | 
| 
       570 
     | 
    
         
            -
                       
     | 
| 
       571 
     | 
    
         
            -
             
     | 
| 
       572 
     | 
    
         
            -
             
     | 
| 
       573 
     | 
    
         
            -
             
     | 
| 
       574 
     | 
    
         
            -
                      when :all
         
     | 
| 
       575 
     | 
    
         
            -
                        filter_shard_all(expression_builder)
         
     | 
| 
       576 
     | 
    
         
            -
                      when :partial_min
         
     | 
| 
       577 
     | 
    
         
            -
                        filter_table do |expression|
         
     | 
| 
       578 
     | 
    
         
            -
                          expression_builder.build_partial_min(expression)
         
     | 
| 
      
 873 
     | 
    
         
            +
                      @context.dynamic_columns.each_initial do |dynamic_column|
         
     | 
| 
      
 874 
     | 
    
         
            +
                        if @target_table == @shard.table
         
     | 
| 
      
 875 
     | 
    
         
            +
                          @target_table = create_all_match_table(@target_table)
         
     | 
| 
      
 876 
     | 
    
         
            +
                          @context.temporary_tables << @target_table
         
     | 
| 
       579 
877 
     | 
    
         
             
                        end
         
     | 
| 
       580 
     | 
    
         
            -
             
     | 
| 
       581 
     | 
    
         
            -
             
     | 
| 
       582 
     | 
    
         
            -
             
     | 
| 
       583 
     | 
    
         
            -
             
     | 
| 
       584 
     | 
    
         
            -
             
     | 
| 
       585 
     | 
    
         
            -
                         
     | 
| 
       586 
     | 
    
         
            -
                          expression_builder 
     | 
| 
      
 878 
     | 
    
         
            +
                        dynamic_column.apply(@target_table)
         
     | 
| 
      
 879 
     | 
    
         
            +
                      end
         
     | 
| 
      
 880 
     | 
    
         
            +
             
     | 
| 
      
 881 
     | 
    
         
            +
                      create_expression_builder(shard_key) do |expression_builder|
         
     | 
| 
      
 882 
     | 
    
         
            +
                        case @cover_type
         
     | 
| 
      
 883 
     | 
    
         
            +
                        when :all
         
     | 
| 
      
 884 
     | 
    
         
            +
                          filter_shard_all(expression_builder)
         
     | 
| 
      
 885 
     | 
    
         
            +
                        when :partial_min
         
     | 
| 
      
 886 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 887 
     | 
    
         
            +
                            expression_builder.build_partial_min(expression)
         
     | 
| 
      
 888 
     | 
    
         
            +
                          end
         
     | 
| 
      
 889 
     | 
    
         
            +
                        when :partial_max
         
     | 
| 
      
 890 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 891 
     | 
    
         
            +
                            expression_builder.build_partial_max(expression)
         
     | 
| 
      
 892 
     | 
    
         
            +
                          end
         
     | 
| 
      
 893 
     | 
    
         
            +
                        when :partial_min_and_max
         
     | 
| 
      
 894 
     | 
    
         
            +
                          filter_table do |expression|
         
     | 
| 
      
 895 
     | 
    
         
            +
                            expression_builder.build_partial_min_and_max(expression)
         
     | 
| 
      
 896 
     | 
    
         
            +
                          end
         
     | 
| 
       587 
897 
     | 
    
         
             
                        end
         
     | 
| 
       588 
898 
     | 
    
         
             
                      end
         
     | 
| 
       589 
899 
     | 
    
         
             
                    end
         
     | 
| 
       590 
900 
     | 
    
         | 
| 
       591 
901 
     | 
    
         
             
                    private
         
     | 
| 
       592 
902 
     | 
    
         
             
                    def filter_shard_all(expression_builder)
         
     | 
| 
       593 
     | 
    
         
            -
                      if @filter.nil?
         
     | 
| 
       594 
     | 
    
         
            -
                        add_result_set(@ 
     | 
| 
      
 903 
     | 
    
         
            +
                      if @query.nil? and @filter.nil?
         
     | 
| 
      
 904 
     | 
    
         
            +
                        add_result_set(@target_table, nil)
         
     | 
| 
      
 905 
     | 
    
         
            +
                        @context.temporary_tables.delete(@target_table)
         
     | 
| 
       595 
906 
     | 
    
         
             
                      else
         
     | 
| 
       596 
907 
     | 
    
         
             
                        filter_table do |expression|
         
     | 
| 
       597 
908 
     | 
    
         
             
                          expression_builder.build_all(expression)
         
     | 
| 
         @@ -601,27 +912,45 @@ module Groonga 
     | 
|
| 
       601 
912 
     | 
    
         | 
| 
       602 
913 
     | 
    
         
             
                    def create_expression(table)
         
     | 
| 
       603 
914 
     | 
    
         
             
                      expression = Expression.create(table)
         
     | 
| 
      
 915 
     | 
    
         
            +
                      @context.expressions << expression
         
     | 
| 
      
 916 
     | 
    
         
            +
                      expression
         
     | 
| 
      
 917 
     | 
    
         
            +
                    end
         
     | 
| 
      
 918 
     | 
    
         
            +
             
     | 
| 
      
 919 
     | 
    
         
            +
                    def create_expression_builder(shard_key)
         
     | 
| 
      
 920 
     | 
    
         
            +
                      expression_builder = RangeExpressionBuilder.new(shard_key,
         
     | 
| 
      
 921 
     | 
    
         
            +
                                                                      @target_range)
         
     | 
| 
      
 922 
     | 
    
         
            +
                      expression_builder.match_columns = @match_columns
         
     | 
| 
      
 923 
     | 
    
         
            +
                      expression_builder.query = @query
         
     | 
| 
      
 924 
     | 
    
         
            +
                      expression_builder.filter = @filter
         
     | 
| 
       604 
925 
     | 
    
         
             
                      begin
         
     | 
| 
       605 
     | 
    
         
            -
                        yield( 
     | 
| 
      
 926 
     | 
    
         
            +
                        yield(expression_builder)
         
     | 
| 
       606 
927 
     | 
    
         
             
                      ensure
         
     | 
| 
       607 
     | 
    
         
            -
                        expression. 
     | 
| 
      
 928 
     | 
    
         
            +
                        expression = expression_builder.match_columns_expression
         
     | 
| 
      
 929 
     | 
    
         
            +
                        @context.expressions << expression if expression
         
     | 
| 
       608 
930 
     | 
    
         
             
                      end
         
     | 
| 
       609 
931 
     | 
    
         
             
                    end
         
     | 
| 
       610 
932 
     | 
    
         | 
| 
       611 
933 
     | 
    
         
             
                    def filter_table
         
     | 
| 
       612 
     | 
    
         
            -
                      table = @ 
     | 
| 
       613 
     | 
    
         
            -
                      create_expression(table) 
     | 
| 
       614 
     | 
    
         
            -
             
     | 
| 
       615 
     | 
    
         
            -
             
     | 
| 
       616 
     | 
    
         
            -
                      end
         
     | 
| 
      
 934 
     | 
    
         
            +
                      table = @target_table
         
     | 
| 
      
 935 
     | 
    
         
            +
                      expression = create_expression(table)
         
     | 
| 
      
 936 
     | 
    
         
            +
                      yield(expression)
         
     | 
| 
      
 937 
     | 
    
         
            +
                      add_result_set(table.select(expression), expression)
         
     | 
| 
       617 
938 
     | 
    
         
             
                    end
         
     | 
| 
       618 
939 
     | 
    
         | 
| 
       619 
     | 
    
         
            -
                    def add_result_set(result_set)
         
     | 
| 
      
 940 
     | 
    
         
            +
                    def add_result_set(result_set, condition)
         
     | 
| 
       620 
941 
     | 
    
         
             
                      if result_set.empty?
         
     | 
| 
       621 
942 
     | 
    
         
             
                        result_set.close
         
     | 
| 
       622 
943 
     | 
    
         
             
                        return
         
     | 
| 
       623 
944 
     | 
    
         
             
                      end
         
     | 
| 
       624 
945 
     | 
    
         | 
| 
      
 946 
     | 
    
         
            +
                      @context.dynamic_columns.each_filtered do |dynamic_column|
         
     | 
| 
      
 947 
     | 
    
         
            +
                        if result_set == @shard.table
         
     | 
| 
      
 948 
     | 
    
         
            +
                          @context.temporary_tables << result_set
         
     | 
| 
      
 949 
     | 
    
         
            +
                          result_set = create_all_match_table(result_set)
         
     | 
| 
      
 950 
     | 
    
         
            +
                        end
         
     | 
| 
      
 951 
     | 
    
         
            +
                        dynamic_column.apply(result_set, condition)
         
     | 
| 
      
 952 
     | 
    
         
            +
                      end
         
     | 
| 
      
 953 
     | 
    
         
            +
             
     | 
| 
       625 
954 
     | 
    
         
             
                      if @sort_keys.empty?
         
     | 
| 
       626 
955 
     | 
    
         
             
                        @result_sets << result_set
         
     | 
| 
       627 
956 
     | 
    
         
             
                      else
         
     | 
| 
         @@ -630,6 +959,16 @@ module Groonga 
     | 
|
| 
       630 
959 
     | 
    
         
             
                        @result_sets << sorted_result_set
         
     | 
| 
       631 
960 
     | 
    
         
             
                      end
         
     | 
| 
       632 
961 
     | 
    
         
             
                    end
         
     | 
| 
      
 962 
     | 
    
         
            +
             
     | 
| 
      
 963 
     | 
    
         
            +
                    def create_all_match_table(table)
         
     | 
| 
      
 964 
     | 
    
         
            +
                      expression = Expression.create(table)
         
     | 
| 
      
 965 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 966 
     | 
    
         
            +
                        expression.append_constant(true, Operator::PUSH, 1)
         
     | 
| 
      
 967 
     | 
    
         
            +
                        table.select(expression)
         
     | 
| 
      
 968 
     | 
    
         
            +
                      ensure
         
     | 
| 
      
 969 
     | 
    
         
            +
                        expression.close
         
     | 
| 
      
 970 
     | 
    
         
            +
                      end
         
     | 
| 
      
 971 
     | 
    
         
            +
                    end
         
     | 
| 
       633 
972 
     | 
    
         
             
                  end
         
     | 
| 
       634 
973 
     | 
    
         
             
                end
         
     | 
| 
       635 
974 
     | 
    
         
             
              end
         
     |