rroonga 6.0.7-x64-mingw32 → 6.0.9-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/text/cross-compile.md +24 -23
- data/doc/text/news.md +10 -0
- data/ext/groonga/rb-grn-database.c +33 -0
- data/ext/groonga/rb-grn-id.c +19 -0
- data/ext/groonga/rb-grn-table.c +3 -1
- data/ext/groonga/rb-grn.h +1 -1
- 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 +3 -3
- data/test/test-database.rb +21 -1
- data/test/test-id.rb +16 -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/libonig-5.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.exe +0 -0
- data/vendor/local/bin/pcre-config +133 -0
- 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/include/groonga/groonga/db.h +22 -0
- data/vendor/local/include/groonga/groonga/groonga.h +21 -1
- data/vendor/local/include/groonga/groonga/id.h +1 -0
- data/vendor/local/include/pcre.h +677 -0
- data/vendor/local/include/pcre_scanner.h +172 -0
- data/vendor/local/include/pcre_stringpiece.h +180 -0
- data/vendor/local/include/pcrecpp.h +710 -0
- data/vendor/local/include/pcrecpparg.h +174 -0
- data/vendor/local/include/pcreposix.h +146 -0
- 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/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/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/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/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/sharding/logical_table_remove.rb +253 -23
- 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/table/table.a +0 -0
- data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
- data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
- data/vendor/local/lib/groonga/plugins/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/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/scripts/ruby/context.rb +19 -0
- data/vendor/local/lib/groonga/scripts/ruby/context/rc.rb +12 -4
- data/vendor/local/lib/groonga/scripts/ruby/database.rb +36 -18
- data/vendor/local/lib/groonga/scripts/ruby/scan_info_data.rb +13 -10
- data/vendor/local/lib/libgroonga.a +0 -0
- data/vendor/local/lib/libgroonga.dll.a +0 -0
- 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/libmsgpackc.a +0 -0
- data/vendor/local/lib/libmsgpackc.dll.a +0 -0
- data/vendor/local/lib/libonig.a +0 -0
- data/vendor/local/lib/libonig.dll.a +0 -0
- data/vendor/local/lib/libpcre.a +0 -0
- data/vendor/local/lib/libpcre.dll.a +0 -0
- data/vendor/local/lib/libpcre.la +41 -0
- data/vendor/local/lib/libpcrecpp.a +0 -0
- data/vendor/local/lib/libpcrecpp.dll.a +0 -0
- data/vendor/local/lib/libpcrecpp.la +41 -0
- data/vendor/local/lib/libpcreposix.a +0 -0
- data/vendor/local/lib/libpcreposix.dll.a +0 -0
- data/vendor/local/lib/libpcreposix.la +41 -0
- data/vendor/local/lib/libz.a +0 -0
- data/vendor/local/lib/libz.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
- data/vendor/local/lib/pkgconfig/libpcre.pc +13 -0
- data/vendor/local/lib/pkgconfig/libpcrecpp.pc +12 -0
- data/vendor/local/lib/pkgconfig/libpcreposix.pc +13 -0
- data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
- data/vendor/local/sbin/groonga-httpd.exe +0 -0
- data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +9 -9
- data/vendor/local/share/doc/groonga/en/html/_sources/limitations.txt +24 -5
- data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +156 -4
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/lock_acquire.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/lock_release.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_table_remove.txt +86 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/object_list.txt +23 -11
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_copy.txt +64 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/tables.txt +88 -45
- 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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/development.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/genindex.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/index.html +15 -14
- data/vendor/local/share/doc/groonga/en/html/install.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/install/centos.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/debian.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/fedora.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/windows.html +14 -14
- data/vendor/local/share/doc/groonga/en/html/limitations.html +28 -9
- data/vendor/local/share/doc/groonga/en/html/news.html +196 -61
- data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/2.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/3.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/4.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/5.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/en/html/reference.html +15 -14
- data/vendor/local/share/doc/groonga/en/html/reference/alias.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_thread.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/column.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/command.html +15 -14
- 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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/commands/column_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 +6 -6
- 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 +6 -6
- data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +5 -5
- 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 +5 -5
- 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 +98 -8
- 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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/commands/object_list.html +32 -18
- 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 +5 -5
- 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 +10 -10
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_copy.html +200 -0
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +52 -52
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +25 -25
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +41 -41
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_rename.html +31 -31
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +41 -41
- data/vendor/local/share/doc/groonga/en/html/reference/commands/thread_limit.html +31 -31
- data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +43 -43
- data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +25 -25
- data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +25 -25
- data/vendor/local/share/doc/groonga/en/html/reference/configuration.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/function.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/number_classify.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/prefix_rk_search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/record_number.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/string_substring.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_hour.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_minute.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_month.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_second.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_week.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_year.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_size.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_slice.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/log.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/operations.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/operations/prefix_rk_search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/output.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/sharding.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/tables.html +41 -34
- 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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/types.html +9 -9
- data/vendor/local/share/doc/groonga/en/html/search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
- data/vendor/local/share/doc/groonga/en/html/server.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/memcached.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/package.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/spec.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +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 +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +9 -9
- data/vendor/local/share/doc/groonga/ja/html/_sources/limitations.txt +24 -5
- data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +156 -4
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/lock_acquire.txt +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/lock_release.txt +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_table_remove.txt +86 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/object_list.txt +23 -11
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_copy.txt +64 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tables.txt +88 -45
- 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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/development.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/genindex.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/index.html +15 -14
- data/vendor/local/share/doc/groonga/ja/html/install.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/install/centos.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/debian.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/others.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/windows.html +14 -14
- data/vendor/local/share/doc/groonga/ja/html/limitations.html +21 -8
- data/vendor/local/share/doc/groonga/ja/html/news.html +185 -61
- data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +5 -5
- 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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/ja/html/reference.html +15 -14
- data/vendor/local/share/doc/groonga/ja/html/reference/alias.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_thread.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/column.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/command.html +15 -14
- 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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_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 +6 -6
- 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 +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +5 -5
- 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 +5 -5
- 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 +88 -8
- 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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_list.html +103 -103
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_remove.html +6 -6
- 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 +5 -5
- 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 +10 -10
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_copy.html +201 -0
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +52 -52
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +25 -25
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +41 -41
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_rename.html +31 -31
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +41 -41
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/thread_limit.html +31 -31
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +43 -43
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +25 -25
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +25 -25
- data/vendor/local/share/doc/groonga/ja/html/reference/configuration.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/function.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/number_classify.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/prefix_rk_search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/record_number.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_substring.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_hour.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_minute.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_month.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_second.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_week.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_year.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_size.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_slice.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/log.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/operations/prefix_rk_search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/output.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/sharding.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +33 -10
- 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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/types.html +9 -9
- data/vendor/local/share/doc/groonga/ja/html/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
- data/vendor/local/share/doc/groonga/ja/html/server.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/package.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/spec.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +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 +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
- data/vendor/local/share/doc/pcre/AUTHORS +45 -0
- data/vendor/local/share/doc/pcre/COPYING +5 -0
- data/vendor/local/share/doc/pcre/ChangeLog +6010 -0
- data/vendor/local/share/doc/pcre/LICENCE +93 -0
- data/vendor/local/share/doc/pcre/NEWS +725 -0
- data/vendor/local/share/doc/pcre/README +1002 -0
- data/vendor/local/share/doc/pcre/html/NON-AUTOTOOLS-BUILD.txt +772 -0
- data/vendor/local/share/doc/pcre/html/README.txt +1002 -0
- data/vendor/local/share/doc/pcre/html/index.html +185 -0
- data/vendor/local/share/doc/pcre/html/pcre-config.html +109 -0
- data/vendor/local/share/doc/pcre/html/pcre.html +224 -0
- data/vendor/local/share/doc/pcre/html/pcre16.html +384 -0
- data/vendor/local/share/doc/pcre/html/pcre32.html +382 -0
- data/vendor/local/share/doc/pcre/html/pcre_assign_jit_stack.html +76 -0
- data/vendor/local/share/doc/pcre/html/pcre_compile.html +111 -0
- data/vendor/local/share/doc/pcre/html/pcre_compile2.html +115 -0
- data/vendor/local/share/doc/pcre/html/pcre_config.html +94 -0
- data/vendor/local/share/doc/pcre/html/pcre_copy_named_substring.html +65 -0
- data/vendor/local/share/doc/pcre/html/pcre_copy_substring.html +61 -0
- data/vendor/local/share/doc/pcre/html/pcre_dfa_exec.html +129 -0
- data/vendor/local/share/doc/pcre/html/pcre_exec.html +111 -0
- data/vendor/local/share/doc/pcre/html/pcre_free_study.html +46 -0
- data/vendor/local/share/doc/pcre/html/pcre_free_substring.html +46 -0
- data/vendor/local/share/doc/pcre/html/pcre_free_substring_list.html +46 -0
- data/vendor/local/share/doc/pcre/html/pcre_fullinfo.html +118 -0
- data/vendor/local/share/doc/pcre/html/pcre_get_named_substring.html +68 -0
- data/vendor/local/share/doc/pcre/html/pcre_get_stringnumber.html +57 -0
- data/vendor/local/share/doc/pcre/html/pcre_get_stringtable_entries.html +60 -0
- data/vendor/local/share/doc/pcre/html/pcre_get_substring.html +64 -0
- data/vendor/local/share/doc/pcre/html/pcre_get_substring_list.html +61 -0
- data/vendor/local/share/doc/pcre/html/pcre_jit_exec.html +108 -0
- data/vendor/local/share/doc/pcre/html/pcre_jit_stack_alloc.html +55 -0
- data/vendor/local/share/doc/pcre/html/pcre_jit_stack_free.html +48 -0
- data/vendor/local/share/doc/pcre/html/pcre_maketables.html +48 -0
- data/vendor/local/share/doc/pcre/html/pcre_pattern_to_host_byte_order.html +58 -0
- data/vendor/local/share/doc/pcre/html/pcre_refcount.html +51 -0
- data/vendor/local/share/doc/pcre/html/pcre_study.html +68 -0
- data/vendor/local/share/doc/pcre/html/pcre_utf16_to_host_byte_order.html +57 -0
- data/vendor/local/share/doc/pcre/html/pcre_utf32_to_host_byte_order.html +57 -0
- data/vendor/local/share/doc/pcre/html/pcre_version.html +46 -0
- data/vendor/local/share/doc/pcre/html/pcreapi.html +2921 -0
- data/vendor/local/share/doc/pcre/html/pcrebuild.html +534 -0
- data/vendor/local/share/doc/pcre/html/pcrecallout.html +286 -0
- data/vendor/local/share/doc/pcre/html/pcrecompat.html +235 -0
- data/vendor/local/share/doc/pcre/html/pcrecpp.html +368 -0
- data/vendor/local/share/doc/pcre/html/pcredemo.html +426 -0
- data/vendor/local/share/doc/pcre/html/pcregrep.html +759 -0
- data/vendor/local/share/doc/pcre/html/pcrejit.html +452 -0
- data/vendor/local/share/doc/pcre/html/pcrelimits.html +90 -0
- data/vendor/local/share/doc/pcre/html/pcrematching.html +242 -0
- data/vendor/local/share/doc/pcre/html/pcrepartial.html +509 -0
- data/vendor/local/share/doc/pcre/html/pcrepattern.html +3273 -0
- data/vendor/local/share/doc/pcre/html/pcreperform.html +195 -0
- data/vendor/local/share/doc/pcre/html/pcreposix.html +290 -0
- data/vendor/local/share/doc/pcre/html/pcreprecompile.html +163 -0
- data/vendor/local/share/doc/pcre/html/pcresample.html +110 -0
- data/vendor/local/share/doc/pcre/html/pcrestack.html +225 -0
- data/vendor/local/share/doc/pcre/html/pcresyntax.html +561 -0
- data/vendor/local/share/doc/pcre/html/pcretest.html +1158 -0
- data/vendor/local/share/doc/pcre/html/pcreunicode.html +262 -0
- data/vendor/local/share/doc/pcre/pcre-config.txt +86 -0
- data/vendor/local/share/doc/pcre/pcre.txt +10454 -0
- data/vendor/local/share/doc/pcre/pcregrep.txt +741 -0
- data/vendor/local/share/doc/pcre/pcretest.txt +1087 -0
- data/vendor/local/share/groonga/html/admin.old/js/groonga-admin.ja.js +11 -6
- data/vendor/local/share/groonga/html/admin.old/js/groonga-admin.js +11 -6
- data/vendor/local/share/license/pcre/LICENCE +93 -0
- data/vendor/local/share/man/man1/pcre-config.1 +92 -0
- data/vendor/local/share/man/man1/pcregrep.1 +683 -0
- data/vendor/local/share/man/man1/pcretest.1 +1156 -0
- data/vendor/local/share/man/man3/pcre.3 +230 -0
- data/vendor/local/share/man/man3/pcre16.3 +371 -0
- data/vendor/local/share/man/man3/pcre16_assign_jit_stack.3 +59 -0
- data/vendor/local/share/man/man3/pcre16_compile.3 +96 -0
- data/vendor/local/share/man/man3/pcre16_compile2.3 +101 -0
- data/vendor/local/share/man/man3/pcre16_config.3 +79 -0
- data/vendor/local/share/man/man3/pcre16_copy_named_substring.3 +51 -0
- data/vendor/local/share/man/man3/pcre16_copy_substring.3 +47 -0
- data/vendor/local/share/man/man3/pcre16_dfa_exec.3 +118 -0
- data/vendor/local/share/man/man3/pcre16_exec.3 +99 -0
- data/vendor/local/share/man/man3/pcre16_free_study.3 +31 -0
- data/vendor/local/share/man/man3/pcre16_free_substring.3 +31 -0
- data/vendor/local/share/man/man3/pcre16_free_substring_list.3 +31 -0
- data/vendor/local/share/man/man3/pcre16_fullinfo.3 +103 -0
- data/vendor/local/share/man/man3/pcre16_get_named_substring.3 +54 -0
- data/vendor/local/share/man/man3/pcre16_get_stringnumber.3 +43 -0
- data/vendor/local/share/man/man3/pcre16_get_stringtable_entries.3 +46 -0
- data/vendor/local/share/man/man3/pcre16_get_substring.3 +50 -0
- data/vendor/local/share/man/man3/pcre16_get_substring_list.3 +47 -0
- data/vendor/local/share/man/man3/pcre16_jit_exec.3 +96 -0
- data/vendor/local/share/man/man3/pcre16_jit_stack_alloc.3 +43 -0
- data/vendor/local/share/man/man3/pcre16_jit_stack_free.3 +35 -0
- data/vendor/local/share/man/man3/pcre16_maketables.3 +33 -0
- data/vendor/local/share/man/man3/pcre16_pattern_to_host_byte_order.3 +44 -0
- data/vendor/local/share/man/man3/pcre16_refcount.3 +36 -0
- data/vendor/local/share/man/man3/pcre16_study.3 +54 -0
- data/vendor/local/share/man/man3/pcre16_utf16_to_host_byte_order.3 +45 -0
- data/vendor/local/share/man/man3/pcre16_version.3 +31 -0
- data/vendor/local/share/man/man3/pcre32.3 +369 -0
- data/vendor/local/share/man/man3/pcre32_assign_jit_stack.3 +59 -0
- data/vendor/local/share/man/man3/pcre32_compile.3 +96 -0
- data/vendor/local/share/man/man3/pcre32_compile2.3 +101 -0
- data/vendor/local/share/man/man3/pcre32_config.3 +79 -0
- data/vendor/local/share/man/man3/pcre32_copy_named_substring.3 +51 -0
- data/vendor/local/share/man/man3/pcre32_copy_substring.3 +47 -0
- data/vendor/local/share/man/man3/pcre32_dfa_exec.3 +118 -0
- data/vendor/local/share/man/man3/pcre32_exec.3 +99 -0
- data/vendor/local/share/man/man3/pcre32_free_study.3 +31 -0
- data/vendor/local/share/man/man3/pcre32_free_substring.3 +31 -0
- data/vendor/local/share/man/man3/pcre32_free_substring_list.3 +31 -0
- data/vendor/local/share/man/man3/pcre32_fullinfo.3 +103 -0
- data/vendor/local/share/man/man3/pcre32_get_named_substring.3 +54 -0
- data/vendor/local/share/man/man3/pcre32_get_stringnumber.3 +43 -0
- data/vendor/local/share/man/man3/pcre32_get_stringtable_entries.3 +46 -0
- data/vendor/local/share/man/man3/pcre32_get_substring.3 +50 -0
- data/vendor/local/share/man/man3/pcre32_get_substring_list.3 +47 -0
- data/vendor/local/share/man/man3/pcre32_jit_exec.3 +96 -0
- data/vendor/local/share/man/man3/pcre32_jit_stack_alloc.3 +43 -0
- data/vendor/local/share/man/man3/pcre32_jit_stack_free.3 +35 -0
- data/vendor/local/share/man/man3/pcre32_maketables.3 +33 -0
- data/vendor/local/share/man/man3/pcre32_pattern_to_host_byte_order.3 +44 -0
- data/vendor/local/share/man/man3/pcre32_refcount.3 +36 -0
- data/vendor/local/share/man/man3/pcre32_study.3 +54 -0
- data/vendor/local/share/man/man3/pcre32_utf32_to_host_byte_order.3 +45 -0
- data/vendor/local/share/man/man3/pcre32_version.3 +31 -0
- data/vendor/local/share/man/man3/pcre_assign_jit_stack.3 +59 -0
- data/vendor/local/share/man/man3/pcre_compile.3 +96 -0
- data/vendor/local/share/man/man3/pcre_compile2.3 +101 -0
- data/vendor/local/share/man/man3/pcre_config.3 +79 -0
- data/vendor/local/share/man/man3/pcre_copy_named_substring.3 +51 -0
- data/vendor/local/share/man/man3/pcre_copy_substring.3 +47 -0
- data/vendor/local/share/man/man3/pcre_dfa_exec.3 +118 -0
- data/vendor/local/share/man/man3/pcre_exec.3 +99 -0
- data/vendor/local/share/man/man3/pcre_free_study.3 +31 -0
- data/vendor/local/share/man/man3/pcre_free_substring.3 +31 -0
- data/vendor/local/share/man/man3/pcre_free_substring_list.3 +31 -0
- data/vendor/local/share/man/man3/pcre_fullinfo.3 +103 -0
- data/vendor/local/share/man/man3/pcre_get_named_substring.3 +54 -0
- data/vendor/local/share/man/man3/pcre_get_stringnumber.3 +43 -0
- data/vendor/local/share/man/man3/pcre_get_stringtable_entries.3 +46 -0
- data/vendor/local/share/man/man3/pcre_get_substring.3 +50 -0
- data/vendor/local/share/man/man3/pcre_get_substring_list.3 +47 -0
- data/vendor/local/share/man/man3/pcre_jit_exec.3 +96 -0
- data/vendor/local/share/man/man3/pcre_jit_stack_alloc.3 +43 -0
- data/vendor/local/share/man/man3/pcre_jit_stack_free.3 +35 -0
- data/vendor/local/share/man/man3/pcre_maketables.3 +33 -0
- data/vendor/local/share/man/man3/pcre_pattern_to_host_byte_order.3 +44 -0
- data/vendor/local/share/man/man3/pcre_refcount.3 +36 -0
- data/vendor/local/share/man/man3/pcre_study.3 +54 -0
- data/vendor/local/share/man/man3/pcre_utf16_to_host_byte_order.3 +45 -0
- data/vendor/local/share/man/man3/pcre_utf32_to_host_byte_order.3 +45 -0
- data/vendor/local/share/man/man3/pcre_version.3 +31 -0
- data/vendor/local/share/man/man3/pcreapi.3 +2918 -0
- data/vendor/local/share/man/man3/pcrebuild.3 +550 -0
- data/vendor/local/share/man/man3/pcrecallout.3 +255 -0
- data/vendor/local/share/man/man3/pcrecompat.3 +200 -0
- data/vendor/local/share/man/man3/pcrecpp.3 +348 -0
- data/vendor/local/share/man/man3/pcredemo.3 +424 -0
- data/vendor/local/share/man/man3/pcrejit.3 +431 -0
- data/vendor/local/share/man/man3/pcrelimits.3 +71 -0
- data/vendor/local/share/man/man3/pcrematching.3 +214 -0
- data/vendor/local/share/man/man3/pcrepartial.3 +476 -0
- data/vendor/local/share/man/man3/pcrepattern.3 +3301 -0
- data/vendor/local/share/man/man3/pcreperform.3 +177 -0
- data/vendor/local/share/man/man3/pcreposix.3 +267 -0
- data/vendor/local/share/man/man3/pcreprecompile.3 +155 -0
- data/vendor/local/share/man/man3/pcresample.3 +99 -0
- data/vendor/local/share/man/man3/pcrestack.3 +215 -0
- data/vendor/local/share/man/man3/pcresyntax.3 +540 -0
- data/vendor/local/share/man/man3/pcreunicode.3 +249 -0
- metadata +255 -59
@@ -0,0 +1,214 @@
|
|
1
|
+
.TH PCREMATCHING 3 "12 November 2013" "PCRE 8.34"
|
2
|
+
.SH NAME
|
3
|
+
PCRE - Perl-compatible regular expressions
|
4
|
+
.SH "PCRE MATCHING ALGORITHMS"
|
5
|
+
.rs
|
6
|
+
.sp
|
7
|
+
This document describes the two different algorithms that are available in PCRE
|
8
|
+
for matching a compiled regular expression against a given subject string. The
|
9
|
+
"standard" algorithm is the one provided by the \fBpcre_exec()\fP,
|
10
|
+
\fBpcre16_exec()\fP and \fBpcre32_exec()\fP functions. These work in the same
|
11
|
+
as as Perl's matching function, and provide a Perl-compatible matching operation.
|
12
|
+
The just-in-time (JIT) optimization that is described in the
|
13
|
+
.\" HREF
|
14
|
+
\fBpcrejit\fP
|
15
|
+
.\"
|
16
|
+
documentation is compatible with these functions.
|
17
|
+
.P
|
18
|
+
An alternative algorithm is provided by the \fBpcre_dfa_exec()\fP,
|
19
|
+
\fBpcre16_dfa_exec()\fP and \fBpcre32_dfa_exec()\fP functions; they operate in
|
20
|
+
a different way, and are not Perl-compatible. This alternative has advantages
|
21
|
+
and disadvantages compared with the standard algorithm, and these are described
|
22
|
+
below.
|
23
|
+
.P
|
24
|
+
When there is only one possible way in which a given subject string can match a
|
25
|
+
pattern, the two algorithms give the same answer. A difference arises, however,
|
26
|
+
when there are multiple possibilities. For example, if the pattern
|
27
|
+
.sp
|
28
|
+
^<.*>
|
29
|
+
.sp
|
30
|
+
is matched against the string
|
31
|
+
.sp
|
32
|
+
<something> <something else> <something further>
|
33
|
+
.sp
|
34
|
+
there are three possible answers. The standard algorithm finds only one of
|
35
|
+
them, whereas the alternative algorithm finds all three.
|
36
|
+
.
|
37
|
+
.
|
38
|
+
.SH "REGULAR EXPRESSIONS AS TREES"
|
39
|
+
.rs
|
40
|
+
.sp
|
41
|
+
The set of strings that are matched by a regular expression can be represented
|
42
|
+
as a tree structure. An unlimited repetition in the pattern makes the tree of
|
43
|
+
infinite size, but it is still a tree. Matching the pattern to a given subject
|
44
|
+
string (from a given starting point) can be thought of as a search of the tree.
|
45
|
+
There are two ways to search a tree: depth-first and breadth-first, and these
|
46
|
+
correspond to the two matching algorithms provided by PCRE.
|
47
|
+
.
|
48
|
+
.
|
49
|
+
.SH "THE STANDARD MATCHING ALGORITHM"
|
50
|
+
.rs
|
51
|
+
.sp
|
52
|
+
In the terminology of Jeffrey Friedl's book "Mastering Regular
|
53
|
+
Expressions", the standard algorithm is an "NFA algorithm". It conducts a
|
54
|
+
depth-first search of the pattern tree. That is, it proceeds along a single
|
55
|
+
path through the tree, checking that the subject matches what is required. When
|
56
|
+
there is a mismatch, the algorithm tries any alternatives at the current point,
|
57
|
+
and if they all fail, it backs up to the previous branch point in the tree, and
|
58
|
+
tries the next alternative branch at that level. This often involves backing up
|
59
|
+
(moving to the left) in the subject string as well. The order in which
|
60
|
+
repetition branches are tried is controlled by the greedy or ungreedy nature of
|
61
|
+
the quantifier.
|
62
|
+
.P
|
63
|
+
If a leaf node is reached, a matching string has been found, and at that point
|
64
|
+
the algorithm stops. Thus, if there is more than one possible match, this
|
65
|
+
algorithm returns the first one that it finds. Whether this is the shortest,
|
66
|
+
the longest, or some intermediate length depends on the way the greedy and
|
67
|
+
ungreedy repetition quantifiers are specified in the pattern.
|
68
|
+
.P
|
69
|
+
Because it ends up with a single path through the tree, it is relatively
|
70
|
+
straightforward for this algorithm to keep track of the substrings that are
|
71
|
+
matched by portions of the pattern in parentheses. This provides support for
|
72
|
+
capturing parentheses and back references.
|
73
|
+
.
|
74
|
+
.
|
75
|
+
.SH "THE ALTERNATIVE MATCHING ALGORITHM"
|
76
|
+
.rs
|
77
|
+
.sp
|
78
|
+
This algorithm conducts a breadth-first search of the tree. Starting from the
|
79
|
+
first matching point in the subject, it scans the subject string from left to
|
80
|
+
right, once, character by character, and as it does this, it remembers all the
|
81
|
+
paths through the tree that represent valid matches. In Friedl's terminology,
|
82
|
+
this is a kind of "DFA algorithm", though it is not implemented as a
|
83
|
+
traditional finite state machine (it keeps multiple states active
|
84
|
+
simultaneously).
|
85
|
+
.P
|
86
|
+
Although the general principle of this matching algorithm is that it scans the
|
87
|
+
subject string only once, without backtracking, there is one exception: when a
|
88
|
+
lookaround assertion is encountered, the characters following or preceding the
|
89
|
+
current point have to be independently inspected.
|
90
|
+
.P
|
91
|
+
The scan continues until either the end of the subject is reached, or there are
|
92
|
+
no more unterminated paths. At this point, terminated paths represent the
|
93
|
+
different matching possibilities (if there are none, the match has failed).
|
94
|
+
Thus, if there is more than one possible match, this algorithm finds all of
|
95
|
+
them, and in particular, it finds the longest. The matches are returned in
|
96
|
+
decreasing order of length. There is an option to stop the algorithm after the
|
97
|
+
first match (which is necessarily the shortest) is found.
|
98
|
+
.P
|
99
|
+
Note that all the matches that are found start at the same point in the
|
100
|
+
subject. If the pattern
|
101
|
+
.sp
|
102
|
+
cat(er(pillar)?)?
|
103
|
+
.sp
|
104
|
+
is matched against the string "the caterpillar catchment", the result will be
|
105
|
+
the three strings "caterpillar", "cater", and "cat" that start at the fifth
|
106
|
+
character of the subject. The algorithm does not automatically move on to find
|
107
|
+
matches that start at later positions.
|
108
|
+
.P
|
109
|
+
PCRE's "auto-possessification" optimization usually applies to character
|
110
|
+
repeats at the end of a pattern (as well as internally). For example, the
|
111
|
+
pattern "a\ed+" is compiled as if it were "a\ed++" because there is no point
|
112
|
+
even considering the possibility of backtracking into the repeated digits. For
|
113
|
+
DFA matching, this means that only one possible match is found. If you really
|
114
|
+
do want multiple matches in such cases, either use an ungreedy repeat
|
115
|
+
("a\ed+?") or set the PCRE_NO_AUTO_POSSESS option when compiling.
|
116
|
+
.P
|
117
|
+
There are a number of features of PCRE regular expressions that are not
|
118
|
+
supported by the alternative matching algorithm. They are as follows:
|
119
|
+
.P
|
120
|
+
1. Because the algorithm finds all possible matches, the greedy or ungreedy
|
121
|
+
nature of repetition quantifiers is not relevant. Greedy and ungreedy
|
122
|
+
quantifiers are treated in exactly the same way. However, possessive
|
123
|
+
quantifiers can make a difference when what follows could also match what is
|
124
|
+
quantified, for example in a pattern like this:
|
125
|
+
.sp
|
126
|
+
^a++\ew!
|
127
|
+
.sp
|
128
|
+
This pattern matches "aaab!" but not "aaa!", which would be matched by a
|
129
|
+
non-possessive quantifier. Similarly, if an atomic group is present, it is
|
130
|
+
matched as if it were a standalone pattern at the current point, and the
|
131
|
+
longest match is then "locked in" for the rest of the overall pattern.
|
132
|
+
.P
|
133
|
+
2. When dealing with multiple paths through the tree simultaneously, it is not
|
134
|
+
straightforward to keep track of captured substrings for the different matching
|
135
|
+
possibilities, and PCRE's implementation of this algorithm does not attempt to
|
136
|
+
do this. This means that no captured substrings are available.
|
137
|
+
.P
|
138
|
+
3. Because no substrings are captured, back references within the pattern are
|
139
|
+
not supported, and cause errors if encountered.
|
140
|
+
.P
|
141
|
+
4. For the same reason, conditional expressions that use a backreference as the
|
142
|
+
condition or test for a specific group recursion are not supported.
|
143
|
+
.P
|
144
|
+
5. Because many paths through the tree may be active, the \eK escape sequence,
|
145
|
+
which resets the start of the match when encountered (but may be on some paths
|
146
|
+
and not on others), is not supported. It causes an error if encountered.
|
147
|
+
.P
|
148
|
+
6. Callouts are supported, but the value of the \fIcapture_top\fP field is
|
149
|
+
always 1, and the value of the \fIcapture_last\fP field is always -1.
|
150
|
+
.P
|
151
|
+
7. The \eC escape sequence, which (in the standard algorithm) always matches a
|
152
|
+
single data unit, even in UTF-8, UTF-16 or UTF-32 modes, is not supported in
|
153
|
+
these modes, because the alternative algorithm moves through the subject string
|
154
|
+
one character (not data unit) at a time, for all active paths through the tree.
|
155
|
+
.P
|
156
|
+
8. Except for (*FAIL), the backtracking control verbs such as (*PRUNE) are not
|
157
|
+
supported. (*FAIL) is supported, and behaves like a failing negative assertion.
|
158
|
+
.
|
159
|
+
.
|
160
|
+
.SH "ADVANTAGES OF THE ALTERNATIVE ALGORITHM"
|
161
|
+
.rs
|
162
|
+
.sp
|
163
|
+
Using the alternative matching algorithm provides the following advantages:
|
164
|
+
.P
|
165
|
+
1. All possible matches (at a single point in the subject) are automatically
|
166
|
+
found, and in particular, the longest match is found. To find more than one
|
167
|
+
match using the standard algorithm, you have to do kludgy things with
|
168
|
+
callouts.
|
169
|
+
.P
|
170
|
+
2. Because the alternative algorithm scans the subject string just once, and
|
171
|
+
never needs to backtrack (except for lookbehinds), it is possible to pass very
|
172
|
+
long subject strings to the matching function in several pieces, checking for
|
173
|
+
partial matching each time. Although it is possible to do multi-segment
|
174
|
+
matching using the standard algorithm by retaining partially matched
|
175
|
+
substrings, it is more complicated. The
|
176
|
+
.\" HREF
|
177
|
+
\fBpcrepartial\fP
|
178
|
+
.\"
|
179
|
+
documentation gives details of partial matching and discusses multi-segment
|
180
|
+
matching.
|
181
|
+
.
|
182
|
+
.
|
183
|
+
.SH "DISADVANTAGES OF THE ALTERNATIVE ALGORITHM"
|
184
|
+
.rs
|
185
|
+
.sp
|
186
|
+
The alternative algorithm suffers from a number of disadvantages:
|
187
|
+
.P
|
188
|
+
1. It is substantially slower than the standard algorithm. This is partly
|
189
|
+
because it has to search for all possible matches, but is also because it is
|
190
|
+
less susceptible to optimization.
|
191
|
+
.P
|
192
|
+
2. Capturing parentheses and back references are not supported.
|
193
|
+
.P
|
194
|
+
3. Although atomic groups are supported, their use does not provide the
|
195
|
+
performance advantage that it does for the standard algorithm.
|
196
|
+
.
|
197
|
+
.
|
198
|
+
.SH AUTHOR
|
199
|
+
.rs
|
200
|
+
.sp
|
201
|
+
.nf
|
202
|
+
Philip Hazel
|
203
|
+
University Computing Service
|
204
|
+
Cambridge CB2 3QH, England.
|
205
|
+
.fi
|
206
|
+
.
|
207
|
+
.
|
208
|
+
.SH REVISION
|
209
|
+
.rs
|
210
|
+
.sp
|
211
|
+
.nf
|
212
|
+
Last updated: 12 November 2013
|
213
|
+
Copyright (c) 1997-2012 University of Cambridge.
|
214
|
+
.fi
|
@@ -0,0 +1,476 @@
|
|
1
|
+
.TH PCREPARTIAL 3 "02 July 2013" "PCRE 8.34"
|
2
|
+
.SH NAME
|
3
|
+
PCRE - Perl-compatible regular expressions
|
4
|
+
.SH "PARTIAL MATCHING IN PCRE"
|
5
|
+
.rs
|
6
|
+
.sp
|
7
|
+
In normal use of PCRE, if the subject string that is passed to a matching
|
8
|
+
function matches as far as it goes, but is too short to match the entire
|
9
|
+
pattern, PCRE_ERROR_NOMATCH is returned. There are circumstances where it might
|
10
|
+
be helpful to distinguish this case from other cases in which there is no
|
11
|
+
match.
|
12
|
+
.P
|
13
|
+
Consider, for example, an application where a human is required to type in data
|
14
|
+
for a field with specific formatting requirements. An example might be a date
|
15
|
+
in the form \fIddmmmyy\fP, defined by this pattern:
|
16
|
+
.sp
|
17
|
+
^\ed?\ed(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\ed\ed$
|
18
|
+
.sp
|
19
|
+
If the application sees the user's keystrokes one by one, and can check that
|
20
|
+
what has been typed so far is potentially valid, it is able to raise an error
|
21
|
+
as soon as a mistake is made, by beeping and not reflecting the character that
|
22
|
+
has been typed, for example. This immediate feedback is likely to be a better
|
23
|
+
user interface than a check that is delayed until the entire string has been
|
24
|
+
entered. Partial matching can also be useful when the subject string is very
|
25
|
+
long and is not all available at once.
|
26
|
+
.P
|
27
|
+
PCRE supports partial matching by means of the PCRE_PARTIAL_SOFT and
|
28
|
+
PCRE_PARTIAL_HARD options, which can be set when calling any of the matching
|
29
|
+
functions. For backwards compatibility, PCRE_PARTIAL is a synonym for
|
30
|
+
PCRE_PARTIAL_SOFT. The essential difference between the two options is whether
|
31
|
+
or not a partial match is preferred to an alternative complete match, though
|
32
|
+
the details differ between the two types of matching function. If both options
|
33
|
+
are set, PCRE_PARTIAL_HARD takes precedence.
|
34
|
+
.P
|
35
|
+
If you want to use partial matching with just-in-time optimized code, you must
|
36
|
+
call \fBpcre_study()\fP, \fBpcre16_study()\fP or \fBpcre32_study()\fP with one
|
37
|
+
or both of these options:
|
38
|
+
.sp
|
39
|
+
PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE
|
40
|
+
PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
|
41
|
+
.sp
|
42
|
+
PCRE_STUDY_JIT_COMPILE should also be set if you are going to run non-partial
|
43
|
+
matches on the same pattern. If the appropriate JIT study mode has not been set
|
44
|
+
for a match, the interpretive matching code is used.
|
45
|
+
.P
|
46
|
+
Setting a partial matching option disables two of PCRE's standard
|
47
|
+
optimizations. PCRE remembers the last literal data unit in a pattern, and
|
48
|
+
abandons matching immediately if it is not present in the subject string. This
|
49
|
+
optimization cannot be used for a subject string that might match only
|
50
|
+
partially. If the pattern was studied, PCRE knows the minimum length of a
|
51
|
+
matching string, and does not bother to run the matching function on shorter
|
52
|
+
strings. This optimization is also disabled for partial matching.
|
53
|
+
.
|
54
|
+
.
|
55
|
+
.SH "PARTIAL MATCHING USING pcre_exec() OR pcre[16|32]_exec()"
|
56
|
+
.rs
|
57
|
+
.sp
|
58
|
+
A partial match occurs during a call to \fBpcre_exec()\fP or
|
59
|
+
\fBpcre[16|32]_exec()\fP when the end of the subject string is reached
|
60
|
+
successfully, but matching cannot continue because more characters are needed.
|
61
|
+
However, at least one character in the subject must have been inspected. This
|
62
|
+
character need not form part of the final matched string; lookbehind assertions
|
63
|
+
and the \eK escape sequence provide ways of inspecting characters before the
|
64
|
+
start of a matched substring. The requirement for inspecting at least one
|
65
|
+
character exists because an empty string can always be matched; without such a
|
66
|
+
restriction there would always be a partial match of an empty string at the end
|
67
|
+
of the subject.
|
68
|
+
.P
|
69
|
+
If there are at least two slots in the offsets vector when a partial match is
|
70
|
+
returned, the first slot is set to the offset of the earliest character that
|
71
|
+
was inspected. For convenience, the second offset points to the end of the
|
72
|
+
subject so that a substring can easily be identified. If there are at least
|
73
|
+
three slots in the offsets vector, the third slot is set to the offset of the
|
74
|
+
character where matching started.
|
75
|
+
.P
|
76
|
+
For the majority of patterns, the contents of the first and third slots will be
|
77
|
+
the same. However, for patterns that contain lookbehind assertions, or begin
|
78
|
+
with \eb or \eB, characters before the one where matching started may have been
|
79
|
+
inspected while carrying out the match. For example, consider this pattern:
|
80
|
+
.sp
|
81
|
+
/(?<=abc)123/
|
82
|
+
.sp
|
83
|
+
This pattern matches "123", but only if it is preceded by "abc". If the subject
|
84
|
+
string is "xyzabc12", the first two offsets after a partial match are for the
|
85
|
+
substring "abc12", because all these characters were inspected. However, the
|
86
|
+
third offset is set to 6, because that is the offset where matching began.
|
87
|
+
.P
|
88
|
+
What happens when a partial match is identified depends on which of the two
|
89
|
+
partial matching options are set.
|
90
|
+
.
|
91
|
+
.
|
92
|
+
.SS "PCRE_PARTIAL_SOFT WITH pcre_exec() OR pcre[16|32]_exec()"
|
93
|
+
.rs
|
94
|
+
.sp
|
95
|
+
If PCRE_PARTIAL_SOFT is set when \fBpcre_exec()\fP or \fBpcre[16|32]_exec()\fP
|
96
|
+
identifies a partial match, the partial match is remembered, but matching
|
97
|
+
continues as normal, and other alternatives in the pattern are tried. If no
|
98
|
+
complete match can be found, PCRE_ERROR_PARTIAL is returned instead of
|
99
|
+
PCRE_ERROR_NOMATCH.
|
100
|
+
.P
|
101
|
+
This option is "soft" because it prefers a complete match over a partial match.
|
102
|
+
All the various matching items in a pattern behave as if the subject string is
|
103
|
+
potentially complete. For example, \ez, \eZ, and $ match at the end of the
|
104
|
+
subject, as normal, and for \eb and \eB the end of the subject is treated as a
|
105
|
+
non-alphanumeric.
|
106
|
+
.P
|
107
|
+
If there is more than one partial match, the first one that was found provides
|
108
|
+
the data that is returned. Consider this pattern:
|
109
|
+
.sp
|
110
|
+
/123\ew+X|dogY/
|
111
|
+
.sp
|
112
|
+
If this is matched against the subject string "abc123dog", both
|
113
|
+
alternatives fail to match, but the end of the subject is reached during
|
114
|
+
matching, so PCRE_ERROR_PARTIAL is returned. The offsets are set to 3 and 9,
|
115
|
+
identifying "123dog" as the first partial match that was found. (In this
|
116
|
+
example, there are two partial matches, because "dog" on its own partially
|
117
|
+
matches the second alternative.)
|
118
|
+
.
|
119
|
+
.
|
120
|
+
.SS "PCRE_PARTIAL_HARD WITH pcre_exec() OR pcre[16|32]_exec()"
|
121
|
+
.rs
|
122
|
+
.sp
|
123
|
+
If PCRE_PARTIAL_HARD is set for \fBpcre_exec()\fP or \fBpcre[16|32]_exec()\fP,
|
124
|
+
PCRE_ERROR_PARTIAL is returned as soon as a partial match is found, without
|
125
|
+
continuing to search for possible complete matches. This option is "hard"
|
126
|
+
because it prefers an earlier partial match over a later complete match. For
|
127
|
+
this reason, the assumption is made that the end of the supplied subject string
|
128
|
+
may not be the true end of the available data, and so, if \ez, \eZ, \eb, \eB,
|
129
|
+
or $ are encountered at the end of the subject, the result is
|
130
|
+
PCRE_ERROR_PARTIAL, provided that at least one character in the subject has
|
131
|
+
been inspected.
|
132
|
+
.P
|
133
|
+
Setting PCRE_PARTIAL_HARD also affects the way UTF-8 and UTF-16
|
134
|
+
subject strings are checked for validity. Normally, an invalid sequence
|
135
|
+
causes the error PCRE_ERROR_BADUTF8 or PCRE_ERROR_BADUTF16. However, in the
|
136
|
+
special case of a truncated character at the end of the subject,
|
137
|
+
PCRE_ERROR_SHORTUTF8 or PCRE_ERROR_SHORTUTF16 is returned when
|
138
|
+
PCRE_PARTIAL_HARD is set.
|
139
|
+
.
|
140
|
+
.
|
141
|
+
.SS "Comparing hard and soft partial matching"
|
142
|
+
.rs
|
143
|
+
.sp
|
144
|
+
The difference between the two partial matching options can be illustrated by a
|
145
|
+
pattern such as:
|
146
|
+
.sp
|
147
|
+
/dog(sbody)?/
|
148
|
+
.sp
|
149
|
+
This matches either "dog" or "dogsbody", greedily (that is, it prefers the
|
150
|
+
longer string if possible). If it is matched against the string "dog" with
|
151
|
+
PCRE_PARTIAL_SOFT, it yields a complete match for "dog". However, if
|
152
|
+
PCRE_PARTIAL_HARD is set, the result is PCRE_ERROR_PARTIAL. On the other hand,
|
153
|
+
if the pattern is made ungreedy the result is different:
|
154
|
+
.sp
|
155
|
+
/dog(sbody)??/
|
156
|
+
.sp
|
157
|
+
In this case the result is always a complete match because that is found first,
|
158
|
+
and matching never continues after finding a complete match. It might be easier
|
159
|
+
to follow this explanation by thinking of the two patterns like this:
|
160
|
+
.sp
|
161
|
+
/dog(sbody)?/ is the same as /dogsbody|dog/
|
162
|
+
/dog(sbody)??/ is the same as /dog|dogsbody/
|
163
|
+
.sp
|
164
|
+
The second pattern will never match "dogsbody", because it will always find the
|
165
|
+
shorter match first.
|
166
|
+
.
|
167
|
+
.
|
168
|
+
.SH "PARTIAL MATCHING USING pcre_dfa_exec() OR pcre[16|32]_dfa_exec()"
|
169
|
+
.rs
|
170
|
+
.sp
|
171
|
+
The DFA functions move along the subject string character by character, without
|
172
|
+
backtracking, searching for all possible matches simultaneously. If the end of
|
173
|
+
the subject is reached before the end of the pattern, there is the possibility
|
174
|
+
of a partial match, again provided that at least one character has been
|
175
|
+
inspected.
|
176
|
+
.P
|
177
|
+
When PCRE_PARTIAL_SOFT is set, PCRE_ERROR_PARTIAL is returned only if there
|
178
|
+
have been no complete matches. Otherwise, the complete matches are returned.
|
179
|
+
However, if PCRE_PARTIAL_HARD is set, a partial match takes precedence over any
|
180
|
+
complete matches. The portion of the string that was inspected when the longest
|
181
|
+
partial match was found is set as the first matching string, provided there are
|
182
|
+
at least two slots in the offsets vector.
|
183
|
+
.P
|
184
|
+
Because the DFA functions always search for all possible matches, and there is
|
185
|
+
no difference between greedy and ungreedy repetition, their behaviour is
|
186
|
+
different from the standard functions when PCRE_PARTIAL_HARD is set. Consider
|
187
|
+
the string "dog" matched against the ungreedy pattern shown above:
|
188
|
+
.sp
|
189
|
+
/dog(sbody)??/
|
190
|
+
.sp
|
191
|
+
Whereas the standard functions stop as soon as they find the complete match for
|
192
|
+
"dog", the DFA functions also find the partial match for "dogsbody", and so
|
193
|
+
return that when PCRE_PARTIAL_HARD is set.
|
194
|
+
.
|
195
|
+
.
|
196
|
+
.SH "PARTIAL MATCHING AND WORD BOUNDARIES"
|
197
|
+
.rs
|
198
|
+
.sp
|
199
|
+
If a pattern ends with one of sequences \eb or \eB, which test for word
|
200
|
+
boundaries, partial matching with PCRE_PARTIAL_SOFT can give counter-intuitive
|
201
|
+
results. Consider this pattern:
|
202
|
+
.sp
|
203
|
+
/\ebcat\eb/
|
204
|
+
.sp
|
205
|
+
This matches "cat", provided there is a word boundary at either end. If the
|
206
|
+
subject string is "the cat", the comparison of the final "t" with a following
|
207
|
+
character cannot take place, so a partial match is found. However, normal
|
208
|
+
matching carries on, and \eb matches at the end of the subject when the last
|
209
|
+
character is a letter, so a complete match is found. The result, therefore, is
|
210
|
+
\fInot\fP PCRE_ERROR_PARTIAL. Using PCRE_PARTIAL_HARD in this case does yield
|
211
|
+
PCRE_ERROR_PARTIAL, because then the partial match takes precedence.
|
212
|
+
.
|
213
|
+
.
|
214
|
+
.SH "FORMERLY RESTRICTED PATTERNS"
|
215
|
+
.rs
|
216
|
+
.sp
|
217
|
+
For releases of PCRE prior to 8.00, because of the way certain internal
|
218
|
+
optimizations were implemented in the \fBpcre_exec()\fP function, the
|
219
|
+
PCRE_PARTIAL option (predecessor of PCRE_PARTIAL_SOFT) could not be used with
|
220
|
+
all patterns. From release 8.00 onwards, the restrictions no longer apply, and
|
221
|
+
partial matching with can be requested for any pattern.
|
222
|
+
.P
|
223
|
+
Items that were formerly restricted were repeated single characters and
|
224
|
+
repeated metasequences. If PCRE_PARTIAL was set for a pattern that did not
|
225
|
+
conform to the restrictions, \fBpcre_exec()\fP returned the error code
|
226
|
+
PCRE_ERROR_BADPARTIAL (-13). This error code is no longer in use. The
|
227
|
+
PCRE_INFO_OKPARTIAL call to \fBpcre_fullinfo()\fP to find out if a compiled
|
228
|
+
pattern can be used for partial matching now always returns 1.
|
229
|
+
.
|
230
|
+
.
|
231
|
+
.SH "EXAMPLE OF PARTIAL MATCHING USING PCRETEST"
|
232
|
+
.rs
|
233
|
+
.sp
|
234
|
+
If the escape sequence \eP is present in a \fBpcretest\fP data line, the
|
235
|
+
PCRE_PARTIAL_SOFT option is used for the match. Here is a run of \fBpcretest\fP
|
236
|
+
that uses the date example quoted above:
|
237
|
+
.sp
|
238
|
+
re> /^\ed?\ed(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\ed\ed$/
|
239
|
+
data> 25jun04\eP
|
240
|
+
0: 25jun04
|
241
|
+
1: jun
|
242
|
+
data> 25dec3\eP
|
243
|
+
Partial match: 23dec3
|
244
|
+
data> 3ju\eP
|
245
|
+
Partial match: 3ju
|
246
|
+
data> 3juj\eP
|
247
|
+
No match
|
248
|
+
data> j\eP
|
249
|
+
No match
|
250
|
+
.sp
|
251
|
+
The first data string is matched completely, so \fBpcretest\fP shows the
|
252
|
+
matched substrings. The remaining four strings do not match the complete
|
253
|
+
pattern, but the first two are partial matches. Similar output is obtained
|
254
|
+
if DFA matching is used.
|
255
|
+
.P
|
256
|
+
If the escape sequence \eP is present more than once in a \fBpcretest\fP data
|
257
|
+
line, the PCRE_PARTIAL_HARD option is set for the match.
|
258
|
+
.
|
259
|
+
.
|
260
|
+
.SH "MULTI-SEGMENT MATCHING WITH pcre_dfa_exec() OR pcre[16|32]_dfa_exec()"
|
261
|
+
.rs
|
262
|
+
.sp
|
263
|
+
When a partial match has been found using a DFA matching function, it is
|
264
|
+
possible to continue the match by providing additional subject data and calling
|
265
|
+
the function again with the same compiled regular expression, this time setting
|
266
|
+
the PCRE_DFA_RESTART option. You must pass the same working space as before,
|
267
|
+
because this is where details of the previous partial match are stored. Here is
|
268
|
+
an example using \fBpcretest\fP, using the \eR escape sequence to set the
|
269
|
+
PCRE_DFA_RESTART option (\eD specifies the use of the DFA matching function):
|
270
|
+
.sp
|
271
|
+
re> /^\ed?\ed(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\ed\ed$/
|
272
|
+
data> 23ja\eP\eD
|
273
|
+
Partial match: 23ja
|
274
|
+
data> n05\eR\eD
|
275
|
+
0: n05
|
276
|
+
.sp
|
277
|
+
The first call has "23ja" as the subject, and requests partial matching; the
|
278
|
+
second call has "n05" as the subject for the continued (restarted) match.
|
279
|
+
Notice that when the match is complete, only the last part is shown; PCRE does
|
280
|
+
not retain the previously partially-matched string. It is up to the calling
|
281
|
+
program to do that if it needs to.
|
282
|
+
.P
|
283
|
+
That means that, for an unanchored pattern, if a continued match fails, it is
|
284
|
+
not possible to try again at a new starting point. All this facility is capable
|
285
|
+
of doing is continuing with the previous match attempt. In the previous
|
286
|
+
example, if the second set of data is "ug23" the result is no match, even
|
287
|
+
though there would be a match for "aug23" if the entire string were given at
|
288
|
+
once. Depending on the application, this may or may not be what you want.
|
289
|
+
The only way to allow for starting again at the next character is to retain the
|
290
|
+
matched part of the subject and try a new complete match.
|
291
|
+
.P
|
292
|
+
You can set the PCRE_PARTIAL_SOFT or PCRE_PARTIAL_HARD options with
|
293
|
+
PCRE_DFA_RESTART to continue partial matching over multiple segments. This
|
294
|
+
facility can be used to pass very long subject strings to the DFA matching
|
295
|
+
functions.
|
296
|
+
.
|
297
|
+
.
|
298
|
+
.SH "MULTI-SEGMENT MATCHING WITH pcre_exec() OR pcre[16|32]_exec()"
|
299
|
+
.rs
|
300
|
+
.sp
|
301
|
+
From release 8.00, the standard matching functions can also be used to do
|
302
|
+
multi-segment matching. Unlike the DFA functions, it is not possible to
|
303
|
+
restart the previous match with a new segment of data. Instead, new data must
|
304
|
+
be added to the previous subject string, and the entire match re-run, starting
|
305
|
+
from the point where the partial match occurred. Earlier data can be discarded.
|
306
|
+
.P
|
307
|
+
It is best to use PCRE_PARTIAL_HARD in this situation, because it does not
|
308
|
+
treat the end of a segment as the end of the subject when matching \ez, \eZ,
|
309
|
+
\eb, \eB, and $. Consider an unanchored pattern that matches dates:
|
310
|
+
.sp
|
311
|
+
re> /\ed?\ed(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\ed\ed/
|
312
|
+
data> The date is 23ja\eP\eP
|
313
|
+
Partial match: 23ja
|
314
|
+
.sp
|
315
|
+
At this stage, an application could discard the text preceding "23ja", add on
|
316
|
+
text from the next segment, and call the matching function again. Unlike the
|
317
|
+
DFA matching functions, the entire matching string must always be available,
|
318
|
+
and the complete matching process occurs for each call, so more memory and more
|
319
|
+
processing time is needed.
|
320
|
+
.P
|
321
|
+
\fBNote:\fP If the pattern contains lookbehind assertions, or \eK, or starts
|
322
|
+
with \eb or \eB, the string that is returned for a partial match includes
|
323
|
+
characters that precede the start of what would be returned for a complete
|
324
|
+
match, because it contains all the characters that were inspected during the
|
325
|
+
partial match.
|
326
|
+
.
|
327
|
+
.
|
328
|
+
.SH "ISSUES WITH MULTI-SEGMENT MATCHING"
|
329
|
+
.rs
|
330
|
+
.sp
|
331
|
+
Certain types of pattern may give problems with multi-segment matching,
|
332
|
+
whichever matching function is used.
|
333
|
+
.P
|
334
|
+
1. If the pattern contains a test for the beginning of a line, you need to pass
|
335
|
+
the PCRE_NOTBOL option when the subject string for any call does start at the
|
336
|
+
beginning of a line. There is also a PCRE_NOTEOL option, but in practice when
|
337
|
+
doing multi-segment matching you should be using PCRE_PARTIAL_HARD, which
|
338
|
+
includes the effect of PCRE_NOTEOL.
|
339
|
+
.P
|
340
|
+
2. Lookbehind assertions that have already been obeyed are catered for in the
|
341
|
+
offsets that are returned for a partial match. However a lookbehind assertion
|
342
|
+
later in the pattern could require even earlier characters to be inspected. You
|
343
|
+
can handle this case by using the PCRE_INFO_MAXLOOKBEHIND option of the
|
344
|
+
\fBpcre_fullinfo()\fP or \fBpcre[16|32]_fullinfo()\fP functions to obtain the
|
345
|
+
length of the longest lookbehind in the pattern. This length is given in
|
346
|
+
characters, not bytes. If you always retain at least that many characters
|
347
|
+
before the partially matched string, all should be well. (Of course, near the
|
348
|
+
start of the subject, fewer characters may be present; in that case all
|
349
|
+
characters should be retained.)
|
350
|
+
.P
|
351
|
+
From release 8.33, there is a more accurate way of deciding which characters to
|
352
|
+
retain. Instead of subtracting the length of the longest lookbehind from the
|
353
|
+
earliest inspected character (\fIoffsets[0]\fP), the match start position
|
354
|
+
(\fIoffsets[2]\fP) should be used, and the next match attempt started at the
|
355
|
+
\fIoffsets[2]\fP character by setting the \fIstartoffset\fP argument of
|
356
|
+
\fBpcre_exec()\fP or \fBpcre_dfa_exec()\fP.
|
357
|
+
.P
|
358
|
+
For example, if the pattern "(?<=123)abc" is partially
|
359
|
+
matched against the string "xx123a", the three offset values returned are 2, 6,
|
360
|
+
and 5. This indicates that the matching process that gave a partial match
|
361
|
+
started at offset 5, but the characters "123a" were all inspected. The maximum
|
362
|
+
lookbehind for that pattern is 3, so taking that away from 5 shows that we need
|
363
|
+
only keep "123a", and the next match attempt can be started at offset 3 (that
|
364
|
+
is, at "a") when further characters have been added. When the match start is
|
365
|
+
not the earliest inspected character, \fBpcretest\fP shows it explicitly:
|
366
|
+
.sp
|
367
|
+
re> "(?<=123)abc"
|
368
|
+
data> xx123a\eP\eP
|
369
|
+
Partial match at offset 5: 123a
|
370
|
+
.P
|
371
|
+
3. Because a partial match must always contain at least one character, what
|
372
|
+
might be considered a partial match of an empty string actually gives a "no
|
373
|
+
match" result. For example:
|
374
|
+
.sp
|
375
|
+
re> /c(?<=abc)x/
|
376
|
+
data> ab\eP
|
377
|
+
No match
|
378
|
+
.sp
|
379
|
+
If the next segment begins "cx", a match should be found, but this will only
|
380
|
+
happen if characters from the previous segment are retained. For this reason, a
|
381
|
+
"no match" result should be interpreted as "partial match of an empty string"
|
382
|
+
when the pattern contains lookbehinds.
|
383
|
+
.P
|
384
|
+
4. Matching a subject string that is split into multiple segments may not
|
385
|
+
always produce exactly the same result as matching over one single long string,
|
386
|
+
especially when PCRE_PARTIAL_SOFT is used. The section "Partial Matching and
|
387
|
+
Word Boundaries" above describes an issue that arises if the pattern ends with
|
388
|
+
\eb or \eB. Another kind of difference may occur when there are multiple
|
389
|
+
matching possibilities, because (for PCRE_PARTIAL_SOFT) a partial match result
|
390
|
+
is given only when there are no completed matches. This means that as soon as
|
391
|
+
the shortest match has been found, continuation to a new subject segment is no
|
392
|
+
longer possible. Consider again this \fBpcretest\fP example:
|
393
|
+
.sp
|
394
|
+
re> /dog(sbody)?/
|
395
|
+
data> dogsb\eP
|
396
|
+
0: dog
|
397
|
+
data> do\eP\eD
|
398
|
+
Partial match: do
|
399
|
+
data> gsb\eR\eP\eD
|
400
|
+
0: g
|
401
|
+
data> dogsbody\eD
|
402
|
+
0: dogsbody
|
403
|
+
1: dog
|
404
|
+
.sp
|
405
|
+
The first data line passes the string "dogsb" to a standard matching function,
|
406
|
+
setting the PCRE_PARTIAL_SOFT option. Although the string is a partial match
|
407
|
+
for "dogsbody", the result is not PCRE_ERROR_PARTIAL, because the shorter
|
408
|
+
string "dog" is a complete match. Similarly, when the subject is presented to
|
409
|
+
a DFA matching function in several parts ("do" and "gsb" being the first two)
|
410
|
+
the match stops when "dog" has been found, and it is not possible to continue.
|
411
|
+
On the other hand, if "dogsbody" is presented as a single string, a DFA
|
412
|
+
matching function finds both matches.
|
413
|
+
.P
|
414
|
+
Because of these problems, it is best to use PCRE_PARTIAL_HARD when matching
|
415
|
+
multi-segment data. The example above then behaves differently:
|
416
|
+
.sp
|
417
|
+
re> /dog(sbody)?/
|
418
|
+
data> dogsb\eP\eP
|
419
|
+
Partial match: dogsb
|
420
|
+
data> do\eP\eD
|
421
|
+
Partial match: do
|
422
|
+
data> gsb\eR\eP\eP\eD
|
423
|
+
Partial match: gsb
|
424
|
+
.sp
|
425
|
+
5. Patterns that contain alternatives at the top level which do not all start
|
426
|
+
with the same pattern item may not work as expected when PCRE_DFA_RESTART is
|
427
|
+
used. For example, consider this pattern:
|
428
|
+
.sp
|
429
|
+
1234|3789
|
430
|
+
.sp
|
431
|
+
If the first part of the subject is "ABC123", a partial match of the first
|
432
|
+
alternative is found at offset 3. There is no partial match for the second
|
433
|
+
alternative, because such a match does not start at the same point in the
|
434
|
+
subject string. Attempting to continue with the string "7890" does not yield a
|
435
|
+
match because only those alternatives that match at one point in the subject
|
436
|
+
are remembered. The problem arises because the start of the second alternative
|
437
|
+
matches within the first alternative. There is no problem with anchored
|
438
|
+
patterns or patterns such as:
|
439
|
+
.sp
|
440
|
+
1234|ABCD
|
441
|
+
.sp
|
442
|
+
where no string can be a partial match for both alternatives. This is not a
|
443
|
+
problem if a standard matching function is used, because the entire match has
|
444
|
+
to be rerun each time:
|
445
|
+
.sp
|
446
|
+
re> /1234|3789/
|
447
|
+
data> ABC123\eP\eP
|
448
|
+
Partial match: 123
|
449
|
+
data> 1237890
|
450
|
+
0: 3789
|
451
|
+
.sp
|
452
|
+
Of course, instead of using PCRE_DFA_RESTART, the same technique of re-running
|
453
|
+
the entire match can also be used with the DFA matching functions. Another
|
454
|
+
possibility is to work with two buffers. If a partial match at offset \fIn\fP
|
455
|
+
in the first buffer is followed by "no match" when PCRE_DFA_RESTART is used on
|
456
|
+
the second buffer, you can then try a new match starting at offset \fIn+1\fP in
|
457
|
+
the first buffer.
|
458
|
+
.
|
459
|
+
.
|
460
|
+
.SH AUTHOR
|
461
|
+
.rs
|
462
|
+
.sp
|
463
|
+
.nf
|
464
|
+
Philip Hazel
|
465
|
+
University Computing Service
|
466
|
+
Cambridge CB2 3QH, England.
|
467
|
+
.fi
|
468
|
+
.
|
469
|
+
.
|
470
|
+
.SH REVISION
|
471
|
+
.rs
|
472
|
+
.sp
|
473
|
+
.nf
|
474
|
+
Last updated: 02 July 2013
|
475
|
+
Copyright (c) 1997-2013 University of Cambridge.
|
476
|
+
.fi
|