Copy disabled (too large)
Download .txt
Showing preview only (49,130K chars total). Download the full file to get everything.
Repository: manticoresoftware/manticoresearch
Branch: master
Commit: 987460fdf7ca
Files: 3231
Total size: 46.3 MB
Directory structure:
gitextract_9gwz_73y/
├── .clt/
│ ├── checkers/
│ │ ├── contains
│ │ ├── ignore
│ │ └── something
│ └── patterns
├── .cursorignore
├── .editorconfig
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── feature_request.yml
│ │ └── support_request.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── stale.yml
│ └── workflows/
│ ├── build_template.yml
│ ├── check_docs.yml
│ ├── checklist_validator.yml
│ ├── clt_nightly.yml
│ ├── clt_tests.yml
│ ├── coverage.yml
│ ├── deploy_docs.yml
│ ├── nightly_dumps.yml
│ ├── nightly_fuzzer.yml
│ ├── nightly_integration.yml
│ ├── nightly_memleaks.yml
│ ├── pack_publish.yml
│ ├── pack_publish_galera.yml
│ ├── test.yml
│ ├── test_template.yml
│ ├── trigger_docs_check.yml
│ └── win_test_template.yml
├── .gitignore
├── .gitlab-ci.yml
├── .gitmodules
├── .noindex
├── .translation-cache/
│ ├── Changelog.md.json
│ ├── Connecting_to_the_server/
│ │ ├── HTTP.md.json
│ │ └── MySQL_protocol.md.json
│ ├── Connecting_to_the_server.md.json
│ ├── Creating_a_cluster/
│ │ ├── Adding_a_new_node.md.json
│ │ ├── Creating_a_cluster.md.json
│ │ ├── Remote_nodes/
│ │ │ ├── Load_balancing.md.json
│ │ │ └── Mirroring.md.json
│ │ ├── Remote_nodes.md.json
│ │ └── Setting_up_replication/
│ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md.json
│ │ ├── Cluster_recovery.md.json
│ │ ├── Creating_a_replication_cluster.md.json
│ │ ├── Deleting_a_replication_cluster.md.json
│ │ ├── Joining_a_replication_cluster.md.json
│ │ ├── Managing_replication_nodes.md.json
│ │ ├── Replication_cluster_status.md.json
│ │ ├── Restarting_a_cluster.md.json
│ │ └── Setting_up_replication.md.json
│ ├── Creating_a_table/
│ │ ├── Creating_a_distributed_table/
│ │ │ ├── Creating_a_distributed_table.md.json
│ │ │ ├── Creating_a_local_distributed_table.md.json
│ │ │ └── Remote_tables.md.json
│ │ ├── Data_types.md.json
│ │ ├── Local_tables/
│ │ │ ├── Percolate_table.md.json
│ │ │ ├── Plain_and_real-time_table_settings.md.json
│ │ │ ├── Plain_table.md.json
│ │ │ ├── Real-time_table.md.json
│ │ │ └── Template_table.md.json
│ │ ├── Local_tables.md.json
│ │ └── NLP_and_tokenization/
│ │ ├── Advanced_HTML_tokenization.md.json
│ │ ├── Data_tokenization.md.json
│ │ ├── Exceptions.md.json
│ │ ├── Ignoring_stop-words.md.json
│ │ ├── Languages_with_continuous_scripts.md.json
│ │ ├── Low-level_tokenization.md.json
│ │ ├── Morphology.md.json
│ │ ├── Supported_languages.md.json
│ │ ├── Wildcard_searching_settings.md.json
│ │ └── Wordforms.md.json
│ ├── Creating_a_table.md.json
│ ├── Data_creation_and_modification/
│ │ ├── Adding_data_from_external_storages/
│ │ │ ├── Adding_data_to_tables/
│ │ │ │ ├── Attaching_one_table_to_another.md.json
│ │ │ │ ├── Importing_table.md.json
│ │ │ │ ├── Killlist_in_plain_tables.md.json
│ │ │ │ └── Merging_tables.md.json
│ │ │ ├── Fetching_from_CSV,TSV.md.json
│ │ │ ├── Fetching_from_XML_streams.md.json
│ │ │ ├── Fetching_from_databases/
│ │ │ │ ├── Database_connection.md.json
│ │ │ │ ├── Execution_of_fetch_queries.md.json
│ │ │ │ ├── Introduction.md.json
│ │ │ │ ├── Processing_fetched_data.md.json
│ │ │ │ └── Ranged_queries.md.json
│ │ │ ├── Main_delta.md.json
│ │ │ ├── Plain_tables_creation.md.json
│ │ │ └── Rotating_a_table.md.json
│ │ ├── Adding_data_from_external_storages.md.json
│ │ ├── Adding_documents_to_a_table/
│ │ │ ├── Adding_documents_to_a_real-time_table.md.json
│ │ │ └── Adding_rules_to_a_percolate_table.md.json
│ │ ├── Data_creation_and_modification.md.json
│ │ ├── Deleting_documents.md.json
│ │ ├── Transactions.md.json
│ │ └── Updating_documents/
│ │ ├── REPLACE.md.json
│ │ ├── REPLACE_vs_UPDATE.md.json
│ │ └── UPDATE.md.json
│ ├── Deleting_a_table.md.json
│ ├── Emptying_a_table.md.json
│ ├── Extensions/
│ │ ├── FEDERATED.md.json
│ │ ├── SphinxSE.md.json
│ │ └── UDFs_and_Plugins/
│ │ ├── Listing_plugins.md.json
│ │ ├── Plugins/
│ │ │ ├── Creating_a_plugin.md.json
│ │ │ ├── Deleting_a_plugin.md.json
│ │ │ ├── Enabling_and_disabling_buddy_plugins.md.json
│ │ │ ├── Ranker_plugins.md.json
│ │ │ ├── Reloading_plugins.md.json
│ │ │ └── Token_filter_plugins.md.json
│ │ ├── UDF/
│ │ │ ├── Creating_a_function.md.json
│ │ │ └── Deleting_a_function.md.json
│ │ ├── UDF.md.json
│ │ └── UDFs_and_Plugins.md.json
│ ├── Functions/
│ │ ├── Arrays_and_conditions_functions.md.json
│ │ ├── Date_and_time_functions.md.json
│ │ ├── Geo_spatial_functions.md.json
│ │ ├── Mathematical_functions.md.json
│ │ ├── Other_functions.md.json
│ │ ├── Searching_and_ranking_functions.md.json
│ │ ├── String_functions.md.json
│ │ └── Type_casting_functions.md.json
│ ├── Functions.md.json
│ ├── Installation/
│ │ ├── Compiling_from_sources.md.json
│ │ ├── Debian_and_Ubuntu.md.json
│ │ ├── Docker.md.json
│ │ ├── Installation.md.json
│ │ ├── MacOS.md.json
│ │ ├── Manticore_Buddy.md.json
│ │ ├── Migration_from_Sphinx.md.json
│ │ ├── RHEL_and_Centos.md.json
│ │ └── Windows.md.json
│ ├── Integration/
│ │ ├── Apache_Superset.md.json
│ │ ├── DBeaver.md.json
│ │ ├── Filebeat.md.json
│ │ ├── Fluentbit.md.json
│ │ ├── Grafana.md.json
│ │ ├── Kafka.md.json
│ │ ├── Kibana.md.json
│ │ ├── Logstash.md.json
│ │ └── Vectordev.md.json
│ ├── Introduction.md.json
│ ├── Listing_tables.md.json
│ ├── Logging/
│ │ ├── Binary_logging.md.json
│ │ ├── Docker_logging.md.json
│ │ ├── Query_logging.md.json
│ │ ├── Rotating_query_and_server_logs.md.json
│ │ └── Server_logging.md.json
│ ├── Miscellaneous_tools.md.json
│ ├── Node_info_and_management/
│ │ ├── KILL.md.json
│ │ ├── Node_status.md.json
│ │ ├── Profiling/
│ │ │ ├── Query_plan.md.json
│ │ │ └── Query_profile.md.json
│ │ ├── SHOW_META.md.json
│ │ ├── SHOW_QUERIES.md.json
│ │ ├── SHOW_THREADS.md.json
│ │ ├── SHOW_VARIABLES.md.json
│ │ ├── SHOW_VERSION.md.json
│ │ ├── SHOW_WARNINGS.md.json
│ │ └── Table_settings_and_status/
│ │ ├── SHOW_TABLE_INDEXES.md.json
│ │ ├── SHOW_TABLE_SETTINGS.md.json
│ │ └── SHOW_TABLE_STATUS.md.json
│ ├── Openapi.md.json
│ ├── Quick_start_guide.md.json
│ ├── README.md.json
│ ├── Read_this_first.md.json
│ ├── References.md.json
│ ├── Reporting_bugs.md.json
│ ├── Searching/
│ │ ├── Autocomplete.md.json
│ │ ├── Collations.md.json
│ │ ├── Cost_based_optimizer.md.json
│ │ ├── Distributed_searching.md.json
│ │ ├── Expressions.md.json
│ │ ├── Faceted_search.md.json
│ │ ├── Filters.md.json
│ │ ├── Full_text_matching/
│ │ │ ├── Basic_usage.md.json
│ │ │ ├── Boolean_optimization.md.json
│ │ │ ├── Escaping.md.json
│ │ │ ├── Operators.md.json
│ │ │ └── Profiling.md.json
│ │ ├── Geo_search.md.json
│ │ ├── Grouping.md.json
│ │ ├── Highlighting.md.json
│ │ ├── Intro.md.json
│ │ ├── Joining.md.json
│ │ ├── KNN.md.json
│ │ ├── Multi-queries.md.json
│ │ ├── Options.md.json
│ │ ├── Pagination.md.json
│ │ ├── Percolate_query.md.json
│ │ ├── Query_cache.md.json
│ │ ├── Search_results.md.json
│ │ ├── Sorting_and_ranking.md.json
│ │ ├── Spell_correction.md.json
│ │ └── Sub-selects.md.json
│ ├── Securing_and_compacting_a_table/
│ │ ├── Backup_and_restore.md.json
│ │ ├── Compacting_a_table.md.json
│ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md.json
│ │ ├── Flushing_RAM_chunk_to_disk.md.json
│ │ ├── Flushing_attributes.md.json
│ │ ├── Flushing_hostnames.md.json
│ │ ├── Freezing_and_locking_a_table.md.json
│ │ ├── Isolation_during_flushing_and_merging.md.json
│ │ └── RT_table_structure.md.json
│ ├── Security/
│ │ ├── Read_only.md.json
│ │ └── SSL.md.json
│ ├── Server_settings/
│ │ ├── Comments.md.json
│ │ ├── Common.md.json
│ │ ├── Inheritance_of_index_and_source_declarations.md.json
│ │ ├── Scripted_configuration.md.json
│ │ ├── Searchd.md.json
│ │ ├── Setting_variables_online.md.json
│ │ └── Special_suffixes.md.json
│ ├── Starting_the_server/
│ │ ├── Docker.md.json
│ │ ├── Linux.md.json
│ │ ├── MacOS.md.json
│ │ ├── Manually.md.json
│ │ └── Windows.md.json
│ ├── Starting_the_server.md.json
│ ├── Telemetry.md.json
│ └── Updating_table_schema_and_settings.md.json
├── 116.conf
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── INSTALL
├── LICENSE
├── README.md
├── TESTING.md
├── actions/
│ ├── checklist-validator/
│ │ └── action.yml
│ └── update-deps/
│ └── action.yml
├── api/
│ ├── lgpl-3.0.txt
│ ├── libsphinxclient/
│ │ ├── CMakeLists.txt
│ │ ├── COPYING
│ │ ├── README
│ │ ├── smoke.cmake
│ │ ├── smoke_data.csv
│ │ ├── smoke_ref.txt
│ │ ├── smoke_test.conf
│ │ ├── smoke_test.sh
│ │ ├── sphinxclient.c
│ │ ├── sphinxclient.h
│ │ └── test.c
│ ├── ruby/
│ │ ├── README.rdoc
│ │ ├── Rakefile
│ │ ├── init.rb
│ │ ├── install.rb
│ │ ├── lib/
│ │ │ ├── sphinx/
│ │ │ │ ├── client.rb
│ │ │ │ ├── request.rb
│ │ │ │ └── response.rb
│ │ │ └── sphinx.rb
│ │ ├── spec/
│ │ │ ├── client_response_spec.rb
│ │ │ ├── client_spec.rb
│ │ │ ├── fixtures/
│ │ │ │ ├── default_search.php
│ │ │ │ ├── default_search_index.php
│ │ │ │ ├── excerpt_custom.php
│ │ │ │ ├── excerpt_default.php
│ │ │ │ ├── excerpt_flags.php
│ │ │ │ ├── field_weights.php
│ │ │ │ ├── filter.php
│ │ │ │ ├── filter_exclude.php
│ │ │ │ ├── filter_float_range.php
│ │ │ │ ├── filter_float_range_exclude.php
│ │ │ │ ├── filter_range.php
│ │ │ │ ├── filter_range_exclude.php
│ │ │ │ ├── filter_range_int64.php
│ │ │ │ ├── filter_ranges.php
│ │ │ │ ├── filters.php
│ │ │ │ ├── filters_different.php
│ │ │ │ ├── geo_anchor.php
│ │ │ │ ├── group_by_attr.php
│ │ │ │ ├── group_by_attrpair.php
│ │ │ │ ├── group_by_day.php
│ │ │ │ ├── group_by_day_sort.php
│ │ │ │ ├── group_by_month.php
│ │ │ │ ├── group_by_week.php
│ │ │ │ ├── group_by_year.php
│ │ │ │ ├── group_distinct.php
│ │ │ │ ├── id_range.php
│ │ │ │ ├── id_range64.php
│ │ │ │ ├── index_weights.php
│ │ │ │ ├── keywords.php
│ │ │ │ ├── limits.php
│ │ │ │ ├── limits_cutoff.php
│ │ │ │ ├── limits_max.php
│ │ │ │ ├── limits_max_cutoff.php
│ │ │ │ ├── match_all.php
│ │ │ │ ├── match_any.php
│ │ │ │ ├── match_boolean.php
│ │ │ │ ├── match_extended.php
│ │ │ │ ├── match_extended2.php
│ │ │ │ ├── match_fullscan.php
│ │ │ │ ├── match_phrase.php
│ │ │ │ ├── max_query_time.php
│ │ │ │ ├── miltiple_queries.php
│ │ │ │ ├── ranking_bm25.php
│ │ │ │ ├── ranking_none.php
│ │ │ │ ├── ranking_proximity.php
│ │ │ │ ├── ranking_proximity_bm25.php
│ │ │ │ ├── ranking_wordcount.php
│ │ │ │ ├── retries.php
│ │ │ │ ├── retries_delay.php
│ │ │ │ ├── select.php
│ │ │ │ ├── set_override.php
│ │ │ │ ├── sort_attr_asc.php
│ │ │ │ ├── sort_attr_desc.php
│ │ │ │ ├── sort_expr.php
│ │ │ │ ├── sort_extended.php
│ │ │ │ ├── sort_relevance.php
│ │ │ │ ├── sort_time_segments.php
│ │ │ │ ├── sphinxapi.php
│ │ │ │ ├── update_attributes.php
│ │ │ │ ├── update_attributes_mva.php
│ │ │ │ └── weights.php
│ │ │ └── sphinx/
│ │ │ ├── sphinx-id64.conf
│ │ │ ├── sphinx.conf
│ │ │ └── sphinx_test.sql
│ │ ├── sphinx.yml.tpl
│ │ ├── tasks/
│ │ │ └── sphinx.rake
│ │ └── test.rb
│ └── sphinxapi.php
├── cmake/
│ ├── CommonInfo.cmake
│ ├── FindMysql.cmake
│ ├── FindZSTD.cmake
│ ├── Findre2.cmake
│ ├── Findstemmer.cmake
│ ├── GetCCTZ.cmake
│ ├── GetColumnar.cmake
│ ├── GetGALERA.cmake
│ ├── GetGooglebench.cmake
│ ├── GetGoogletest.cmake
│ ├── GetICU.cmake
│ ├── GetJIEBA.cmake
│ ├── GetNLJSON.cmake
│ ├── GetRBitmap.cmake
│ ├── GetRE2.cmake
│ ├── GetSSL.cmake
│ ├── GetSTEMMER.cmake
│ ├── GetUniAlgo.cmake
│ ├── GetVCPKG.cmake
│ ├── GetxxHash.cmake
│ ├── SetBuildType.cmake
│ ├── banner.cmake
│ ├── builds/
│ │ ├── CommonDeb.cmake
│ │ ├── CommonRpm.cmake
│ │ ├── VersionDeps.cmake
│ │ ├── build_bionic.cmake
│ │ ├── build_bookworm.cmake
│ │ ├── build_bullseye.cmake
│ │ ├── build_buster.cmake
│ │ ├── build_debian.cmake
│ │ ├── build_default.cmake
│ │ ├── build_focal.cmake
│ │ ├── build_jammy.cmake
│ │ ├── build_macosbrew.cmake
│ │ ├── build_rhel.cmake
│ │ ├── build_rhel10.cmake
│ │ ├── build_rhel8.cmake
│ │ ├── build_rhel9.cmake
│ │ ├── build_stretch.cmake
│ │ ├── build_windows.cmake
│ │ └── build_xenial.cmake
│ ├── check_atomic_intrinsics.cmake
│ ├── check_const_iconv.cmake
│ ├── check_rwlock_prefer_writer.cmake
│ ├── check_unaligned_ram_access.cmake
│ ├── check_vitable_pthread_setname_np.cmake
│ ├── columnar-imported.cmake.in
│ ├── external-build.cmake.in
│ ├── fixup_test_name.cmake
│ ├── galera-copy-package.sh.in
│ ├── galera-imported.cmake.in
│ ├── galera-package.cmake.in
│ ├── gbench-imported.cmake.in
│ ├── genheader.cmake
│ ├── gtest-imported.cmake.in
│ ├── helpers.cmake
│ ├── init_cache_settings.cmake
│ ├── mincore_test.cmake
│ ├── mybison.cmake
│ ├── printers.cmake
│ ├── setup_distribution_build.cmake
│ ├── split.cmake
│ └── update_bundle.cmake
├── columnar_src.txt
├── compare_manuals.sh
├── component-licenses/
│ ├── FindMysql.cmake-license-gplv2floss
│ ├── README.md
│ ├── cjson-license
│ ├── http_parser-license
│ ├── libmysqlclient-license
│ ├── lz4-license
│ ├── sphinx-license
│ └── xxhash-license
├── config/
│ ├── config_cmake.h.in
│ └── config_indexer_cmake.h.in
├── configure
├── contrib/
│ ├── README
│ └── scripts/
│ ├── cachecleanup.sh
│ └── searchd
├── deps.txt
├── dist/
│ ├── 70-manticore.conf
│ ├── CPackOptions.cmake.in
│ ├── build_dockers/
│ │ ├── README.md
│ │ ├── cross/
│ │ │ ├── external_toolchain/
│ │ │ │ ├── Dockerfile
│ │ │ │ ├── Dockerfile_cmake3243
│ │ │ │ └── entry_point.sh
│ │ │ ├── freebsd.cmake
│ │ │ ├── linux.cmake
│ │ │ ├── osx.cmake
│ │ │ ├── sysroots/
│ │ │ │ ├── README.md
│ │ │ │ ├── boost_include.tar.xz.md
│ │ │ │ ├── boost_library.sh
│ │ │ │ ├── boost_macos__.tar.xz.md
│ │ │ │ ├── boost_windows_x64.tar.xz.md
│ │ │ │ ├── build_alma10.sh
│ │ │ │ ├── build_alma9.sh
│ │ │ │ ├── build_bionic.sh
│ │ │ │ ├── build_bookworm.sh
│ │ │ │ ├── build_bullseye.sh
│ │ │ │ ├── build_buster.sh
│ │ │ │ ├── build_centos8.sh
│ │ │ │ ├── build_focal.sh
│ │ │ │ ├── build_jammy.sh
│ │ │ │ ├── debian.sh
│ │ │ │ ├── finalize.sh
│ │ │ │ ├── in_debian.sh
│ │ │ │ ├── in_rhel10.sh
│ │ │ │ ├── in_rhel8.sh
│ │ │ │ ├── in_rhel9.sh
│ │ │ │ ├── mkboost.sh
│ │ │ │ ├── mksysroot.sh
│ │ │ │ ├── mksysrootrhel.sh
│ │ │ │ ├── packages_bionic.txt
│ │ │ │ ├── packages_bookworm.txt
│ │ │ │ ├── packages_bullseye.txt
│ │ │ │ ├── packages_buster.txt
│ │ │ │ ├── packages_focal.txt
│ │ │ │ ├── packages_jammy.txt
│ │ │ │ ├── packages_rhel10.txt
│ │ │ │ ├── packages_rhel8.txt
│ │ │ │ ├── packages_rhel9.txt
│ │ │ │ ├── redhat.sh
│ │ │ │ ├── sysroot_freebsd13_x86_64.tar.xz.md
│ │ │ │ ├── sysroot_macos__.tar.xz.md
│ │ │ │ └── sysroot_windows_x64.tar.xz.md
│ │ │ ├── triplets/
│ │ │ │ ├── README.md
│ │ │ │ ├── arm64-linux.cmake
│ │ │ │ ├── arm64-osx.cmake
│ │ │ │ ├── x64-freebsd.cmake
│ │ │ │ ├── x64-linux.cmake
│ │ │ │ └── x64-osx.cmake
│ │ │ ├── windows-cl.cmake
│ │ │ └── windows.cmake
│ │ ├── nsis/
│ │ │ ├── Dockerfile
│ │ │ ├── deploy.sh
│ │ │ ├── nsis_src_parser.sh
│ │ │ └── nsisscript.nsi
│ │ └── retired/
│ │ ├── README.md
│ │ ├── aarch64/
│ │ │ ├── bionic/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── buildall.sh
│ │ │ ├── bullseye/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── buster/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── centos7/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── centos8/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── focal/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ ├── stretch/
│ │ │ │ ├── base_build/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── boost_175/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── build.sh
│ │ │ │ ├── build_base.sh
│ │ │ │ ├── build_boost.sh
│ │ │ │ ├── build_cmake.sh
│ │ │ │ ├── cmake_320/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── distr.txt
│ │ │ └── xenial/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── bionic/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── base_build_arm/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175_arm/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320_arm/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── buildall.sh
│ │ ├── bullseye/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── buster/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── centos7/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_7/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── centos8/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_11/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── cross/
│ │ │ ├── base_clang12/
│ │ │ │ └── Dockerfile
│ │ │ ├── base_clang13/
│ │ │ │ └── Dockerfile
│ │ │ ├── bigsur_arm64/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── homebrew_arm64.tar.xz.md
│ │ │ ├── bigsur_sdk/
│ │ │ │ ├── Dockerfile
│ │ │ │ ├── MacOSX11.3.sdk.tar.xz.md
│ │ │ │ └── toolchain.cmake
│ │ │ ├── bigsur_x64/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── homebrew_x64.tar.xz.md
│ │ │ ├── build
│ │ │ ├── build_cross/
│ │ │ │ ├── Dockerfile
│ │ │ │ ├── boost_include.tar.xz.md
│ │ │ │ ├── entry_point.sh
│ │ │ │ └── toolchain.cmake
│ │ │ ├── centos_rhel/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake232/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake323/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_clang/
│ │ │ │ └── Dockerfile
│ │ │ ├── freebsd_13/
│ │ │ │ ├── Dockerfile
│ │ │ │ ├── sysroot_fbsd_13.md
│ │ │ │ └── toolchain.cmake
│ │ │ ├── sysroots/
│ │ │ │ ├── build_stretch.sh
│ │ │ │ ├── build_xenial.sh
│ │ │ │ └── stretch.apt
│ │ │ ├── toolchain_clang/
│ │ │ │ └── Dockerfile
│ │ │ ├── ubuntu_debian/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── entry_point.sh
│ │ │ ├── ubuntu_debian_amd64/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── some_name_x86_64.tar.xz.md
│ │ │ └── ubuntu_debian_arm64/
│ │ │ ├── Dockerfile
│ │ │ └── some_name_aarc64.tar.xz.md
│ │ ├── focal/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── jammy/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_178/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_323/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ ├── stretch/
│ │ │ ├── base_build/
│ │ │ │ └── Dockerfile
│ │ │ ├── boost_175/
│ │ │ │ └── Dockerfile
│ │ │ ├── build.sh
│ │ │ ├── build_base.sh
│ │ │ ├── build_boost.sh
│ │ │ ├── build_clang.sh
│ │ │ ├── build_cmake.sh
│ │ │ ├── clang_13/
│ │ │ │ └── Dockerfile
│ │ │ ├── cmake_320/
│ │ │ │ └── Dockerfile
│ │ │ └── distr.txt
│ │ └── xenial/
│ │ ├── base_build/
│ │ │ └── Dockerfile
│ │ ├── boost_175/
│ │ │ └── Dockerfile
│ │ ├── build.sh
│ │ ├── build_base.sh
│ │ ├── build_boost.sh
│ │ ├── build_clang.sh
│ │ ├── build_cmake.sh
│ │ ├── clang_12/
│ │ │ └── Dockerfile
│ │ ├── cmake_320/
│ │ │ └── Dockerfile
│ │ └── distr.txt
│ ├── bundle/
│ │ └── BUNDLE_LICENSES.in
│ ├── check_deps_in_repos.sh
│ ├── deb/
│ │ ├── README.Debian.in
│ │ ├── README.Debian.in.prepare.php
│ │ ├── conffiles-common.in
│ │ ├── conffiles-server.in
│ │ ├── conffiles-tools.in
│ │ ├── manticore-indexer.service.in
│ │ ├── manticore-indexer@.service.in
│ │ ├── manticore-indexer_global.default.in
│ │ ├── manticore.default.in
│ │ ├── manticore.logrotate.in
│ │ ├── manticore.service.in
│ │ ├── manticore_new_cluster
│ │ ├── postinst-common.in
│ │ ├── postinst-core.in
│ │ ├── postinst-server.head
│ │ ├── postinst.debian.tail
│ │ ├── postinst.in.in
│ │ ├── postinst.ubuntu.tail
│ │ ├── postrm-common.in
│ │ ├── postrm-core.in
│ │ ├── postrm-server.in
│ │ ├── prerm.debian.in
│ │ └── prerm.ubuntu.in
│ ├── dockerhub_deploy.sh
│ ├── download_bundle_deps.sh
│ ├── download_bundle_language_packs.sh
│ ├── gitlab-release.yml
│ ├── nsis-release.yml
│ ├── rpm/
│ │ ├── manticore-common.post.in
│ │ ├── manticore-core.post.in
│ │ ├── manticore-indexer.service.in
│ │ ├── manticore-indexer@.service.in
│ │ ├── manticore-indexer_global.default.in
│ │ ├── manticore-server.post.in
│ │ ├── manticore-tools.preun
│ │ ├── manticore.logrotate.in
│ │ ├── manticore.service.in
│ │ ├── manticore.tmpfiles.in
│ │ └── manticore_new_cluster
│ ├── test_kit_docker_build.sh
│ └── test_kit_docker_push.sh
├── doc/
│ ├── binary-logging.md
│ ├── indexer.1
│ ├── indextool.1
│ ├── internal-binary-protocol.md
│ ├── internals-coding-standard.txt
│ ├── internals-format-versions.txt
│ ├── internals-index-format.md
│ ├── md2man.bash
│ └── searchd.1
├── docker-compose-test.yml
├── example.sql
├── galera_packaging/
│ ├── CommonDeb.cmake
│ ├── CommonRpm.cmake
│ ├── README.md
│ ├── build_bionic.cmake
│ ├── build_bookworm.cmake
│ ├── build_bullseye.cmake
│ ├── build_buster.cmake
│ ├── build_focal.cmake
│ ├── build_jammy.cmake
│ ├── build_macos.cmake
│ ├── build_rhel10.cmake
│ ├── build_rhel7.cmake
│ ├── build_rhel8.cmake
│ ├── build_rhel9.cmake
│ ├── description.txt
│ ├── metainfo.cmake
│ ├── packaging.cmake
│ └── tmp
├── libicu/
│ └── CMakeLists.txt
├── libre2/
│ ├── CMakeLists.txt
│ └── libre2.patch
├── libstemmer_c/
│ ├── CMakeLists.txt
│ └── README
├── manticore.conf.in
├── manual/
│ ├── chinese/
│ │ ├── Changelog.md
│ │ ├── Connecting_to_the_server/
│ │ │ ├── HTTP.md
│ │ │ └── MySQL_protocol.md
│ │ ├── Connecting_to_the_server.md
│ │ ├── Creating_a_cluster/
│ │ │ ├── Adding_a_new_node.md
│ │ │ ├── Creating_a_cluster.md
│ │ │ ├── Remote_nodes/
│ │ │ │ ├── Load_balancing.md
│ │ │ │ └── Mirroring.md
│ │ │ ├── Remote_nodes.md
│ │ │ └── Setting_up_replication/
│ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md
│ │ │ ├── Cluster_recovery.md
│ │ │ ├── Creating_a_replication_cluster.md
│ │ │ ├── Deleting_a_replication_cluster.md
│ │ │ ├── Joining_a_replication_cluster.md
│ │ │ ├── Managing_replication_nodes.md
│ │ │ ├── Replication_cluster_status.md
│ │ │ ├── Restarting_a_cluster.md
│ │ │ └── Setting_up_replication.md
│ │ ├── Creating_a_table/
│ │ │ ├── Creating_a_distributed_table/
│ │ │ │ ├── Creating_a_distributed_table.md
│ │ │ │ ├── Creating_a_local_distributed_table.md
│ │ │ │ └── Remote_tables.md
│ │ │ ├── Data_types.md
│ │ │ ├── Local_tables/
│ │ │ │ ├── Percolate_table.md
│ │ │ │ ├── Plain_and_real-time_table_settings.md
│ │ │ │ ├── Plain_table.md
│ │ │ │ ├── Real-time_table.md
│ │ │ │ └── Template_table.md
│ │ │ ├── Local_tables.md
│ │ │ └── NLP_and_tokenization/
│ │ │ ├── Advanced_HTML_tokenization.md
│ │ │ ├── Data_tokenization.md
│ │ │ ├── Exceptions.md
│ │ │ ├── Ignoring_stop-words.md
│ │ │ ├── Languages_with_continuous_scripts.md
│ │ │ ├── Low-level_tokenization.md
│ │ │ ├── Morphology.md
│ │ │ ├── Supported_languages.md
│ │ │ ├── Wildcard_searching_settings.md
│ │ │ └── Wordforms.md
│ │ ├── Creating_a_table.md
│ │ ├── Data_creation_and_modification/
│ │ │ ├── Adding_data_from_external_storages/
│ │ │ │ ├── Adding_data_to_tables/
│ │ │ │ │ ├── Attaching_one_table_to_another.md
│ │ │ │ │ ├── Importing_table.md
│ │ │ │ │ ├── Killlist_in_plain_tables.md
│ │ │ │ │ └── Merging_tables.md
│ │ │ │ ├── Fetching_from_CSV,TSV.md
│ │ │ │ ├── Fetching_from_XML_streams.md
│ │ │ │ ├── Fetching_from_databases/
│ │ │ │ │ ├── Database_connection.md
│ │ │ │ │ ├── Execution_of_fetch_queries.md
│ │ │ │ │ ├── Introduction.md
│ │ │ │ │ ├── Processing_fetched_data.md
│ │ │ │ │ └── Ranged_queries.md
│ │ │ │ ├── Main_delta.md
│ │ │ │ ├── Plain_tables_creation.md
│ │ │ │ └── Rotating_a_table.md
│ │ │ ├── Adding_data_from_external_storages.md
│ │ │ ├── Adding_documents_to_a_table/
│ │ │ │ ├── Adding_documents_to_a_real-time_table.md
│ │ │ │ └── Adding_rules_to_a_percolate_table.md
│ │ │ ├── Data_creation_and_modification.md
│ │ │ ├── Deleting_documents.md
│ │ │ ├── Transactions.md
│ │ │ └── Updating_documents/
│ │ │ ├── REPLACE.md
│ │ │ ├── REPLACE_vs_UPDATE.md
│ │ │ └── UPDATE.md
│ │ ├── Deleting_a_table.md
│ │ ├── Emptying_a_table.md
│ │ ├── Extensions/
│ │ │ ├── FEDERATED.md
│ │ │ ├── SphinxSE.md
│ │ │ └── UDFs_and_Plugins/
│ │ │ ├── Listing_plugins.md
│ │ │ ├── Plugins/
│ │ │ │ ├── Creating_a_plugin.md
│ │ │ │ ├── Deleting_a_plugin.md
│ │ │ │ ├── Enabling_and_disabling_buddy_plugins.md
│ │ │ │ ├── Ranker_plugins.md
│ │ │ │ ├── Reloading_plugins.md
│ │ │ │ └── Token_filter_plugins.md
│ │ │ ├── UDF/
│ │ │ │ ├── Creating_a_function.md
│ │ │ │ └── Deleting_a_function.md
│ │ │ ├── UDF.md
│ │ │ └── UDFs_and_Plugins.md
│ │ ├── Functions/
│ │ │ ├── Arrays_and_conditions_functions.md
│ │ │ ├── Date_and_time_functions.md
│ │ │ ├── Geo_spatial_functions.md
│ │ │ ├── Mathematical_functions.md
│ │ │ ├── Other_functions.md
│ │ │ ├── Searching_and_ranking_functions.md
│ │ │ ├── String_functions.md
│ │ │ └── Type_casting_functions.md
│ │ ├── Functions.md
│ │ ├── Installation/
│ │ │ ├── Compiling_from_sources.md
│ │ │ ├── Debian_and_Ubuntu.md
│ │ │ ├── Docker.md
│ │ │ ├── Installation.md
│ │ │ ├── MacOS.md
│ │ │ ├── Manticore_Buddy.md
│ │ │ ├── Migration_from_Sphinx.md
│ │ │ ├── RHEL_and_Centos.md
│ │ │ └── Windows.md
│ │ ├── Integration/
│ │ │ ├── Apache_Superset.md
│ │ │ ├── DBeaver.md
│ │ │ ├── Filebeat.md
│ │ │ ├── Fluentbit.md
│ │ │ ├── Grafana.md
│ │ │ ├── Kafka.md
│ │ │ ├── Kibana.md
│ │ │ ├── Logstash.md
│ │ │ └── Vectordev.md
│ │ ├── Introduction.md
│ │ ├── Listing_tables.md
│ │ ├── Logging/
│ │ │ ├── Binary_logging.md
│ │ │ ├── Docker_logging.md
│ │ │ ├── Query_logging.md
│ │ │ ├── Rotating_query_and_server_logs.md
│ │ │ └── Server_logging.md
│ │ ├── Miscellaneous_tools.md
│ │ ├── Node_info_and_management/
│ │ │ ├── KILL.md
│ │ │ ├── Node_status.md
│ │ │ ├── Profiling/
│ │ │ │ ├── Query_plan.md
│ │ │ │ └── Query_profile.md
│ │ │ ├── SHOW_META.md
│ │ │ ├── SHOW_QUERIES.md
│ │ │ ├── SHOW_THREADS.md
│ │ │ ├── SHOW_VARIABLES.md
│ │ │ ├── SHOW_VERSION.md
│ │ │ ├── SHOW_WARNINGS.md
│ │ │ └── Table_settings_and_status/
│ │ │ ├── SHOW_TABLE_INDEXES.md
│ │ │ ├── SHOW_TABLE_SETTINGS.md
│ │ │ └── SHOW_TABLE_STATUS.md
│ │ ├── Openapi.md
│ │ ├── Quick_start_guide.md
│ │ ├── README.md
│ │ ├── Read_this_first.md
│ │ ├── References.md
│ │ ├── Reporting_bugs.md
│ │ ├── Searching/
│ │ │ ├── Autocomplete.md
│ │ │ ├── Collations.md
│ │ │ ├── Cost_based_optimizer.md
│ │ │ ├── Distributed_searching.md
│ │ │ ├── Expressions.md
│ │ │ ├── Faceted_search.md
│ │ │ ├── Filters.md
│ │ │ ├── Full_text_matching/
│ │ │ │ ├── Basic_usage.md
│ │ │ │ ├── Boolean_optimization.md
│ │ │ │ ├── Escaping.md
│ │ │ │ ├── Operators.md
│ │ │ │ └── Profiling.md
│ │ │ ├── Geo_search.md
│ │ │ ├── Grouping.md
│ │ │ ├── Highlighting.md
│ │ │ ├── Intro.md
│ │ │ ├── Joining.md
│ │ │ ├── KNN.md
│ │ │ ├── Multi-queries.md
│ │ │ ├── Options.md
│ │ │ ├── Pagination.md
│ │ │ ├── Percolate_query.md
│ │ │ ├── Query_cache.md
│ │ │ ├── Search_results.md
│ │ │ ├── Sorting_and_ranking.md
│ │ │ ├── Spell_correction.md
│ │ │ └── Sub-selects.md
│ │ ├── Securing_and_compacting_a_table/
│ │ │ ├── Backup_and_restore.md
│ │ │ ├── Compacting_a_table.md
│ │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md
│ │ │ ├── Flushing_RAM_chunk_to_disk.md
│ │ │ ├── Flushing_attributes.md
│ │ │ ├── Flushing_hostnames.md
│ │ │ ├── Freezing_and_locking_a_table.md
│ │ │ ├── Isolation_during_flushing_and_merging.md
│ │ │ └── RT_table_structure.md
│ │ ├── Security/
│ │ │ ├── Read_only.md
│ │ │ └── SSL.md
│ │ ├── Server_settings/
│ │ │ ├── Comments.md
│ │ │ ├── Common.md
│ │ │ ├── Inheritance_of_index_and_source_declarations.md
│ │ │ ├── Scripted_configuration.md
│ │ │ ├── Searchd.md
│ │ │ ├── Setting_variables_online.md
│ │ │ └── Special_suffixes.md
│ │ ├── Starting_the_server/
│ │ │ ├── Docker.md
│ │ │ ├── Linux.md
│ │ │ ├── MacOS.md
│ │ │ ├── Manually.md
│ │ │ └── Windows.md
│ │ ├── Starting_the_server.md
│ │ ├── Telemetry.md
│ │ ├── Updating_table_schema_and_settings.md
│ │ ├── latest_release_version
│ │ └── redirects
│ ├── english/
│ │ ├── Changelog.md
│ │ ├── Connecting_to_the_server/
│ │ │ ├── HTTP.md
│ │ │ └── MySQL_protocol.md
│ │ ├── Connecting_to_the_server.md
│ │ ├── Creating_a_cluster/
│ │ │ ├── Adding_a_new_node.md
│ │ │ ├── Creating_a_cluster.md
│ │ │ ├── Remote_nodes/
│ │ │ │ ├── Load_balancing.md
│ │ │ │ └── Mirroring.md
│ │ │ ├── Remote_nodes.md
│ │ │ └── Setting_up_replication/
│ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md
│ │ │ ├── Cluster_recovery.md
│ │ │ ├── Creating_a_replication_cluster.md
│ │ │ ├── Deleting_a_replication_cluster.md
│ │ │ ├── Joining_a_replication_cluster.md
│ │ │ ├── Managing_replication_nodes.md
│ │ │ ├── Replication_cluster_status.md
│ │ │ ├── Restarting_a_cluster.md
│ │ │ └── Setting_up_replication.md
│ │ ├── Creating_a_table/
│ │ │ ├── Creating_a_distributed_table/
│ │ │ │ ├── Creating_a_distributed_table.md
│ │ │ │ ├── Creating_a_local_distributed_table.md
│ │ │ │ └── Remote_tables.md
│ │ │ ├── Data_types.md
│ │ │ ├── Local_tables/
│ │ │ │ ├── Percolate_table.md
│ │ │ │ ├── Plain_and_real-time_table_settings.md
│ │ │ │ ├── Plain_table.md
│ │ │ │ ├── Real-time_table.md
│ │ │ │ └── Template_table.md
│ │ │ ├── Local_tables.md
│ │ │ └── NLP_and_tokenization/
│ │ │ ├── Advanced_HTML_tokenization.md
│ │ │ ├── Data_tokenization.md
│ │ │ ├── Exceptions.md
│ │ │ ├── Ignoring_stop-words.md
│ │ │ ├── Languages_with_continuous_scripts.md
│ │ │ ├── Low-level_tokenization.md
│ │ │ ├── Morphology.md
│ │ │ ├── Supported_languages.md
│ │ │ ├── Wildcard_searching_settings.md
│ │ │ └── Wordforms.md
│ │ ├── Creating_a_table.md
│ │ ├── Data_creation_and_modification/
│ │ │ ├── Adding_data_from_external_storages/
│ │ │ │ ├── Adding_data_to_tables/
│ │ │ │ │ ├── Attaching_one_table_to_another.md
│ │ │ │ │ ├── Importing_table.md
│ │ │ │ │ ├── Killlist_in_plain_tables.md
│ │ │ │ │ └── Merging_tables.md
│ │ │ │ ├── Fetching_from_CSV,TSV.md
│ │ │ │ ├── Fetching_from_XML_streams.md
│ │ │ │ ├── Fetching_from_databases/
│ │ │ │ │ ├── Database_connection.md
│ │ │ │ │ ├── Execution_of_fetch_queries.md
│ │ │ │ │ ├── Introduction.md
│ │ │ │ │ ├── Processing_fetched_data.md
│ │ │ │ │ └── Ranged_queries.md
│ │ │ │ ├── Main_delta.md
│ │ │ │ ├── Plain_tables_creation.md
│ │ │ │ └── Rotating_a_table.md
│ │ │ ├── Adding_data_from_external_storages.md
│ │ │ ├── Adding_documents_to_a_table/
│ │ │ │ ├── Adding_documents_to_a_real-time_table.md
│ │ │ │ └── Adding_rules_to_a_percolate_table.md
│ │ │ ├── Data_creation_and_modification.md
│ │ │ ├── Deleting_documents.md
│ │ │ ├── Transactions.md
│ │ │ └── Updating_documents/
│ │ │ ├── REPLACE.md
│ │ │ ├── REPLACE_vs_UPDATE.md
│ │ │ └── UPDATE.md
│ │ ├── Deleting_a_table.md
│ │ ├── Emptying_a_table.md
│ │ ├── Extensions/
│ │ │ ├── FEDERATED.md
│ │ │ ├── SphinxSE.md
│ │ │ └── UDFs_and_Plugins/
│ │ │ ├── Listing_plugins.md
│ │ │ ├── Plugins/
│ │ │ │ ├── Creating_a_plugin.md
│ │ │ │ ├── Deleting_a_plugin.md
│ │ │ │ ├── Enabling_and_disabling_buddy_plugins.md
│ │ │ │ ├── Ranker_plugins.md
│ │ │ │ ├── Reloading_plugins.md
│ │ │ │ └── Token_filter_plugins.md
│ │ │ ├── UDF/
│ │ │ │ ├── Creating_a_function.md
│ │ │ │ └── Deleting_a_function.md
│ │ │ ├── UDF.md
│ │ │ └── UDFs_and_Plugins.md
│ │ ├── Functions/
│ │ │ ├── Arrays_and_conditions_functions.md
│ │ │ ├── Date_and_time_functions.md
│ │ │ ├── Geo_spatial_functions.md
│ │ │ ├── Mathematical_functions.md
│ │ │ ├── Other_functions.md
│ │ │ ├── Searching_and_ranking_functions.md
│ │ │ ├── String_functions.md
│ │ │ └── Type_casting_functions.md
│ │ ├── Functions.md
│ │ ├── Installation/
│ │ │ ├── Compiling_from_sources.md
│ │ │ ├── Debian_and_Ubuntu.md
│ │ │ ├── Docker.md
│ │ │ ├── Installation.md
│ │ │ ├── MacOS.md
│ │ │ ├── Manticore_Buddy.md
│ │ │ ├── Migration_from_Sphinx.md
│ │ │ ├── RHEL_and_Centos.md
│ │ │ └── Windows.md
│ │ ├── Integration/
│ │ │ ├── Apache_Superset.md
│ │ │ ├── DBeaver.md
│ │ │ ├── Filebeat.md
│ │ │ ├── Fluentbit.md
│ │ │ ├── Grafana.md
│ │ │ ├── Kafka.md
│ │ │ ├── Kibana.md
│ │ │ ├── Logstash.md
│ │ │ └── Vectordev.md
│ │ ├── Introduction.md
│ │ ├── Listing_tables.md
│ │ ├── Logging/
│ │ │ ├── Binary_logging.md
│ │ │ ├── Docker_logging.md
│ │ │ ├── Query_logging.md
│ │ │ ├── Rotating_query_and_server_logs.md
│ │ │ └── Server_logging.md
│ │ ├── Miscellaneous_tools.md
│ │ ├── Node_info_and_management/
│ │ │ ├── KILL.md
│ │ │ ├── Node_status.md
│ │ │ ├── Profiling/
│ │ │ │ ├── Query_plan.md
│ │ │ │ └── Query_profile.md
│ │ │ ├── SHOW_META.md
│ │ │ ├── SHOW_QUERIES.md
│ │ │ ├── SHOW_THREADS.md
│ │ │ ├── SHOW_VARIABLES.md
│ │ │ ├── SHOW_VERSION.md
│ │ │ ├── SHOW_WARNINGS.md
│ │ │ └── Table_settings_and_status/
│ │ │ ├── SHOW_TABLE_INDEXES.md
│ │ │ ├── SHOW_TABLE_SETTINGS.md
│ │ │ └── SHOW_TABLE_STATUS.md
│ │ ├── Openapi.md
│ │ ├── Quick_start_guide.md
│ │ ├── README.md
│ │ ├── Read_this_first.md
│ │ ├── References.md
│ │ ├── Reporting_bugs.md
│ │ ├── Searching/
│ │ │ ├── Autocomplete.md
│ │ │ ├── Collations.md
│ │ │ ├── Cost_based_optimizer.md
│ │ │ ├── Distributed_searching.md
│ │ │ ├── Expressions.md
│ │ │ ├── Faceted_search.md
│ │ │ ├── Filters.md
│ │ │ ├── Full_text_matching/
│ │ │ │ ├── Basic_usage.md
│ │ │ │ ├── Boolean_optimization.md
│ │ │ │ ├── Escaping.md
│ │ │ │ ├── Operators.md
│ │ │ │ └── Profiling.md
│ │ │ ├── Geo_search.md
│ │ │ ├── Grouping.md
│ │ │ ├── Highlighting.md
│ │ │ ├── Intro.md
│ │ │ ├── Joining.md
│ │ │ ├── KNN.md
│ │ │ ├── Multi-queries.md
│ │ │ ├── Options.md
│ │ │ ├── Pagination.md
│ │ │ ├── Percolate_query.md
│ │ │ ├── Query_cache.md
│ │ │ ├── Search_results.md
│ │ │ ├── Sorting_and_ranking.md
│ │ │ ├── Spell_correction.md
│ │ │ └── Sub-selects.md
│ │ ├── Securing_and_compacting_a_table/
│ │ │ ├── Backup_and_restore.md
│ │ │ ├── Compacting_a_table.md
│ │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md
│ │ │ ├── Flushing_RAM_chunk_to_disk.md
│ │ │ ├── Flushing_attributes.md
│ │ │ ├── Flushing_hostnames.md
│ │ │ ├── Freezing_and_locking_a_table.md
│ │ │ ├── Isolation_during_flushing_and_merging.md
│ │ │ └── RT_table_structure.md
│ │ ├── Security/
│ │ │ ├── Read_only.md
│ │ │ └── SSL.md
│ │ ├── Server_settings/
│ │ │ ├── Comments.md
│ │ │ ├── Common.md
│ │ │ ├── Inheritance_of_index_and_source_declarations.md
│ │ │ ├── Scripted_configuration.md
│ │ │ ├── Searchd.md
│ │ │ ├── Setting_variables_online.md
│ │ │ └── Special_suffixes.md
│ │ ├── Starting_the_server/
│ │ │ ├── Docker.md
│ │ │ ├── Linux.md
│ │ │ ├── MacOS.md
│ │ │ ├── Manually.md
│ │ │ └── Windows.md
│ │ ├── Starting_the_server.md
│ │ ├── Telemetry.md
│ │ ├── Updating_table_schema_and_settings.md
│ │ ├── latest_release_version
│ │ └── redirects
│ ├── latest_release_version
│ └── russian/
│ ├── Changelog.md
│ ├── Connecting_to_the_server/
│ │ ├── HTTP.md
│ │ └── MySQL_protocol.md
│ ├── Connecting_to_the_server.md
│ ├── Creating_a_cluster/
│ │ ├── Adding_a_new_node.md
│ │ ├── Creating_a_cluster.md
│ │ ├── Remote_nodes/
│ │ │ ├── Load_balancing.md
│ │ │ └── Mirroring.md
│ │ ├── Remote_nodes.md
│ │ └── Setting_up_replication/
│ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md
│ │ ├── Cluster_recovery.md
│ │ ├── Creating_a_replication_cluster.md
│ │ ├── Deleting_a_replication_cluster.md
│ │ ├── Joining_a_replication_cluster.md
│ │ ├── Managing_replication_nodes.md
│ │ ├── Replication_cluster_status.md
│ │ ├── Restarting_a_cluster.md
│ │ └── Setting_up_replication.md
│ ├── Creating_a_table/
│ │ ├── Creating_a_distributed_table/
│ │ │ ├── Creating_a_distributed_table.md
│ │ │ ├── Creating_a_local_distributed_table.md
│ │ │ └── Remote_tables.md
│ │ ├── Data_types.md
│ │ ├── Local_tables/
│ │ │ ├── Percolate_table.md
│ │ │ ├── Plain_and_real-time_table_settings.md
│ │ │ ├── Plain_table.md
│ │ │ ├── Real-time_table.md
│ │ │ └── Template_table.md
│ │ ├── Local_tables.md
│ │ └── NLP_and_tokenization/
│ │ ├── Advanced_HTML_tokenization.md
│ │ ├── Data_tokenization.md
│ │ ├── Exceptions.md
│ │ ├── Ignoring_stop-words.md
│ │ ├── Languages_with_continuous_scripts.md
│ │ ├── Low-level_tokenization.md
│ │ ├── Morphology.md
│ │ ├── Supported_languages.md
│ │ ├── Wildcard_searching_settings.md
│ │ └── Wordforms.md
│ ├── Creating_a_table.md
│ ├── Data_creation_and_modification/
│ │ ├── Adding_data_from_external_storages/
│ │ │ ├── Adding_data_to_tables/
│ │ │ │ ├── Attaching_one_table_to_another.md
│ │ │ │ ├── Importing_table.md
│ │ │ │ ├── Killlist_in_plain_tables.md
│ │ │ │ └── Merging_tables.md
│ │ │ ├── Fetching_from_CSV,TSV.md
│ │ │ ├── Fetching_from_XML_streams.md
│ │ │ ├── Fetching_from_databases/
│ │ │ │ ├── Database_connection.md
│ │ │ │ ├── Execution_of_fetch_queries.md
│ │ │ │ ├── Introduction.md
│ │ │ │ ├── Processing_fetched_data.md
│ │ │ │ └── Ranged_queries.md
│ │ │ ├── Main_delta.md
│ │ │ ├── Plain_tables_creation.md
│ │ │ └── Rotating_a_table.md
│ │ ├── Adding_data_from_external_storages.md
│ │ ├── Adding_documents_to_a_table/
│ │ │ ├── Adding_documents_to_a_real-time_table.md
│ │ │ └── Adding_rules_to_a_percolate_table.md
│ │ ├── Data_creation_and_modification.md
│ │ ├── Deleting_documents.md
│ │ ├── Transactions.md
│ │ └── Updating_documents/
│ │ ├── REPLACE.md
│ │ ├── REPLACE_vs_UPDATE.md
│ │ └── UPDATE.md
│ ├── Deleting_a_table.md
│ ├── Emptying_a_table.md
│ ├── Extensions/
│ │ ├── FEDERATED.md
│ │ ├── SphinxSE.md
│ │ └── UDFs_and_Plugins/
│ │ ├── Listing_plugins.md
│ │ ├── Plugins/
│ │ │ ├── Creating_a_plugin.md
│ │ │ ├── Deleting_a_plugin.md
│ │ │ ├── Enabling_and_disabling_buddy_plugins.md
│ │ │ ├── Ranker_plugins.md
│ │ │ ├── Reloading_plugins.md
│ │ │ └── Token_filter_plugins.md
│ │ ├── UDF/
│ │ │ ├── Creating_a_function.md
│ │ │ └── Deleting_a_function.md
│ │ ├── UDF.md
│ │ └── UDFs_and_Plugins.md
│ ├── Functions/
│ │ ├── Arrays_and_conditions_functions.md
│ │ ├── Date_and_time_functions.md
│ │ ├── Geo_spatial_functions.md
│ │ ├── Mathematical_functions.md
│ │ ├── Other_functions.md
│ │ ├── Searching_and_ranking_functions.md
│ │ ├── String_functions.md
│ │ └── Type_casting_functions.md
│ ├── Functions.md
│ ├── Installation/
│ │ ├── Compiling_from_sources.md
│ │ ├── Debian_and_Ubuntu.md
│ │ ├── Docker.md
│ │ ├── Installation.md
│ │ ├── MacOS.md
│ │ ├── Manticore_Buddy.md
│ │ ├── Migration_from_Sphinx.md
│ │ ├── RHEL_and_Centos.md
│ │ └── Windows.md
│ ├── Integration/
│ │ ├── Apache_Superset.md
│ │ ├── DBeaver.md
│ │ ├── Filebeat.md
│ │ ├── Fluentbit.md
│ │ ├── Grafana.md
│ │ ├── Kafka.md
│ │ ├── Kibana.md
│ │ ├── Logstash.md
│ │ └── Vectordev.md
│ ├── Introduction.md
│ ├── Listing_tables.md
│ ├── Logging/
│ │ ├── Binary_logging.md
│ │ ├── Docker_logging.md
│ │ ├── Query_logging.md
│ │ ├── Rotating_query_and_server_logs.md
│ │ └── Server_logging.md
│ ├── Miscellaneous_tools.md
│ ├── Node_info_and_management/
│ │ ├── KILL.md
│ │ ├── Node_status.md
│ │ ├── Profiling/
│ │ │ ├── Query_plan.md
│ │ │ └── Query_profile.md
│ │ ├── SHOW_META.md
│ │ ├── SHOW_QUERIES.md
│ │ ├── SHOW_THREADS.md
│ │ ├── SHOW_VARIABLES.md
│ │ ├── SHOW_VERSION.md
│ │ ├── SHOW_WARNINGS.md
│ │ └── Table_settings_and_status/
│ │ ├── SHOW_TABLE_INDEXES.md
│ │ ├── SHOW_TABLE_SETTINGS.md
│ │ └── SHOW_TABLE_STATUS.md
│ ├── Openapi.md
│ ├── Quick_start_guide.md
│ ├── README.md
│ ├── Read_this_first.md
│ ├── References.md
│ ├── Reporting_bugs.md
│ ├── Searching/
│ │ ├── Autocomplete.md
│ │ ├── Collations.md
│ │ ├── Cost_based_optimizer.md
│ │ ├── Distributed_searching.md
│ │ ├── Expressions.md
│ │ ├── Faceted_search.md
│ │ ├── Filters.md
│ │ ├── Full_text_matching/
│ │ │ ├── Basic_usage.md
│ │ │ ├── Boolean_optimization.md
│ │ │ ├── Escaping.md
│ │ │ ├── Operators.md
│ │ │ └── Profiling.md
│ │ ├── Geo_search.md
│ │ ├── Grouping.md
│ │ ├── Highlighting.md
│ │ ├── Intro.md
│ │ ├── Joining.md
│ │ ├── KNN.md
│ │ ├── Multi-queries.md
│ │ ├── Options.md
│ │ ├── Pagination.md
│ │ ├── Percolate_query.md
│ │ ├── Query_cache.md
│ │ ├── Search_results.md
│ │ ├── Sorting_and_ranking.md
│ │ ├── Spell_correction.md
│ │ └── Sub-selects.md
│ ├── Securing_and_compacting_a_table/
│ │ ├── Backup_and_restore.md
│ │ ├── Compacting_a_table.md
│ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md
│ │ ├── Flushing_RAM_chunk_to_disk.md
│ │ ├── Flushing_attributes.md
│ │ ├── Flushing_hostnames.md
│ │ ├── Freezing_and_locking_a_table.md
│ │ ├── Isolation_during_flushing_and_merging.md
│ │ └── RT_table_structure.md
│ ├── Security/
│ │ ├── Read_only.md
│ │ └── SSL.md
│ ├── Server_settings/
│ │ ├── Comments.md
│ │ ├── Common.md
│ │ ├── Inheritance_of_index_and_source_declarations.md
│ │ ├── Scripted_configuration.md
│ │ ├── Searchd.md
│ │ ├── Setting_variables_online.md
│ │ └── Special_suffixes.md
│ ├── Starting_the_server/
│ │ ├── Docker.md
│ │ ├── Linux.md
│ │ ├── MacOS.md
│ │ ├── Manually.md
│ │ └── Windows.md
│ ├── Starting_the_server.md
│ ├── Telemetry.md
│ ├── Updating_table_schema_and_settings.md
│ ├── latest_release_version
│ └── redirects
├── memcheck.sh
├── memdocker.sh
├── misc/
│ ├── .gitignore
│ ├── build-local-test-kit.sh
│ ├── compare_manuals.sh
│ ├── ctest/
│ │ ├── gltest.cmake
│ │ ├── justbuild.cmake
│ │ ├── memcheck.cmake
│ │ ├── memcheck.md
│ │ ├── ubertests/
│ │ │ ├── Dockerfile
│ │ │ ├── aot.sh
│ │ │ ├── entry_point.sh
│ │ │ └── ubertests_docker_image/
│ │ │ ├── Dockerfile
│ │ │ ├── entry_point.sh
│ │ │ ├── resource.json
│ │ │ └── sphinx
│ │ └── valgrind/
│ │ ├── Dockerfile
│ │ ├── entry_point.sh
│ │ └── sphinx
│ ├── dockerfiles/
│ │ ├── README.md
│ │ ├── mysql/
│ │ │ ├── Dockerfile
│ │ │ └── docker-entrypoint.sh
│ │ ├── scripts/
│ │ │ ├── smoke.sh
│ │ │ ├── smoke_libclient.sh
│ │ │ └── smoke_tests.sh
│ │ └── test/
│ │ └── Dockerfile
│ ├── http-log-to-test
│ ├── junit/
│ │ └── ctest2junit.xsl
│ ├── manticore.natvis
│ ├── manticore_lldb.py
│ ├── manual.sh
│ ├── raminfo.py
│ ├── resolve.py
│ ├── search_json_pretty.php
│ ├── stopwords/
│ │ ├── af
│ │ ├── ar
│ │ ├── bg
│ │ ├── bn
│ │ ├── ca
│ │ ├── ckb
│ │ ├── cz
│ │ ├── da
│ │ ├── de
│ │ ├── el
│ │ ├── en
│ │ ├── eo
│ │ ├── es
│ │ ├── et
│ │ ├── eu
│ │ ├── fa
│ │ ├── fi
│ │ ├── fr
│ │ ├── ga
│ │ ├── gl
│ │ ├── he
│ │ ├── hi
│ │ ├── hr
│ │ ├── hu
│ │ ├── hy
│ │ ├── id
│ │ ├── it
│ │ ├── ja
│ │ ├── ko
│ │ ├── la
│ │ ├── languages_list.txt
│ │ ├── lt
│ │ ├── lv
│ │ ├── mr
│ │ ├── nl
│ │ ├── no
│ │ ├── pl
│ │ ├── pt
│ │ ├── ro
│ │ ├── ru
│ │ ├── sk
│ │ ├── sl
│ │ ├── so
│ │ ├── st
│ │ ├── sv
│ │ ├── sw
│ │ ├── th
│ │ ├── tr
│ │ ├── yo
│ │ ├── zh
│ │ └── zu
│ ├── suggest/
│ │ ├── README
│ │ ├── suggest.conf
│ │ └── suggest.php
│ ├── tzdata/
│ │ └── Asia/
│ │ └── Novosibirsk
│ ├── winbundle/
│ │ ├── CURLConfig.cmake
│ │ ├── EXPATConfig.cmake
│ │ ├── IconvConfig.cmake
│ │ ├── MysqlConfig.cmake
│ │ ├── OpenSSLConfig.cmake
│ │ ├── PostgreSQLConfig.cmake
│ │ ├── README.md
│ │ └── ZSTDConfig.cmake
│ └── wordbreak.pl
├── mysqlse/
│ ├── CMakeLists.txt
│ ├── INSTALL
│ ├── Makefile.am
│ ├── gen_data.php
│ ├── ha_sphinx.cc
│ ├── ha_sphinx.h
│ ├── make-patch.sh
│ ├── plug.in
│ ├── snippets_udf.cc
│ ├── sphinx.5.0.22.diff
│ ├── sphinx.5.0.27.diff
│ ├── sphinx.5.0.37.diff
│ └── sphinx.5.0.91.diff
├── smoke.sh
├── smokeci.sh
├── sphinxrev.cmake
├── sphinxrevcheck.cmake
├── src/
│ ├── .clang-format
│ ├── .cursor/
│ │ └── rules/
│ │ └── stas-1.mdc
│ ├── .gitattributes
│ ├── CMakeLists.txt
│ ├── accumulator.cpp
│ ├── accumulator.h
│ ├── aggregate.cpp
│ ├── aggregate.h
│ ├── aggrexpr.cpp
│ ├── aggrexpr.h
│ ├── attr_embedding.cpp
│ ├── attr_embedding.h
│ ├── attribute.cpp
│ ├── attribute.h
│ ├── attrindex_builder.cpp
│ ├── attrindex_builder.h
│ ├── attrindex_merge.cpp
│ ├── attrindex_merge.h
│ ├── binlog.cpp
│ ├── binlog.h
│ ├── binlog_defs.h
│ ├── charsets/
│ │ ├── chinese.txt
│ │ ├── cjk.txt
│ │ ├── cont.txt
│ │ ├── english.txt
│ │ ├── globalaliases.h.in
│ │ ├── japanese.txt
│ │ ├── korean.txt
│ │ ├── non_cjk.txt
│ │ ├── non_cont.txt
│ │ ├── russian.txt
│ │ └── thai.txt
│ ├── chunksearchctx.cpp
│ ├── chunksearchctx.h
│ ├── cjkpreprocessor.cpp
│ ├── cjkpreprocessor.h
│ ├── client_session.h
│ ├── client_task_info.cpp
│ ├── client_task_info.h
│ ├── collation.cpp
│ ├── collation.h
│ ├── columnarexpr.cpp
│ ├── columnarexpr.h
│ ├── columnarfilter.cpp
│ ├── columnarfilter.h
│ ├── columnargrouper.cpp
│ ├── columnargrouper.h
│ ├── columnarlib.cpp
│ ├── columnarlib.h
│ ├── columnarmisc.cpp
│ ├── columnarmisc.h
│ ├── columnarrt.cpp
│ ├── columnarrt.h
│ ├── columnarsort.cpp
│ ├── columnarsort.h
│ ├── compressed_http.cpp
│ ├── compressed_http.h
│ ├── compressed_mysql_layer.cpp
│ ├── compressed_mysql_layer.h
│ ├── compressed_zlib_mysql.cpp
│ ├── compressed_zlib_mysql.h
│ ├── compressed_zstd_mysql.cpp
│ ├── compressed_zstd_mysql.h
│ ├── config_reloader.cpp
│ ├── config_reloader.h
│ ├── conversion.cpp
│ ├── conversion.h
│ ├── coro_stack.cpp
│ ├── coro_stack.h
│ ├── coro_waker.h
│ ├── coroutine.cpp
│ ├── coroutine.h
│ ├── costestimate.cpp
│ ├── costestimate.h
│ ├── daemon/
│ │ ├── CMakeLists.txt
│ │ ├── api_commands.h
│ │ ├── api_search.cpp
│ │ ├── api_search.h
│ │ ├── crash_logger.cpp
│ │ ├── crash_logger.h
│ │ ├── daemon_log.cpp
│ │ ├── failures_log.cpp
│ │ ├── failures_log.h
│ │ ├── http_log.cpp
│ │ ├── logger.h
│ │ ├── match_iterator.cpp
│ │ ├── match_iterator.h
│ │ ├── minimize_aggr_result.cpp
│ │ ├── minimize_aggr_result.h
│ │ ├── query_log.cpp
│ │ ├── search_handler.cpp
│ │ ├── search_handler.h
│ │ ├── system_tables.cpp
│ │ ├── winservice.cpp
│ │ └── winservice.h
│ ├── datareader.cpp
│ ├── datareader.h
│ ├── datetime.cpp
│ ├── datetime.h
│ ├── ddl.l
│ ├── ddl.y
│ ├── debug_cmds.cpp
│ ├── debug_cmds.h
│ ├── detail/
│ │ ├── coroutine_impl.h
│ │ ├── expmeter.h
│ │ ├── indexlink.cpp
│ │ └── indexlink.h
│ ├── dict/
│ │ ├── CMakeLists.txt
│ │ ├── aggregate_hit.h
│ │ ├── bin.cpp
│ │ ├── bin.h
│ │ ├── crc_engine.h
│ │ ├── crc_engine_impl.h
│ │ ├── dict_base.cpp
│ │ ├── dict_base.h
│ │ ├── dict_crc.cpp
│ │ ├── dict_crc.h
│ │ ├── dict_crc_impl.h
│ │ ├── dict_entry.h
│ │ ├── dict_exact.cpp
│ │ ├── dict_keywords.cpp
│ │ ├── dict_proxy.h
│ │ ├── dict_star.cpp
│ │ ├── infix/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── infix_builder.cpp
│ │ │ └── infix_builder.h
│ │ ├── stem/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── sphinxmetaphone.cpp
│ │ │ ├── sphinxsoundex.cpp
│ │ │ ├── sphinxstem.h
│ │ │ ├── sphinxstemar.cpp
│ │ │ ├── sphinxstemcz.cpp
│ │ │ ├── sphinxstemen.cpp
│ │ │ ├── sphinxstemru.cpp
│ │ │ └── sphinxstemru.inl
│ │ ├── template_dict_traits.cpp
│ │ ├── template_dict_traits.h
│ │ ├── word_forms.cpp
│ │ └── word_forms.h
│ ├── digest_sha1.cpp
│ ├── digest_sha1.h
│ ├── distinct.cpp
│ ├── distinct.h
│ ├── docidlookup.cpp
│ ├── docidlookup.h
│ ├── docs_collector.cpp
│ ├── docs_collector.h
│ ├── docstore.cpp
│ ├── docstore.h
│ ├── dynamic_idx.cpp
│ ├── dynamic_idx.h
│ ├── embeddingutils.cpp
│ ├── embeddingutils.h
│ ├── event.h
│ ├── exprdatetime.cpp
│ ├── exprdatetime.h
│ ├── exprdocstore.cpp
│ ├── exprdocstore.h
│ ├── exprgeodist.cpp
│ ├── exprgeodist.h
│ ├── exprremap.cpp
│ ├── exprremap.h
│ ├── exprtraits.cpp
│ ├── exprtraits.h
│ ├── farmhash/
│ │ └── farmhash.h
│ ├── fileio.cpp
│ ├── fileio.h
│ ├── fileutils.cpp
│ ├── fileutils.h
│ ├── frontendschema.cpp
│ ├── frontendschema.h
│ ├── fuzzer/
│ │ ├── CMakeLists.txt
│ │ ├── dict.txt
│ │ └── fuzzer.cpp
│ ├── gbenches/
│ │ ├── CMakeLists.txt
│ │ ├── appendf.cpp
│ │ ├── cJSON_test.c
│ │ ├── expressions.cpp
│ │ ├── functions.cpp
│ │ ├── geodist.cpp
│ │ ├── json.cpp
│ │ ├── locators.cpp
│ │ ├── misc.cpp
│ │ ├── popcount.cpp
│ │ ├── stripper.cpp
│ │ ├── text.cpp
│ │ └── tokenizer.cpp
│ ├── geodist.cpp
│ ├── geodist.h
│ ├── global_idf.cpp
│ ├── global_idf.h
│ ├── grouper.cpp
│ ├── grouper.h
│ ├── gtests/
│ │ ├── CMakeLists.txt
│ │ ├── gtests_filter.cpp
│ │ ├── gtests_functions.cpp
│ │ ├── gtests_globalstate.cpp
│ │ ├── gtests_hugetokenizer.cpp
│ │ ├── gtests_json.cpp
│ │ ├── gtests_pqstuff.cpp
│ │ ├── gtests_rtstuff.cpp
│ │ ├── gtests_searchd.cpp
│ │ ├── gtests_searchdaemon.cpp
│ │ ├── gtests_strfmt.cpp
│ │ ├── gtests_stringbuilder.cpp
│ │ ├── gtests_text.cpp
│ │ ├── gtests_threadstuff.cpp
│ │ ├── gtests_tokenizer.cpp
│ │ ├── gtests_wsrep.cpp
│ │ ├── libsphinxtest.txt
│ │ └── libsphinxtest2.txt
│ ├── hazard_pointer.cpp
│ ├── hazard_pointer.h
│ ├── histogram.cpp
│ ├── histogram.h
│ ├── http/
│ │ ├── http_parser.c
│ │ ├── http_parser.h
│ │ └── log_management.h
│ ├── hyperloglog.cpp
│ ├── hyperloglog.h
│ ├── icu.cpp
│ ├── icu.h
│ ├── index_converter.cpp
│ ├── index_rotator.cpp
│ ├── index_rotator.h
│ ├── indexcheck.cpp
│ ├── indexcheck.h
│ ├── indexer.cpp
│ ├── indexfilebase.cpp
│ ├── indexfilebase.h
│ ├── indexfiles.cpp
│ ├── indexfiles.h
│ ├── indexformat.cpp
│ ├── indexformat.h
│ ├── indexing_sources/
│ │ ├── CMakeLists.txt
│ │ ├── schema_configurator.h
│ │ ├── source_document.cpp
│ │ ├── source_document.h
│ │ ├── source_mysql.cpp
│ │ ├── source_mysql.h
│ │ ├── source_odbc.cpp
│ │ ├── source_odbc.h
│ │ ├── source_pgsql.cpp
│ │ ├── source_pgsql.h
│ │ ├── source_sql.cpp
│ │ ├── source_sql.h
│ │ ├── source_stats.h
│ │ ├── source_svpipe.cpp
│ │ ├── source_svpipe.h
│ │ ├── source_xmlpipe2.cpp
│ │ └── source_xmlpipe2.h
│ ├── indexsettings.cpp
│ ├── indexsettings.h
│ ├── indextool.cpp
│ ├── jieba.cpp
│ ├── jieba.h
│ ├── joinsorter.cpp
│ ├── joinsorter.h
│ ├── json/
│ │ ├── cJSON.c
│ │ └── cJSON.h
│ ├── jsonqueryfilter.cpp
│ ├── jsonqueryfilter.h
│ ├── jsonsi.cpp
│ ├── jsonsi.h
│ ├── killlist.cpp
│ ├── killlist.h
│ ├── knnlib.cpp
│ ├── knnlib.h
│ ├── knnmisc.cpp
│ ├── knnmisc.h
│ ├── libutils.cpp
│ ├── libutils.h
│ ├── literal.h.in
│ ├── loop_profiler.h
│ ├── lz4/
│ │ ├── lz4.c
│ │ ├── lz4.h
│ │ ├── lz4hc.c
│ │ └── lz4hc.h
│ ├── match.h
│ ├── match_impl.h
│ ├── memio.cpp
│ ├── memio.h
│ ├── memio_impl.h
│ ├── mini_timer.cpp
│ ├── mini_timer.h
│ ├── net_action_accept.cpp
│ ├── net_action_accept.h
│ ├── netfetch.cpp
│ ├── netfetch.h
│ ├── netpoll.cpp
│ ├── netpoll.h
│ ├── netreceive_api.cpp
│ ├── netreceive_api.h
│ ├── netreceive_http.cpp
│ ├── netreceive_http.h
│ ├── netreceive_ql.cpp
│ ├── netreceive_ql.h
│ ├── networking_daemon.cpp
│ ├── networking_daemon.h
│ ├── perfetto/
│ │ ├── CMakeLists.txt
│ │ └── README.txt
│ ├── pollable_event.cpp
│ ├── pollable_event.h
│ ├── pseudosharding.cpp
│ ├── pseudosharding.h
│ ├── query_status.cpp
│ ├── query_status.h
│ ├── querycontext.cpp
│ ├── querycontext.h
│ ├── queryfilter.cpp
│ ├── queryfilter.h
│ ├── queryprofile.cpp
│ ├── queryprofile.h
│ ├── querystats.cpp
│ ├── querystats.h
│ ├── queuecreator.cpp
│ ├── queuecreator.h
│ ├── replication/
│ │ ├── CMakeLists.txt
│ │ ├── api_command_cluster.cpp
│ │ ├── api_command_cluster.h
│ │ ├── cluster_binlog.cpp
│ │ ├── cluster_binlog.h
│ │ ├── cluster_commands.h
│ │ ├── cluster_delete.cpp
│ │ ├── cluster_delete.h
│ │ ├── cluster_file_reserve.cpp
│ │ ├── cluster_file_reserve.h
│ │ ├── cluster_file_send.cpp
│ │ ├── cluster_file_send.h
│ │ ├── cluster_get_nodes.cpp
│ │ ├── cluster_get_nodes.h
│ │ ├── cluster_index_add_local.cpp
│ │ ├── cluster_index_add_local.h
│ │ ├── cluster_recv_state_cleanup.cpp
│ │ ├── cluster_recv_state_cleanup.h
│ │ ├── cluster_sst_progress.cpp
│ │ ├── cluster_sst_progress.h
│ │ ├── cluster_synced.cpp
│ │ ├── cluster_synced.h
│ │ ├── cluster_update_nodes.cpp
│ │ ├── cluster_update_nodes.h
│ │ ├── commit_monitor.cpp
│ │ ├── commit_monitor.h
│ │ ├── common.h
│ │ ├── configuration.cpp
│ │ ├── configuration.h
│ │ ├── grastate.cpp
│ │ ├── grastate.h
│ │ ├── nodes.cpp
│ │ ├── nodes.h
│ │ ├── portrange.cpp
│ │ ├── portrange.h
│ │ ├── receiver_ctx.cpp
│ │ ├── receiver_ctx.h
│ │ ├── recv_state.cpp
│ │ ├── recv_state.h
│ │ ├── replicate_index.cpp
│ │ ├── replicate_index.h
│ │ ├── send_files.cpp
│ │ ├── send_files.h
│ │ ├── serialize.cpp
│ │ ├── serialize.h
│ │ ├── wsrep_cxx.cpp
│ │ ├── wsrep_cxx.h
│ │ ├── wsrep_cxx_int.h
│ │ ├── wsrep_documentation/
│ │ │ └── wsrep_api_h.txt
│ │ ├── wsrep_v25.cpp
│ │ └── wsrep_v31.cpp
│ ├── reserved.py
│ ├── schema/
│ │ ├── CMakeLists.txt
│ │ ├── columninfo.cpp
│ │ ├── columninfo.h
│ │ ├── helper.cpp
│ │ ├── helper.h
│ │ ├── ischema.h
│ │ ├── locator.h
│ │ ├── locator_impl.h
│ │ ├── rset.cpp
│ │ ├── rset.h
│ │ ├── schema.cpp
│ │ └── schema.h
│ ├── schematransform.cpp
│ ├── schematransform.h
│ ├── searchd.cpp
│ ├── searchdaemon.cpp
│ ├── searchdaemon.h
│ ├── searchdbuddy.cpp
│ ├── searchdbuddy.h
│ ├── searchdconfig.cpp
│ ├── searchdconfig.h
│ ├── searchdddl.cpp
│ ├── searchdddl.h
│ ├── searchdexpr.cpp
│ ├── searchdexpr.h
│ ├── searchdfields.cpp
│ ├── searchdha.cpp
│ ├── searchdha.h
│ ├── searchdhttp.cpp
│ ├── searchdhttp.h
│ ├── searchdhttpcompat.cpp
│ ├── searchdreplication.cpp
│ ├── searchdreplication.h
│ ├── searchdsql.cpp
│ ├── searchdsql.h
│ ├── searchdssl.cpp
│ ├── searchdssl.h
│ ├── searchdssl_stub.cpp
│ ├── searchdtask.cpp
│ ├── searchdtask.h
│ ├── searchnode.cpp
│ ├── searchnode.h
│ ├── secondaryindex.cpp
│ ├── secondaryindex.h
│ ├── secondarylib.cpp
│ ├── secondarylib.h
│ ├── skip_cache.cpp
│ ├── skip_cache.h
│ ├── snippetfunctor.cpp
│ ├── snippetfunctor.h
│ ├── snippetindex.cpp
│ ├── snippetindex.h
│ ├── snippetpassage.cpp
│ ├── snippetpassage.h
│ ├── snippetstream.cpp
│ ├── snippetstream.h
│ ├── sortcomp.h
│ ├── sortergroup.cpp
│ ├── sortergroup.h
│ ├── sorterprecalc.cpp
│ ├── sorterprecalc.h
│ ├── sorterscroll.cpp
│ ├── sorterscroll.h
│ ├── sortertraits.cpp
│ ├── sortertraits.h
│ ├── sortsetup.cpp
│ ├── sortsetup.h
│ ├── spelldump.cpp
│ ├── sphinx.cpp
│ ├── sphinx.h
│ ├── sphinx_alter.cpp
│ ├── sphinx_alter.h
│ ├── sphinxaot.cpp
│ ├── sphinxdefs.h
│ ├── sphinxexcerpt.cpp
│ ├── sphinxexcerpt.h
│ ├── sphinxexpr.cpp
│ ├── sphinxexpr.h
│ ├── sphinxexpr.l
│ ├── sphinxexpr.y
│ ├── sphinxfilter.cpp
│ ├── sphinxfilter.h
│ ├── sphinxint.h
│ ├── sphinxjson.cpp
│ ├── sphinxjson.h
│ ├── sphinxjson.l
│ ├── sphinxjson.y
│ ├── sphinxjsonquery.cpp
│ ├── sphinxjsonquery.h
│ ├── sphinxplugin.cpp
│ ├── sphinxplugin.h
│ ├── sphinxpq.cpp
│ ├── sphinxpq.h
│ ├── sphinxqcache.cpp
│ ├── sphinxqcache.h
│ ├── sphinxql.l
│ ├── sphinxql.y
│ ├── sphinxql_debug.cpp
│ ├── sphinxql_debug.h
│ ├── sphinxql_debug.l
│ ├── sphinxql_debug.y
│ ├── sphinxql_extra.cpp
│ ├── sphinxql_extra.h
│ ├── sphinxql_extra.l
│ ├── sphinxql_extra.y
│ ├── sphinxql_second.cpp
│ ├── sphinxql_second.h
│ ├── sphinxql_second.l
│ ├── sphinxql_second.y
│ ├── sphinxquery/
│ │ ├── CMakeLists.txt
│ │ ├── common_subtree.cpp
│ │ ├── parse_helper.cpp
│ │ ├── parse_helper.h
│ │ ├── sphinxquery.cpp
│ │ ├── sphinxquery.h
│ │ ├── sphinxquery.y
│ │ ├── transform_andnotnotnot.cpp
│ │ ├── transform_commonandnotfactor.cpp
│ │ ├── transform_commoncompoundnot.cpp
│ │ ├── transform_commonkeywords.cpp
│ │ ├── transform_commonnot.cpp
│ │ ├── transform_commonornot.cpp
│ │ ├── transform_commonsubterm.cpp
│ │ ├── transform_excessandnot.cpp
│ │ ├── transform_hungoperand.cpp
│ │ ├── transform_phrase.cpp
│ │ ├── transformation.cpp
│ │ ├── transformation.h
│ │ ├── xqdebug.h
│ │ ├── xqnode.cpp
│ │ ├── xqparser.cpp
│ │ └── xqparser.h
│ ├── sphinxrt.cpp
│ ├── sphinxrt.h
│ ├── sphinxsearch.cpp
│ ├── sphinxsearch.h
│ ├── sphinxselect.y
│ ├── sphinxsort.cpp
│ ├── sphinxsort.h
│ ├── sphinxstd.h
│ ├── sphinxudf.c
│ ├── sphinxudf.h
│ ├── sphinxutils.cpp
│ ├── sphinxutils.h
│ ├── sphinxversion.cpp
│ ├── sphinxversion.h.in
│ ├── sqlchecks/
│ │ ├── CMakeLists.txt
│ │ ├── checks.h
│ │ ├── scan_parameters.cpp
│ │ ├── scanparams.l
│ │ ├── validate_vector.cpp
│ │ └── validatevec.l
│ ├── stackmock.cpp
│ ├── stackmock.h
│ ├── std/
│ │ ├── CMakeLists.txt
│ │ ├── accessor.h
│ │ ├── accessor_impl.h
│ │ ├── at_scope_exit.h
│ │ ├── attrstub.h
│ │ ├── autoevent.cpp
│ │ ├── autoevent.h
│ │ ├── base64.cpp
│ │ ├── base64.h
│ │ ├── binarysearch.h
│ │ ├── binarysearch_impl.h
│ │ ├── bitcount.h
│ │ ├── bitcount_impl.h
│ │ ├── bitvec.h
│ │ ├── bitvec_impl.h
│ │ ├── blobs.h
│ │ ├── blobs_impl.h
│ │ ├── buffer.h
│ │ ├── buffer_impl.h
│ │ ├── checks.cpp
│ │ ├── checks.h
│ │ ├── circular_buffer.h
│ │ ├── circular_buffer_impl.h
│ │ ├── comma.h
│ │ ├── comma_impl.h
│ │ ├── comp.h
│ │ ├── comp_impl.h
│ │ ├── crc32.cpp
│ │ ├── crc32.h
│ │ ├── crc32_impl.h
│ │ ├── datamove.h
│ │ ├── datamove_impl.h
│ │ ├── deleter.h
│ │ ├── deleter_impl.h
│ │ ├── env.cpp
│ │ ├── env.h
│ │ ├── escaped_builder.h
│ │ ├── escaped_builder_impl.h
│ │ ├── fastlog.cpp
│ │ ├── fastlog.h
│ │ ├── fastlog_impl.h
│ │ ├── fatal.cpp
│ │ ├── fatal.h
│ │ ├── fixedvector.h
│ │ ├── fixedvector_impl.h
│ │ ├── fnv64.cpp
│ │ ├── fnv64.h
│ │ ├── format.h
│ │ ├── generics.h
│ │ ├── hash.h
│ │ ├── helpers.h
│ │ ├── helpers_impl.h
│ │ ├── ints.h
│ │ ├── iterations.h
│ │ ├── iterations_impl.h
│ │ ├── largebuffer.h
│ │ ├── largebuffer_impl.h
│ │ ├── log2.h
│ │ ├── log2_impl.h
│ │ ├── lrucache.h
│ │ ├── lrucache_impl.h
│ │ ├── mem.cpp
│ │ ├── mem.h
│ │ ├── mm.cpp
│ │ ├── mm.h
│ │ ├── mutex.cpp
│ │ ├── mutex.h
│ │ ├── num_conv.h
│ │ ├── num_conv_impl.h
│ │ ├── openhash.h
│ │ ├── openhash_impl.h
│ │ ├── orderedhash.h
│ │ ├── orderedhash_impl.h
│ │ ├── queue.h
│ │ ├── queue_impl.h
│ │ ├── rand.cpp
│ │ ├── rand.h
│ │ ├── refcounted_mt.h
│ │ ├── refcounted_mt_impl.h
│ │ ├── refptr.h
│ │ ├── relimit.h
│ │ ├── relimit_impl.h
│ │ ├── rwlock.cpp
│ │ ├── rwlock.h
│ │ ├── rwlock_impl.h
│ │ ├── scoped_comma.h
│ │ ├── scoped_comma_impl.h
│ │ ├── scopedlock.h
│ │ ├── scopedlock_impl.h
│ │ ├── sharedptr.h
│ │ ├── sharedptr_impl.h
│ │ ├── smalloc.cpp
│ │ ├── smalloc.h
│ │ ├── smalloc_impl.h
│ │ ├── sort.h
│ │ ├── sort_impl.h
│ │ ├── sphwarn.cpp
│ │ ├── sphwarn.h
│ │ ├── spinlock.h
│ │ ├── storage.h
│ │ ├── strerrorm.h
│ │ ├── string.cpp
│ │ ├── string.h
│ │ ├── string_impl.h
│ │ ├── stringbuilder.cpp
│ │ ├── stringbuilder.h
│ │ ├── stringbuilder_impl.h
│ │ ├── stringhash.cpp
│ │ ├── stringhash.h
│ │ ├── sys.cpp
│ │ ├── sys.h
│ │ ├── tdigest.cpp
│ │ ├── tdigest.h
│ │ ├── thread_annotations.h
│ │ ├── threadrole.h
│ │ ├── timers.cpp
│ │ ├── timers.h
│ │ ├── type_traits.h
│ │ ├── uniq.h
│ │ ├── uniq_impl.h
│ │ ├── unique_lock.h
│ │ ├── variant.h
│ │ ├── variant_impl.h
│ │ ├── vector.h
│ │ ├── vector_impl.h
│ │ ├── vectraits.h
│ │ ├── vectraits_impl.h
│ │ ├── widest.h
│ │ ├── zip.h
│ │ └── zip_impl.h
│ ├── stripper/
│ │ ├── CMakeLists.txt
│ │ ├── html_stripper.cpp
│ │ ├── html_stripper.h
│ │ └── html_stripper_tag.h
│ ├── task_dispatcher.cpp
│ ├── task_dispatcher.h
│ ├── task_info.cpp
│ ├── task_info.h
│ ├── taskflushattrs.cpp
│ ├── taskflushattrs.h
│ ├── taskflushbinlog.cpp
│ ├── taskflushbinlog.h
│ ├── taskflushmutable.cpp
│ ├── taskflushmutable.h
│ ├── taskglobalidf.cpp
│ ├── taskglobalidf.h
│ ├── taskmalloctrim.cpp
│ ├── taskmalloctrim.h
│ ├── taskping.cpp
│ ├── taskping.h
│ ├── taskpreread.cpp
│ ├── taskpreread.h
│ ├── tasksavestate.cpp
│ ├── tasksavestate.h
│ ├── testrt.conf.in
│ ├── testrt.cpp
│ ├── tests.cpp
│ ├── threads_detached.cpp
│ ├── threadutils.cpp
│ ├── threadutils.h
│ ├── threadutils_impl.h
│ ├── timeout_queue.cpp
│ ├── timeout_queue.h
│ ├── tokenizer/
│ │ ├── CMakeLists.txt
│ │ ├── charset_definition_parser.cpp
│ │ ├── charset_definition_parser.h
│ │ ├── exceptions_trie.cpp
│ │ ├── exceptions_trie.h
│ │ ├── lowercaser.cpp
│ │ ├── lowercaser.h
│ │ ├── lowercaser_impl.h
│ │ ├── multiform_container.h
│ │ ├── remap_range.h
│ │ ├── tok_internals.h
│ │ ├── token_filter.h
│ │ ├── tokenizer.cpp
│ │ ├── tokenizer.h
│ │ ├── tokenizer_bigram.cpp
│ │ ├── tokenizer_multiform.cpp
│ │ ├── tokenizer_plugin.cpp
│ │ ├── tokenizer_utf8.cpp
│ │ ├── tokenizerbase.cpp
│ │ ├── tokenizerbase2.cpp
│ │ ├── tokenizerbase2_impl.h
│ │ └── tokenizerbase_impl.h
│ ├── tracer.cpp
│ ├── tracer.h
│ ├── udfexample.c
│ └── wordbreaker.cpp
├── stack.txt
├── test/
│ ├── .gitattributes
│ ├── CMakeLists.txt
│ ├── bench/
│ │ ├── FILTER-chart1.xml
│ │ ├── FILTER-chart2.xml
│ │ ├── FILTER-chart3.xml
│ │ ├── FILTER-chart4.xml
│ │ ├── filter.xml
│ │ ├── filter3.xml
│ │ ├── fullscan.php
│ │ ├── fullscan.xml
│ │ ├── killlist_filter.xml
│ │ ├── ljq1k.txt
│ │ ├── match-modes.xml
│ │ ├── rtmerge.xml
│ │ ├── sphinx.html
│ │ └── subtree_cache.xml
│ ├── bench-results/
│ │ └── stub.txt
│ ├── bench.php
│ ├── clean.cmd
│ ├── clean.sh
│ ├── clean_old.sh
│ ├── clt-tests/
│ │ ├── base/
│ │ │ ├── basic-initialization-manticore-kafka.recb
│ │ │ ├── dind/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── init.recb
│ │ │ ├── kafka-reset-consumer-offsets.recb
│ │ │ ├── replication/
│ │ │ │ ├── create-cluster.recb
│ │ │ │ ├── join-cluster-on-all-nodes.recb
│ │ │ │ ├── start-searchd-precach.recb
│ │ │ │ └── stop-searchd.recb
│ │ │ ├── searchd-with-flexible-ports.conf
│ │ │ ├── start-kafka-kraft.recb
│ │ │ ├── start-searchd-with-buddy.recb
│ │ │ ├── start-searchd-with-cpustats.recb
│ │ │ └── start-searchd.recb
│ │ ├── buddy/
│ │ │ ├── test-buddy-protocol-validation.rec
│ │ │ ├── test-fuzzy-search-non-min-infix-len.rec
│ │ │ ├── test-log-level-buddy-sync.rec
│ │ │ ├── test-manticore-version-in-telemetry.rec
│ │ │ ├── test-show-version.rec
│ │ │ └── test-unserialize-error-absence-kafka-operations.rec
│ │ ├── buddy-plugins/
│ │ │ ├── test-enable-disable-buddy-plugin.rec
│ │ │ ├── test-facet-with-option-fuzzy.rec
│ │ │ ├── test-fuzzy-autocomplete-http.rec
│ │ │ ├── test-fuzzy-search-dist-table.rec
│ │ │ ├── test-fuzzy-search.rec
│ │ │ ├── test-fuzzy-trailing-semicolon.rec
│ │ │ ├── test-inconsistent-comunication-with-buddy.rec
│ │ │ ├── test-prometheus-exporter.rec
│ │ │ └── test-skipping-plugin-loading.rec
│ │ ├── bugs/
│ │ │ ├── 1335-test-issue.rec
│ │ │ ├── 3037-secondary-indexes-bug.rec
│ │ │ ├── 3247-rt-save-disk-chunk-race.rec
│ │ │ ├── 3428-test-having-total-found.rec
│ │ │ ├── 3481-http-update-distributed-table-wrong-cluster-crash.rec
│ │ │ ├── 3489-fuzzy-option-alias-bug.rec
│ │ │ ├── 3602-knn-dist-attribute-error.rec
│ │ │ ├── 3832-fuzzy-cli-json-multiquery.rec
│ │ │ ├── 3844-max-ft-field-crash.rec
│ │ │ ├── 3847-conflict-handling-verification.rec
│ │ │ ├── 4009-qcache-secondaryindex-bug.rec
│ │ │ ├── 4176-attach-rt-externals.rec
│ │ │ ├── 4176-rename-rt-externals.rec
│ │ │ ├── 567-fuzzy-search-skips-numeric-words.rec
│ │ │ ├── 569-fuzzy-single-letter-word-merge.rec
│ │ │ ├── 599-fuzzy-join-facet-no-such-table.rec
│ │ │ └── fuzzy-preserve-distance-exact-words.rec
│ │ ├── core/
│ │ │ ├── boolean-simplify.rec
│ │ │ ├── call-autocomplete-force-bigrams.rec
│ │ │ ├── call-suggest-force-bigrams.rec
│ │ │ ├── query-test-rt-table.rec
│ │ │ ├── test-alter-rebuild-knn.rec
│ │ │ ├── test-alter-rename-http.rec
│ │ │ ├── test-alter-rename.rec
│ │ │ ├── test-alter-table-distributed.rec
│ │ │ ├── test-alter-table.rec
│ │ │ ├── test-auto-schema.rec
│ │ │ ├── test-create-table-like-existing-table-with-data.rec
│ │ │ ├── test-expansion-phrase-limit.rec
│ │ │ ├── test-external-files-handling-ramchunk.rec
│ │ │ ├── test-external-files-handling.rec
│ │ │ ├── test-freeze-unfreeze-update.rec
│ │ │ ├── test-import-table.rec
│ │ │ ├── test-truncate-distributed-table.rec
│ │ │ ├── test-unfreeze-defrosts.rec
│ │ │ └── test-warning-wordlist-size-mismatch.rec
│ │ ├── data-manipulation/
│ │ │ ├── test-alter-rename-nightly.rec
│ │ │ ├── test-lock-tables-mysqldump-compat.rec
│ │ │ ├── test-lock-unlock-tables.rec
│ │ │ └── test-replace-into.rec
│ │ ├── expected-errors/
│ │ │ ├── buddy-plugin-backup.rec
│ │ │ ├── buddy-plugin-empty-string.rec
│ │ │ ├── buddy-plugin-select.rec
│ │ │ ├── buddy-plugin-show.rec
│ │ │ ├── start-searchd.recb
│ │ │ ├── test-character-transformation-when-sending-to-buddy.rec
│ │ │ ├── test-declaration-of-duplicate-attributes.rec
│ │ │ ├── test-declaration-of-duplicate-fields.rec
│ │ │ ├── test-errors-insert-for-distributed-missing-table.rec
│ │ │ ├── test-external-files-handling-negative.rec
│ │ │ ├── test-fuzzy-search-negative.rec
│ │ │ ├── test-fuzzy-sql-endpoint-negative.rec
│ │ │ ├── test-inconsistency-in-error-messages.rec
│ │ │ ├── test-lock-tables-errors.rec
│ │ │ └── test-system-variables-error-handling.rec
│ │ ├── fulltext-search/
│ │ │ └── test-name-of-fields-in-show-meta.rec
│ │ ├── http-interface/
│ │ │ ├── cli-endpoint.rec
│ │ │ ├── cli-json-endpoint.rec
│ │ │ ├── error-handling.rec
│ │ │ ├── multi-query.rec
│ │ │ ├── show-version-http.rec
│ │ │ ├── show-version-trailing-semicolon.rec
│ │ │ ├── sql-endpoint.rec
│ │ │ ├── sql-mode-raw-endpoint.rec
│ │ │ ├── test-concurrent-requests-to-buddy.rec
│ │ │ ├── test-content-type-header-daemon-only.rec
│ │ │ ├── test-content-type-header-with-buddy.rec
│ │ │ ├── test-distributed-inserts.rec
│ │ │ ├── test-fuzzy-search-sql-endpoint.rec
│ │ │ ├── test-inserts.rec
│ │ │ └── test-manticore-handling-id.rec
│ │ ├── indexer/
│ │ │ ├── indexer-latest-mysql-postgres/
│ │ │ │ ├── indexer-latest-mysql-postgres.rec
│ │ │ │ ├── min_mysql.conf
│ │ │ │ └── min_postgres.sql
│ │ │ ├── test-max-iops.rec
│ │ │ └── test-max-iosize.rec
│ │ ├── indexing-error/
│ │ │ ├── csv_crash.conf
│ │ │ ├── min_mysql.conf
│ │ │ ├── min_postgres.sql
│ │ │ ├── test-id-attribute-error-during-indexing.rec
│ │ │ ├── tsv_crash.conf
│ │ │ └── xml.conf
│ │ ├── installation/
│ │ │ ├── check-backup.recb
│ │ │ ├── check-searchd-process.recb
│ │ │ ├── check-version/
│ │ │ │ ├── comparison-version.recb
│ │ │ │ ├── export-current-version.recb
│ │ │ │ └── export-new-version.recb
│ │ │ ├── deb-dev-install.rec
│ │ │ ├── deb-dev-update.rec
│ │ │ ├── deb-release-install.rec
│ │ │ ├── ex-sw-wf.recb
│ │ │ ├── exceptions-stopwords-wordforms-validation-release-to-dev.rec
│ │ │ ├── manticore-and-packages-installation.recb
│ │ │ ├── rhel-dev-install.rec
│ │ │ ├── rhel-dev-update.rec
│ │ │ ├── rhel-release-install.rec
│ │ │ ├── rhel7-release-install.rec
│ │ │ ├── start-searchd-dev.recb
│ │ │ ├── start-searchd-release.recb
│ │ │ └── stop-searchd-dev.recb
│ │ ├── integrations/
│ │ │ ├── dbeaver/
│ │ │ │ └── test-integrations-dbeaver.rec
│ │ │ ├── filebeat/
│ │ │ │ ├── test-integrations-check-filebeat-versions.rec
│ │ │ │ ├── test-integrations-filebeat.rec
│ │ │ │ └── test-integrations-support-filebeat-versions.rec
│ │ │ ├── fluentbit/
│ │ │ │ └── test-integrations-fluentbit.rec
│ │ │ ├── grafana/
│ │ │ │ ├── test-integrations-check-grafana-versions.rec
│ │ │ │ ├── test-integrations-grafana.rec
│ │ │ │ └── test-integrations-test-grafana-versions.rec
│ │ │ ├── kafka/
│ │ │ │ ├── dump.json
│ │ │ │ ├── import.sh
│ │ │ │ ├── script_versions_kafka.sh
│ │ │ │ ├── test-integration-kafka-ms.rec
│ │ │ │ ├── test-integration-kafka-partition-based-ingestion.rec
│ │ │ │ ├── test-integration-kafka-version.rec
│ │ │ │ └── test-unserialize-error-absence-kafka-operations.rec
│ │ │ ├── logstash/
│ │ │ │ ├── test-integrations-check-logstash-versions.rec
│ │ │ │ ├── test-integrations-logstash.rec
│ │ │ │ └── test-integrations-test-logstash-versions.rec
│ │ │ └── vector/
│ │ │ └── test-integrations-vector.rec
│ │ ├── join/
│ │ │ ├── test-avg-select-join.rec
│ │ │ └── test-join-query-logging-completeness.rec
│ │ ├── kibana/
│ │ │ ├── test-kibana-log-to-test-script.rec
│ │ │ └── test-parameter-for-installing-the-kibana-version.rec
│ │ ├── mcl/
│ │ │ ├── auto-embeddings-backup-restore.rec
│ │ │ ├── auto-embeddings-concurrent.rec
│ │ │ ├── auto-embeddings-dml-test.rec
│ │ │ ├── auto-embeddings-duplicate-id.rec
│ │ │ ├── auto-embeddings-edge-cases.rec
│ │ │ ├── auto-embeddings-endpoints.rec
│ │ │ ├── auto-embeddings-error-handling.rec
│ │ │ ├── auto-embeddings-from-vector-check.rec
│ │ │ ├── auto-embeddings-hnsw-configs.rec
│ │ │ ├── auto-embeddings-jina-remote.rec
│ │ │ ├── auto-embeddings-json-api.rec
│ │ │ ├── auto-embeddings-knn-select-scenarios.rec
│ │ │ ├── auto-embeddings-openai-remote.rec
│ │ │ ├── auto-embeddings-qwen.rec
│ │ │ ├── auto-embeddings-syntax-check.rec
│ │ │ ├── auto-embeddings-voyage-remote.rec
│ │ │ └── base.recb
│ │ ├── migration-es-ms/
│ │ │ └── test-migration-es-ms.rec
│ │ ├── mysqldump/
│ │ │ ├── common/
│ │ │ │ ├── mcl-all-json.recb
│ │ │ │ ├── mcl-all-multi.recb
│ │ │ │ ├── mcl-all-multi64.recb
│ │ │ │ ├── mcl-id-json.recb
│ │ │ │ ├── mcl-id-multi.recb
│ │ │ │ ├── mcl-id-multi64.recb
│ │ │ │ ├── mcl-only-json.recb
│ │ │ │ ├── mcl-only-multi.recb
│ │ │ │ ├── mcl-only-multi64.recb
│ │ │ │ ├── no-mcl-json.recb
│ │ │ │ ├── no-mcl-multi.recb
│ │ │ │ ├── no-mcl-multi64.recb
│ │ │ │ ├── pq-table-mysqldump.recb
│ │ │ │ └── random-1m-dump-restore.recb
│ │ │ ├── dumps/
│ │ │ │ ├── mcl-all/
│ │ │ │ │ ├── json-batch-1.sql
│ │ │ │ │ ├── json-batch-2.sql
│ │ │ │ │ ├── json-batch-3.sql
│ │ │ │ │ ├── json.sql
│ │ │ │ │ ├── multi-batch-1.sql
│ │ │ │ │ ├── multi-batch-2.sql
│ │ │ │ │ ├── multi-batch-3.sql
│ │ │ │ │ ├── multi.sql
│ │ │ │ │ ├── multi64-batch-1.sql
│ │ │ │ │ ├── multi64-batch-2.sql
│ │ │ │ │ ├── multi64-batch-3.sql
│ │ │ │ │ └── multi64.sql
│ │ │ │ ├── mcl-id/
│ │ │ │ │ ├── json-batch-1.sql
│ │ │ │ │ ├── json-batch-2.sql
│ │ │ │ │ ├── json-batch-3.sql
│ │ │ │ │ ├── json.sql
│ │ │ │ │ ├── multi-batch-1.sql
│ │ │ │ │ ├── multi-batch-2.sql
│ │ │ │ │ ├── multi-batch-3.sql
│ │ │ │ │ ├── multi.sql
│ │ │ │ │ ├── multi64-batch-1.sql
│ │ │ │ │ ├── multi64-batch-2.sql
│ │ │ │ │ ├── multi64-batch-3.sql
│ │ │ │ │ └── multi64.sql
│ │ │ │ ├── mcl-only/
│ │ │ │ │ ├── json-batch-1.sql
│ │ │ │ │ ├── json-batch-2.sql
│ │ │ │ │ ├── json-batch-3.sql
│ │ │ │ │ ├── json.sql
│ │ │ │ │ ├── multi-batch-1.sql
│ │ │ │ │ ├── multi-batch-2.sql
│ │ │ │ │ ├── multi-batch-3.sql
│ │ │ │ │ ├── multi.sql
│ │ │ │ │ ├── multi64-batch-1.sql
│ │ │ │ │ ├── multi64-batch-2.sql
│ │ │ │ │ ├── multi64-batch-3.sql
│ │ │ │ │ └── multi64.sql
│ │ │ │ └── no-mcl/
│ │ │ │ ├── json-batch-1.sql
│ │ │ │ ├── json-batch-2.sql
│ │ │ │ ├── json-batch-3.sql
│ │ │ │ ├── json.sql
│ │ │ │ ├── multi-batch-1.sql
│ │ │ │ ├── multi-batch-2.sql
│ │ │ │ ├── multi-batch-3.sql
│ │ │ │ ├── multi.sql
│ │ │ │ ├── multi64-batch-1.sql
│ │ │ │ ├── multi64-batch-2.sql
│ │ │ │ ├── multi64-batch-3.sql
│ │ │ │ └── multi64.sql
│ │ │ ├── maria/
│ │ │ │ ├── init.recb
│ │ │ │ ├── mcl-all-json.rec
│ │ │ │ ├── mcl-all-multi.rec
│ │ │ │ ├── mcl-all-multi64.rec
│ │ │ │ ├── mcl-id-json.rec
│ │ │ │ ├── mcl-id-multi.rec
│ │ │ │ ├── mcl-id-multi64.rec
│ │ │ │ ├── mcl-only-json.rec
│ │ │ │ ├── mcl-only-multi.rec
│ │ │ │ ├── mcl-only-multi64.rec
│ │ │ │ ├── no-mcl-json.rec
│ │ │ │ ├── no-mcl-multi.rec
│ │ │ │ ├── no-mcl-multi64.rec
│ │ │ │ ├── pq-table-mysqldump.rec
│ │ │ │ └── random-1m-dump-restore.rec
│ │ │ ├── mysql/
│ │ │ │ ├── mcl-all-json.rec
│ │ │ │ ├── mcl-all-multi.rec
│ │ │ │ ├── mcl-all-multi64.rec
│ │ │ │ ├── mcl-id-json.rec
│ │ │ │ ├── mcl-id-multi.rec
│ │ │ │ ├── mcl-id-multi64.rec
│ │ │ │ ├── mcl-only-json.rec
│ │ │ │ ├── mcl-only-multi.rec
│ │ │ │ ├── mcl-only-multi64.rec
│ │ │ │ ├── no-mcl-json.rec
│ │ │ │ ├── no-mcl-multi.rec
│ │ │ │ ├── no-mcl-multi64.rec
│ │ │ │ ├── pq-table-mysqldump.rec
│ │ │ │ └── random-1m-dump-restore.rec
│ │ │ └── versions/
│ │ │ ├── mariadb/
│ │ │ │ ├── script_versions_mariadb.sh
│ │ │ │ └── test-supported-mysqldump-mariadb-versions.rec
│ │ │ └── mysql/
│ │ │ ├── script_versions_mysql.sh
│ │ │ └── test-supported-mysqldump-mysql-versions.rec
│ │ ├── performance/
│ │ │ ├── concurrent-load-search-stats-validation.rec
│ │ │ ├── test-json-disk_chunks.rec
│ │ │ ├── test-optimisation-and-update.rec
│ │ │ └── test-show-table-tbl-name-status.rec
│ │ ├── performance-nightly/
│ │ │ ├── test-comparison-overhead-json-sql.rec
│ │ │ └── test-performance-for-queries-with-multiple-disk-chunks.rec
│ │ ├── replication/
│ │ │ ├── fatal-invalid-port.rec
│ │ │ ├── test-auto-embeddings-replication.rec
│ │ │ ├── test-cluster-creation-without-replication.rec
│ │ │ ├── test-generation-of-document-auto-id-in-replication.rec
│ │ │ ├── test-ist-recovery-after-node-crash.rec
│ │ │ ├── test-lock-tables-replicated.rec
│ │ │ ├── test-replication-with-mysqldump.rec
│ │ │ ├── test-replication.rec
│ │ │ └── test-sst-progress.rec
│ │ ├── scripts/
│ │ │ ├── fnames.txt
│ │ │ ├── generate-1mln-records.sh
│ │ │ ├── generate-records-json.sh
│ │ │ ├── generate-records.sh
│ │ │ ├── issue-1335-dump.php
│ │ │ ├── load_names_attr.php
│ │ │ ├── names.txt
│ │ │ └── surnames.txt
│ │ ├── sharding/
│ │ │ ├── cluster/
│ │ │ │ ├── attach-table-while-joining-cluster.rec
│ │ │ │ ├── join-cluster-while-attaching-table.rec
│ │ │ │ ├── join-cluster-while-creating-another.rec
│ │ │ │ ├── join-cluster-while-joining-another.rec
│ │ │ │ ├── join-multiple-clusters-on-same-node.rec
│ │ │ │ ├── multiple-join-single-alter-cluster.rec
│ │ │ │ └── test-drop-sharded-clustering-table.rec
│ │ │ ├── drop/
│ │ │ │ └── test-drop-sharded-table.rec
│ │ │ ├── functional/
│ │ │ │ ├── functional-sharding-and-cluster-negative.rec
│ │ │ │ ├── functional-sharding-positive.rec
│ │ │ │ └── test-dist-table-shards-5000.rec
│ │ │ ├── replication/
│ │ │ │ ├── create-table-1-node-10-shards.rec
│ │ │ │ ├── create-table-2-nodes-4-shards.rec
│ │ │ │ ├── create-table-3-nodes-6-shards.rec
│ │ │ │ ├── create-table-5-nodes-60-shards.rec
│ │ │ │ ├── test-data-manipulation.rec
│ │ │ │ ├── test-distributed-inserts-with-replication.rec
│ │ │ │ └── test-multi-node-sharding-and-replication.rec
│ │ │ └── syntax/
│ │ │ ├── sharding-syntax-negative.rec
│ │ │ └── sharding-syntax-positive.rec
│ │ ├── tables-interaction/
│ │ │ └── test-tables-interaction.rec
│ │ ├── test-configuration/
│ │ │ ├── show-settings.rec
│ │ │ ├── show-threads.rec
│ │ │ ├── test-buddy-max-connections-configuration.rec
│ │ │ ├── test-buddy-requests-not-logged.rec
│ │ │ ├── test-default-config.rec
│ │ │ ├── test-update-with-query-log-min-msec.rec
│ │ │ ├── test-writing-binlog-during-parallel-queries.rec
│ │ │ └── timezone.rec
│ │ └── vector-knn/
│ │ ├── test-knn-id.rec
│ │ ├── test-knn-search-by-doc-id.rec
│ │ ├── test-knn-validation.rec
│ │ └── tets-insert-knn-errors.rec
│ ├── go_prepared_stmt/
│ │ ├── README.md
│ │ ├── go.mod
│ │ ├── go.sum
│ │ └── main.go
│ ├── helpers.inc
│ ├── helpers_rt.inc
│ ├── html_120.txt
│ ├── indextool/
│ │ ├── CMakeLists.txt
│ │ ├── indextool.conf
│ │ └── test.cmake
│ ├── mre.rec
│ ├── mysql_prepared_stmt.md
│ ├── mysql_prepared_stmt.php
│ ├── node_prepared_stmt/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── ql/
│ │ ├── README
│ │ ├── data/
│ │ │ ├── rt.kill
│ │ │ ├── rt.meta
│ │ │ └── rt.ram
│ │ ├── qltest.cs
│ │ ├── qltest.java
│ │ ├── qltest.php
│ │ ├── qltest.py
│ │ ├── qltest.rb
│ │ ├── sphinx.conf
│ │ ├── t.cmd
│ │ └── t2.cmd
│ ├── settings.inc
│ ├── sqlx_prepared_stmt/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ └── main.rs
│ ├── ssl_keys/
│ │ ├── server-cert.pem
│ │ └── server-key.pem
│ ├── stopwords.txt
│ ├── stopwords_121.txt
│ ├── synonyms.txt
│ ├── test-templates.xml
│ ├── test_001/
│ │ └── test.xml
│ ├── test_002/
│ │ └── test.xml
│ ├── test_003/
│ │ └── test.xml
│ ├── test_004/
│ │ └── test.xml
│ ├── test_005/
│ │ └── test.xml
│ ├── test_006/
│ │ └── test.xml
│ ├── test_007/
│ │ └── test.xml
│ ├── test_008/
│ │ └── test.xml
│ ├── test_009/
│ │ └── test.xml
│ ├── test_010/
│ │ └── test.xml
│ ├── test_011/
│ │ └── test.xml
│ ├── test_012/
│ │ └── test.xml
│ ├── test_013/
│ │ └── test.xml
│ ├── test_014/
│ │ └── test.xml
│ ├── test_015/
│ │ ├── stops.txt
│ │ └── test.xml
│ ├── test_016/
│ │ └── test.xml
│ ├── test_017/
│ │ └── test.xml
│ ├── test_018/
│ │ └── test.xml
│ ├── test_019/
│ │ └── test.xml
│ ├── test_020/
│ │ └── test.xml
│ ├── test_021/
│ │ └── test.xml
│ ├── test_022/
│ │ ├── test.xml
│ │ ├── wf_multi.txt
│ │ ├── wf_multi2.txt
│ │ ├── wf_multi3.txt
│ │ └── wf_num.txt
│ ├── test_023/
│ │ └── test.xml
│ ├── test_024/
│ │ └── test.xml
│ ├── test_025/
│ │ ├── s25.txt
│ │ └── test.xml
│ ├── test_026/
│ │ └── test.xml
│ ├── test_027/
│ │ └── test.xml
│ ├── test_028/
│ │ ├── model.aff
│ │ ├── model.dict
│ │ ├── model.spell
│ │ └── test.inc
│ ├── test_029/
│ │ └── test.xml
│ ├── test_030/
│ │ └── test.xml
│ ├── test_031/
│ │ └── test.xml
│ ├── test_032/
│ │ └── test.xml
│ ├── test_033/
│ │ └── test.xml
│ ├── test_034/
│ │ └── test.xml
│ ├── test_035/
│ │ └── test.xml
│ ├── test_036/
│ │ └── test.xml
│ ├── test_037/
│ │ └── test.xml
│ ├── test_038/
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_039/
│ │ └── test.xml
│ ├── test_040/
│ │ └── test.xml
│ ├── test_041/
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_042/
│ │ └── test.xml
│ ├── test_043/
│ │ └── test.xml
│ ├── test_044/
│ │ └── test.xml
│ ├── test_045/
│ │ └── test.xml
│ ├── test_046/
│ │ └── test.xml
│ ├── test_047/
│ │ ├── data1.csv
│ │ ├── data1.xml
│ │ └── test.xml
│ ├── test_048/
│ │ └── test.xml
│ ├── test_049/
│ │ └── test.xml
│ ├── test_050/
│ │ └── test.xml
│ ├── test_051/
│ │ └── test.xml
│ ├── test_052/
│ │ └── test.xml
│ ├── test_053/
│ │ └── test.xml
│ ├── test_054/
│ │ └── test.xml
│ ├── test_055/
│ │ └── test.xml
│ ├── test_056/
│ │ └── test.xml
│ ├── test_057/
│ │ └── test.xml
│ ├── test_058/
│ │ └── test.xml
│ ├── test_059/
│ │ └── test.xml
│ ├── test_060/
│ │ └── test.xml
│ ├── test_061/
│ │ └── test.xml
│ ├── test_062/
│ │ └── test.xml
│ ├── test_063/
│ │ ├── stop_blend.txt
│ │ └── test.xml
│ ├── test_064/
│ │ └── test.xml
│ ├── test_065/
│ │ └── test.xml
│ ├── test_066/
│ │ └── test.xml
│ ├── test_067/
│ │ └── test.xml
│ ├── test_068/
│ │ ├── data1.csv
│ │ ├── data1.tsv
│ │ ├── data1.xml
│ │ ├── data2.csv
│ │ ├── data2.xml
│ │ ├── data3.xml
│ │ ├── data51.xml
│ │ ├── data_embedded.xml
│ │ ├── data_embedded1.xml
│ │ ├── data_embedded2.xml
│ │ ├── data_large.xml
│ │ ├── data_spec.csv
│ │ ├── data_spec.tsv
│ │ ├── test.xml
│ │ └── test_kl.xml
│ ├── test_069/
│ │ └── test.xml
│ ├── test_070/
│ │ └── test.xml
│ ├── test_071/
│ │ └── test.xml
│ ├── test_072/
│ │ └── test.xml
│ ├── test_073/
│ │ └── test.xml
│ ├── test_074/
│ │ └── test.xml
│ ├── test_075/
│ │ └── test.xml
│ ├── test_076/
│ │ └── test.xml
│ ├── test_077/
│ │ └── test.xml
│ ├── test_078/
│ │ └── test.xml
│ ├── test_079/
│ │ └── test.xml
│ ├── test_080/
│ │ └── test.xml
│ ├── test_081/
│ │ ├── test.xml
│ │ ├── words1.txt
│ │ ├── words2.txt
│ │ └── words3.txt
│ ├── test_082/
│ │ ├── test.xml
│ │ ├── words_delta.txt
│ │ └── words_main.txt
│ ├── test_083/
│ │ └── test.xml
│ ├── test_084/
│ │ └── test.xml
│ ├── test_085/
│ │ └── test.xml
│ ├── test_086/
│ │ └── test.xml
│ ├── test_087/
│ │ └── test.xml
│ ├── test_088/
│ │ └── test.xml
│ ├── test_089/
│ │ └── test.xml
│ ├── test_090/
│ │ └── test.xml
│ ├── test_091/
│ │ └── test.xml
│ ├── test_092/
│ │ └── test.xml
│ ├── test_093/
│ │ └── test.xml
│ ├── test_094/
│ │ └── test.xml
│ ├── test_095/
│ │ └── test.xml
│ ├── test_096/
│ │ └── test.xml
│ ├── test_097/
│ │ └── test.xml
│ ├── test_098/
│ │ ├── test.xml
│ │ ├── wf3.txt
│ │ └── wordforms.txt
│ ├── test_099/
│ │ └── test.xml
│ ├── test_100/
│ │ └── test.xml
│ ├── test_101/
│ │ └── test.xml
│ ├── test_102/
│ │ └── test.xml
│ ├── test_103/
│ │ └── test.xml
│ ├── test_104/
│ │ └── test.xml
│ ├── test_105/
│ │ └── test.xml
│ ├── test_106/
│ │ └── test.xml
│ ├── test_107/
│ │ └── test.xml
│ ├── test_108/
│ │ ├── data.xml
│ │ ├── data2.xml
│ │ ├── data3.xml
│ │ └── test.xml
│ ├── test_109/
│ │ └── test.xml
│ ├── test_110/
│ │ └── test.xml
│ ├── test_111/
│ │ └── test.xml
│ ├── test_112/
│ │ └── test.xml
│ ├── test_113/
│ │ └── test.xml
│ ├── test_114/
│ │ └── test.xml
│ ├── test_115/
│ │ ├── test.xml
│ │ └── wf_multi.txt
│ ├── test_116/
│ │ └── test.xml
│ ├── test_117/
│ │ └── test.xml
│ ├── test_118/
│ │ └── test.xml
│ ├── test_119/
│ │ └── test.xml
│ ├── test_120/
│ │ └── test.xml
│ ├── test_121/
│ │ └── test.xml
│ ├── test_122/
│ │ └── test.xml
│ ├── test_123/
│ │ └── test.xml
│ ├── test_124/
│ │ ├── field_124_match.txt
│ │ └── test.xml
│ ├── test_125/
│ │ └── test.xml
│ ├── test_126/
│ │ └── test.xml
│ ├── test_127/
│ │ └── test.xml
│ ├── test_128/
│ │ └── test.xml
│ ├── test_129/
│ │ └── test.xml
│ ├── test_130/
│ │ ├── 512k.xml
│ │ ├── empty.txt
│ │ ├── load_file.txt
│ │ └── test.xml
│ ├── test_131/
│ │ └── test.xml
│ ├── test_132/
│ │ └── test.xml
│ ├── test_133/
│ │ └── test.xml
│ ├── test_134/
│ │ └── test.xml
│ ├── test_135/
│ │ └── test.xml
│ ├── test_136/
│ │ ├── exceptions.txt
│ │ └── test.xml
│ ├── test_137/
│ │ └── test.xml
│ ├── test_138/
│ │ └── test.xml
│ ├── test_139/
│ │ └── test.xml
│ ├── test_140/
│ │ └── test.xml
│ ├── test_141/
│ │ └── test.xml
│ ├── test_142/
│ │ └── test.xml
│ ├── test_143/
│ │ ├── test.xml
│ │ ├── wordforms.txt
│ │ └── wordforms_multi_dest.txt
│ ├── test_144/
│ │ └── test.xml
│ ├── test_145/
│ │ ├── stop0.txt
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_146/
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_147/
│ │ └── test.xml
│ ├── test_148/
│ │ ├── doc1.txt
│ │ ├── doc2.txt
│ │ ├── doc3.txt
│ │ └── test.xml
│ ├── test_149/
│ │ └── test.xml
│ ├── test_150/
│ │ └── test.xml
│ ├── test_151/
│ │ └── test.xml
│ ├── test_152/
│ │ └── test.xml
│ ├── test_153/
│ │ └── test.xml
│ ├── test_154/
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_155/
│ │ └── test.xml
│ ├── test_156/
│ │ └── test.xml
│ ├── test_157/
│ │ └── test.xml
│ ├── test_158/
│ │ ├── test.xml
│ │ └── wf158.txt
│ ├── test_159/
│ │ └── test.xml
│ ├── test_160/
│ │ ├── multiwordorms.txt
│ │ └── test.xml
│ ├── test_161/
│ │ ├── data1.xml
│ │ └── test.xml
│ ├── test_162/
│ │ └── test.xml
│ ├── test_163/
│ │ └── test.xml
│ ├── test_164/
│ │ └── test.xml
│ ├── test_165/
│ │ ├── synonyms.txt
│ │ ├── synonyms2.txt
│ │ ├── synonyms3.txt
│ │ ├── synonyms4.txt
│ │ └── test.xml
│ ├── test_166/
│ │ └── test.xml
│ ├── test_167/
│ │ └── test.xml
│ ├── test_168/
│ │ ├── test.xml
│ │ ├── text1.txt
│ │ └── text2.txt
│ ├── test_169/
│ │ └── test.xml
│ ├── test_170/
│ │ └── test.xml
│ ├── test_171/
│ │ ├── data_mm.tsv
│ │ └── test.xml
│ ├── test_172/
│ │ └── test.xml
│ ├── test_173/
│ │ └── test.xml
│ ├── test_174/
│ │ ├── readme.txt
│ │ └── test.xml
│ ├── test_175/
│ │ ├── hits1.xml
│ │ └── test.xml
│ ├── test_176/
│ │ └── test.xml
│ ├── test_177/
│ │ └── test.xml
│ ├── test_178/
│ │ └── test.xml
│ ├── test_179/
│ │ └── test.xml
│ ├── test_180/
│ │ └── test.xml
│ ├── test_181/
│ │ └── test.xml
│ ├── test_182/
│ │ └── test.xml
│ ├── test_183/
│ │ ├── data_embedded.xml
│ │ └── test.xml
│ ├── test_184/
│ │ ├── data_ext.xml
│ │ ├── data_fields.xml
│ │ ├── data_int.xml
│ │ └── test.xml
│ ├── test_185/
│ │ └── test.xml
│ ├── test_186/
│ │ └── test.xml
│ ├── test_187/
│ │ └── test.xml
│ ├── test_188/
│ │ └── test.xml
│ ├── test_189/
│ │ └── test.xml
│ ├── test_190/
│ │ ├── refdata/
│ │ │ ├── agent1/
│ │ │ │ ├── allfiles/
│ │ │ │ │ ├── text1.txt
│ │ │ │ │ ├── text2.txt
│ │ │ │ │ ├── text3.txt
│ │ │ │ │ ├── text4.txt
│ │ │ │ │ ├── text5.txt
│ │ │ │ │ └── text6.txt
│ │ │ │ └── scatteredfiles/
│ │ │ │ ├── text3.txt
│ │ │ │ └── text4.txt
│ │ │ ├── agent2/
│ │ │ │ ├── allfiles/
│ │ │ │ │ ├── text1.txt
│ │ │ │ │ ├── text2.txt
│ │ │ │ │ ├── text3.txt
│ │ │ │ │ ├── text4.txt
│ │ │ │ │ ├── text5.txt
│ │ │ │ │ └── text6.txt
│ │ │ │ └── scatteredfiles/
│ │ │ │ ├── text5.txt
│ │ │ │ └── text6.txt
│ │ │ └── master/
│ │ │ ├── allfiles/
│ │ │ │ ├── text1.txt
│ │ │ │ ├── text2.txt
│ │ │ │ ├── text3.txt
│ │ │ │ ├── text4.txt
│ │ │ │ ├── text5.txt
│ │ │ │ └── text6.txt
│ │ │ └── scatteredfiles/
│ │ │ ├── text1.txt
│ │ │ └── text2.txt
│ │ └── test.xml
│ ├── test_191/
│ │ └── test.xml
│ ├── test_192/
│ │ ├── test.xml
│ │ ├── wordforms-12.txt
│ │ ├── wordforms-wb.txt
│ │ └── wordforms.txt
│ ├── test_193/
│ │ ├── stopwords.txt
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_194/
│ │ ├── file1.txt
│ │ ├── file2.txt
│ │ ├── file3.txt
│ │ └── test.xml
│ ├── test_195/
│ │ └── test.xml
│ ├── test_196/
│ │ ├── ex21.txt
│ │ ├── test.xml
│ │ ├── wf1.txt
│ │ ├── wf2.txt
│ │ ├── wf21.txt
│ │ ├── wf_pre.txt
│ │ ├── wordforms.txt
│ │ ├── words1.txt
│ │ └── words2.txt
│ ├── test_197/
│ │ └── test.xml
│ ├── test_198/
│ │ └── test.xml
│ ├── test_199/
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_200/
│ │ └── test.xml
│ ├── test_201/
│ │ └── test.xml
│ ├── test_202/
│ │ └── test.xml
│ ├── test_203/
│ │ └── test.xml
│ ├── test_204/
│ │ └── test.xml
│ ├── test_205/
│ │ └── test.xml
│ ├── test_206/
│ │ └── test.xml
│ ├── test_207/
│ │ ├── test.xml
│ │ ├── wordforms.txt
│ │ ├── wordforms2.txt
│ │ └── wordforms3.txt
│ ├── test_208/
│ │ └── test.xml
│ ├── test_209/
│ │ └── test.xml
│ ├── test_210/
│ │ ├── stopwords.txt
│ │ └── test.xml
│ ├── test_211/
│ │ └── test.xml
│ ├── test_212/
│ │ └── test.xml
│ ├── test_213/
│ │ └── test.xml
│ ├── test_214/
│ │ └── test.xml
│ ├── test_215/
│ │ └── test.xml
│ ├── test_216/
│ │ └── test.xml
│ ├── test_217/
│ │ └── test.xml
│ ├── test_218/
│ │ ├── data.xml
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_219/
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_220/
│ │ └── test.xml
│ ├── test_221/
│ │ └── test.xml
│ ├── test_222/
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_223/
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_224/
│ │ └── test.xml
│ ├── test_225/
│ │ └── test.xml
│ ├── test_226/
│ │ └── test.xml
│ ├── test_227/
│ │ └── test.xml
│ ├── test_228/
│ │ └── test.xml
│ ├── test_229/
│ │ └── test.xml
│ ├── test_230/
│ │ └── test.xml
│ ├── test_231/
│ │ └── test.xml
│ ├── test_232/
│ │ └── test.xml
│ ├── test_233/
│ │ ├── data/
│ │ │ ├── reload.spa
│ │ │ ├── reload.spb
│ │ │ ├── reload.spd
│ │ │ ├── reload.spe
│ │ │ ├── reload.sph
│ │ │ ├── reload.spi
│ │ │ ├── reload.spm
│ │ │ ├── reload.spp
│ │ │ ├── reload.spt
│ │ │ ├── test.spa
│ │ │ ├── test.spb
│ │ │ ├── test.spd
│ │ │ ├── test.spe
│ │ │ ├── test.sph
│ │ │ ├── test.spi
│ │ │ ├── test.spm
│ │ │ ├── test.spp
│ │ │ └── test.spt
│ │ ├── reload_path/
│ │ │ └── .gitignore
│ │ └── test.xml
│ ├── test_234/
│ │ └── test.xml
│ ├── test_235/
│ │ └── test.xml
│ ├── test_236/
│ │ ├── data1.csv
│ │ ├── data1.tsv
│ │ ├── data1.xml
│ │ ├── data2.xml
│ │ ├── data3.xml
│ │ ├── data4.xml
│ │ └── test.xml
│ ├── test_237/
│ │ └── test.xml
│ ├── test_238/
│ │ └── test.xml
│ ├── test_239/
│ │ └── test.xml
│ ├── test_240/
│ │ └── test.xml
│ ├── test_241/
│ │ └── test.xml
│ ├── test_242/
│ │ └── test.xml
│ ├── test_243/
│ │ └── test.xml
│ ├── test_244/
│ │ └── test.xml
│ ├── test_245/
│ │ ├── data.xml
│ │ ├── data_rev.xml
│ │ └── test.xml
│ ├── test_246/
│ │ └── test.xml
│ ├── test_247/
│ │ └── test.xml
│ ├── test_248/
│ │ └── test.xml
│ ├── test_249/
│ │ └── test.xml
│ ├── test_250/
│ │ ├── data/
│ │ │ ├── plain2.spa
│ │ │ ├── plain2.spd
│ │ │ ├── plain2.spe
│ │ │ ├── plain2.sph
│ │ │ ├── plain2.spi
│ │ │ ├── plain2.spm
│ │ │ ├── plain2.spp
│ │ │ └── plain2.spt
│ │ └── test.xml
│ ├── test_251/
│ │ └── test.xml
│ ├── test_252/
│ │ └── test.xml
│ ├── test_253/
│ │ └── test.xml
│ ├── test_254/
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_255/
│ │ ├── test.xml
│ │ └── wf1.txt
│ ├── test_256/
│ │ └── test.xml
│ ├── test_257/
│ │ ├── data1.csv
│ │ ├── data1.tsv
│ │ ├── data1.xml
│ │ ├── data2.csv
│ │ ├── data3.csv
│ │ └── test.xml
│ ├── test_258/
│ │ └── test.xml
│ ├── test_259/
│ │ └── test.xml
│ ├── test_260/
│ │ └── test.xml
│ ├── test_261/
│ │ └── test.xml
│ ├── test_262/
│ │ └── test.xml
│ ├── test_263/
│ │ ├── test.csv
│ │ └── test.xml
│ ├── test_264/
│ │ └── test.xml
│ ├── test_265/
│ │ └── test.xml
│ ├── test_266/
│ │ └── test.xml
│ ├── test_267/
│ │ └── test.xml
│ ├── test_268/
│ │ └── test.xml
│ ├── test_269/
│ │ └── test.xml
│ ├── test_270/
│ │ ├── data1.tsv
│ │ └── test.xml
│ ├── test_271/
│ │ └── test.xml
│ ├── test_272/
│ │ └── test.xml
│ ├── test_273/
│ │ └── test.xml
│ ├── test_274/
│ │ └── test.xml
│ ├── test_275/
│ │ └── test.xml
│ ├── test_276/
│ │ └── test.xml
│ ├── test_277/
│ │ └── test.xml
│ ├── test_278/
│ │ └── test.xml
│ ├── test_279/
│ │ └── test.xml
│ ├── test_280/
│ │ └── test.xml
│ ├── test_281/
│ │ └── test.xml
│ ├── test_282/
│ │ └── test.xml
│ ├── test_283/
│ │ └── test.xml
│ ├── test_284/
│ │ └── test.xml
│ ├── test_285/
│ │ └── test.xml
│ ├── test_286/
│ │ └── test.xml
│ ├── test_287/
│ │ └── test.xml
│ ├── test_288/
│ │ └── test.xml
│ ├── test_289/
│ │ └── test.xml
│ ├── test_290/
│ │ └── test.xml
│ ├── test_291/
│ │ └── test.xml
│ ├── test_292/
│ │ └── test.xml
│ ├── test_293/
│ │ └── test.xml
│ ├── test_294/
│ │ └── test.xml
│ ├── test_295/
│ │ └── test.xml
│ ├── test_296/
│ │ └── test.xml
│ ├── test_297/
│ │ └── test.xml
│ ├── test_298/
│ │ └── test.xml
│ ├── test_299/
│ │ └── test.xml
│ ├── test_300/
│ │ ├── bug.py
│ │ └── test.xml
│ ├── test_301/
│ │ └── test.xml
│ ├── test_302/
│ │ └── test.xml
│ ├── test_303/
│ │ └── test.xml
│ ├── test_304/
│ │ └── test.xml
│ ├── test_305/
│ │ └── test.xml
│ ├── test_306/
│ │ └── test.xml
│ ├── test_307/
│ │ └── test.xml
│ ├── test_308/
│ │ └── test.xml
│ ├── test_309/
│ │ ├── jieba_user_dict.txt
│ │ └── test.xml
│ ├── test_310/
│ │ ├── data.xml
│ │ ├── jieba_user_dict.txt
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_311/
│ │ ├── data.xml
│ │ └── test.xml
│ ├── test_312/
│ │ └── test.xml
│ ├── test_313/
│ │ └── test.xml
│ ├── test_314/
│ │ └── test.xml
│ ├── test_315/
│ │ └── test.xml
│ ├── test_316/
│ │ └── test.xml
│ ├── test_317/
│ │ └── test.xml
│ ├── test_318/
│ │ └── test.xml
│ ├── test_319/
│ │ └── test.xml
│ ├── test_320/
│ │ └── test.xml
│ ├── test_321/
│ │ └── test.xml
│ ├── test_322/
│ │ └── test.xml
│ ├── test_323/
│ │ └── test.xml
│ ├── test_324/
│ │ └── test.xml
│ ├── test_325/
│ │ └── test.xml
│ ├── test_326/
│ │ └── test.xml
│ ├── test_327/
│ │ └── test.xml
│ ├── test_328/
│ │ └── test.xml
│ ├── test_329/
│ │ └── test.xml
│ ├── test_330/
│ │ └── test.xml
│ ├── test_331/
│ │ └── test.xml
│ ├── test_332/
│ │ └── test.xml
│ ├── test_333/
│ │ └── test.xml
│ ├── test_334/
│ │ ├── exc.txt
│ │ └── test.xml
│ ├── test_335/
│ │ └── test.xml
│ ├── test_336/
│ │ └── test.xml
│ ├── test_337/
│ │ └── test.xml
│ ├── test_338/
│ │ └── test.xml
│ ├── test_339/
│ │ └── test.xml
│ ├── test_340/
│ │ └── test.xml
│ ├── test_341/
│ │ └── test.xml
│ ├── test_342/
│ │ └── test.xml
│ ├── test_343/
│ │ └── test.xml
│ ├── test_344/
│ │ └── test.xml
│ ├── test_345/
│ │ └── test.xml
│ ├── test_346/
│ │ └── test.xml
│ ├── test_347/
│ │ └── test.xml
│ ├── test_348/
│ │ └── test.xml
│ ├── test_349/
│ │ └── test.xml
│ ├── test_350/
│ │ └── test.xml
│ ├── test_351/
│ │ └── test.xml
│ ├── test_352/
│ │ └── test.xml
│ ├── test_353/
│ │ └── test.xml
│ ├── test_354/
│ │ └── test.xml
│ ├── test_355/
│ │ └── test.xml
│ ├── test_356/
│ │ └── test.xml
│ ├── test_357/
│ │ └── test.xml
│ ├── test_358/
│ │ └── test.xml
│ ├── test_359/
│ │ └── test.xml
│ ├── test_360/
│ │ ├── stops.txt
│ │ └── test.xml
│ ├── test_361/
│ │ └── test.xml
│ ├── test_362/
│ │ └── test.xml
│ ├── test_363/
│ │ └── test.xml
│ ├── test_364/
│ │ └── test.xml
│ ├── test_365/
│ │ └── test.xml
│ ├── test_366/
│ │ └── test.xml
│ ├── test_367/
│ │ └── test.xml
│ ├── test_368/
│ │ └── test.xml
│ ├── test_369/
│ │ └── test.xml
│ ├── test_370/
│ │ └── test.xml
│ ├── test_371/
│ │ └── test.xml
│ ├── test_372/
│ │ └── test.xml
│ ├── test_373/
│ │ └── test.xml
│ ├── test_374/
│ │ └── test.xml
│ ├── test_375/
│ │ └── test.xml
│ ├── test_376/
│ │ └── test.xml
│ ├── test_377/
│ │ └── test.xml
│ ├── test_378/
│ │ └── test.xml
│ ├── test_379/
│ │ └── test.xml
│ ├── test_380/
│ │ └── test.xml
│ ├── test_381/
│ │ └── test.xml
│ ├── test_382/
│ │ └── test.xml
│ ├── test_383/
│ │ └── test.xml
│ ├── test_384/
│ │ └── test.xml
│ ├── test_385/
│ │ └── test.xml
│ ├── test_386/
│ │ └── test.xml
│ ├── test_387/
│ │ └── test.xml
│ ├── test_388/
│ │ └── test.xml
│ ├── test_389/
│ │ └── test.xml
│ ├── test_390/
│ │ └── test.xml
│ ├── test_391/
│ │ └── test.xml
│ ├── test_392/
│ │ └── test.xml
│ ├── test_393/
│ │ └── test.xml
│ ├── test_394/
│ │ └── test.xml
│ ├── test_395/
│ │ └── test.xml
│ ├── test_396/
│ │ └── test.xml
│ ├── test_397/
│ │ ├── stops.txt
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_398/
│ │ └── test.xml
│ ├── test_399/
│ │ └── test.xml
│ ├── test_400/
│ │ └── test.xml
│ ├── test_401/
│ │ ├── data.xml
│ │ └── test.xml
│ ├── test_402/
│ │ └── test.xml
│ ├── test_403/
│ │ ├── exc1.txt
│ │ ├── exceptions.txt
│ │ ├── stops.txt
│ │ ├── stops1.txt
│ │ ├── test.xml
│ │ ├── wordforms.txt
│ │ └── wordforms2.txt
│ ├── test_404/
│ │ └── test.xml
│ ├── test_405/
│ │ ├── exc.txt
│ │ ├── stop.txt
│ │ ├── test.xml
│ │ ├── wordforms.txt
│ │ └── wordforms1.txt
│ ├── test_406/
│ │ ├── data/
│ │ │ ├── index.0.spa
│ │ │ ├── index.0.spd
│ │ │ ├── index.0.spds
│ │ │ ├── index.0.spe
│ │ │ ├── index.0.sph
│ │ │ ├── index.0.sphi
│ │ │ ├── index.0.spi
│ │ │ ├── index.0.spm
│ │ │ ├── index.0.spp
│ │ │ ├── index.0.spt
│ │ │ ├── index.meta
│ │ │ ├── index.ram
│ │ │ ├── pq.meta
│ │ │ ├── rel320/
│ │ │ │ ├── idx320.meta
│ │ │ │ └── idx320.ram
│ │ │ └── rt67/
│ │ │ ├── hitless_words_chunk0_0.txt
│ │ │ ├── rt67.0.spa
│ │ │ ├── rt67.0.spd
│ │ │ ├── rt67.0.spds
│ │ │ ├── rt67.0.spe
│ │ │ ├── rt67.0.sph
│ │ │ ├── rt67.0.sphi
│ │ │ ├── rt67.0.spi
│ │ │ ├── rt67.0.spidx
│ │ │ ├── rt67.0.spm
│ │ │ ├── rt67.0.spp
│ │ │ ├── rt67.0.spt
│ │ │ ├── rt67.meta
│ │ │ └── rt67.settings
│ │ └── test.xml
│ ├── test_407/
│ │ └── test.xml
│ ├── test_408/
│ │ ├── test.xml
│ │ ├── word_a.txt
│ │ ├── words1.txt
│ │ ├── words2.txt
│ │ └── words3.txt
│ ├── test_409/
│ │ ├── ex1.txt
│ │ ├── hw1.txt
│ │ ├── hw3.txt
│ │ ├── stop1.txt
│ │ ├── stop2.txt
│ │ ├── test.xml
│ │ ├── wf1.txt
│ │ └── wf3.txt
│ ├── test_410/
│ │ └── test.xml
│ ├── test_411/
│ │ └── test.xml
│ ├── test_412/
│ │ └── test.xml
│ ├── test_413/
│ │ └── test.xml
│ ├── test_414/
│ │ └── test.xml
│ ├── test_415/
│ │ └── test.xml
│ ├── test_416/
│ │ └── test.xml
│ ├── test_417/
│ │ └── test.xml
│ ├── test_418/
│ │ ├── data1.xml
│ │ └── test.xml
│ ├── test_419/
│ │ └── test.xml
│ ├── test_420/
│ │ └── test.xml
│ ├── test_421/
│ │ └── test.xml
│ ├── test_422/
│ │ └── test.xml
│ ├── test_430/
│ │ └── test.xml
│ ├── test_431/
│ │ └── test.xml
│ ├── test_432/
│ │ ├── data1.csv
│ │ ├── data1.xml
│ │ └── test.xml
│ ├── test_433/
│ │ └── test.xml
│ ├── test_434/
│ │ └── test.xml
│ ├── test_435/
│ │ └── test.xml
│ ├── test_436/
│ │ └── test.xml
│ ├── test_437/
│ │ └── test.xml
│ ├── test_438/
│ │ └── test.xml
│ ├── test_439/
│ │ └── test.xml
│ ├── test_440/
│ │ └── test.xml
│ ├── test_441/
│ │ └── test.xml
│ ├── test_442/
│ │ └── test.xml
│ ├── test_443/
│ │ └── test.xml
│ ├── test_444/
│ │ └── test.xml
│ ├── test_445/
│ │ └── test.xml
│ ├── test_446/
│ │ └── test.xml
│ ├── test_447/
│ │ └── test.xml
│ ├── test_448/
│ │ └── test.xml
│ ├── test_449/
│ │ └── test.xml
│ ├── test_450/
│ │ └── test.xml
│ ├── test_451/
│ │ └── test.xml
│ ├── test_452/
│ │ └── test.xml
│ ├── test_453/
│ │ └── test.xml
│ ├── test_454/
│ │ └── test.xml
│ ├── test_455/
│ │ └── test.xml
│ ├── test_456/
│ │ └── test.xml
│ ├── test_457/
│ │ └── test.xml
│ ├── test_458/
│ │ └── test.xml
│ ├── test_459/
│ │ └── test.xml
│ ├── test_460/
│ │ └── test.xml
│ ├── test_461/
│ │ └── test.xml
│ ├── test_462/
│ │ └── test.xml
│ ├── test_463/
│ │ └── test.xml
│ ├── test_464/
│ │ ├── exceptions.txt
│ │ ├── stops.txt
│ │ ├── test.xml
│ │ └── wordforms.txt
│ ├── test_465/
│ │ └── test.xml
│ ├── test_466/
│ │ └── test.xml
│ ├── test_467/
│ │ └── test.xml
│ ├── test_468/
│ │ └── test.xml
│ ├── test_469/
│ │ └── test.xml
│ ├── test_470/
│ │ └── test.xml
│ ├── test_471/
│ │ ├── global.idf
│ │ ├── global_idf_src.txt
│ │ └── test.xml
│ ├── test_472/
│ │ ├── global.idf
│ │ ├── global2.idf
│ │ ├── global_idf2_src.txt
│ │ ├── global_idf_src.txt
│ │ └── test.xml
│ ├── test_473/
│ │ └── test.xml
│ ├── test_474/
│ │ └── test.xml
│ ├── test_475/
│ │ └── test.xml
│ ├── test_476/
│ │ └── test.xml
│ ├── test_477/
│ │ └── test.xml
│ ├── test_478/
│ │ └── test.xml
│ ├── test_479/
│ │ └── test.xml
│ ├── test_480/
│ │ ├── dummy.txt
│ │ ├── dummy_empty.txt
│ │ ├── exc1.txt
│ │ ├── hitless1.txt
│ │ ├── stops.txt
│ │ ├── stops_line.txt
│ │ ├── stops_mixed.txt
│ │ ├── test.xml
│ │ ├── wordforms.txt
│ │ └── wordforms2.txt
│ ├── test_481/
│ │ └── test.xml
│ ├── test_482/
│ │ └── test.xml
│ ├── test_483/
│ │ ├── data1.csv
│ │ ├── data2.csv
│ │ └── test.xml
│ ├── test_484/
│ │ └── test.xml
│ ├── test_485/
│ │ └── test.xml
│ ├── test_486/
│ │ └── test.xml
│ ├── test_487/
│ │ └── test.xml
│ ├── test_488/
│ │ └── test.xml
│ ├── test_columnar.conf
│ ├── test_icu.conf
│ ├── test_jieba.conf
│ ├── test_odbc.conf
│ ├── test_re.conf
│ ├── ubertest.php
│ ├── ubertest.php.in
│ ├── valgrind.supp
│ └── wordforms.txt
├── translator.config.yaml
├── translator.models.yaml
├── translator.role.tpl
└── valgrind
================================================
FILE CONTENTS
================================================
================================================
FILE: .clt/checkers/contains
================================================
#!/usr/bin/env bash
# Check if two arguments are provided
if [ $# -ne 2 ]; then
echo "Usage: $0 <patterns_file> <target_file>"
exit 1
fi
REC_FILE=$1
REP_FILE=$2
# Check if files exist
if [ ! -f "$REC_FILE" ]; then
echo "Error: Patterns file '$REC_FILE' does not exist"
exit 1
fi
if [ ! -f "$REP_FILE" ]; then
echo "Error: Target file '$REP_FILE' does not exist"
exit 1
fi
# Read the target file content once
REP_CONTENT=$(cat "$REP_FILE")
# Flag to track if all patterns are found
all_found=true
# Process each line in the patterns file
while IFS= read -r line; do
# Skip empty lines
if [ -z "$line" ]; then
continue
fi
# Split the line into multiple patterns (separated by spaces)
read -ra patterns <<< "$line"
# For each line in the patterns file, check all patterns in that line
line_match=true
for pattern in "${patterns[@]}"; do
if ! echo "$REP_CONTENT" | grep -q "$pattern"; then
echo "Pattern not found: '$pattern'"
line_match=false
all_found=false
fi
done
if [ "$line_match" = false ]; then
echo "Not all patterns from line '$line' were found"
fi
done < "$REC_FILE"
# Exit with appropriate status
if [ "$all_found" = true ]; then
echo "All patterns found successfully"
exit 0
else
echo "Some patterns were not found"
exit 1
fi
================================================
FILE: .clt/checkers/ignore
================================================
#!/usr/bin/env bash
# Check if two arguments are provided
if [ $# -ne 2 ]; then
echo "Usage: $0 <patterns_file> <target_file>"
exit 1
fi
exit 0
================================================
FILE: .clt/checkers/something
================================================
#!/usr/bin/env bash
# Check if two arguments are provided
if [ $# -ne 2 ]; then
echo "Usage: $0 <patterns_file> <target_file>"
exit 1
fi
REC_FILE=$1
REP_FILE=$2
# Check if files exist
if [ ! -f "$REC_FILE" ]; then
echo "Error: Patterns file '$REC_FILE' does not exist"
exit 1
fi
if [ ! -f "$REP_FILE" ]; then
echo "Error: Target file '$REP_FILE' does not exist"
exit 1
fi
# Read the target file content once
REP_CONTENT=$(cat "$REP_FILE" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]\+/ /g')
if [ -n "$REP_CONTENT" ]; then
echo 'Output is not empty'
exit 0
else
echo 'Output is empty'
exit 1
fi
================================================
FILE: .clt/patterns
================================================
LLDATETIME [A-Za-z]{3}\s+[0-9]{1,2}\s[0-9]{2}:[0-9]{2}
LLFILESIZE \s*[0-9]+(K|B|G)?
COMMITDATE [a-z0-9]{7,9}@[0-9]{6,8}
VERSION v?([0-9]+\.[0-9]+\.[0-9]+|x\.x\.x)([\-\+\s][0-9a-zA-Z\-\.@]+)?(\sdev)?
TABLE_LINE \+[-]+\+([-]+\+)+
TABLE_ROW \|\s*(.*?)\s*(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?(\|\s*(.*?)\s*)?\|
================================================
FILE: .cursorignore
================================================
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
build*
.translation-cache*
manual/chinese
manual/russian
translator
cache
================================================
FILE: .editorconfig
================================================
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.yml]
indent_style = space
indent_size = 2
trim_trailing_whitespace = false
[*.yaml]
indent_style = space
indent_size = 2
trim_trailing_whitespace = false
================================================
FILE: .github/FUNDING.yml
================================================
custom: ["https://www.paypal.me/manticoresearch"]
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐞 Bug Report
description: Submit a bug report for Manticore Search
labels: bug
body:
- type: markdown
attributes:
value: |
Thank you for submitting a bug report. We appreciate your effort to provide detailed information. Please answer the following questions to help us identify and fix the bug. Thank you!
- type: textarea
id: proposal
attributes:
label: "Bug Description:"
description: >
Describe the bug in detail. Include a [Minimal Reproducible Example](https://en.wikipedia.org/wiki/Minimal_reproducible_example) (MRE) if possible. Place any code blocks within triple backticks:
value: |
```bash
# Example code block; replace with your code if applicable
```
validations:
required: true
- type: input
id: version
attributes:
label: "Manticore Search Version:"
description: >
Provide the version of Manticore Search you are using. Execute `searchd -v` in the command line to find this information.
validations:
required: true
- type: input
id: os
attributes:
label: "Operating System Version:"
description: >
Specify the version of your operating system.
validations:
required: true
- type: dropdown
id: dev
attributes:
label: "Have you tried the latest development version?"
multiple: false
options:
- "Yes"
- "No"
- type: markdown
attributes:
value: "## Thank you for completing the form! For an expedited solution, consider our [professional services](https://manticoresearch.com/services/)."
- type: textarea
id: checklist
attributes:
label: "Internal Checklist:"
description: >
**For Manticore Team Use Only** — Please do not edit this section. This checklist will be completed by the Manticore team as they manage the issue.
value: |
<sup>To be completed by the assignee. Check off tasks that have been completed or are not applicable.</sup>
<details>
- [ ] Implementation completed
- [ ] Tests developed
- [ ] Documentation updated
- [ ] Documentation reviewed
</details>
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
contact_links:
- name: "Manticore Search quick start guide"
about: "Get help with setting up and using Manticore Search."
url: "https://manual.manticoresearch.com/Quick_start_guide"
- name: "Manticore Search roadmap"
about: "View the development roadmap and upcoming features of Manticore Search."
url: "https://roadmap.mnt.cr/"
- name: "Manticore Team's professional services"
about: "Looking for a faster solution to your issues with Manticore? Manticore Team can help."
url: "https://manticoresearch.com/services"
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: 🌟 Feature Request
description: Submit a proposal for a new Manticore Search feature or enhancement
body:
- type: textarea
id: proposal
attributes:
label: "Proposal:"
description: >
Please describe your proposal in detail.
Include why you believe this feature should be added to Manticore Search and what use cases it supports.
If applicable, add any examples or code snippets inside triple backticks to clarify your proposal.
validations:
required: true
- type: markdown
attributes:
value: "## Thank you for completing the form! If you are interested in sponsoring the development of this feature, consider our [professional services](https://manticoresearch.com/services/)."
- type: textarea
id: checklist
attributes:
label: "Checklist:"
description: >
**For Manticore Team Use Only** — Please do not edit this section. This checklist will be completed by the Manticore team as they manage the issue.
value: |
<sup>To be completed by the assignee. Check off tasks that have been completed or are not applicable.</sup>
<details>
- [ ] Implementation completed
- [ ] Tests developed
- [ ] Documentation updated
- [ ] Documentation reviewed
- [x] OpenAPI YAML updated and issue created to rebuild clients
</details>
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/support_request.yml
================================================
name: ❓ Support Request
description: Need help with Manticore Search? Submit your questions here!
body:
- type: checkboxes
id: dev
attributes:
label: "Confirmation Checklist:"
description: >
Before submitting your request, we ask that you confirm the following items to ensure that you receive the most effective support:
options:
- label: "You have searched for an answer in [the manual](https://manual.manticoresearch.com/)."
- label: "You have considered using [the forum](https://forum.manticoresearch.com/) for general discussions, which can be more suitable for non-urgent or broad queries."
- label: "You are aware of our community support channels on [Slack](https://slack.manticoresearch.com/), [Telegram EN](https://t.me/manticoresearch_en), and [Telegram RU](https://t.me/manticore_chat), where you can interact with other users and our developers."
- label: "You know about Manticore Team's [professional services](https://manticoresearch.com/services). Engaging with our experts through a support subscription can significantly accelerate resolution times and provide tailored solutions to your specific needs."
validations:
required: true
- type: textarea
id: question
attributes:
label: "Your question:"
description: >
Please provide detailed information about your question to ensure prompt and accurate help!
validations:
required: true
- type: markdown
attributes:
value: "## Thank you for completing the form! If you need immediate, dedicated support or a long-term support subscription, consider using our [professional services](https://manticoresearch.com/services)."
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--
Before submitting a pull request, please ensure you've read the Contributing guide located at CONTRIBUTING.md in the root directory.
-->
**Type of Change (select one):**
- Bug fix
- New feature
- Documentation update
**Description of the Change:**
**Related Issue (provide the link):**
================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 3
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels:
- "waiting for reply"
- "waiting"
# Issues with these labels will never be considered stale
#exemptLabels:
# - binlog
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions. Feel free to re-open the issue in case it becomes actual.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
limitPerRun: 1
# Limit to only `issues` or `pulls`
#only: issues
================================================
FILE: .github/workflows/build_template.yml
================================================
name: Build Template
on:
workflow_call:
inputs:
arch:
required: false
type: string
default: x86_64
DISTR:
required: false
type: string
default: jammy
CTEST_CMAKE_GENERATOR:
required: false
type: string
default: Ninja
CTEST_CONFIGURATION_TYPE:
required: false
type: string
default: RelWithDebInfo
WITH_COVERAGE:
required: false
type: number
default: 0
UNITY_BUILD:
required: false
type: number
default: 1
version:
required: false
type: string
default: ""
build_tag:
required: false
type: string
default: ""
cmake_command:
required: false
type: string
default: "ctest -VV -S misc/ctest/gltest.cmake --no-compress-output"
cache_key:
required: false
type: string
default: build_linux_x86_64
boost_url_key:
required: false
type: string
default: boost_nov22
sysroot_url_key:
required: false
type: string
default: roots_nov22
artifact_list:
required: false
type: string
default: "build/xml build/CMakeFiles/CMake*.log build/api/libsphinxclient/testcli build/src/indexer build/src/indextool build/src/searchd build/src/tests build/src/gtests/gmanticoretest build/config/*.c build/config/*.h build/**/*.cxx build/**/*.gcno"
artifact_name:
required: false
type: string
HOMEBREW_PREFIX:
required: false
type: string
default:
PACK_GALERA:
required: false
type: number
default: 0
COLUMNAR_LOCATOR:
required: false
type: string
default: ""
jobs:
build:
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
timeout-minutes: 30
container:
image: manticoresearch/external_toolchain:vcpkg331_20260310
env:
CACHEB: "../cache"
DIAGNOSTIC: 1
PACK_ICUDATA: 0
NO_TESTS: 1
DISTR: ${{ inputs.DISTR }}
boost: ${{ inputs.boost_url_key }}
sysroot: ${{ inputs.sysroot_url_key }}
arch: ${{ inputs.arch }}
CTEST_CMAKE_GENERATOR: ${{ inputs.CTEST_CMAKE_GENERATOR }}
CTEST_CONFIGURATION_TYPE: ${{ inputs.CTEST_CONFIGURATION_TYPE }}
WITH_COVERAGE: ${{ inputs.WITH_COVERAGE }}
UNITY_BUILD: ${{ inputs.UNITY_BUILD }}
SYSROOT_URL: https://repo.manticoresearch.com/repository/sysroots
HOMEBREW_PREFIX: ${{ inputs.HOMEBREW_PREFIX }}
PACK_GALERA: ${{ inputs.PACK_GALERA }}
COLUMNAR_LOCATOR: ${{ inputs.COLUMNAR_LOCATOR }}
BUILD_TAG: ${{ inputs.build_tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
set-safe-directory: true
- name: Patch version
if: inputs.version != ''
run: |
sed -i "s/0\.0\.0/${{ inputs.version }}/g" src/sphinxversion.h.in
cat src/sphinxversion.h.in
- name: Initialization
run: | # without adding the safe.directory cmake fails to do git log -1 --date=short --format=%cd
bash /sysroot/root/entry_point.sh
git config --global --add safe.directory /__w/manticoresearch/manticoresearch
git config --global core.abbrev 9
- name: Set output artifact name
id: artifact_name
run: |
USER_INPUT=${{ inputs.artifact_name }}
echo "value=${USER_INPUT:-"build_${{ inputs.DISTR }}_${{ inputs.CTEST_CONFIGURATION_TYPE }}_${{ inputs.arch }}"}" >> "$GITHUB_OUTPUT"
- name: Check out cache before building
uses: actions/cache@v4
with:
path: cache
enableCrossOsArchive: true
key: ${{ inputs.cache_key }}
- name: 🚀 Build
run: |
${{ inputs.cmake_command }}
- name: Upload build artifacts
if: success()
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: ${{ steps.artifact_name.outputs.value }}
path: ${{ inputs.artifact_list }}
================================================
FILE: .github/workflows/check_docs.yml
================================================
name: 📖 Check docs
run-name: 📖 Check docs ${{ github.sha }}
on:
workflow_call:
workflow_run:
workflows:
- 📖 Trigger doc check
types:
- completed
jobs:
translate_docs:
runs-on: ubuntu-24.04
outputs:
repo: ${{ steps.repo-check.outputs.repo }}
ref: ${{ steps.repo-check.outputs.ref }}
permissions:
contents: write
pull-requests: read
defaults:
run:
shell: bash
steps:
- name: Download an artifact with PR repo name
if: github.event_name == 'workflow_run'
uses: actions/download-artifact@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}
name: pr_repo
path: .
- name: Check origin repository
id: repo-check
run: |
if [ "${{ github.event_name }}" == "workflow_run" ]; then
PR_REPO=$(cat ./pr_repo.txt)
repo=$(head -n 1 <<< "$PR_REPO")
ref=$(tail -n 1 <<< "$PR_REPO")
else
repo="${{ github.repository }}"
ref="${{ github.head_ref }}"
fi
echo "repo=$repo" >> $GITHUB_OUTPUT
echo "ref=$ref" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
repository: ${{ steps.repo-check.outputs.repo }}
token: ${{ secrets.GITHUB_TOKEN }}
submodules: true
ref: ${{ steps.repo-check.outputs.ref }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
tools: composer
extensions: curl
- name: Run auto-translate
env:
OPENROUTER_TRANSLATOR_API_KEY: ${{ secrets.OPENROUTER_TRANSLATOR_API_KEY }}
run: |
set -e
# Install PHP dependencies for translator
cd translator
composer install --no-dev --no-interaction --prefer-dist
cd ..
# Configure git for commits
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
# Run auto-translate
./translator/bin/auto-translate
# Check if there are any changes to commit (including untracked files)
if [ -n "$(git status --porcelain)" ]; then
echo "Auto-translate made changes, committing them..."
git add -A
git commit -m "docs: Auto-translate documentation changes by ${{ github.actor }}"
git push
echo "Changes committed and pushed successfully"
else
echo "No changes made by auto-translate"
fi
docs_check:
needs: translate_docs
runs-on: ubuntu-22.04
permissions:
contents: write
pull-requests: read
defaults:
run:
shell: bash
container:
image: manticoresearch/docs_autodeploy_multi:latest
env:
CACHEB: "../cache"
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
COMMIT_DIR: manual
DOCS_ERRORS_DIR: build/docs/
GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
steps:
- name: Check origin repository
id: repo-check
run: |
if [ "${{ github.event_name }}" == "workflow_run" ]; then
repo="${{ needs.translate_docs.outputs.repo }}"
ref="${{ needs.translate_docs.outputs.ref }}"
elif [ "${{ github.event_name }}" == "pull_request" ]; then
repo="${{ github.event.pull_request.head.repo.full_name }}"
ref="${{ github.head_ref }}"
else
repo="${{ github.repository }}"
ref="${{ github.head_ref || github.ref_name }}"
fi
echo "repo=$repo" >> $GITHUB_OUTPUT
echo "ref=$ref" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
repository: ${{ steps.repo-check.outputs.repo }}
token: ${{ secrets.GITHUB_TOKEN }}
submodules: true
ref: ${{ steps.repo-check.outputs.ref }}
- name: Fetch master and get changed files
id: changed-files
run: |
git config --global --add safe.directory /__w/manticoresearch/manticoresearch
# Update local master only if we're not currently on it
if [ "${{ github.ref_name }}" != "master" -a "${{ github.event_name }}" != "pull_request" ]; then
git fetch origin master:master
fi
git diff-tree --no-commit-id --name-only -r HEAD^1 HEAD | xargs
echo "changed_files=$(git diff-tree --no-commit-id --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT
- name: Get changed doc filepathes
id: doc-filepathes
run: |
filepathes=""
for file in ${{ steps.changed-files.outputs.changed_files }}; do
case "$file" in
"$COMMIT_DIR/"*)
filepathes="$file $filepathes"
;;
esac
done
echo "$filepathes"
echo "filepathes=$filepathes" >> $GITHUB_OUTPUT
- name: Check docs
id: check
run: |
docs_errors=$(php "/Deploy/check_docs_validity.php" "${{ steps.doc-filepathes.outputs.filepathes }}" "$COMMIT_DIR/" "$DOCS_ERRORS_DIR" | xargs)
echo $docs_errors
echo "errors=$docs_errors" >> $GITHUB_OUTPUT
- name: Check docs translations
run: |
set -e
./misc/compare_manuals.sh
- name: Upload artifact
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: Docs error artifact
path: $DOCS_ERRORS_DIR
- name: Display result
run: |
if [ "${{ steps.check.outputs.errors }}" != "" ]; then
exit 1
fi
echo "Doc check passed successfully "
================================================
FILE: .github/workflows/checklist_validator.yml
================================================
name: 📝 Checklist Validator
run-name: 📝 Checklist Validator for issue ${{ github.event.issue.number }}
on:
issues:
types:
- closed
jobs:
checklist-validation:
name: ✅ Checklist Completion Check
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/manticoresearch/actions/checklist-validator@master
================================================
FILE: .github/workflows/clt_nightly.yml
================================================
name: Nightly tests
run-name: 🌙 Nightly tests ${{ github.sha }}
on:
schedule:
- cron: '00 20 * * *'
pull_request:
branches: [ master ]
paths:
- '.github/workflows/clt_nightly.yml'
- 'test/clt-tests/installation/**'
- 'test/clt-tests/data-manipulation/test-replace-into.rec'
- 'test/clt-tests/data-manipulation/test-alter-rename-nightly.rec'
- 'test/clt-tests/indexing-error/**'
- 'test/clt-tests/indexer/indexer-latest-mysql-postgres/**'
- 'test/clt-tests/performance-nightly/**'
- 'test/clt-tests/sharding/drop/**'
- 'test/clt-tests/tables-interaction/test-tables-interaction.rec'
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: clt_nightly_${{ github.ref }}
cancel-in-progress: true
jobs:
commit_info:
name: Commit info
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- run: |
echo "# Nightly tests of latest release" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
clt-amd64:
name: CLT-Amd64
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- name: Alma 8 release installation
image: almalinux:8
test_prefix: test/clt-tests/installation/rhel-release-
- name: Alma 9 release installation
image: almalinux:9
test_prefix: test/clt-tests/installation/rhel-release-
- name: Alma 10 release installation
image: almalinux:10
test_prefix: test/clt-tests/installation/rhel-release-
- name: OL 9 release installation
image: "oraclelinux:9"
test_prefix: test/clt-tests/installation/rhel-release-
- name: Amazon release installation
image: amazonlinux:latest
test_prefix: test/clt-tests/installation/rhel-release-
- name: Bionic release installation
image: ubuntu:bionic
test_prefix: test/clt-tests/installation/deb-release-
- name: Focal release installation
image: ubuntu:focal
test_prefix: test/clt-tests/installation/deb-release-
- name: Jammy release installation
image: ubuntu:jammy
test_prefix: test/clt-tests/installation/deb-release-
- name: Bullseye release installation
image: debian:bullseye
test_prefix: test/clt-tests/installation/deb-release-
- name: Bookworm release installation
image: debian:bookworm
test_prefix: test/clt-tests/installation/deb-release-
- name: Trixie release installation
image: debian:trixie
test_prefix: test/clt-tests/installation/deb-release-
- name: Noble release installation
image: ubuntu:noble
test_prefix: test/clt-tests/installation/deb-release-
- name: Alma 8 upgrade to dev
image: almalinux:8
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Alma 9 upgrade to dev
image: almalinux:9
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Alma 10 upgrade to dev
image: almalinux:10
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: OL 9 upgrade to dev
image: "oraclelinux:9"
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Amazon upgrade to dev
image: amazonlinux:latest
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Bionic upgrade to dev
image: ubuntu:bionic
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Focal upgrade to dev
image: ubuntu:focal
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Jammy upgrade to dev
image: ubuntu:jammy
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Bullseye upgrade to dev
image: debian:bullseye
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Bookworm upgrade to dev
image: debian:bookworm
test_prefix: test/clt-tests/installation/deb-dev-update
- name: Trixie upgrade to dev
image: debian:trixie
test_prefix: test/clt-tests/installation/deb-dev-update
- name: Noble upgrade to dev
image: ubuntu:noble
test_prefix: test/clt-tests/installation/deb-dev-update
- name: REPLACE INTO
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
test_prefix: test/clt-tests/data-manipulation/test-replace-into
- name: Indexing errors
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/indexing-error/test-id-attribute-error-during-indexing
- name: Indexer latest MYSQL POSTGRES
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/indexer/indexer-latest-mysql-postgres/indexer-latest-mysql-postgres
- name: Test alter rename nightly
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
test_prefix: test/clt-tests/data-manipulation/test-alter-rename-nightly
- name: Tables interaction
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/tables-interaction/test-tables-interaction
- name: Drop sharded table
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/sharding/drop/test-drop-sharded-table
# Disabled as it works unstable.
# - name: Tests performance JSON vs SQL
# image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
# test_prefix: test/clt-tests/performance-tests/test-comparison-
- name: Test performance for queries with multiple disk chunks
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
test_prefix: test/clt-tests/performance-nightly/test-performance-for-queries-with-multiple-disk-chunks
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: ${{ matrix.test_prefix }}
image: ${{ matrix.image }}
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
clt-arm64:
name: CLT-Arm64
runs-on: ubuntu-24.04-arm
strategy:
fail-fast: false
matrix:
include:
- name: Alma 8 release installation
image: almalinux:8
test_prefix: test/clt-tests/installation/rhel-release-
- name: Alma 9 release installation
image: almalinux:9
test_prefix: test/clt-tests/installation/rhel-release-
- name: Alma 10 release installation
image: almalinux:10
test_prefix: test/clt-tests/installation/rhel-release-
- name: OL 9 release installation
image: "oraclelinux:9"
test_prefix: test/clt-tests/installation/rhel-release-
- name: Amazon release installation
image: amazonlinux:latest
test_prefix: test/clt-tests/installation/rhel-release-
- name: Bionic release installation
image: ubuntu:bionic
test_prefix: test/clt-tests/installation/deb-release-
- name: Focal release installation
image: ubuntu:focal
test_prefix: test/clt-tests/installation/deb-release-
- name: Jammy release installation
image: ubuntu:jammy
test_prefix: test/clt-tests/installation/deb-release-
- name: Bullseye release installation
image: debian:bullseye
test_prefix: test/clt-tests/installation/deb-release-
- name: Bookworm release installation
image: debian:bookworm
test_prefix: test/clt-tests/installation/deb-release-
- name: Trixie release installation
image: debian:trixie
test_prefix: test/clt-tests/installation/deb-release-
- name: Noble release installation
image: ubuntu:noble
test_prefix: test/clt-tests/installation/deb-release-
- name: Alma 8 upgrade to dev
image: almalinux:8
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Alma 9 upgrade to dev
image: almalinux:9
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Alma 10 upgrade to dev
image: almalinux:10
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: OL 9 upgrade to dev
image: "oraclelinux:9"
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Amazon upgrade to dev
image: amazonlinux:latest
test_prefix: test/clt-tests/installation/rhel-dev-u
- name: Bionic upgrade to dev
image: ubuntu:bionic
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Focal upgrade to dev
image: ubuntu:focal
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Jammy upgrade to dev
image: ubuntu:jammy
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Bullseye upgrade to dev
image: debian:bullseye
test_prefix: test/clt-tests/installation/deb-dev-u
- name: Bookworm upgrade to dev
image: debian:bookworm
test_prefix: test/clt-tests/installation/deb-dev-update
- name: Trixie upgrade to dev
image: debian:trixie
test_prefix: test/clt-tests/installation/deb-dev-update
- name: Noble upgrade to dev
image: ubuntu:noble
test_prefix: test/clt-tests/installation/deb-dev-update
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: ${{ matrix.test_prefix }}
image: ${{ matrix.image }}
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
================================================
FILE: .github/workflows/clt_tests.yml
================================================
name: CLT tests
on:
workflow_call:
inputs:
docker_image:
required: true
type: string
description: "Docker image to use for tests"
artifact_name:
required: false
type: string
description: "Name of the docker image artifact"
repository:
required: false
type: string
description: "Repository to checkout"
ref:
required: false
type: string
description: "Ref to checkout"
continue_on_error:
required: false
type: boolean
description: "Continue on error"
default: false
secrets:
OPENAI_API_KEY:
required: true
description: "OpenAI API key for CLT tests"
VOYAGE_API_KEY:
required: true
description: "Voyage API key for CLT tests"
JINA_API_KEY:
required: true
description: "Jina API key for CLT tests"
jobs:
discover:
name: Discover CLT tests
runs-on: ubuntu-22.04
outputs:
matrix: ${{ steps.build.outputs.matrix }}
steps:
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
- id: build
name: Build matrix
shell: bash
run: |
set -euo pipefail
python3 - <<'PY'
import json
import os
import pathlib
roots = [
"test/clt-tests/buddy",
"test/clt-tests/buddy-plugins",
"test/clt-tests/bugs",
"test/clt-tests/core",
"test/clt-tests/data-manipulation",
"test/clt-tests/expected-errors",
"test/clt-tests/fulltext-search",
"test/clt-tests/mcl",
"test/clt-tests/http-interface",
"test/clt-tests/indexer",
"test/clt-tests/join",
"test/clt-tests/kibana",
"test/clt-tests/mysqldump/mysql",
"test/clt-tests/mysqldump/maria",
"test/clt-tests/performance",
"test/clt-tests/replication",
"test/clt-tests/sharding/cluster",
"test/clt-tests/sharding/functional",
"test/clt-tests/sharding/replication",
"test/clt-tests/sharding/syntax",
"test/clt-tests/test-configuration",
"test/clt-tests/vector-knn",
]
tests = []
for root in roots:
root_path = pathlib.Path(root)
if not root_path.exists():
continue
for path in sorted(root_path.glob("*.rec")):
# clt appends "*.rec" to the prefix; strip the suffix to avoid ".rec*.rec"
tests.append(str(path.with_suffix("")))
total_jobs = 20
if not tests:
matrix = {"chunk": []}
else:
size = (len(tests) + total_jobs - 1) // total_jobs
chunks = []
for i in range(0, len(tests), size):
group = tests[i : i + size]
chunks.append(
{
"id": len(chunks),
"tests": group,
"test_prefix": "\n".join(group),
}
)
matrix = {"chunk": chunks}
print(f"Found {len(tests)} .rec tests across {len(matrix['chunk'])} jobs")
output_path = os.environ["GITHUB_OUTPUT"]
with open(output_path, "a", encoding="utf-8") as fh:
fh.write(f"matrix={json.dumps(matrix)}\n")
PY
clt:
name: CLT
needs: [discover]
runs-on: ubuntu-22.04
timeout-minutes: 30
continue-on-error: ${{ inputs.continue_on_error }}
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
JINA_API_KEY: ${{ secrets.JINA_API_KEY }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.discover.outputs.matrix) }}
steps:
- uses: manticoresoftware/clt@0.7.8
with:
artifact: ${{ inputs.artifact_name }}
image: ${{ inputs.docker_image }}
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
test_prefix: ${{ matrix.chunk.test_prefix }}
comment_mode: failures
run_args: "-e OPENAI_API_KEY -e VOYAGE_API_KEY -e JINA_API_KEY"
ui_host: "https://clt.manticoresearch.com"
================================================
FILE: .github/workflows/coverage.yml
================================================
name: 📊 Code coverage test
run-name: 📊 Code coverage test ${{ github.sha }}
on:
#workflow_run:
# workflows: [ 🔬 Test ]
# types: [ completed ]
workflow_dispatch:
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: coverage_${{ github.ref }}
cancel-in-progress: true
jobs:
commit_info:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
name: Commit info
runs-on: ubuntu-22.04
steps:
- run: |
echo "# Coverage tests of commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY
echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
simple_build:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: ./.github/workflows/build_template.yml
with:
CTEST_CMAKE_GENERATOR: "Unix Makefiles" # as Ninja fails with coverage
CTEST_CONFIGURATION_TYPE: "Debug"
WITH_COVERAGE: 1
simple_test_coverage:
needs: simple_build
uses: ./.github/workflows/test_template.yml
with:
WITH_COVERAGE: 1
artifact_name: test_debug_coverage
build_artifact_name: build_jammy_Debug_x86_64
timeout: 20
================================================
FILE: .github/workflows/deploy_docs.yml
================================================
name: 📖 Deploy docs
run-name: 📖 Deploy docs ${{ github.sha }}
on:
push:
paths:
- 'manual/**'
branches:
- master
- maintenance-release
- manticore-*
env:
DOCS_AUTOCOMMIT_TITLE: Docs_examples_update
jobs:
check:
uses: ./.github/workflows/check_docs.yml
secrets: inherit
commit_info:
name: Commit info
runs-on: ubuntu-22.04
steps:
- run: |
echo "# Docs deployment for commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY
echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
docs_autocommit_check:
name: Check for doc deployment autocommits
needs: [check]
runs-on: ubuntu-22.04
outputs:
res: ${{ steps.check.outputs.res }}
steps:
- id: check
if: ${{ github.event.head_commit.message != env.DOCS_AUTOCOMMIT_TITLE }}
run: echo "res=ok" >> $GITHUB_OUTPUT
docs_deploy:
name: Manticore Manual doc deployment
runs-on: ubuntu-22.04
needs: docs_autocommit_check
if: needs.docs_autocommit_check.outputs.res == 'ok'
defaults:
run:
shell: bash
# timeout-minutes: 30
container:
image: manticoresearch/docs_autodeploy_multi:latest
env:
CACHEB: "../cache"
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
RELEASE_FILENAME: latest_release_version
COMMIT_DIR: manual
DEPLOY_SOURCE: github
DEPLOY_TARGET: k8s
DOCS_ERRORS_DIR: build/docs/
DOCS_AUTOCOMMIT_TITLE: ${{ env.DOCS_AUTOCOMMIT_TITLE }}
DOCS_EXAMPLES_FILEPATH: 'build/test/examples.txt'
GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
CI_PROJECT_TITLE: dev
CI_PROJECT_PATH: manticoresoftware/manticoresearch
CI_PROJECT_DIR: /__w/manticoresearch/manticoresearch
CI_COMMIT_SHA: ${{ github.sha }}
CI_COMMIT_BRANCH: ${{ github.ref_name }}
CI_COMMIT_TITLE: ${{ github.event.head_commit.message }}
steps:
- name: Install fresh git
run: |
echo 'APT::Key::Assert-Pubkey-Algo ">=rsa1024";' > /etc/apt/apt.conf.d/99weakkey-warning
apt-get update --allow-releaseinfo-change
add-apt-repository -y ppa:git-core/ppa
apt-get update
apt-get install -y git
- name: Checkout
uses: actions/checkout@v3.5.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
set-safe-directory: true
fetch-depth: 0
- name: Initialization
# without adding the safe.directory the script fails to do git show ...
run: git config --global --add safe.directory /__w/manticoresearch/manticoresearch
- name: Deploy
run: |
sh /Deploy/autoupdate.sh $DEPLOY_TARGET $COMMIT_DIR $DOCS_ERRORS_DIR
- name: Upload artifact
if: always()
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: Docs deploy error artifact
path: $DOCS_ERRORS_DIR
================================================
FILE: .github/workflows/nightly_dumps.yml
================================================
name: Nightly testing of supported versions of mysqldump and elasticdump
run-name: 🌙 Nightly tests of mysqldump and elasticdump ${{ github.sha }}
on:
schedule:
- cron: '00 20 * * *'
pull_request:
branches: [ master ]
paths:
- 'test/clt-tests/migration-es-ms/**' # trigger when changes are made in migration test files
- 'test/clt-tests/mysqldump/versions/**' # trigger when changes are made in mysqldump test files
- '.github/workflows/nightly_dumps.yml' # trigger when changes are made in the workflow config
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: nightly_dumps_${{ github.ref }}
cancel-in-progress: true
jobs:
commit_info:
name: Commit info
runs-on: ubuntu-22.04
steps:
- run: |
echo "# Nightly tests of latest release" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
clt_test_mysqldump_mariadb_versions:
name: Testing supported MariaDB mysqldump versions
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: manticoresoftware/clt@0.7.8
with:
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/mysqldump/versions/mariadb/
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
clt_test_mysqldump_mysql_versions:
name: Testing supported MySQL mysqldump versions
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: manticoresoftware/clt@0.7.8
with:
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/mysqldump/versions/mysql/
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
clt_test_migration_es_ms:
name: Testing data migration from elastic to manticore
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: manticoresoftware/clt@0.7.8
with:
image: manticoresearch/dind:v1
test_prefix: test/clt-tests/migration-es-ms/
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
- name: Upload .rep File
if: always()
uses: actions/upload-artifact@v4
with:
name: test-migration-es-ms-rep
path: test/clt-tests/migration-es-ms/test-migration-es-ms.rep
================================================
FILE: .github/workflows/nightly_fuzzer.yml
================================================
name: Nightly Fuzz Testing
run-name: 🌙 Nightly Fuzz Testing ${{ github.sha }}
on:
# 📅 Run this workflow every day at 23:00 UTC
schedule:
- cron: '00 23 * * *'
# 🚀 Also run when this file is updated in any branch
push:
branches:
- '**'
paths:
- '.github/workflows/nightly_fuzzer.yml'
# 🔁 Cancel older runs if a new one starts on the same branch
concurrency:
group: nightly_fuzzing_${{ github.ref }}
cancel-in-progress: true
jobs:
recover_build_from_cache:
name: ♻️ Recover build from cache
runs-on: ubuntu-22.04
outputs:
cache-hit: ${{ steps.check-cache.outputs.cache-hit }}
steps:
- name: 📥 Checkout repo
uses: actions/checkout@v3
- name: 💾 Attempt to restore build cache
id: check-cache
uses: actions/cache@v4
with:
path: build
key: build-linux-fuzz-${{ github.sha }}
# key: build-linux-fuzz
- name: 📦 Upload restored build (if cache was found)
if: steps.check-cache.outputs.cache-hit == 'true'
uses: actions/upload-artifact@v4
with:
name: fuzz-build
path: build
build_linux_fuzz:
name: 🛠️ Build with fuzzer (Linux)
needs: recover_build_from_cache
if: needs.recover_build_from_cache.outputs.cache-hit != 'true'
uses: ./.github/workflows/build_template.yml
with:
CTEST_CONFIGURATION_TYPE: "Debug"
artifact_name: fuzz-build
artifact_list: "build"
cache_key: build-linux-fuzz-cache-dir
cmake_command: |
mkdir build && cd build
export CC=`which clang`
export CXX=`which clang++`
cmake -DQFUZZER=ON ..
cmake --build . --target qfuzzer
cache_build_artifact:
name: 🧊 Save build to cache (if new)
needs: build_linux_fuzz
if: needs.build_linux_fuzz.result == 'success'
runs-on: ubuntu-22.04
steps:
- name: 📥 Download built artifact
uses: actions/download-artifact@v4
with:
name: fuzz-build
path: build
- name: 💾 Save build to cache
uses: actions/cache/save@v4
with:
path: build
key: build-linux-fuzz-${{ github.sha }}
# key: build-linux-fuzz
test_linux_fuzz:
name: 🧪 Run fuzz tests
needs:
- recover_build_from_cache
- build_linux_fuzz
if: always() && (needs.recover_build_from_cache.outputs.cache-hit == 'true' || needs.build_linux_fuzz.result == 'success')
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
container:
image: ubuntu:jammy
steps:
- name: 📥 Checkout repository
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
set-safe-directory: true
- name: 📦 Download built artifact with retry logic
uses: manticoresoftware/download_artifact_with_retries@v3
continue-on-error: true
with:
name: fuzz-build
path: .
- name: Restore cache
uses: actions/cache@v4
with:
path: build/src/fuzzer/corpus
key: fuzz-corpus-cache-to-delete
restore-keys: |
fuzz-corpus-
- name: 🐛 Run fuzzer
id: run
continue-on-error: true
run: |
apt -y update && apt -y install llvm
set +e # allow script to continue even if a command fails
cd build/src/fuzzer
mkdir -p corpus
echo "## 🐛 Fuzzer Results" >> $GITHUB_STEP_SUMMARY
# Run qfuzzer and capture its exit code
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-14
./qfuzzer -verbosity=0 -max_total_time=12000 -jobs=5 -workers=5-dict=../../../src/fuzzer/dict.txt corpus 2>&1 | tee fuzzer_output.txt
qfuzzer_exit_code=${PIPESTATUS[0]}
echo '```' >> $GITHUB_STEP_SUMMARY
cat fuzzer_output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "corpus_size=$(ls corpus | wc -l)" >> $GITHUB_OUTPUT
# exit with qfuzzer's code (1 if it failed)
exit $qfuzzer_exit_code
- name: Save cache
if: always()
uses: actions/cache/save@v4
with:
path: build/src/fuzzer/corpus
key: fuzz-corpus-${{ steps.run.outputs.corpus_size || 'unknown' }}
- name: 📦 Upload fuzzer directory
if: always()
uses: actions/upload-artifact@v4
with:
name: fuzzer-dir
path: |
build/src/fuzzer
!build/src/fuzzer/qfuzzer
!build/src/fuzzer/corpus
!build/src/fuzzer/CMake*
!build/src/fuzzer/cmake*
!build/src/fuzzer/CTest*
- name: 📦 Upload updated fuzzer corpus
if: always()
uses: actions/upload-artifact@v4
with:
name: fuzzer-corpus
path: build/src/fuzzer/corpus
- name: ❌ Fail job if fuzzer failed
if: steps.run.outcome == 'failure'
run: |
echo "Fuzzer failed. Marking the job as failed."
exit 1
upload_corpus_to_s3:
name: 📦 Upload fuzzer corpus backup to Manticore S3
needs: test_linux_fuzz
if: always()
runs-on: ubuntu-22.04
steps:
- name: 📥 Download fuzzer-corpus artifact
uses: actions/download-artifact@v4
with:
name: fuzzer-corpus
path: corpus
- name: ☁️ Upload updated fuzzer corpus backup to Manticore S3
run: |
if [ -n "$(find corpus -maxdepth 1 -type f -print -quit)" ]; then
tar -czf corpus.tar.gz corpus
mkdir -p corpus-backup
mv corpus.tar.gz corpus-backup
cd corpus-backup
docker run --rm -v "$(pwd)":/upload manticoresearch/upload fuzz-tests-corpus
else
echo "Directory corpus is empty. Skipping corpus upload."
fi
delete-cache:
name: 🧹 Delete old cache
needs: test_linux_fuzz
if: always()
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- name: Delete cache with key "fuzz-corpus-cache-to-delete"
run: |
curl -s -X DELETE \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/actions/caches?key=fuzz-corpus-cache-to-delete
================================================
FILE: .github/workflows/nightly_integration.yml
================================================
name: Nightly integration tests
run-name: 🌙 Nightly integration tests ${{ github.sha }}
on:
schedule:
- cron: '00 20 * * *'
workflow_dispatch:
pull_request:
branches: [ master ]
paths:
- 'test/clt-tests/integrations/**'
- '.github/workflows/nightly_integrations.yml'
concurrency:
group: nightly_integrations_${{ github.ref }}
cancel-in-progress: true
jobs:
commit_info:
name: Commit info
runs-on: ubuntu-22.04
steps:
- run: |
echo "# Nightly integration tests" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
# ==========================================
# Version Check Jobs
# ==========================================
check_filebeat_versions:
name: Check Filebeat versions
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
check_logstash_versions:
name: Check Logstash versions
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
check_grafana_versions:
name: Check Grafana versions
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/grafana/test-integrations-check-grafana-versions
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
# ==========================================
# Integration Test Jobs
# ==========================================
test_dbeaver:
name: Test DBeaver integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/dbeaver/test-integrations-dbeaver
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
test_filebeat:
name: Test Filebeat integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/filebeat/test-integrations-filebeat
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
test_fluentbit:
name: Test Fluentbit integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/fluentbit/test-integrations-fluentbit
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
test_grafana:
name: Test Grafana integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/grafana/test-integrations-grafana
image: manticoresearch/dind:v1
comment_mode: failures
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
test_kafka:
name: Test Kafka integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/kafka/test-integration-
image: manticoresearch/dind:v1
comment_mode: failures
run_args: --privileged -v $(pwd)/manual:/manual
ui_host: "https://clt.manticoresearch.com"
test_logstash:
name: Test Logstash integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/logstash/test-integrations-logstash
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
test_vector:
name: Test Vector integration
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/vector/test-integrations-vector
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
# ==========================================
# Version Testing Jobs
# ==========================================
test_filebeat_versions:
name: Test Filebeat versions support
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/filebeat/test-integrations-support-filebeat-versions
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
test_logstash_versions:
name: Test Logstash versions support
runs-on: ubuntu-22.04
timeout-minutes: 180
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/logstash/test-integrations-test-logstash-versions
image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
test_grafana_versions:
name: Test Grafana versions support
runs-on: ubuntu-22.04
timeout-minutes: 180
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: manticoresoftware/clt@0.7.8
with:
test_prefix: test/clt-tests/integrations/grafana/test-integrations-test-grafana-versions
image: manticoresearch/dind:v1
comment_mode: failures
run_args: --privileged
ui_host: "https://clt.manticoresearch.com"
================================================
FILE: .github/workflows/nightly_memleaks.yml
================================================
name: Nightly valgrind checks
run-name: 🌙 Nightly valgrind checks ${{ github.sha }}
on:
schedule:
- cron: '00 20 * * *'
push:
branches:
- '**'
paths:
- '.github/workflows/nightly_memleaks.yml'
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: nightly_memleaks_${{ github.ref }}
cancel-in-progress: true
jobs:
memleaks:
name: Memleak tests
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
timeout-minutes: 300
container:
image: manticoresearch/manticore_valgrind:jammy
env:
DIAGNOSTIC: 1
VERBOSE: 1
CTEST_CONFIGURATION_TYPE: "RelWithDebInfo"
UNITY_BUILD: 1
CACHEB: "../cache"
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
set-safe-directory: true
- name: Check out cache before building
uses: actions/cache/restore@v4
with:
path: cache
key: build_linux_debug_x86_64
- name: memcheck.sh
run: |
mysqld &
bash memcheck.sh
- name: Upload build artifacts
if: always()
continue-on-error: true
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: memleaks_${{ github.sha }}
path: build/Testing
================================================
FILE: .github/workflows/pack_publish.yml
================================================
name: 📦 Pack and publish
run-name: 📦 Pack and publish ${{ github.sha }}
#on: workflow_call
on:
workflow_run:
workflows: [ 🔬 Test ]
types: [ completed ]
branches: [ master ]
pull_request:
branches: [ master ]
types: [opened, synchronize, reopened, labeled, unlabeled]
paths-ignore:
- 'manual/**'
- 'cmake/GetGALERA.cmake'
- 'galera_packaging/**'
push:
branches:
- manticore-*
paths-ignore:
- 'manual/**'
- 'cmake/GetGALERA.cmake'
- 'galera_packaging/**'
tags:
- 'release*'
- 'pack_publish'
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: pack_${{ github.ref }}
cancel-in-progress: true
jobs:
check_branch:
name: Check branch existence
runs-on: ubuntu-22.04
outputs:
columnar_locator: ${{ steps.set_locator.outputs.columnar_locator }}
steps:
- name: Check if branch exists in manticoresoftware/manticoresearch
id: check_branch
if: github.ref_name != 'master'
run: |
# Extract the actual branch name for pull requests
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
else
BRANCH_NAME="${{ github.ref_name }}"
fi
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/manticoresoftware/columnar/branches/$BRANCH_NAME)
if [ "$HTTP_STATUS" -eq "200" ]; then
echo "branch_exists=true" >> $GITHUB_OUTPUT
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
else
echo "branch_exists=false" >> $GITHUB_OUTPUT
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
fi
- name: Set Columnar Locator
id: set_locator
run: |
if [[ "${{ github.ref_name }}" != "master" && "${{ steps.check_branch.outputs.branch_exists }}" == "true" ]]; then
echo "columnar_locator=GIT_REPOSITORY https://github.com/manticoresoftware/columnar.git GIT_TAG ${{ steps.check_branch.outputs.branch_name }}" >> $GITHUB_OUTPUT
else
echo "columnar_locator=" >> $GITHUB_OUTPUT
fi
pack:
name: OK to pack?
runs-on: ubuntu-22.04
outputs:
version: ${{ steps.semver-tagger.outputs.version }}
version_full: ${{ steps.semver-tagger.outputs.version_full }}
version_rpm: ${{ steps.semver-tagger.outputs.version_rpm }}
version_deb: ${{ steps.semver-tagger.outputs.version_deb }}
target: ${{ steps.semver-tagger.outputs.target }}
should_continue: ${{ steps.check-should-continue.outputs.should_continue }}
if: |
(
github.event_name == 'pull_request'
&&
(
contains(
github.event.pull_request.labels.*.name, 'pack'
)
||
contains(
github.event.pull_request.labels.*.name, 'publish'
)
)
)
||
(
github.event_name == 'workflow_run'
&&
github.event.workflow_run.conclusion == 'success'
&&
github.ref == 'refs/heads/master'
)
||
(
github.event_name == 'push'
&&
(
startsWith(
github.ref, 'refs/heads/manticore-'
)
||
contains(
github.ref, 'refs/tags/pack_publish'
)
)
)
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Update version
id: semver-tagger
uses: manticoresoftware/semver-tagger-action@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
conventional_commits_authors: alexey@manticoresearch.com
ignore_patterns: '\.md$|^test/|^manual/|\.clt|\.github|\.patterns|\.yml|\.gitignore'
- name: Check if we should continue packing
id: check-should-continue
run: |
# Continue if version was updated, if we have the "pack" label on PR, or if target is "release"
if [[ "${{ steps.semver-tagger.outputs.version_updated }}" == "true" ]]; then
echo "Continuing because version was updated"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ steps.semver-tagger.outputs.target }}" == "release" ]]; then
echo "Continuing because target is release"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event_name }}" == "pull_request" && "${{ contains(github.event.pull_request.labels.*.name, 'pack') }}" == "true" ]]; then
echo "Continuing because PR has 'pack' label"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ contains(github.ref, 'refs/tags/pack_publish') }}" == "true" ]]; then
echo "Continuing because commit has 'pack_publish' tag"
echo "should_continue=true" >> $GITHUB_OUTPUT
else
echo "Skipping packing because version wasn't updated, target is not release, and there's no 'pack' label or tag"
echo "should_continue=false" >> $GITHUB_OUTPUT
fi
- run: |
echo "# Packing and publishing all for commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY
echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
echo "* Version updated: ${{ steps.semver-tagger.outputs.version_updated }}" >> $GITHUB_STEP_SUMMARY
echo "* Should continue packing: ${{ steps.check-should-continue.outputs.should_continue }}" >> $GITHUB_STEP_SUMMARY
# debug_info:
# name: Debug GitHub Event Info
# runs-on: ubuntu-22.04
# steps:
# - name: Print GitHub Event Info
# run: |
# echo "GitHub Event Name: ${{ github.event_name }}"
# echo "GitHub Ref: ${{ github.ref }}"
# echo "GitHub Ref Type: ${{ github.ref_type }}"
# echo "GitHub Ref Name: ${{ github.ref_name }}"
# echo "GitHub Actor: ${{ github.actor }}"
# echo "GitHub Repository: ${{ github.repository }}"
# echo "GitHub SHA: ${{ github.sha }}"
# echo "GitHub Run Number: ${{ github.run_number }}"
# echo "GitHub Run Attempt: ${{ github.run_attempt }}"
# echo "GitHub Workflow: ${{ github.workflow }}"
# echo "GitHub Event JSON:"
# echo '${{ toJSON(github.event) }}'
# Job to check dependencies using check_deps_in_repos.sh
# Runs on every PR, workflow_run, or push event matching the conditions
check_deps:
needs: pack
if: needs.pack.outputs.should_continue == 'true'
name: Check deps test
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
# We have to checkout to access .github/workflows/ in further steps
- name: Run dependency check script
run: |
bash dist/check_deps_in_repos.sh --target ${{ needs.pack.outputs.target }}
pack_debian_ubuntu:
name: Debian/Ubuntu packages
uses: ./.github/workflows/build_template.yml
needs: [pack, check_branch, check_deps]
if: needs.pack.outputs.should_continue == 'true'
strategy:
fail-fast: false
matrix:
DISTR: [bionic, focal, jammy, bullseye, bookworm]
arch: [x86_64, aarch64]
with:
COLUMNAR_LOCATOR: ${{ needs.check_branch.outputs.columnar_locator }}
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
cmake_command: |
mkdir build
cd build
export BUNDLE_REPO_TYPE=${{ needs.pack.outputs.target == 'release' && 'release_candidate' || 'dev' }}
cmake -DPACK=1 -DPACK_BUNDLE=1 ..
cmake --build . --target package
cache_key: pack_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*deb"
version: ${{ needs.pack.outputs.version }}
build_tag: ${{ needs.pack.outputs.target == 'dev' && 'dev' || '' }}
pack_rhel:
name: RHEL packages
uses: ./.github/workflows/build_template.yml
needs: [pack, check_branch, check_deps]
if: needs.pack.outputs.should_continue == 'true'
strategy:
fail-fast: false
matrix:
DISTR: [rhel8, rhel9, rhel10]
arch: [x86_64, aarch64]
with:
COLUMNAR_LOCATOR: ${{ needs.check_branch.outputs.columnar_locator }}
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
boost_url_key: boost_rhel_feb17
cmake_command: |
ln -s $(pwd) /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
cd /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
mkdir build
cd build
export BUNDLE_REPO_TYPE=${{ needs.pack.outputs.target == 'release' && 'release_candidate' || 'dev' }}
cmake -DPACK=1 -DPACK_BUNDLE=1 ..
cmake --build . --target package
cache_key: pack_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*rpm"
version: ${{ needs.pack.outputs.version }}
build_tag: ${{ needs.pack.outputs.target == 'dev' && 'dev' || '' }}
pack_macos:
name: MacOS packages
uses: ./.github/workflows/build_template.yml
needs: [pack, check_branch, check_deps]
if: needs.pack.outputs.should_continue == 'true'
strategy:
fail-fast: false
matrix:
DISTR: [macos]
arch: [x86_64, arm64]
with:
COLUMNAR_LOCATOR: ${{ needs.check_branch.outputs.columnar_locator }}
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
HOMEBREW_PREFIX: /opt/homebrew
cmake_command: |
mkdir build
cd build
export BUNDLE_REPO_TYPE=${{ needs.pack.outputs.target == 'release' && 'release_candidate' || 'dev' }}
cmake -DPACK=1 -DPACK_BUNDLE=1 ..
cmake --build . --target package
cache_key: pack_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*tar.gz"
version: ${{ needs.pack.outputs.version }}
build_tag: ${{ needs.pack.outputs.target == 'dev' && 'dev' || '' }}
pack_windows:
name: Windows x64 package
uses: ./.github/workflows/build_template.yml
needs: [pack, check_branch, check_deps]
if: needs.pack.outputs.should_continue == 'true'
with:
COLUMNAR_LOCATOR: ${{ needs.check_branch.outputs.columnar_locator }}
DISTR: windows
arch: x64
sysroot_url_key: roots_mysql83_jan17
boost_url_key: boost_80
cmake_command: |
mkdir build
cd build
export BUNDLE_REPO_TYPE=${{ needs.pack.outputs.target == 'release' && 'release_candidate' || 'dev' }}
cmake -DPACK=1 -DPACK_BUNDLE=1 ..
cmake --build . --target package
cache_key: pack_windows_x64
artifact_list: "build/manticore*exe build/manticore*zip"
version: ${{ needs.pack.outputs.version }}
build_tag: ${{ needs.pack.outputs.target == 'dev' && 'dev' || '' }}
build_nsis:
name: Making Windows NSIS installer
needs: [pack_windows, pack]
if: needs.pack.outputs.should_continue == 'true'
runs-on: ubuntu-22.04
container:
image: manticoresearch/build_nsis:1.0.0
env:
CI_COMMIT_SHA: ${{ github.sha }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Patch version
run: |
sed -i "s/0\.0\.0/${{ needs.pack.outputs.version }}/g" src/sphinxversion.h.in
- name: Initialization
# without adding the safe.directory the script fails to do git show ...
run: git config --global --add safe.directory /__w/manticoresearch/manticoresearch
- name: Make installer
# TODO: remove the hardcoded paths /builds/ below
run: |
mkdir -p /builds/manticoresearch/dev/build/
/bin/bash dist/build_dockers/nsis/nsis_src_parser.sh ${{ needs.pack.outputs.target }}
shell: bash
- run: mv /builds/manticoresearch/dev/build build
- name: Upload artifact
uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: win_installer
path: build/manticore-*.exe
# virtual job to simplify the CI
publish:
name: OK to publish?
runs-on: ubuntu-22.04
# This job depends on all the package preparation jobs that have to pass before we can start publishing packages
needs: [pack_debian_ubuntu, pack_rhel, pack_macos, build_nsis]
if: |
(github.repository == 'manticoresoftware/manticoresearch')
&& (
(github.event_name == 'pull_request' && (contains(github.event.pull_request.labels.*.name, 'publish')))
|| (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
|| (github.event_name == 'push' && startsWith(github.ref, 'refs/heads/manticore-'))
|| (github.event_name == 'push' && contains(github.ref, 'refs/tags/pack_publish'))
)
steps:
- run: echo "Ready to publish"
publish_debian_ubuntu:
needs: [publish, pack]
strategy:
fail-fast: true
matrix:
DISTR: [bionic, focal, jammy, bullseye, bookworm]
arch: [x86_64, aarch64]
runs-on: ubuntu-22.04
name: ${{ matrix.DISTR }} ${{ matrix.arch }} publishing
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
artifact: build_${{ matrix.DISTR }}_RelWithDebInfo_${{ matrix.arch }}
type: deb
delimiter: "-"
target: ${{ needs.pack.outputs.target }}
publish_rhel:
needs: [publish, pack]
strategy:
fail-fast: true
matrix:
DISTR: [8, 9, 10]
arch: [x86_64, aarch64]
runs-on: ubuntu-22.04
name: RHEL ${{ matrix.DISTR }} ${{ matrix.arch }} publishing
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
artifact: build_rhel${{ matrix.DISTR }}_RelWithDebInfo_${{ matrix.arch }}
type: rpm
delimiter: "_"
target: ${{ needs.pack.outputs.target }}
publish_macos:
name: Publishing MacOS
needs: [publish, pack]
strategy:
fail-fast: true
matrix:
arch: [x86_64, arm64]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: macos
arch: ${{ matrix.arch }}
artifact: build_macos_RelWithDebInfo_${{ matrix.arch }}
type: arc
delimiter: "-"
target: ${{ needs.pack.outputs.target }}
publish_windows:
name: Publishing Windows packages to repo.manticoresearch.com
needs: [publish, pack]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: windows
arch: x64
artifact: build_windows_RelWithDebInfo_x64
type: arc
delimiter: "-"
target: ${{ needs.pack.outputs.target }}
# Test Windows installer without Docker/Buddy on GitHub Actions
test_windows_installer:
name: Test Windows NSIS installer
needs: [publish_windows, pack]
runs-on: windows-latest
steps:
- name: Download Windows installer artifact
uses: actions/download-artifact@v4
with:
name: win_installer
path: ./installer
- name: Extract and Install Manticore
timeout-minutes: 5
run: |
echo "=== EXTRACTING INSTALLER ==="
tar -xf ./installer/artifact.tar -C ./installer
$installer = "./installer/build/manticore-*.exe"
$installerFile = Get-ChildItem $installer | Select-Object -First 1
if (-not $installerFile) {
echo "ERROR: Installer not found!"
Get-ChildItem ./installer -Recurse
exit 1
}
echo "=== INSTALLING MANTICORE ==="
echo "Installing from: $($installerFile.FullName)"
$process = Start-Process -FilePath $installerFile.FullName -ArgumentList "/S /NOEXECUTOR" -Wait -PassThru -NoNewWindow
echo "Installation process exited with code: $($process.ExitCode)"
# Wait for installation to complete
Start-Sleep -Seconds 10
shell: pwsh
- name: Test Manticore Service
run: |
echo "=== VERIFYING INSTALLATION ==="
$installPath = "C:\Program Files (x86)\Manticore"
if (-not (Test-Path $installPath)) {
echo "ERROR: Manticore not installed at expected path: $installPath"
exit 1
}
echo "Manticore installed at: $installPath"
$searchdPath = "$installPath\bin\searchd.exe"
$indexerPath = "$installPath\bin\indexer.exe"
if (-not (Test-Path $searchdPath)) {
echo "ERROR: searchd.exe not found at: $searchdPath"
exit 1
}
if (-not (Test-Path $indexerPath)) {
echo "ERROR: indexer.exe not found at: $indexerPath"
exit 1
}
echo "searchd.exe found at: $searchdPath"
echo "indexer.exe found at: $indexerPath"
& $searchdPath --version
# Disable Buddy before starting Manticore
$configPath = "$installPath\etc\manticoresearch\manticore.conf"
if (Test-Path $configPath) {
$config = Get-Content $configPath -Raw
# Add buddy_path with empty value to disable it
$config = $config -replace "(searchd\s*\{)", "`$1`n buddy_path = "
Set-Content -Path $configPath -Value $config -Force
}
echo "=== STARTING MANTICORE SERVICE ==="
Push-Location $installPath
$process = Start-Process -FilePath $searchdPath -PassThru -NoNewWindow
# Smart wait for daemon to be ready
echo "Waiting for Manticore daemon to be ready..."
$maxAttempts = 30
$attempt = 0
$allPortsReady = $false
while ($attempt -lt $maxAttempts -and -not $allPortsReady) {
Start-Sleep -Seconds 1
$attempt++
# Check if process is still running
$manticoreProcess = Get-Process -Name "searchd" -ErrorAction SilentlyContinue
if (-not $manticoreProcess) {
echo "ERROR: Manticore searchd process died during startup"
exit 1
}
# Check all three ports
$port9306 = Test-NetConnection -ComputerName localhost -Port 9306 -WarningAction SilentlyContinue -InformationLevel Quiet
$port9308 = Test-NetConnection -ComputerName localhost -Port 9308 -WarningAction SilentlyContinue -InformationLevel Quiet
$port9312 = Test-NetConnection -ComputerName localhost -Port 9312 -WarningAction SilentlyContinue -InformationLevel Quiet
if ($port9306 -and $port9308 -and $port9312) {
$allPortsReady = $true
echo "All ports are ready after $attempt seconds"
}
}
if (-not $allPortsReady) {
echo "ERROR: Manticore did not start properly within $maxAttempts seconds"
echo "Port 9306 status: $port9306"
echo "Port 9308 status: $port9308"
echo "Port 9312 status: $port9312"
exit 1
}
$manticoreProcess = Get-Process -Name "searchd" -ErrorAction SilentlyContinue
echo "Manticore searchd is running (PID: $($manticoreProcess.Id))"
Pop-Location
echo "=== TESTING MANTICORE SERVICE WITH SIMPLE STATUS CHECKS ==="
# Test 1: Check HTTP API port 9308
echo "`nTest 1: Checking HTTP API (port 9308)..."
try {
$response = Invoke-WebRequest -Uri "http://localhost:9308/" -UseBasicParsing
if ($response.StatusCode -eq 200) {
echo "✓ HTTP API responds with status 200"
echo "✓ Response length: $($response.Content.Length) bytes"
} else {
echo "ERROR: Unexpected status code: $($response.StatusCode)"
exit 1
}
} catch {
echo "ERROR: Failed to access HTTP API: $_"
exit 1
}
# Test 2: Check Sphinx/HTTP port 9312
echo "`nTest 2: Checking Sphinx/HTTP port (9312)..."
try {
$response = Invoke-WebRequest -Uri "http://localhost:9312/" -UseBasicParsing
if ($response.StatusCode -eq 200) {
echo "✓ Sphinx/HTTP port responds with status 200"
# Check for expected content in response
if ($response.Content -like '*"version":*') {
echo "✓ Response contains version information"
}
} else {
echo "ERROR: Unexpected status code: $($response.StatusCode)"
exit 1
}
} catch {
echo "ERROR: Failed to access port 9312: $_"
exit 1
}
# Test 3: Verify all three ports are listening
echo "`nTest 3: Verifying all service ports are listening..."
$ports = @(9306, 9308, 9312)
$allPortsOk = $true
foreach ($port in $ports) {
$connection = Test-NetConnection -ComputerName localhost -Port $port -WarningAction SilentlyContinue -InformationLevel Quiet
if ($connection) {
echo "✓ Port $port is listening"
} else {
echo "✗ Port $port is NOT listening"
$allPortsOk = $false
}
}
if (-not $allPortsOk) {
echo "ERROR: Not all required ports are listening"
exit 1
}
echo ""
echo "=== ALL BASIC TESTS COMPLETED SUCCESSFULLY ==="
echo "✓ Installation verified"
echo "✓ Daemon is running"
echo "✓ All ports (9306, 9308, 9312) are accessible"
echo "✓ HTTP endpoints respond with status 200"
echo "✓ Manticore service is operational"
shell: pwsh
publish_nsis:
name: Publishing Windows NSIS installer
needs: [test_windows_installer, publish, pack]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr:
arch:
artifact: win_installer
type: arc
delimiter: "-"
target: ${{ needs.pack.outputs.target }}
build_docker:
name: Building and pushing docker
needs: [publish_debian_ubuntu, pack]
runs-on: ubuntu-22.04
env:
DOCKER_USER: ${{ secrets.DOCKER_USER }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
GHCR_USER: ${{ secrets.GHCR_USER }}
GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Patch version
run: |
sed -i "s/0\.0\.0/${{ needs.pack.outputs.version }}/g" src/sphinxversion.h.in
- name: Calculate short commit hash
id: sha
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Building docker
run: CI_COMMIT_SHORT_SHA=${{ steps.sha.outputs.sha_short }} /bin/bash dist/dockerhub_deploy.sh
clt_rhel_dev_installation:
name: Testing RHEL dev packages installation
needs: publish_rhel
strategy:
fail-fast: false
matrix:
image: [ "almalinux:8", "almalinux:9", "almalinux:10", "oraclelinux:9", "amazonlinux:latest" ]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/clt@0.7.8
with:
image: ${{ matrix.image }}
test_prefix: test/clt-tests/installation/rhel-dev-
run_args: -e TELEMETRY=0
clt_deb_dev_installation:
name: Testing DEB dev packages installation
needs: publish_debian_ubuntu
strategy:
fail-fast: false
matrix:
image: [ "ubuntu:bionic", "ubuntu:focal", "ubuntu:jammy", "debian:bullseye", "debian:bookworm" ]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/clt@0.7.8
with:
image: ${{ matrix.image }}
test_prefix: test/clt-tests/installation/deb-dev-
run_args: -e TELEMETRY=0
================================================
FILE: .github/workflows/pack_publish_galera.yml
================================================
name: 📦 Pack and publish Galera
run-name: 📦 Pack and publish Galera ${{ github.sha }}
# See galera_packaging/README.md for packaging instructions
on:
pull_request:
branches: [ master ]
types: [opened, synchronize, reopened, labeled, unlabeled]
paths:
- 'cmake/GetGALERA.cmake'
- '.github/workflows/pack_publish_galera.yml'
- 'galera_packaging/**'
push:
paths:
- 'cmake/GetGALERA.cmake'
- '.github/workflows/pack_publish_galera.yml'
- 'galera_packaging/**'
branches:
- master
- maintenance-release
- manticore-*
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: pack_galera_${{ github.ref }}
cancel-in-progress: true
jobs:
pack:
name: OK to pack?
runs-on: ubuntu-22.04
if: |
(
github.event_name == 'pull_request'
&&
(
contains(
github.event.pull_request.labels.*.name, 'pack'
)
||
contains(
github.event.pull_request.labels.*.name, 'publish'
)
)
)
||
(
github.event_name == 'push'
)
steps:
- run: echo "All set to build packages"
- run: |
echo '# Packing and publishing Galera for commit ${{ github.sha }}' >> $GITHUB_STEP_SUMMARY
echo '* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})' >> $GITHUB_STEP_SUMMARY
echo '* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})' >> $GITHUB_STEP_SUMMARY
echo '* Ref: ${{ github.ref_type }} "${{ github.ref_name }}"' >> $GITHUB_STEP_SUMMARY
echo '* Attempt: ${{ github.run_attempt }}' >> $GITHUB_STEP_SUMMARY
pack_debian_ubuntu:
name: Debian/Ubuntu packages
uses: ./.github/workflows/build_template.yml
needs: pack
strategy:
fail-fast: false
matrix:
DISTR: [bionic, focal, jammy, bullseye, bookworm]
arch: [x86_64, aarch64]
with:
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
PACK_GALERA: 1
cmake_command: |
mkdir build
cd build
cmake -DPACK=1 ..
cache_key: pack_galera_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*deb"
pack_rhel:
name: RHEL packages
uses: ./.github/workflows/build_template.yml
needs: pack
strategy:
fail-fast: false
matrix:
DISTR: [rhel8, rhel9, rhel10]
arch: [x86_64, aarch64]
with:
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
boost_url_key: boost_rhel_feb17
PACK_GALERA: 1
cmake_command: |
ln -s $(pwd) /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
cd /builds_manticoresearch_dev_usr_src_debug_manticore_component_src_0_0
mkdir build
cd build
cmake -DPACK=1 ..
cache_key: pack_galera_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*rpm"
pack_macos:
name: MacOS packages
uses: ./.github/workflows/build_template.yml
needs: pack
strategy:
fail-fast: false
matrix:
DISTR: [macos]
arch: [x86_64, arm64]
with:
DISTR: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
HOMEBREW_PREFIX: /opt/homebrew
PACK_GALERA: 1
cmake_command: |
mkdir build
cd build
cmake -DPACK=1 ..
cache_key: pack_galera_${{ matrix.DISTR }}_${{ matrix.arch }}
artifact_list: "build/manticore*tar.gz"
# virtual job to simplify the CI
# This job depends on all the package preparation jobs that have to pass before we can start publishing packages
publish:
name: OK to publish?
runs-on: ubuntu-22.04
needs: [pack_debian_ubuntu, pack_rhel, pack_macos]
if: |
(github.repository == 'manticoresoftware/manticoresearch')
&& (
(github.event_name == 'pull_request' && (contains(github.event.pull_request.labels.*.name, 'publish')))
|| (github.event_name == 'push')
)
steps:
- run: echo "Ready to publish"
publish_debian_ubuntu:
needs: publish
strategy:
fail-fast: true
matrix:
DISTR: [bionic, focal, jammy, bullseye, bookworm]
arch: [x86_64, aarch64]
runs-on: ubuntu-22.04
name: ${{ matrix.DISTR }} ${{ matrix.arch }} publishing
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
artifact: build_${{ matrix.DISTR }}_RelWithDebInfo_${{ matrix.arch }}
type: deb
delimiter: "-"
target: ${{ contains(github.event.pull_request.labels.*.name, 'release') && 'release' || 'dev' }}
publish_rhel:
needs: publish
strategy:
fail-fast: true
matrix:
DISTR: [8, 9, 10]
arch: [x86_64, aarch64]
runs-on: ubuntu-22.04
name: RHEL ${{ matrix.DISTR }} ${{ matrix.arch }} publishing
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: ${{ matrix.DISTR }}
arch: ${{ matrix.arch }}
artifact: build_rhel${{ matrix.DISTR }}_RelWithDebInfo_${{ matrix.arch }}
type: rpm
delimiter: "_"
target: ${{ contains(github.event.pull_request.labels.*.name, 'release') && 'release' || 'dev' }}
publish_macos:
name: Publishing MacOS
needs: publish
strategy:
fail-fast: true
matrix:
arch: [x86_64, arm64]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: macos
arch: ${{ matrix.arch }}
artifact: build_macos_RelWithDebInfo_${{ matrix.arch }}
type: arc
delimiter: "-"
target: ${{ contains(github.event.pull_request.labels.*.name, 'release') && 'release' || 'dev' }}
clt_rhel_dev_installation:
name: Testing RHEL dev packages installation
needs: publish_rhel
strategy:
fail-fast: false
matrix:
image: [ "almalinux:8", "almalinux:9", "almalinux:10", "oraclelinux:9", "amazonlinux:latest" ]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/clt@0.7.8
with:
image: ${{ matrix.image }}
test_prefix: test/clt-tests/installation/rhel-dev-
ui_host: "https://clt.manticoresearch.com"
clt_deb_dev_installation:
name: Testing DEB dev packages installation
needs: publish_debian_ubuntu
strategy:
fail-fast: false
matrix:
image: [ "ubuntu:bionic", "ubuntu:focal", "ubuntu:jammy", "debian:bullseye", "debian:bookworm" ]
runs-on: ubuntu-22.04
steps:
- uses: manticoresoftware/clt@0.7.8
with:
image: ${{ matrix.image }}
test_prefix: test/clt-tests/installation/deb-dev-
ui_host: "https://clt.manticoresearch.com"
================================================
FILE: .github/workflows/test.yml
================================================
name: 🔬 Test
run-name: 🔬 Test ${{ github.sha }}
#on: workflow_call
on:
push:
branches:
- master
- manticore-*
paths-ignore:
- 'manual/**'
- '!manual/References.md'
- '.translation-cache/**'
- 'cmake/GetGALERA.cmake'
- 'galera_packaging/**'
pull_request:
branches: [ master, update-buddy-version ]
paths-ignore:
- 'manual/**'
- '!manual/References.md'
- '.translation-cache/**'
- 'cmake/GetGALERA.cmake'
- 'galera_packaging/**'
types: [opened, synchronize, reopened, labeled, unlabeled]
# cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch)
concurrency:
group: test_${{ github.ref }}
cancel-in-progress: true
# Note: Many build jobs skip execution for PRs targeting 'update-buddy-version' branch
# as these PRs only update dependency versions and don't require full builds/tests
jobs:
meta:
name: Meta
runs-on: ubuntu-22.04
outputs:
columnar_locator: ${{ steps.set_locator.outputs.columnar_locator }}
branch_name: ${{ steps.check_branch.outputs.branch_name }}
branch_tag: ${{ steps.sanitize_branch.outputs.branch_tag }}
source_hash: ${{ steps.source_hash.outputs.source_hash }}
image_exists: ${{ steps.image_check.outputs.image_exists }}
image_tag: ${{ steps.image_check.outputs.image_tag }}
image_commit: ${{ steps.image_check.outputs.image_commit }}
image_source_hash: ${{ steps.image_check.outputs.image_source_hash }}
source: ${{ steps.detect.outputs.source }}
test: ${{ steps.detect.outputs.test }}
clt: ${{ steps.detect.outputs.clt }}
changes_detected: ${{ steps.calc.outputs.changes_detected }} # any relevant change (source/test/clt)
skip_builds: ${{ steps.calc.outputs.skip_builds }} # only CLT tests changed and cached test-kit image exists
run_builds: ${{ steps.calc.outputs.run_builds }} # build/ubertest jobs
run_image_build: ${{ steps.calc.outputs.run_image_build }} # build test-kit image
run_clt: ${{ steps.calc.outputs.run_clt }} # run CLT workflow
run_image_push: ${{ steps.calc.outputs.run_image_push }} # push test-kit image tags
skip_clt_reason: ${{ steps.related_prs.outputs.skip_clt_reason }} # explanation for CLT skip
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Commit info
run: |
echo "# Automated Tests of commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY
echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
- name: Check if branch exists in manticoresoftware/columnar
id: check_branch
run: |
# Extract the actual branch name for pull requests
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
else
BRANCH_NAME="${{ github.ref_name }}"
fi
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/manticoresoftware/columnar/branches/$BRANCH_NAME)
if [ "$HTTP_STATUS" -eq "200" ]; then
echo "branch_exists=true" >> $GITHUB_OUTPUT
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
else
echo "branch_exists=false" >> $GITHUB_OUTPUT
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
fi
- name: Sanitize branch name for tags
id: sanitize_branch
run: |
sanitize_tag() {
local name=$1
name=$(echo "$name" | tr '/' '_')
name=$(echo "$name" | sed 's/[^a-zA-Z0-9_.-]//g')
echo "$name"
}
branch_name="${{ steps.check_branch.outputs.branch_name }}"
branch_tag=$(sanitize_tag "$branch_name")
echo "branch_tag=$branch_tag" >> $GITHUB_OUTPUT
- name: Calculate source hash
id: source_hash
run: |
set -euo pipefail
if [[ "${{ steps.check_branch.outputs.branch_exists }}" == "true" ]]; then
git clone --depth 1 --branch "${{ steps.check_branch.outputs.branch_name }}" https://github.com/manticoresoftware/columnar.git columnar
rm -rf columnar/.git
fi
HASH=$(find . -type f ! -path "./test/clt-tests/*" ! -path "./columnar/test/clt-tests/*" ! -path "./.git/*" -print0 | sort -z | xargs -0 md5sum | md5sum | awk '{print $1}')
echo "source_hash=$HASH" >> $GITHUB_OUTPUT
- name: Check for existing test kit image
id: image_check
env:
REPO_OWNER: ${{ github.repository_owner }}
run: |
set -euo pipefail
TAG="test-kit-${{ steps.sanitize_branch.outputs.branch_tag }}-${{ steps.source_hash.outputs.source_hash }}"
if docker manifest inspect "ghcr.io/${REPO_OWNER}/manticoresearch:${TAG}" > /dev/null 2>&1; then
echo "image_exists=true" >> $GITHUB_OUTPUT
echo "* Reusing cached test-kit image tag: ${TAG}." >> $GITHUB_STEP_SUMMARY
docker pull "ghcr.io/${REPO_OWNER}/manticoresearch:${TAG}" > /dev/null
image_commit=$(docker inspect -f '{{ index .Config.Labels "org.manticore.testkit.commit" }}' "ghcr.io/${REPO_OWNER}/manticoresearch:${TAG}" || true)
image_source_hash=$(docker inspect -f '{{ index .Config.Labels "org.manticore.testkit.source_hash" }}' "ghcr.io/${REPO_OWNER}/manticoresearch:${TAG}" || true)
echo "image_commit=${image_commit}" >> $GITHUB_OUTPUT
echo "image_source_hash=${image_source_hash}" >> $GITHUB_OUTPUT
else
echo "image_exists=false" >> $GITHUB_OUTPUT
echo "image_commit=" >> $GITHUB_OUTPUT
echo "image_source_hash=" >> $GITHUB_OUTPUT
fi
echo "image_tag=${TAG}" >> $GITHUB_OUTPUT
- name: Set Columnar Locator
id: set_locator
run: |
if [[ "${{ github.ref_name }}" != "master" && "${{ steps.check_branch.outputs.branch_exists }}" == "true" ]]; then
echo "columnar_locator=GIT_REPOSITORY https://github.com/manticoresoftware/columnar.git GIT_TAG ${{ steps.check_branch.outputs.branch_name }}" >> $GITHUB_OUTPUT
else
echo "columnar_locator=" >> $GITHUB_OUTPUT
fi
- name: Detect changed files and categories
id: detect
shell: bash
run: |
set -euo pipefail
head="${{ github.sha }}"
base=""
if [[ -n "${{ steps.image_check.outputs.image_commit }}" ]]; then
base="${{ steps.image_check.outputs.image_commit }}"
elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
base="${{ github.event.pull_request.base.sha }}"
head="${{ github.event.pull_request.head.sha }}"
else
base="${{ github.event.before }}"
fi
files=""
if [[ -z "$base" || "$base" == "0000000000000000000000000000000000000000" ]]; then
files=$(git ls-tree -r --name-only "$head")
else
if ! git cat-file -e "$base^{commit}" 2>/dev/null; then
git fetch --no-tags --depth=1 origin "$base"
fi
files=$(git diff --name-only "$base" "$head")
fi
{
echo "### Changed files"
echo "* Base: ${base:-'(none)'}"
echo "* Head: ${head}"
if [[ -n "${{ steps.image_check.outputs.image_commit }}" ]]; then
echo "* Using image commit as base"
fi
} >> "$GITHUB_STEP_SUMMARY"
if [[ -z "$files" && "$base" == "$head" ]]; then
echo "* No diff (base == head); forcing full run" >> "$GITHUB_STEP_SUMMARY"
files="__force_all__"
fi
if [[ -n "$files" ]]; then
echo "$files" | sed 's/^/* /' >> "$GITHUB_STEP_SUMMARY"
else
echo "* (no files)" >> "$GITHUB_STEP_SUMMARY"
fi
export FILES="$files"
python3 - <<'PY'
import os
files = os.environ.get("FILES", "").splitlines()
source = False
test = False
clt = False
for path in files:
if not path:
continue
if path == "__force_all__":
source = True
elif path.startswith("test/clt-tests/"):
clt = True
elif path.startswith("test/"):
test = True
elif path.startswith("manual/") or path.startswith("doc/"):
pass
else:
source = True
output = os.environ["GITHUB_OUTPUT"]
with open(output, "a", encoding="utf-8") as fh:
fh.write(f"source={'true' if source else 'false'}\n")
fh.write(f"test={'true' if test else 'false'}\n")
fh.write(f"clt={'true' if clt else 'false'}\n")
PY
- name: Check related PRs for branch
id: related_prs
run: |
set -euo pipefail
reason=""
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
for repo in columnar manticoresearch-buddy; do
response="$( (curl -sSL -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository_owner }}/$repo/pulls?state=open&head=${{ github.repository_owner }}:${{ github.event.pull_request.head.ref }}&per_page=1" || true) | tr -d '[:space:]')"
if [[ "$response" != "[]" && "$response" != "" ]]; then
reason+="$repo: open PR for ${{ github.repository_owner }}:${{ github.event.pull_request.head.ref }} | "
fi
done
reason="${reason%% | }"
fi
echo "skip_clt_reason=$reason" >> "$GITHUB_OUTPUT"
- name: Calculate gating
id: calc
run: |
set -euo pipefail
changes_detected=false
if [[ "${{ steps.detect.outputs.source }}" == "true" || "${{ steps.detect.outputs.test }}" == "true" || "${{ steps.detect.outputs.clt }}" == "true" ]]; then
changes_detected=true
fi
skip_builds=false
if [[ "${{ steps.detect.outputs.clt }}" == "true" && "${{ steps.detect.outputs.source }}" != "true" && "${{ steps.detect.outputs.test }}" != "true" && "${{ steps.image_check.outputs.image_exists }}" == "true" ]]; then
skip_builds=true
fi
run_builds=false
if [[ "$changes_detected" == "true" && "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.base.ref }}" == "update-buddy-version" ]]; then
run_builds=false
elif [[ "$changes_detected" == "true" && "$skip_builds" == "false" ]]; then
run_builds=true
fi
run_image_build="$changes_detected"
run_clt="$changes_detected"
skip_clt_tag=false
if git tag --points-at HEAD | grep -qx "skip_clt"; then
skip_clt_tag=true
run_clt=false
fi
if [[ -n "${{ steps.related_prs.outputs.skip_clt_reason }}" ]]; then
run_clt=false
fi
run_image_push=false
if [[ "$changes_detected" == "true" && "${{ steps.image_check.outputs.image_exists }}" != "true" ]]; then
run_image_push=true
fi
echo "changes_detected=$changes_detected" >> "$GITHUB_OUTPUT"
echo "skip_builds=$skip_builds" >> "$GITHUB_OUTPUT"
echo "run_builds=$run_builds" >> "$GITHUB_OUTPUT"
echo "run_image_build=$run_image_build" >> "$GITHUB_OUTPUT"
echo "run_clt=$run_clt" >> "$GITHUB_OUTPUT"
echo "run_image_push=$run_image_push" >> "$GITHUB_OUTPUT"
echo "skip_clt_tag=$skip_clt_tag" >> "$GITHUB_OUTPUT"
- name: Summarize gating
run: |
{
echo "### Gate decisions"
echo "* Changes detected (source/test/CLT): ${{ steps.calc.outputs.changes_detected }}"
echo "* Skip builds/ubertests (only CLT changes + cached image): ${{ steps.calc.outputs.skip_builds }}"
echo "* Run build/ubertest jobs: ${{ steps.calc.outputs.run_builds }}"
echo "* Build test-kit image: ${{ steps.calc.outputs.run_image_build }}"
echo "* Run CLT tests: ${{ steps.calc.outputs.run_clt }}"
echo "* Push test-kit image tags: ${{ steps.calc.outputs.run_image_push }}"
if [[ "${{ steps.calc.outputs.skip_clt_tag }}" == "true" ]]; then
echo "* CLT skip reason: skip_clt tag on commit"
fi
if [[ -n "${{ steps.related_prs.outputs.skip_clt_reason }}" ]]; then
echo "* CLT skip reason: ${{ steps.related_prs.outputs.skip_clt_reason }}"
fi
} >> "$GITHUB_STEP_SUMMARY"
win_bundle:
# Skip build jobs for PRs targeting 'update-buddy-version' branch (buddy version updates don't need full builds)
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: Windows supplementary files preparation
runs-on: ubuntu-22.04
steps:
- name: Check out cache
id: cache
uses: actions/cache@v4
with:
path: |
bundle
boost_1_75_0
enableCrossOsArchive: true
key: win_bundle
lookup-only: true
- name: Extract Windows bundle from Windows sysroot
if: steps.cache.outputs.cache-hit != 'true'
run: |
wget https://repo.manticoresearch.com/repository/sysroots/roots_apr15/sysroot_windows_x64.tar.xz
tar -xvf sysroot_windows_x64.tar.xz
mv diskc/winbundle bundle
- name: Extract Boost to put it to the cache
if: steps.cache.outputs.cache-hit != 'true'
run: |
wget https://repo.manticoresearch.com/repository/ci/boost_1_75_0.tgz
tar -xf boost_1_75_0.tgz
build_linux_debug:
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: Linux debug build
uses: ./.github/workflows/build_template.yml
with:
CTEST_CONFIGURATION_TYPE: "Debug"
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
artifact_name: debug_build
cache_key: build_linux_debug_x86_64
cmake_command: |
export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
ctest -VV -S misc/ctest/gltest.cmake --no-compress-output
test_linux_debug:
if: (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'update-buddy-version') != true
name: Linux debug mode tests
needs: [build_linux_debug, meta]
uses: ./.github/workflows/test_template.yml
with:
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
build_artifact_name: debug_build
artifact_name: debug_test_results
results_name: "Linux debug test results"
timeout: 10
build_linux_release:
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: Linux release build
uses: ./.github/workflows/build_template.yml
with:
artifact_name: release_build
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
cache_key: build_linux_release_x86_64
artifact_list: "build/xml build/CMakeFiles/CMake*.log build/api/libsphinxclient/testcli build/src/indexer build/src/indextool build/src/searchd build/src/tests build/src/gtests/gmanticoretest build/config/*.c build/config/*.h build/**/*.cxx build/**/*.gcno build/manticore*deb"
cmake_command: |
export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
export PACK=1
export PACK_KEEP_TESTS=1
ctest -VV -S misc/ctest/gltest.cmake --no-compress-output
cmake --build build --target package
test_linux_release_mcl:
if: (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'update-buddy-version') != true
name: Linux release mode tests (MCL)
needs: [build_linux_release, meta]
uses: ./.github/workflows/test_template.yml
with:
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
build_artifact_name: release_build
artifact_name: release_mcl_test_results
results_name: "Linux release MCL test results"
timeout: 10
INSTALL_MCL_FROM_DEPS: true
FLOAT_TOLERANCE: true
CTEST_EXCLUDE_REGEX: "rt_298|rt_306|rt_481"
test_linux_release:
if: (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'update-buddy-version') != true
name: Linux release mode tests
needs: [build_linux_release, meta]
uses: ./.github/workflows/test_template.yml
with:
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
build_artifact_name: release_build
artifact_name: release_test_results
results_name: "Linux release test results"
timeout: 10
# When only CLT changed and a cached image exists, build jobs are skipped. A job that needs
# build_linux_release would then be skipped too (GitHub skips dependents of skipped jobs),
# so we use a separate reuse-only job that only needs meta. That way CLT always runs when
# run_clt is true and we have a test-kit image (either built or reused).
test_kit_docker_reuse:
name: Test Kit docker image (reuse cache)
needs: [meta]
if: needs.meta.outputs.run_image_build == 'true' && needs.meta.outputs.image_exists == 'true'
runs-on: ubuntu-22.04
steps:
- name: Checkout repository # We have to checkout to access .github/workflows/ in further steps
uses: actions/checkout@v3
- name: Reuse cached test kit image
env:
REPO_OWNER: ${{ github.repository_owner }}
IMAGE_TAG: ${{ needs.meta.outputs.image_tag }}
run: |
set -euo pipefail
IMAGE="ghcr.io/${REPO_OWNER}/manticoresearch:${IMAGE_TAG}"
docker pull "$IMAGE"
docker tag "$IMAGE" test-kit:img
docker create --name manticore-test-kit-src --entrypoint /bin/sh test-kit:img -c "true"
docker export manticore-test-kit-src > manticore_test_kit.img
docker rm manticore-test-kit-src
- name: Upload docker image artifact
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: manticore_test_kit.img
path: manticore_test_kit.img
test_kit_docker_build:
name: Test Kit docker image
needs:
- build_linux_release
- meta
if: needs.meta.outputs.run_image_build == 'true' && needs.meta.outputs.image_exists != 'true'
runs-on: ubuntu-22.04
outputs:
out-build: ${{ steps.build.outputs.build_image }}
steps:
- name: Checkout repository # We have to checkout to access .github/workflows/ in further steps
uses: actions/checkout@v3
- name: Download built x86_64 Ubuntu Jammy packages
uses: manticoresoftware/download_artifact_with_retries@v3
with:
name: release_build
path: .
# Uncomment this shortcut for debug to save time by not preparing the packages in the pack_jammy job
# - run: |
# wget http://dev2.manticoresearch.com/build_jammy_RelWithDebInfo_x86_64.zip
# unzip build_jammy_RelWithDebInfo_x86_64.zip
# tar -xvf artifact.tar
- name: Calculate short commit hash
id: sha
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Building docker
id: build
run: |
BUILD_COMMIT=${{ steps.sha.outputs.sha_short }} /bin/bash dist/test_kit_docker_build.sh
echo "build_image=ghcr.io/$REPO_OWNER/manticoresearch:test-kit-${{ steps.sha.outputs.sha_short }}" >> $GITHUB_OUTPUT
- name: Upload docker image artifact
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: manticore_test_kit.img
path: manticore_test_kit.img
clt:
if: always() && needs.meta.outputs.run_clt == 'true' && (needs.test_kit_docker_build.result == 'success' || needs.test_kit_docker_reuse.result == 'success')
name: CLT
needs: [test_kit_docker_build, test_kit_docker_reuse, meta]
uses: ./.github/workflows/clt_tests.yml
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
JINA_API_KEY: ${{ secrets.JINA_API_KEY }}
with:
docker_image: test-kit:img
artifact_name: manticore_test_kit.img
repository: ${{ github.repository }}
ref: ${{ github.sha }}
test_kit_docker_push:
if: always() && needs.meta.outputs.run_image_push == 'true'
needs:
- clt
- meta
- test_kit_docker_build
- test_kit_docker_reuse
- test_linux_debug
- test_linux_release
- test_linux_release_mcl
- test_windows
name: Push Test Kit docker image to repo
runs-on: ubuntu-22.04
env:
GHCR_USER: ${{ vars.GHCR_USER }}
GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }}
REPO_OWNER: ${{ github.repository_owner }}
SOURCE_HASH: ${{ needs.meta.outputs.source_hash }}
BRANCH_TAG: ${{ needs.meta.outputs.branch_tag }}
HASH_TAG_OK: ${{ needs.test_linux_debug.result == 'success' && needs.test_linux_release.result == 'success' && needs.test_linux_release_mcl.result == 'success' && needs.test_windows.result == 'success' }}
IMAGE_BUILD_COMMIT: ${{ github.sha }}
steps:
- name: Checkout repository # We have to checkout to access .github/workflows/ in further steps
uses: actions/checkout@v3
- name: Download artifact
uses: manticoresoftware/download_artifact_with_retries@main
with:
name: manticore_test_kit.img
path: .
- name: Calculate short commit hash
id: sha
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Pushing docker image to repo
id: test-kit-push
run: |
TEST_RESULT=${{ needs.clt.result }} BUILD_COMMIT=${{ steps.sha.outputs.sha_short }} /bin/bash dist/test_kit_docker_push.sh
build_aarch64:
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: Linux aarch64 build
uses: ./.github/workflows/build_template.yml
# Use -VV instead of -V below for more verbose output
with:
arch: aarch64
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
cmake_command: |
mkdir build
cd build
export CMAKE_TOOLCHAIN_FILE=$(pwd)/../dist/build_dockers/cross/linux.cmake
ctest -V -S ../misc/ctest/justbuild.cmake -DCTEST_SOURCE_DIRECTORY=.. --no-compress-output
cache_key: build_jammy_aarch64
build_freebsd:
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: FreeBSD x86_64 build
uses: ./.github/workflows/build_template.yml
with:
DISTR: freebsd13
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
boost_url_key: none
cmake_command: |
mkdir build
cd build
export CMAKE_TOOLCHAIN_FILE=$(pwd)/../dist/build_dockers/cross/freebsd.cmake
ctest -VV -S ../misc/ctest/justbuild.cmake -DCTEST_SOURCE_DIRECTORY=.. --no-compress-output
cache_key: build_freebsd_x86_64
build_windows:
if: needs.meta.outputs.run_builds == 'true'
needs: [meta]
name: Windows x64 build
uses: ./.github/workflows/build_template.yml
with:
DISTR: windows
arch: x64
sysroot_url_key: roots_mysql83_jan17
boost_url_key: boost_80
CTEST_CMAKE_GENERATOR: "Ninja Multi-Config"
CTEST_CONFIGURATION_TYPE: Debug
cache_key: build_windows_x64
artifact_list: "build/xml build/src/Debug/indexer.exe build/src/Debug/indexer.pdb build/src/Debug/searchd.exe build/src/Debug/searchd.pdb build/src/gtests/Debug/gmanticoretest.exe build/src/gtests/Debug/gmanticoretest.pdb build/src/Debug/*.dll build/src/gtests/Debug/*.dll build/config/*.c build/config/*.h"
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
test_windows:
if: (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'update-buddy-version') != true
name: Windows tests
needs: [build_windows, win_bundle, meta]
uses: ./.github/workflows/win_test_template.yml
with:
CTEST_START: 1
CTEST_END: 999999
COLUMNAR_LOCATOR: ${{ needs.meta.outputs.columnar_locator }}
artifact_name: windows_test_results
final_status:
name: Final status
needs:
- build_linux_debug
- test_linux_debug
- build_linux_release
- test_linux_release
- test_linux_release_mcl
- build_windows
- test_windows
- build_freebsd
- build_aarch64
- clt
- meta
if: always()
runs-on: ubuntu-22.04
steps:
- name: Fail if any required job failed
run: |
set -euo pipefail
failed=0
results=(
"build_linux_debug:${{ needs.build_linux_debug.result }}"
"test_linux_debug:${{ needs.test_linux_debug.result }}:${{ needs.test_linux_debug.outputs.test_outcome }}"
"build_linux_release:${{ needs.build_linux_release.result }}"
"test_linux_release:${{ needs.test_linux_release.result }}:${{ needs.test_linux_release.outputs.test_outcome }}"
"test_linux_release_mcl:${{ needs.test_linux_release_mcl.result }}:${{ needs.test_linux_release_mcl.outputs.test_outcome }}"
"build_windows:${{ needs.build_windows.result }}"
"test_windows:${{ needs.test_windows.result }}:${{ needs.test_windows.outputs.test_outcome }}"
"build_freebsd:${{ needs.build_freebsd.result }}"
"build_aarch64:${{ needs.build_aarch64.result }}"
)
{
echo "### Final status"
for entry in "${results[@]}"; do
name="${entry%%:*}"
rest="${entry#*:}"
result="${rest%%:*}"
outcome="${rest#*:}"
if [[ "$name" == test_* ]]; then
if [[ "$outcome" != "$result" && -n "$outcome" ]]; then
echo "* $name: $result (ctest: $outcome)"
else
echo "* $name: $result"
fi
else
echo "* $name: $result"
fi
done
if [[ "${{ needs.meta.outputs.run_clt }}" == "true" ]]; then
echo "* clt: ${{ needs.clt.result }}"
fi
} >> "$GITHUB_STEP_SUMMARY"
for entry in "${results[@]}"; do
name="${entry%%:*}"
rest="${entry#*:}"
result="${rest%%:*}"
outcome="${rest#*:}"
if [[ "$name" == test_* && "$result" == "success" && "$outcome" == "failure" ]]; then
echo "$name: ctest failed"
failed=1
continue
fi
if [[ "$result" == "failure" || "$result" == "cancelled" ]]; then
echo "$name: $result"
failed=1
fi
done
if [[ "${{ needs.meta.outputs.run_clt }}" == "true" ]]; then
result="${{ needs.clt.result }}"
if [[ "$result" == "failure" || "$result" == "cancelled" ]]; then
echo "clt: $result"
failed=1
fi
fi
if [[ "$failed" -ne 0 ]]; then
echo "* Overall: failure" >> "$GITHUB_STEP_SUMMARY"
echo "One or more build/test jobs failed"
exit 1
fi
echo "* Overall: success" >> "$GITHUB_STEP_SUMMARY"
================================================
FILE: .github/workflows/test_template.yml
================================================
name: Test Template
on:
workflow_call:
inputs:
WITH_COVERAGE:
required: false
type: number
default: 0
CTEST_START:
required: false
type: number
default: 1
CTEST_END:
required: false
type: number
default: 999999
CTEST_EXCLUDE_REGEX:
required: false
type: string
default: ""
UNITY_BUILD:
required: false
type: number
default: 1
FLOAT_TOLERANCE:
required: false
type: boolean
default: false
artifact_name:
required: true
type: string
build_artifact_name:
required: true
type: string
results_name:
required: true
type: string
timeout:
required: false
type: number
default: 60
xml_command:
required: false
type: string
default: "cd build; cp -r Testing/2*/Test.xml .; xsltproc -o junit_tests.xml ../misc/junit/ctest2junit.xsl Test.xml"
COLUMNAR_LOCATOR:
required: false
type: string
default: ""
INSTALL_MCL_FROM_DEPS:
required: false
type: boolean
default: false
outputs:
test_outcome:
description: Outcome of the test step (success/failure)
value: ${{ jobs.test.outputs.test_outcome }}
jobs:
test:
name: ${{ inputs.CTEST_START }}_${{ inputs.CTEST_END }}
runs-on: ubuntu-22.04
timeout-minutes: ${{ inputs.timeout }}
continue-on-error: true
outputs:
test_outcome: ${{ steps.test.outcome }}
defaults:
run:
shell: bash
container:
image: manticoresearch/ubertests_public:331
env:
DIAGNOSTIC: 1
CACHEB: ../cache
NO_BUILD: 1
CTEST_START: ${{ inputs.CTEST_START }}
CTEST_END: ${{ inputs.CTEST_END }}
CTEST_EXCLUDE_REGEX: ${{ inputs.CTEST_EXCLUDE_REGEX }}
# The following is useful to test a specific test, just uncomment it, no need to disable CTEST_START/END
# CTEST_REGEX: test_234
WITH_COVERAGE: ${{ inputs.WITH_COVERAGE }}
LIBS_BUNDLE:
UNITY_BUILD: ${{ inputs.UNITY_BUILD }}
FLOAT_TOLERANCE: ${{ inputs.FLOAT_TOLERANCE }}
COLUMNAR_LOCATOR: ${{ inputs.COLUMNAR_LOCATOR }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Tests container entrypoint
run: bash /entry_point.sh &
- name: Check out cache before building
uses: actions/cache@v4
with:
path: cache
enableCrossOsArchive: true
key: build_linux_debug_x86_64
- name: Download build artifacts
uses: manticoresoftware/download_artifact_with_retries@v3
with:
name: ${{ inputs.build_artifact_name }}
path: .
- name: Install manticore-columnar-lib from deps.txt
if: ${{ inputs.INSTALL_MCL_FROM_DEPS }}
run: |
set -euo pipefail
MCL_VERSION="$(awk '$1=="mcl"{print $2; exit}' deps.txt)"
if [[ -z "${MCL_VERSION}" ]]; then
echo "mcl version was not found in deps.txt"
exit 1
fi
MCL_VERSION_URL="${MCL_VERSION//+/%2B}"
PACKAGE_NAME="manticore-columnar-lib_${MCL_VERSION_URL}_amd64.deb"
REPOS=(
"https://repo.manticoresearch.com/repository/manticoresearch_jammy_dev/dists/jammy/main/binary-amd64"
"https://repo.manticoresearch.com/repository/manticoresearch_jammy_release_candidate/dists/jammy/main/binary-amd64"
"https://repo.manticoresearch.com/repository/manticoresearch_jammy/dists/jammy/main/binary-amd64"
)
PACKAGE_URL=""
for repo in "${REPOS[@]}"; do
candidate="${repo}/${PACKAGE_NAME}"
if curl -fsSLI "${candidate}" >/dev/null; then
PACKAGE_URL="${candidate}"
break
fi
done
if [[ -z "${PACKAGE_URL}" ]]; then
echo "could not find ${PACKAGE_NAME} in jammy dev/release_candidate/release repos"
exit 1
fi
echo "Installing ${PACKAGE_URL}"
export DEBIAN_FRONTEND=noninteractive
apt-get -y remove 'manticore-repo'
rm /etc/apt/sources.list.d/manticoresearch.list
apt-get update
apt-get -y install wget
curl -fsSL https://repo.manticoresearch.com/manticore-repo.noarch.deb -o /tmp/manticore-repo.noarch.deb
dpkg -i /tmp/manticore-repo.noarch.deb
curl -fsSL "${PACKAGE_URL}" -o /tmp/manticore-columnar-lib.deb
dpkg -i /tmp/manticore-columnar-lib.deb
- name: List files
run: find .
- name: 🚀 Test
id: test
# --timeout may be not working https://gitlab.kitware.com/cmake/cmake/-/issues/23979
# use -VV instead of -V to get more verbose output
run: |
ctest -V -S misc/ctest/gltest.cmake --no-compress-output --timeout 600
continue-on-error: true
- name: Check test results
if: always()
run: |
if [ "${{ steps.test.outcome }}" == "failure" ]; then
echo "❌ Tests failed ❌"
exit 1
fi
- name: List build files
if: always()
run: find build
continue-on-error: true
- name: Prepare test report xmls
if: always()
continue-on-error: true
run: ${{ inputs.xml_command }}
- name: Upload test artifacts
if: always()
continue-on-error: true
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: ${{ inputs.artifact_name }}
path: "build/xml build/junit*.xml build/status* build/test/error*.txt build/test/*log build/test/test_*/report* build/test/rt_*/report* build/test/col_*/report*"
- name: Publish test results
if: always()
continue-on-error: true
uses: manticoresoftware/publish-unit-test-result-action@v2
with:
check_name: ${{ inputs.results_name }}
files: build/junit*.xml
compare_to_earlier_commit: false
comment_mode: failures
================================================
FILE: .github/workflows/trigger_docs_check.yml
================================================
name: 📖 Trigger doc check
run-name: 📖 Trigger doc check ${{ github.sha }}
# We use this intermediate workflow to workaround the issue with repo secrets unavailable for PR-s from external repos
# The `check_docs` workflow use this one for its `workflow_run` event which let it run without errors
on:
pull_request:
paths:
- 'manual/**'
branches:
- master
- manticore-*
jobs:
trigger_doc_check:
runs-on: ubuntu-24.04
defaults:
run:
shell: bash
steps:
- name: Save PR repo
env:
PR_REPO: ${{ github.event.pull_request.head.repo.full_name }}
PR_REF: ${{ github.event.pull_request.head.ref }}
run: |
echo $PR_REPO > pr_repo.txt
echo $PR_REF >> pr_repo.txt
- name: Upload PR repo name
uses: actions/upload-artifact@v4
with:
name: pr_repo
path: ./pr_repo.txt
- name: Trigger doc check
run: |
echo "Doc check triggered"
================================================
FILE: .github/workflows/win_test_template.yml
================================================
name: Windows Test Template
on:
workflow_call:
inputs:
CTEST_START:
required: false
type: number
default: 1
CTEST_END:
required: false
type: number
default: 999999
artifact_name:
required: true
type: string
COLUMNAR_LOCATOR:
required: false
type: string
default: ""
outputs:
test_outcome:
description: Outcome of the test step (success/failure)
value: ${{ jobs.test_windows.outputs.test_outcome }}
jobs:
test_windows:
name: ${{ inputs.CTEST_START }}_${{ inputs.CTEST_END }}
runs-on: windows-2022
env:
CACHEB: "../cache"
LIBS_BUNDLE: "../bundle"
BOOST_ROOT: "../boost_1_75_0"
CTEST_CMAKE_GENERATOR: "Visual Studio 17 2022"
CTEST_CONFIGURATION_TYPE: Debug
CTEST_START: ${{ inputs.CTEST_START }}
CTEST_END: ${{ inputs.CTEST_END }}
CTEST_RESOURCE: ${{ github.workspace }}\\misc\\ctest\\ubertests\\ubertests_docker_image\\resource.json
# The following is useful to test a specific test, just uncomment it, no need to disable CTEST_START/END
# CTEST_REGEX: test_234
NO_BUILD: 1
COLUMNAR_LOCATOR: ${{ inputs.COLUMNAR_LOCATOR }}
outputs:
test_outcome: ${{ steps.test.outcome }}
steps:
- name: Checkout repository # We have to checkout to access .github/workflows/ in further steps
uses: actions/checkout@v3
- name: Download build artifacts
uses: manticoresoftware/download_artifact_with_retries@v3
with:
name: build_windows_Debug_x64
path: .
- name: Check out Windows bundle cache
uses: actions/cache@v4
with:
path: |
bundle
boost_1_75_0
enableCrossOsArchive: true
key: win_bundle
- name: Remove ZSTD # since it wasn't used to save the cache and if we don't remove it here the cache won't be found. TODO: install zstd in our images, so we don't have to do these hacks
run: rm C:\tools\zstd\zstd.exe
- name: Check out cache
uses: actions/cache@v4
with:
path: cache
enableCrossOsArchive: true
key: build_windows_x64
- name: Run mysql
run: |
C:\PROGRA~1\MySQL\"MySQL Server 8.0"\bin\mysqld.exe --initialize-insecure
C:\PROGRA~1\MySQL\"MySQL Server 8.0"\bin\mysqld.exe --install mysql
net start mysql
mysql -e "create user 'test'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; create database test; create database test1; create database test2; create database test3; create database test4; create database test5; create database test6; create database test7; create database test8; create database test9; grant all on test.* to 'test'@'localhost'; grant all on test1.* to 'test'@'localhost'; grant all on test2.* to 'test'@'localhost'; grant all on test3.* to 'test'@'localhost'; grant all on test4.* to 'test'@'localhost'; grant all on test5.* to 'test'@'localhost'; grant all on test6.* to 'test'@'localhost'; grant all on test7.* to 'test'@'localhost'; grant all on test8.* to 'test'@'localhost'; grant all on test9.* to 'test'@'localhost'; flush privileges;" -uroot
# TODO: Uncomment the below if there's no more OpenSSL in the runner like it happened in Sep 2023 (https://github.com/actions/runner-images/issues/8344)
# - name: Install OpenSSL
# run: powershell.exe ./.github/workflows/Install-OpenSSL.ps1
- name: Setup PHP and mysqli
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mysqli
- name: 🚀 Test
id: test
# --timeout may be not working https://gitlab.kitware.com/cmake/cmake/-/issues/23979
# Add -VV to ctest to display extra debug info
run: ctest -VV -S misc/ctest/gltest.cmake --no-compress-output --timeout 600
continue-on-error: true
- name: Prepare test results
if: always()
shell: bash
run: |
mkdir -p build/test_${{ inputs.CTEST_START }}_${{ inputs.CTEST_END }}
cp -r build/Testing/*/Test.xml build/test_${{ inputs.CTEST_START }}_${{ inputs.CTEST_END }}/
cp -r build/test build/test_${{ inputs.CTEST_START }}_${{ inputs.CTEST_END }}
continue-on-error: true
- name: Upload test artifacts
if: always()
continue-on-error: true
uses: manticoresoftware/upload_artifact_with_retries@v4
with:
name: ${{ inputs.artifact_name }}
path: "build/test*/Test.xml build/test_*/test_*/report* build/test_*/error*.txt build/test_*/*log"
report_windows:
name: Windows tests summary and report
needs: test_windows
runs-on: ubuntu-22.04
container:
image: manticoresearch/ubertests_public:331
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Download test report artifacts
uses: manticoresoftware/download_artifact_with_retries@v3
continue-on-error: true
with:
name: ${{ inputs.artifact_name }}
path: .
- name: Convert the XML to JUnit format
run: |
shopt -s nullglob
for xml in build/test_*/Test.xml; do
out="build/junit_$(basename "$(dirname "$xml")").xml"
xsltproc -o "$out" misc/junit/ctest2junit.xsl "$xml"
done
shell: bash
- name: Publish test results
uses: manticoresoftware/publish-unit-test-result-action@v2
with:
check_name: Windows test results
compare_to_earlier_commit: false
files: build/junit_*.xml
comment_mode: failures
- name: Verify test job result
run: |
if [[ "${{ needs.test_windows.result }}" != "success" ]]; then
echo "Windows tests job failed (result: ${{ needs.test_windows.result }})"
exit 1
fi
shell: bash
================================================
FILE: .gitignore
================================================
# /
/Makefile
/config.status
/config.log
/sphinx-min.conf.dist
/sphinx.conf.dist
/bin
/junk
/*.suo
/*.ncb
/*.sdf
/*.opensdf
/.hg
**/*.bak
# cmake local presets
/CMakeUserPresets.json
# /api/libsphinxclient/
/api/libsphinxclient/*.ncb
/api/libsphinxclient/*.suo
/api/libsphinxclient/*.user
/api/libsphinxclient/debug
/api/libsphinxclient/release
# clion build dir, also reserve /build
/.idea
/test/.idea
/cmake-build*
/build
/buildx64
/build_*
/build-*
/.vs
# /config/
/config/stamp-h1
/config/config.h
# /libstemmer_c/
/libstemmer_c/Makefile
/libstemmer_c/.deps
# /src/
/src/.deps
/src/sphinxversion.h
# /win/
/win/*.user
/win/*.filters
# /doc
/doc/Makefile
# /test
/test/test_*/report.*
/test/test_*/Conf
/test/data
/test/localsettings.inc
/test/error_all.txt
/test/guess.txt
/test/query.log
/test/searchd.log
/test/clt-tests/**/*.rep
/test/clt-tests/**/*.deb
/clt
/agents.md
/test/clt-tests/*repo.noarch.deb.*
/test/clt-tests/**/*.cmp
/test/.cache/
/test/examples.txt
/test/node_prepared_stmt/node_modules
/test/sqlx_prepared_stmt/target
# /test/ql/
/test/ql/data/*.log
/test/ql/data/*.lock
/test/ql/*.class
/test/ql/*.exe
# misc
/cache
/local_*_src.txt
/test/clt-tests/**/*.rep
/test/clt-tests/**/*.cmp
/clt
**/.DS_Store
/test/clt-tests/**/*.deb
/test/clt-tests/*repo.noarch.deb.*
/src/perfetto/perfetto.cc
/src/perfetto/perfetto.h
/.codex
/tmp
# dist
/dist/docker
/.env
/dump.sql
================================================
FILE: .gitlab-ci.yml
================================================
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == "master"
- if: $CI_COMMIT_BRANCH =~ /^manticore-.*$/
- if: $CI_COMMIT_BRANCH == "maintenance-release"
# to skip ci add [ci skip] or [skip ci] in commit message in any capitalization,
# or add param when pushing, as: git push -o ci.skip ...
variables:
VERBOSE: 1
UNITY_BUILD: 1
stages:
- mirroring
- routines
- ubertests
- publish
- hooks
# ==================== Mirror repo to github (only 'master' branch) ======================
job_mirror:
stage: mirroring
needs: [ ]
rules:
- if: $CI_COMMIT_BRANCH == "master"
- if: $CI_COMMIT_BRANCH =~ /^manticore-.*$/
- if: $CI_COMMIT_BRANCH == "maintenance-release"
tags:
- dev-host
script:
- rm -fr gitlab_github_sync
- git clone git@gitlab.com:manticoresearch/dev.git gitlab_github_sync
- cd gitlab_github_sync
- git checkout $CI_COMMIT_BRANCH
- git remote add github git@github.com:manticoresoftware/manticoresearch.git
- git fetch github
- git push -u github $CI_COMMIT_BRANCH
cache: {}
# ==================== .helper build ======================
.build:
stage: routines
interruptible: true
needs: [ ]
tags:
- docker-free
image: manticoresearch/external_toolchain:vcpkg331_20250114
variables:
CACHEB: "../cache"
DIAGNOSTIC: 1 # let's set it by default forever
NO_TESTS: 1
CTEST_CMAKE_GENERATOR: Ninja
CTEST_CONFIGURATION_TYPE: RelWithDebInfo # most common default
DISTR: jammy # our default build for tests
arch: x86_64
boost: boost_nov22
sysroot: roots_nov22
script:
- ctest -VV -S misc/ctest/gltest.cmake --no-compress-output
- exit_code=$?
- if [ $exit_code -ne 0 ]; then echo "Previous command failed"; fi;
- echo -e "\e[0Ksection_start:`date +%s`:xml_pack\r\e[0KCopy xml artifacts"
- cd build && mkdir xml
- cp -r Testing/2*/*.xml xml
- echo -e "\e[0Ksection_end:`date +%s`:xml_pack\r\e[0K"
cache:
paths:
- cache
key: jammy_test
artifacts:
when: on_success
expire_in: 12 hrs
paths:
- build/xml
- build/CMakeFiles/CMake*.log
- build/api/libsphinxclient/testcli
- build/src/indexer
- build/src/indextool
- build/src/searchd
- build/src/gtests/gmanticoretest
- build/**/*.h
- build/**/*.c
- build/**/*.cxx
- build/**/*.gcno
# ==================== .helper testing ======================
.tests:
stage: ubertests
needs: [ ]
tags:
- specdocker
image: manticoresearch/ubertests_public:331
variables:
DIAGNOSTIC: 1 # let's set it by default forever
CACHEB: "../cache"
script:
- ctest -V -S misc/ctest/gltest.cmake --no-compress-output
after_script:
- cd build
- cp -r Testing/2*/Test.xml .
- xsltproc -o junit_tests.xml ../misc/junit/ctest2junit.xsl Test.xml
cache:
key: jammy_test
paths:
- cache
artifacts:
expire_in: 12 hrs
when: always
reports:
junit: build/junit_tests.xml
paths:
- build/junit_tests.xml
- build/test/test_*/**
- build/test/rt_*/**
- build/test/col_*/**
- build/test/error*.txt
- build/test/searchd*.log
retry: 1
# ==================== Simple build, then test ======================
simple_build:
extends: [ .build ]
before_script:
- export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
variables:
CTEST_CMAKE_GENERATOR: "Unix Makefiles" # as Ninja fails with coverage
CTEST_CONFIGURATION_TYPE: "Debug"
WITH_COVERAGE: 1
UNITY_BUILD: 0
simple_tests:
extends: [ .tests ]
needs: [ simple_build ]
variables:
CTEST_CONFIGURATION_TYPE: "Debug"
WITH_COVERAGE: 1
NO_BUILD: 1
UNITY_BUILD: 0
# ==================== Release build, then test ======================
release_build:
extends: [ .build ]
before_script:
- export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
release_tests:
extends: [ .tests ]
needs: [ release_build ]
variables:
CTEST_CONFIGURATION_TYPE: "RelWithDebInfo"
NO_BUILD: 1
# ==================== Windows build, then test ======================
win_build:
extends: [ .build ]
variables:
DISTR: windows
arch: x64
sysroot: roots_mysql83_jan17
boost: boost_80
CTEST_CMAKE_GENERATOR: "Ninja Multi-Config"
CTEST_CONFIGURATION_TYPE: Debug
artifacts:
paths:
- build/xml
- build/src/$CTEST_CONFIGURATION_TYPE/indexer.exe
- build/src/$CTEST_CONFIGURATION_TYPE/searchd.exe
- build/src/gtests/$CTEST_CONFIGURATION_TYPE/gmanticoretest.exe
- build/src/$CTEST_CONFIGURATION_TYPE/*.dll
- build/src/gtests/$CTEST_CONFIGURATION_TYPE/*.dll
- build/config/*.c
- build/config/*.h
cache:
key: win_test
win_tests:
stage: ubertests
needs: [ win_build ]
tags:
- windev19
variables:
LIBS_BUNDLE: "x:/bundle"
CACHEB: "x:/cache"
BOOST_ROOT: "x:/boost_1_75_0"
CTEST_CMAKE_GENERATOR: "Visual Studio 16 2019"
CTEST_CONFIGURATION_TYPE: Debug
CTEST_EXCLUDE_REGEX: "_466|test_300"
NO_BUILD: 1
script:
- 'net use x: \\\\VBOXSRV\\shared'
- ctest -V -S misc/ctest/gltest.cmake --no-compress-output
after_script:
- cd build
- cp -r Testing/2*/*.xml xml
artifacts:
expire_in: 12 hrs
when: always
paths:
- build/xml
- build/test/test_*/report.*
- build/test/rt_*/report.*
- build/test/col_*/report.*
- build/test/error*.txt
- build/test/searchd*.log
cache: { }
# ==================== Just build arm64 ======================
build_arm:
extends: [ .build ]
variables:
arch: aarch64
before_script:
- export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/linux.cmake
script:
- mkdir build && cd build
- ctest -VV -S ../misc/ctest/justbuild.cmake -DCTEST_SOURCE_DIRECTORY=.. --no-compress-output
cache:
key: $DISTR$arch
# ==================== Just build FreeBSD 13 ======================
build_bsd:
extends: [ .build ]
variables:
DISTR: freebsd13
boost: none
before_script:
- export CMAKE_TOOLCHAIN_FILE=$(pwd)/dist/build_dockers/cross/freebsd.cmake
script:
- mkdir build && cd build
- ctest -VV -S ../misc/ctest/justbuild.cmake -DCTEST_SOURCE_DIRECTORY=.. --no-compress-output
cache:
key: $DISTR$arch
# ==================== Publish (push) pipeline results ======================
# build and upload on regular commits
convert_win_junit:
stage: publish
tags:
- docker
image: manticoresearch/ubertests_public:331
needs:
- win_tests
variables:
GIT_STRATEGY: fetch
script:
- xsltproc -o build/junit_tests.xml misc/junit/ctest2junit.xsl build/xml/Test.xml
artifacts:
paths:
- build/junit_tests.xml
reports:
junit: build/junit_tests.xml
cache: {}
# ==================== Run secondary pipeline ======================
deploy_hook:
stage: hooks
trigger:
include: dist/gitlab-release.yml
forward:
pipeline_variables: true
needs:
- job: simple_tests
artifacts: false
- job: win_tests
artifacts: false
- job: release_tests
artifacts: false
- job: build_arm
artifacts: false
================================================
FILE: .gitmodules
================================================
[submodule "translator"]
path = translator
url = https://github.com/manticoresoftware/translator.git
================================================
FILE: .noindex
================================================
/test/**
/translator/**
================================================
FILE: .translation-cache/Changelog.md.json
================================================
{
"5167106ef1f5f57ff52f6e69322d9f7f584b44f21770d796e9df1fe8cdd6dfb6": {
"original": "**Starting with version 10.1.0, CentOS 7 is no longer supported. Users are encouraged to upgrade to a supported operating system.**\n\n### Breaking Changes\n* \u26a0\ufe0f [v10.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.0.0) [ Issue #540](https://github.com/manticoresoftware/manticoresearch-buddy/issues/540) BREAKING CHANGE: set `layouts=''` as the default for [fuzzy search](Searching/Spell_correction.md#Fuzzy-Search)\n\n### New Features and Improvements\n* \ud83c\udd95 [v10.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.1.0) [ Issue #537](https://github.com/manticoresoftware/manticoresearch-buddy/issues/537) Added built-in [Prometheus exporter](Node_info_and_management/Node_status.md#Prometheus-Exporter)\n* \ud83c\udd95 [v9.8.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.8.0) [ Issue #3409](https://github.com/manticoresoftware/manticoresearch/issues/3409) Added [ALTER TABLE tbl REBUILD KNN](Updating_table_schema_and_settings.md#Rebuilding-a-KNN-index)\n* \ud83c\udd95 [v9.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.7.0) [ Issue #1778](https://github.com/manticoresoftware/manticoresearch/issues/1778) Added automatic embeddings generation (we're not officially announcing it yet, as the code is in the main branch but still needs more testing)\n* \ud83c\udd95 [v9.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.6.0) Bumped KNN API version for auto-embeddings support\n* \ud83c\udd95 [v9.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.5.0) [ Issue #1894](https://github.com/manticoresoftware/manticoresearch/issues/1894) Improved cluster recovery: save `seqno` periodically for faster node restart after crash\n* \ud83c\udd95 [v9.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.4.0) [ Issue #2400](https://github.com/manticoresoftware/manticoresearch/issues/2400) Added support for latest [Logstash](Integration/Logstash.md#Integration-with-Logstash) and Beats",
"translations": {
"chinese": "**\u4ece\u7248\u672c 10.1.0 \u5f00\u59cb\uff0cCentOS 7 \u5c06\u4e0d\u518d\u53d7\u652f\u6301\u3002\u5efa\u8bae\u7528\u6237\u5347\u7ea7\u5230\u53d7\u652f\u6301\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002**\n\n### \u7a81\u7834\u6027\u53d8\u66f4\n* \u26a0\ufe0f [v10.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.0.0) [ \u95ee\u9898 #540](https://github.com/manticoresoftware/manticoresearch-buddy/issues/540) \u7a81\u7834\u6027\u53d8\u66f4\uff1a\u5c06 [\u6a21\u7cca\u641c\u7d22](Searching/Spell_correction.md#Fuzzy-Search) \u7684 `layouts=''` \u8bbe\u4e3a\u9ed8\u8ba4\u503c\n\n### \u65b0\u529f\u80fd\u548c\u6539\u8fdb\n* \ud83c\udd95 [v10.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.1.0) [ \u95ee\u9898 #537](https://github.com/manticoresoftware/manticoresearch-buddy/issues/537) \u65b0\u589e\u5185\u7f6e [Prometheus \u5bfc\u51fa\u5668](Node_info_and_management/Node_status.md#Prometheus-Exporter)\n* \ud83c\udd95 [v9.8.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.8.0) [ \u95ee\u9898 #3409](https://github.com/manticoresoftware/manticoresearch/issues/3409) \u65b0\u589e [ALTER TABLE tbl REBUILD KNN](Updating_table_schema_and_settings.md#Rebuilding-a-KNN-index)\n* \ud83c\udd95 [v9.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.7.0) [ \u95ee\u9898 #1778](https://github.com/manticoresoftware/manticoresearch/issues/1778) \u65b0\u589e\u81ea\u52a8\u5d4c\u5165\u751f\u6210\uff08\u6211\u4eec\u5c1a\u672a\u6b63\u5f0f\u5ba3\u5e03\u6b64\u529f\u80fd\uff0c\u56e0\u4e3a\u4ee3\u7801\u5df2\u5728\u4e3b\u5206\u652f\u4e2d\uff0c\u4f46\u4ecd\u9700\u8981\u66f4\u591a\u6d4b\u8bd5\uff09\n* \ud83c\udd95 [v9.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.6.0) \u4e3a\u81ea\u52a8\u5d4c\u5165\u652f\u6301\u63d0\u5347 KNN API \u7248\u672c\n* \ud83c\udd95 [v9.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.5.0) [ \u95ee\u9898 #1894](https://github.com/manticoresoftware/manticoresearch/issues/1894) \u6539\u8fdb\u96c6\u7fa4\u6062\u590d\uff1a\u5b9a\u671f\u4fdd\u5b58 `seqno` \u4ee5\u52a0\u5feb\u5d29\u6e83\u540e\u7684\u8282\u70b9\u91cd\u542f\n* \ud83c\udd95 [v9.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.4.0) [ \u95ee\u9898 #2400](https://github.com/manticoresoftware/manticoresearch/issues/2400) \u65b0\u589e\u5bf9\u6700\u65b0 [Logstash](Integration/Logstash.md#Integration-with-Logstash) \u548c Beats \u7684\u652f\u6301",
"russian": "**\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 10.1.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CentOS 7 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443.**\n\n### \u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\n* \u26a0\ufe0f [v10.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.0.0) [ Issue #540](https://github.com/manticoresoftware/manticoresearch-buddy/issues/540) \u041a\u0420\u0418\u0422\u0418\u0427\u0415\u0421\u041a\u041e\u0415 \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u0415: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 `layouts=''` \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f [\u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430](Searching/Spell_correction.md#Fuzzy-Search)\n\n### \u041d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\n* \ud83c\udd95 [v10.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/10.1.0) [ Issue #537](https://github.com/manticoresoftware/manticoresearch-buddy/issues/537) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 [\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440 Prometheus](Node_info_and_management/Node_status.md#Prometheus-Exporter)\n* \ud83c\udd95 [v9.8.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.8.0) [ Issue #3409](https://github.com/manticoresoftware/manticoresearch/issues/3409) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 [ALTER TABLE tbl REBUILD KNN](Updating_table_schema_and_settings.md#Rebuilding-a-KNN-index)\n* \ud83c\udd95 [v9.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.7.0) [ Issue #1778](https://github.com/manticoresoftware/manticoresearch/issues/1778) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u043e\u0432 (\u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u0434 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)\n* \ud83c\udd95 [v9.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.6.0) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f API KNN \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0430\u0432\u0442\u043e-\u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u043e\u0432\n* \ud83c\udd95 [v9.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.5.0) [ Issue #1894](https://github.com/manticoresoftware/manticoresearch/issues/1894) \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430: \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 `seqno` \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u0437\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u044f\n* \ud83c\udd95 [v9.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/9.4.0) [ Issue #2400](https://github.com/manticoresoftware/manticoresearch/issues/2400) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 [Logstash](Integration/Logstash.md#Integration-with-Logstash) \u0438 Beats"
},
"is_code_or_comment": false,
"model": "qwen/qwen3-14b",
"updated_at": 1766554689
},
"3a194d5fdb58e522586ab17638c097e123f4db3d262d036adff33d8f1aff1c59": {
"original": "## Version 14.1.0\n\n**Released**: November 7th 2025\n\n\u2764\ufe0f We\u2019d like to extend our heartfelt thanks to [@ricardopintottrdata](https://github.com/ricardopintottrdata) for their work on [PR #3792](https://github.com/manticoresoftware/manticoresearch/pull/3792) and [PR #3828](https://github.com/manticoresoftware/manticoresearch/pull/3828) \u2014 addressing issues around `HAVING` total counts and the `filter with empty name` error \u2014 and to [@jdelStrother](https://github.com/jdelStrother) for their contribution with [PR #3819](https://github.com/manticoresoftware/manticoresearch/pull/3819), which improves handling of `ParseCJKSegmentation` when Jieba support isn\u2019t available. \n\nYour efforts help make the project stronger \u2014 many thanks!\n\n### Recommended libraries\n- Recommended [MCL](https://github.com/manticoresoftware/columnar) version: 8.1.0\n- Recommended [Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy) version: 3.37.0\n\nIf you follow the [official installation guide](https://manticoresearch.com/install/), you don't need to worry about this.\n\n### \u26a0\ufe0f Important\nVersion [v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0) updates the replication protocol. If you are running a replication cluster, you need to:\n - First, cleanly stop all your nodes\n - Then, start the node that was stopped last with `--new-cluster`, using the tool `manticore_new_cluster` in Linux.\n - Read about [restarting a cluster](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md#Restarting-a-cluster) for more details.\n\n### New Features and Improvements\n* \ud83c\udd95 [v14.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.1.0) [ Issue #3047](https://github.com/manticoresoftware/manticoresearch/issues/3047) Added support for `LOCK TABLES` statements generated by mysqldump, improving the safety of logical backups.\n* \u26a0\ufe0f [v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0) [ PR #3896](https://github.com/manticoresoftware/manticoresearch/pull/3896) Added a [progress meter](../Creating_a_cluster/Setting_up_replication/Replication_cluster_status.md#SST-Progress-Metrics) for donor and joiner nodes in replication SST shown in SHOW STATUS.\n* \ud83c\udd95 [v13.16.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.16.0) [ PR #3894](https://github.com/manticoresoftware/manticoresearch/pull/3894) Updated buddy from 3.36.1 to 3.37.0, which adds the \"quorum\" option.\n* \ud83c\udd95 [v13.15.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.15.0) [ PR #3842](https://github.com/manticoresoftware/manticoresearch/pull/3842) [force_bigrams](../Searching/Spell_correction.md#Using-force_bigrams-for-better-transposition-handling) option to fuzzy and autocomplete plugins.",
"translations": {
"chinese": "## \u7248\u672c 14.1.0\n\n**\u53d1\u5e03\u65e5\u671f**\uff1a2025\u5e7411\u67087\u65e5\n\n\u2764\ufe0f \u6211\u4eec\u8877\u5fc3\u611f\u8c22[@ricardopintottrdata](https://github.com/ricardopintottrdata)\u5728[PR #3792](https://github.com/manticoresoftware/manticoresearch/pull/3792)\u548c[PR #3828](https://github.com/manticoresoftware/manticoresearch/pull/3828)\u4e2d\u7684\u5de5\u4f5c\u2014\u2014\u89e3\u51b3\u4e86\u4e0e`HAVING`\u603b\u8ba1\u6570\u548c`filter with empty name`\u9519\u8bef\u76f8\u5173\u7684\u95ee\u9898\u2014\u2014\u4ee5\u53ca[@jdelStrother](https://github.com/jdelStrother)\u5728[PR #3819](https://github.com/manticoresoftware/manticoresearch/pull/3819)\u4e2d\u7684\u8d21\u732e\uff0c\u8be5\u8d21\u732e\u6539\u8fdb\u4e86\u5728\u672a\u63d0\u4f9bJieba\u652f\u6301\u65f6\u5bf9`ParseCJKSegmentation`\u7684\u5904\u7406\u3002\n\n\u60a8\u7684\u52aa\u529b\u4f7f\u9879\u76ee\u66f4\u52a0\u5f3a\u5927\u2014\u2014\u975e\u5e38\u611f\u8c22\uff01\n\n### \u63a8\u8350\u5e93\n- \u63a8\u8350\u7684[MCL](https://github.com/manticoresoftware/columnar)\u7248\u672c\uff1a8.1.0\n- \u63a8\u8350\u7684[Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy)\u7248\u672c\uff1a3.37.0\n\n\u5982\u679c\u60a8\u9075\u5faa[\u5b98\u65b9\u5b89\u88c5\u6307\u5357](https://manticoresearch.com/install/)\uff0c\u5219\u65e0\u9700\u62c5\u5fc3\u6b64\u95ee\u9898\u3002\n\n### \u26a0\ufe0f \u91cd\u8981\n\u7248\u672c[v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0)\u66f4\u65b0\u4e86\u590d\u5236\u534f\u8bae\u3002\u5982\u679c\u60a8\u6b63\u5728\u8fd0\u884c\u590d\u5236\u96c6\u7fa4\uff0c\u5219\u9700\u8981\uff1a\n - \u9996\u5148\uff0c\u5e72\u51c0\u5730\u505c\u6b62\u6240\u6709\u8282\u70b9\n - \u7136\u540e\uff0c\u4f7f\u7528\u5de5\u5177`manticore_new_cluster`\u5728Linux\u4e2d\u4ee5`--new-cluster`\u53c2\u6570\u542f\u52a8\u6700\u540e\u505c\u6b62\u7684\u8282\u70b9\u3002\n - \u6709\u5173[\u91cd\u542f\u96c6\u7fa4](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md#Restarting-a-cluster)\u7684\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u76f8\u5173\u6587\u6863\u3002\n\n### \u65b0\u529f\u80fd\u548c\u6539\u8fdb\n* \ud83c\udd95 [v14.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.1.0) [ Issue #3047](https://github.com/manticoresoftware/manticoresearch/issues/3047) \u6dfb\u52a0\u4e86\u5bf9\u7531mysqldump\u751f\u6210\u7684`LOCK TABLES`\u8bed\u53e5\u7684\u652f\u6301\uff0c\u63d0\u9ad8\u4e86\u903b\u8f91\u5907\u4efd\u7684\u5b89\u5168\u6027\u3002\n* \u26a0\ufe0f [v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0) [ PR #3896](https://github.com/manticoresoftware/manticoresearch/pull/3896) \u5728\u590d\u5236SST\u7684SHOW STATUS\u4e2d\u4e3a\u4f9b\u4f53\u548c\u52a0\u5165\u8282\u70b9\u6dfb\u52a0\u4e86[\u8fdb\u5ea6\u8ba1\u6570\u5668](../Creating_a_cluster/Setting_up_replication/Replication_cluster_status.md#SST-Progress-Metrics)\u3002\n* \ud83c\udd95 [v13.16.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.16.0) [ PR #3894](https://github.com/manticoresoftware/manticoresearch/pull/3894) \u5c06buddy\u4ece3.36.1\u66f4\u65b0\u52303.37.0\uff0c\u65b0\u589e\u4e86\"quorum\"\u9009\u9879\u3002\n* \ud83c\udd95 [v13.15.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.15.0) [ PR #3842](https://github.com/manticoresoftware/manticoresearch/pull/3842) [force_bigrams](../Searching/Spell_correction.md#Using-force_bigrams-for-better-transposition-handling)\u9009\u9879\u7528\u4e8e\u6a21\u7cca\u548c\u81ea\u52a8\u8865\u5168\u63d2\u4ef6\u3002",
"russian": "## \u0412\u0435\u0440\u0441\u0438\u044f 14.1.0\n\n**\u0412\u044b\u043f\u0443\u0449\u0435\u043d\u043e**: 7 \u043d\u043e\u044f\u0431\u0440\u044f 2025 \u0433.\n\n\u2764\ufe0f \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043a\u0440\u0435\u043d\u043d\u0435 \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c [@ricardopintottrdata](https://github.com/ricardopintottrdata) \u0437\u0430 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 [PR #3792](https://github.com/manticoresoftware/manticoresearch/pull/3792) \u0438 [PR #3828](https://github.com/manticoresoftware/manticoresearch/pull/3828) \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430\u043c\u0438 `HAVING` total \u0438 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 `filter with empty name` \u2014 \u0430 \u0442\u0430\u043a\u0436\u0435 [@jdelStrother](https://github.com/jdelStrother) \u0437\u0430 \u0438\u0445 \u0432\u043a\u043b\u0430\u0434 \u0441 [PR #3819](https://github.com/manticoresoftware/manticoresearch/pull/3819), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 `ParseCJKSegmentation`, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Jieba \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430.\n\n\u0412\u0430\u0448\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u2014 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e!\n\n### \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\n- \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f [MCL](https://github.com/manticoresoftware/columnar): 8.1.0\n- \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f [Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy): 3.37.0\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0435 [\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435](https://manticoresearch.com/install/), \u0432\u0430\u043c \u043d\u0435 \u043e \u0447\u0435\u043c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f.\n\n### \u26a0\ufe0f \u0412\u0430\u0436\u043d\u043e\n\u0412\u0435\u0440\u0441\u0438\u044f [v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e:\n - \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0443\u0437\u043b\u044b\n - \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `--new-cluster`, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 `manticore_new_cluster` \u0432 Linux.\n - \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e [\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md#Restarting-a-cluster).\n\n### \u041d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\n* \ud83c\udd95 [v14.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.1.0) [ Issue #3047](https://github.com/manticoresoftware/manticoresearch/issues/3047) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 `LOCK TABLES`, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 mysqldump, \u0447\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u044d\u043a\u0430\u043f\u043e\u0432.\n* \u26a0\ufe0f [v14.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.0.0) [ PR #3896](https://github.com/manticoresoftware/manticoresearch/pull/3896) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d [\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430](../Creating_a_cluster/Setting_up_replication/Replication_cluster_status.md#SST-Progress-Metrics) \u0434\u043b\u044f \u0434\u043e\u043d\u043e\u0440\u0441\u043a\u0438\u0445 \u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0443\u0437\u043b\u043e\u0432 \u0432 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 SST, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0432 SHOW STATUS.\n* \ud83c\udd95 [v13.16.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.16.0) [ PR #3894](https://github.com/manticoresoftware/manticoresearch/pull/3894) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d buddy \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 3.36.1 \u0434\u043e 3.37.0, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u043f\u0446\u0438\u044e \"quorum\".\n* \ud83c\udd95 [v13.15.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.15.0) [ PR #3842](https://github.com/manticoresoftware/manticoresearch/pull/3842) \u041e\u043f\u0446\u0438\u044f [force_bigrams](../Searching/Spell_correction.md#Using-force_bigrams-for-better-transposition-handling) \u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 fuzzy \u0438 autocomplete."
},
"is_code_or_comment": false,
"model": "qwen/qwen3-14b",
"updated_at": 1766554688
},
"b446694053ae5587aae921b182b84721547a89030e0545f632e24a0c93e28566": {
"original": "# Changelog\n\n## Version 15.1.0\n**Released**: December 7th 2025\n\n### Recommended Libraries\n- Recommended [MCL](https://github.com/manticoresoftware/columnar) version: 9.0.0\n- Recommended [Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy) version: 3.40.2\n\nIf you follow the [official installation guide](https://manticoresearch.com/install/), you don't need to worry about this.\n\n## Breaking Changes\n* \u26a0\ufe0f [v15.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.0.0) [ PR #4003](https://github.com/manticoresoftware/manticoresearch/pull/4003) Updated MCL requirement to 9.0.0, bringing uncompressed float-vector storage, block-size change for KNN vectors, and non-buffered reads. This update changes the data format. Older MCL versions won\u2019t be able to read it, but the new version can still read your existing columnar tables without any issues.\n\n### New Features and Improvements\n* \ud83c\udd95 [v15.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.1.0) [ PR #3990](https://github.com/manticoresoftware/manticoresearch/pull/3990) Improved disk chunk flushing log records by breaking the total time into clearer parts.\n* \ud83c\udd95 [v14.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.7.0) [ Issue #3860](https://github.com/manticoresoftware/manticoresearch/issues/3860) Updated Buddy requirement to 3.40.1, which includes an improvement in autocomplete: normalized bigram-separator characters to spaces and filtered out duplicate or malformed suggestion combinations to improve suggestion quality. It also includes a fix for invalid JSON errors in Kafka views and a fix for autocomplete so sorting combinations no longer throws errors when some keys are missing in the score map.\n* \ud83c\udd95 [v14.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.6.0) [ Issue #615](https://github.com/manticoresoftware/manticoresearch-buddy/issues/615) Updated the Manticore Buddy requirement to version 3.39.1, which includes a fix for invalid JSON errors in the KNN plugin and allows Buddy handlers to override the HTTP `Content-Type` so `/metrics` now returns Prometheus text format (`text/plain; version=0.0.4`) instead of JSON, fixing scraping failures.\n* \ud83c\udd95 [v14.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.4.0) [ PR #3942](https://github.com/manticoresoftware/manticoresearch/pull/3942) Updated the Manticore Buddy requirement to 3.38.0, filtering out zero-doc suggestions, improving string-key handling with Ds\\Map, changing memory-usage reporting format in Buddy from KB to bytes for greater precision and enhancing performance, stability, and maintainability.\n* \ud83c\udd95 [v14.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.5.0) [ Issue #3329](https://github.com/manticoresoftware/manticoresearch/issues/3329) Trim extra whitespace and new lines in JSON payloads when logging query requests \u2014 skip leading/trailing spaces to avoid logging malformed JSON.\n* \ud83c\udd95 [v14.3.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.3.0) [ PR #3932](https://github.com/manticoresoftware/manticoresearch/pull/3932) Improved handling of `LOCK TABLES` / `UNLOCK TABLES`: write locks now return warnings instead of errors, read locks are correctly shown in `SHOW LOCKS`, and the overall lock logic behaves consistently.\n* \ud83c\udd95 [v14.2.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.2.0) [ Issue #3891](https://github.com/manticoresoftware/manticoresearch/issues/3891) Added support for arbitrary filter expressions in `JOIN ON` clauses (not just equality comparisons), enabling queries like `... ON t1.id = t2.t1_id AND t2.value = 5`.",
"translations": {
"chinese": "# \u66f4\u65b0\u65e5\u5fd7\n\n## \u7248\u672c 15.1.0\n**\u53d1\u5e03\u65e5\u671f**\uff1a2025 \u5e74 12 \u6708 7 \u65e5\n\n### \u63a8\u8350\u5e93\n- \u63a8\u8350 [MCL](https://github.com/manticoresoftware/columnar) \u7248\u672c\uff1a9.0.0\n- \u63a8\u8350 [Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy) \u7248\u672c\uff1a3.40.2\n\n\u5982\u679c\u60a8\u9075\u5faa[\u5b98\u65b9\u5b89\u88c5\u6307\u5357](https://manticoresearch.com/install/)\uff0c\u5219\u65e0\u9700\u62c5\u5fc3\u6b64\u95ee\u9898\u3002\n\n## \u7a81\u7834\u6027\u53d8\u66f4\n* \u26a0\ufe0f [v15.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.0.0) [ PR #4003](https://github.com/manticoresoftware/manticoresearch/pull/4003) \u5c06 MCL \u8981\u6c42\u66f4\u65b0\u81f3 9.0.0\uff0c\u5f15\u5165\u4e86\u975e\u538b\u7f29\u6d6e\u70b9\u5411\u91cf\u5b58\u50a8\u3001KNN \u5411\u91cf\u7684\u5757\u5927\u5c0f\u66f4\u6539\u4ee5\u53ca\u975e\u7f13\u51b2\u8bfb\u53d6\u3002\u6b64\u66f4\u65b0\u66f4\u6539\u4e86\u6570\u636e\u683c\u5f0f\u3002\u65e7\u7248 MCL \u5c06\u65e0\u6cd5\u8bfb\u53d6\u6b64\u683c\u5f0f\uff0c\u4f46\u65b0\u7248\u4ecd\u80fd\u65e0\u95ee\u9898\u5730\u8bfb\u53d6\u60a8\u73b0\u6709\u7684\u5217\u5f0f\u8868\u3002\n\n### \u65b0\u529f\u80fd\u4e0e\u6539\u8fdb\n* \ud83c\udd95 [v15.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.1.0) [ PR #3990](https://github.com/manticoresoftware/manticoresearch/pull/3990) \u901a\u8fc7\u5c06\u603b\u65f6\u95f4\u62c6\u5206\u4e3a\u66f4\u6e05\u6670\u7684\u90e8\u5206\uff0c\u6539\u8fdb\u4e86\u78c1\u76d8\u5757\u5237\u65b0\u65e5\u5fd7\u8bb0\u5f55\u3002\n* \ud83c\udd95 [v14.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.7.0) [ Issue #3860](https://github.com/manticoresoftware/manticoresearch/issues/3860) \u5c06 Buddy \u8981\u6c42\u66f4\u65b0\u81f3 3.40.1\uff0c\u5176\u4e2d\u6539\u8fdb\u4e86\u81ea\u52a8\u8865\u5168\u529f\u80fd\uff1a\u5c06\u5927\u5199\u5206\u9694\u7b26\u5b57\u7b26\u6807\u51c6\u5316\u4e3a\u7a7a\u683c\uff0c\u5e76\u8fc7\u6ee4\u6389\u91cd\u590d\u6216\u683c\u5f0f\u9519\u8bef\u7684\u5efa\u8bae\u7ec4\u5408\u4ee5\u63d0\u9ad8\u5efa\u8bae\u8d28\u91cf\u3002\u8fd8\u5305\u542b\u4fee\u590d Kafka \u89c6\u56fe\u4e2d\u7684\u65e0\u6548 JSON \u9519\u8bef\u4ee5\u53ca\u4fee\u590d\u81ea\u52a8\u8865\u5168\u529f\u80fd\uff0c\u4f7f\u5f97\u5f53 score map \u4e2d\u7f3a\u5c11\u67d0\u4e9b\u952e\u65f6\uff0c\u6392\u5e8f\u7ec4\u5408\u4e0d\u518d\u629b\u51fa\u9519\u8bef\u3002\n* \ud83c\udd95 [v14.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.6.0) [ Issue #615](https://github.com/manticoresoftware/manticoresearch-buddy/issues/615) \u5c06 Manticore Buddy \u8981\u6c42\u66f4\u65b0\u81f3 3.39.1\uff0c\u5176\u4e2d\u5305\u542b\u4fee\u590d KNN \u63d2\u4ef6\u4e2d\u7684\u65e0\u6548 JSON \u9519\u8bef\uff0c\u5e76\u5141\u8bb8 Buddy \u5904\u7406\u5668\u8986\u76d6 HTTP `Content-Type`\uff0c\u56e0\u6b64 `/metrics` \u73b0\u5728\u8fd4\u56de Prometheus \u6587\u672c\u683c\u5f0f (`text/plain; version=0.0.4`) \u800c\u975e JSON\uff0c\u4fee\u590d\u4e86\u6293\u53d6\u5931\u8d25\u7684\u95ee\u9898\u3002\n* \ud83c\udd95 [v14.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.4.0) [ PR #3942](https://github.com/manticoresoftware/manticoresearch/pull/3942) \u5c06 Manticore Buddy \u8981\u6c42\u66f4\u65b0\u81f3 3.38.0\uff0c\u8fc7\u6ee4\u6389\u96f6\u6587\u6863\u5efa\u8bae\uff0c\u6539\u8fdb Ds\\Map \u4e2d\u7684\u5b57\u7b26\u4e32\u952e\u5904\u7406\uff0c\u5c06 Buddy \u4e2d\u7684\u5185\u5b58\u4f7f\u7528\u62a5\u544a\u683c\u5f0f\u4ece KB \u6539\u4e3a\u5b57\u8282\u4ee5\u63d0\u9ad8\u7cbe\u5ea6\uff0c\u5e76\u589e\u5f3a\u6027\u80fd\u3001\u7a33\u5b9a\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002\n* \ud83c\udd95 [v14.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.5.0) [ Issue #3329](https://github.com/manticoresoftware/manticoresearch/issues/3329) \u5728\u8bb0\u5f55\u67e5\u8be2\u8bf7\u6c42\u65f6\u4fee\u526a JSON \u8d1f\u8f7d\u4e2d\u7684\u591a\u4f59\u7a7a\u683c\u548c\u6362\u884c\u7b26\u2014\u2014\u8df3\u8fc7\u9996\u5c3e\u7a7a\u683c\u4ee5\u907f\u514d\u8bb0\u5f55\u683c\u5f0f\u9519\u8bef\u7684 JSON\u3002\n* \ud83c\udd95 [v14.3.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.3.0) [ PR #3932](https://github.com/manticoresoftware/manticoresearch/pull/3932) \u6539\u8fdb\u4e86 `LOCK TABLES` / `UNLOCK TABLES` \u7684\u5904\u7406\uff1a\u5199\u9501\u73b0\u5728\u8fd4\u56de\u8b66\u544a\u800c\u975e\u9519\u8bef\uff0c\u8bfb\u9501\u5728 `SHOW LOCKS` \u4e2d\u6b63\u786e\u663e\u793a\uff0c\u6574\u4f53\u9501\u903b\u8f91\u884c\u4e3a\u4fdd\u6301\u4e00\u81f4\u3002\n* \ud83c\udd95 [v14.2.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.2.0) [ Issue #3891](https://github.com/manticoresoftware/manticoresearch/issues/3891) \u5728 `JOIN ON` \u5b50\u53e5\u4e2d\u6dfb\u52a0\u4e86\u4efb\u610f\u8fc7\u6ee4\u8868\u8fbe\u5f0f\u7684\u652f\u6301\uff08\u4e0d\u4ec5\u9650\u4e8e\u7b49\u503c\u6bd4\u8f83\uff09\uff0c\u542f\u7528\u7c7b\u4f3c `... ON t1.id = t2.t1_id AND t2.value = 5` \u7684\u67e5\u8be2\u3002",
"russian": "# \u0416\u0443\u0440\u043d\u0430\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n\n## \u0412\u0435\u0440\u0441\u0438\u044f 15.1.0\n**\u0412\u044b\u043f\u0443\u0449\u0435\u043d\u043e**: 7 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2025\n\n### \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\n- \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f [MCL](https://github.com/manticoresoftware/columnar): 9.0.0\n- \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f [Buddy](Installation/Manticore_Buddy.md#Manticore-Buddy): 3.40.2\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0435 [\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435](https://manticoresearch.com/install/), \u0432\u0430\u043c \u043d\u0435 \u043e \u0447\u0435\u043c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f.\n\n## \u041d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\n* \u26a0\ufe0f [v15.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.0.0) [ PR #4003](https://github.com/manticoresoftware/manticoresearch/pull/4003) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a MCL \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 9.0.0, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u043b\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u0430 \u0434\u043b\u044f KNN-\u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u043d\u0435\u0431\u0443\u0444\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u0421\u0442\u0430\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 MCL \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043d\u0430\u0440\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n### \u041d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\n* \ud83c\udd95 [v15.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/15.1.0) [ PR #3990](https://github.com/manticoresoftware/manticoresearch/pull/3990) \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0441\u0431\u0440\u043e\u0441\u0430 \u0447\u0430\u043d\u043a\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a \u0441 \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u043e\u0439 \u043e\u0431\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u044f\u0441\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438.\n* \ud83c\udd95 [v14.7.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.7.0) [ Issue #3860](https://github.com/manticoresoftware/manticoresearch/issues/3860) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a Buddy \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 3.40.1, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f: \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u044b-\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \u0431\u0438\u0433\u0440\u0430\u043c\u043c \u0432 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0438\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u0422\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 invalid JSON \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 Kafka \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u2014 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 score map.\n* \ud83c\udd95 [v14.6.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.6.0) [ Issue #615](https://github.com/manticoresoftware/manticoresearch-buddy/issues/615) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a Manticore Buddy \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 3.39.1, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 invalid JSON \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 KNN \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c Buddy \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c HTTP `Content-Type`, \u0442\u0430\u043a \u0447\u0442\u043e `/metrics` \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 Prometheus (`text/plain; version=0.0.4`) \u0432\u043c\u0435\u0441\u0442\u043e JSON, \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u0435 \u043c\u0435\u0442\u0440\u0438\u043a.\n* \ud83c\udd95 [v14.4.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.4.0) [ PR #3942](https://github.com/manticoresoftware/manticoresearch/pull/3942) \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a Manticore Buddy \u0434\u043e 3.38.0, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0441 Ds\\Map, \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u0447\u0451\u0442\u0430 \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 Buddy \u0441 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0431\u0430\u0439\u0442\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u044c.\n* \ud83c\udd95 [v14.5.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.5.0) [ Issue #3329](https://github.com/manticoresoftware/manticoresearch/issues/3329) \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u0448\u043d\u0438\u0445 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 JSON-\u043f\u0435\u0439\u043b\u043e\u0430\u0434\u0430\u0445 \u043f\u0440\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e JSON.\n* \ud83c\udd95 [v14.3.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.3.0) [ PR #3932](https://github.com/manticoresoftware/manticoresearch/pull/3932) \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 `LOCK TABLES` / `UNLOCK TABLES`: \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u043a, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 `SHOW LOCKS`, \u043b\u043e\u0433\u0438\u043a\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0441\u0442\u0430\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439.\n* \ud83c\udd95 [v14.2.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/14.2.0) [ Issue #3891](https://github.com/manticoresoftware/manticoresearch/issues/3891) \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0432 `JOIN ON` (\u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u0438\u0434\u0430 `... ON t1.id = t2.t1_id AND t2.value = 5`."
},
"is_code_or_comment": false,
"model": "qwen/qwen3-14b",
"updated_at": 1766554700
},
"c33f58eb278c485fd469abaefcadb094c3be1958582e9684af30af30eb67119c": {
"original": "### Bug Fixes\n* \ud83e\udeb2 [v13.6.7](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.7) [ Issue #3524](https://github.com/manticoresoftware/manticoresearch/issues/3524) Fixed an issue with saving generated embeddings in row-wise storage.\n* \ud83e\udeb2 [v13.6.6](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.6) [ Issue #3563](https://github.com/manticoresoftware/manticoresearch/issues/3563) Fixed issues with Sequel Ace and other integrations failing due to \"unknown sysvar\" errors.\n* \ud83e\udeb2 [v13.6.5](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.5) [ Issue #3467](https://github.com/manticoresoftware/manticoresearch/issues/3467) Fixed issues with DBeaver and other integrations failing due to \"unknown sysvar\" errors.\n* \ud83e\udeb2 [v13.6.4](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.4) [ Issue #3524](https://github.com/manticoresoftware/manticoresearch/issues/3524) Fixed an issue with concatenating multi-field embeddings; also fixed embedding generation from queries.\n* \ud83e\udeb2 [v13.6.3](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.3) [ Issue #3641](https://github.com/manticoresoftware/manticoresearch/issues/3641) Fixed a bug in 13.6.0 where a phrase lost all bracketed keywords except the first one.\n* \ud83e\udeb2 [v13.6.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.2) Fixed a memleak in transform_phrase.\n* \ud83e\udeb2 [v13.6.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.1) Fixed a memory leak in version 13.6.0.\n* \ud83e\udeb2 [v13.5.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.5.2) [ Issue #3651](https://github.com/manticoresoftware/manticoresearch/issues/3651) Fixed more issues related to full-text search fuzz testing.\n* \ud83e\udeb2 [v13.5.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.5.1) [ Issue #3560](https://github.com/manticoresoftware/manticoresearch/issues/3560) Fixed a case where OPTIMIZE TABLE could hang indefinitely with KNN data.\n* \ud83e\udeb2 [v13.4.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.4.2) [ Issue #2544](https://github.com/manticoresoftware/manticoresearch/issues/2544) Fixed an issue where adding a float_vector column could corrupt indexes.\n* \ud83e\udeb2 [v13.4.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.4.1) [ Issue #3651](https://github.com/manticoresoftware/manticoresearch/issues/3651) Added fuzz testing for full-text parsing and fixed several issues found during testing.\n* \ud83e\udeb2 [v13.3.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.3.1) [ Issue #3583](https://github.com/manticoresoftware/manticoresearch/issues/3583) Fixed a crash when using complex boolean filters with highlighting.\n* \ud83e\udeb2 [v13.2.7](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.2.7) [ Issue #3481](https://github.com/manticoresoftware/manticoresearch/issues/3481) Fixed a crash when HTTP update, distributed table, and wrong replication cluster are used together.\n* \ud83e\udeb2 [v13.2.6](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.2.6) [ PR #3567](https://github.com/manticoresoftware/manticoresearch/pull/3567) Updated manticore-backup dependency to version 1.9.6.\n* \ud83e\udeb2 [v13.2.5](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.2.5) [ PR #3565](https://github.com/manticoresoftware/manticoresearch/pull/3565) Fixed CI setup to improve Docker image compatibility.\n* \ud83e\udeb2 [v13.2.4](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.2.4) Fixed handling of long tokens. Some special tokens (like regex patterns) could create words that are too long, so they are now shortened before use.\n\n## Version 13.2.3\n**Released**: July 8th 2025\n\n### Breaking Changes\n* \u26a0\ufe0f [PR #3586](https://github.com/manticoresoftware/manticoresearch/pull/3586) Support for Debian 10 (Buster) has been discontinued. Debian 10 reached end of life on June 30, 2024. Users are encouraged to upgrade to Debian 11 (Bullseye) or Debian 12 (Bookworm).\n* \u26a0\ufe0f [v13.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.0.0) Updated the KNN library API to support empty [float_vector](https://manual.manticoresearch.com/Creating_a_table/Data_types#Float-vector) values. This update doesn't change the data format but does increase the Manticore Search / MCL API version.\n* \u26a0\ufe0f [v12.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/12.0.0) [ PR #3516](https://github.com/manticoresoftware/manticoresearch/pull/3516) Fixed a bug with incorrect source and destination row IDs during KNN index training and building. This update doesn't change the data format but increases the Manticore Search / MCL API version.\n* \u26a0\ufe0f [v11.0.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/11.0.0) Added support for new KNN vector search features like quantization, rescoring, and oversampling. This version changes the KNN data format and the [KNN_DIST() SQL syntax](https://manual.manticoresearch.com/Searching/KNN?client=SQL#KNN-vector-search). The new version can read older data, but older versions won't be able to read the new format.",
"translations": {
"chinese": "### \u9519\u8bef\u4fee\u590d\n* \ud83e\udeb2 [v13.6.7](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.7) [ Issue #3524](https://github.com/manticoresoftware/manticoresearch/issues/3524) \u4fee\u590d\u4e86\u4fdd\u5b58\u751f\u6210\u7684\u5d4c\u5165\u5411\u91cf\u65f6\u884c\u5f0f\u5b58\u50a8\u7684\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.6.6](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.6) [ Issue #3563](https://github.com/manticoresoftware/manticoresearch/issues/3563) \u4fee\u590d\u4e86\u7531\u4e8e\u201c\u672a\u77e5 sysvar\u201d\u9519\u8bef\u5bfc\u81f4 Sequel Ace \u548c\u5176\u4ed6\u96c6\u6210\u5931\u8d25\u7684\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.6.5](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.5) [ Issue #3467](https://github.com/manticoresoftware/manticoresearch/issues/3467) \u4fee\u590d\u4e86\u7531\u4e8e\u201c\u672a\u77e5 sysvar\u201d\u9519\u8bef\u5bfc\u81f4 DBeaver \u548c\u5176\u4ed6\u96c6\u6210\u5931\u8d25\u7684\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.6.4](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.4) [ Issue #3524](https://github.com/manticoresoftware/manticoresearch/issues/3524) \u4fee\u590d\u4e86\u8fde\u63a5\u591a\u5b57\u6bb5\u5d4c\u5165\u5411\u91cf\u7684\u95ee\u9898\uff1b\u540c\u65f6\u4fee\u590d\u4e86\u4ece\u67e5\u8be2\u751f\u6210\u5d4c\u5165\u5411\u91cf\u7684\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.6.3](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.3) [ Issue #3641](https://github.com/manticoresoftware/manticoresearch/issues/3641) \u4fee\u590d\u4e86 13.6.0 \u7248\u672c\u4e2d\u77ed\u8bed\u4e22\u5931\u9664\u7b2c\u4e00\u4e2a\u5916\u6240\u6709\u5e26\u62ec\u53f7\u7684\u5173\u952e\u8bcd\u7684\u9519\u8bef\u3002\n* \ud83e\udeb2 [v13.6.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.2) \u4fee\u590d\u4e86 transform_phrase \u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.6.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.6.1) \u4fee\u590d\u4e86 13.6.0 \u7248\u672c\u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.5.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.5.2) [ Issue #3651](https://github.com/manticoresoftware/manticoresearch/issues/3651) \u4fee\u590d\u4e86\u4e0e\u5168\u6587\u641c\u7d22\u6a21\u7cca\u6d4b\u8bd5\u76f8\u5173\u7684\u66f4\u591a\u95ee\u9898\u3002\n* \ud83e\udeb2 [v13.5.1](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.5.1) [ Issue #3560](https://github.com/manticoresoftware/manticoresearch/issues/3560) \u4fee\u590d\u4e86 OPTIMIZE TABLE \u5728 KNN \u6570\u636e\u60c5\u51b5\u4e0b\u53ef\u80fd\u65e0\u9650\u6302\u8d77\u7684\u60c5\u51b5\u3002\n* \ud83e\udeb2 [v13.4.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/13.4.2) [ Issue #2544](https://github.com/manticoresoftware/manticoresearch/issues/2544) \u4fee\u590d\u4e86\u6dfb\u52a0 float_vector \u5217\u53ef\u80fd\u5bfc\u81f4\u7d22\u5f15\u635f\u574f\
gitextract_9gwz_73y/ ├── .clt/ │ ├── checkers/ │ │ ├── contains │ │ ├── ignore │ │ └── something │ └── patterns ├── .cursorignore ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── feature_request.yml │ │ └── support_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── stale.yml │ └── workflows/ │ ├── build_template.yml │ ├── check_docs.yml │ ├── checklist_validator.yml │ ├── clt_nightly.yml │ ├── clt_tests.yml │ ├── coverage.yml │ ├── deploy_docs.yml │ ├── nightly_dumps.yml │ ├── nightly_fuzzer.yml │ ├── nightly_integration.yml │ ├── nightly_memleaks.yml │ ├── pack_publish.yml │ ├── pack_publish_galera.yml │ ├── test.yml │ ├── test_template.yml │ ├── trigger_docs_check.yml │ └── win_test_template.yml ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── .noindex ├── .translation-cache/ │ ├── Changelog.md.json │ ├── Connecting_to_the_server/ │ │ ├── HTTP.md.json │ │ └── MySQL_protocol.md.json │ ├── Connecting_to_the_server.md.json │ ├── Creating_a_cluster/ │ │ ├── Adding_a_new_node.md.json │ │ ├── Creating_a_cluster.md.json │ │ ├── Remote_nodes/ │ │ │ ├── Load_balancing.md.json │ │ │ └── Mirroring.md.json │ │ ├── Remote_nodes.md.json │ │ └── Setting_up_replication/ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md.json │ │ ├── Cluster_recovery.md.json │ │ ├── Creating_a_replication_cluster.md.json │ │ ├── Deleting_a_replication_cluster.md.json │ │ ├── Joining_a_replication_cluster.md.json │ │ ├── Managing_replication_nodes.md.json │ │ ├── Replication_cluster_status.md.json │ │ ├── Restarting_a_cluster.md.json │ │ └── Setting_up_replication.md.json │ ├── Creating_a_table/ │ │ ├── Creating_a_distributed_table/ │ │ │ ├── Creating_a_distributed_table.md.json │ │ │ ├── Creating_a_local_distributed_table.md.json │ │ │ └── Remote_tables.md.json │ │ ├── Data_types.md.json │ │ ├── Local_tables/ │ │ │ ├── Percolate_table.md.json │ │ │ ├── Plain_and_real-time_table_settings.md.json │ │ │ ├── Plain_table.md.json │ │ │ ├── Real-time_table.md.json │ │ │ └── Template_table.md.json │ │ ├── Local_tables.md.json │ │ └── NLP_and_tokenization/ │ │ ├── Advanced_HTML_tokenization.md.json │ │ ├── Data_tokenization.md.json │ │ ├── Exceptions.md.json │ │ ├── Ignoring_stop-words.md.json │ │ ├── Languages_with_continuous_scripts.md.json │ │ ├── Low-level_tokenization.md.json │ │ ├── Morphology.md.json │ │ ├── Supported_languages.md.json │ │ ├── Wildcard_searching_settings.md.json │ │ └── Wordforms.md.json │ ├── Creating_a_table.md.json │ ├── Data_creation_and_modification/ │ │ ├── Adding_data_from_external_storages/ │ │ │ ├── Adding_data_to_tables/ │ │ │ │ ├── Attaching_one_table_to_another.md.json │ │ │ │ ├── Importing_table.md.json │ │ │ │ ├── Killlist_in_plain_tables.md.json │ │ │ │ └── Merging_tables.md.json │ │ │ ├── Fetching_from_CSV,TSV.md.json │ │ │ ├── Fetching_from_XML_streams.md.json │ │ │ ├── Fetching_from_databases/ │ │ │ │ ├── Database_connection.md.json │ │ │ │ ├── Execution_of_fetch_queries.md.json │ │ │ │ ├── Introduction.md.json │ │ │ │ ├── Processing_fetched_data.md.json │ │ │ │ └── Ranged_queries.md.json │ │ │ ├── Main_delta.md.json │ │ │ ├── Plain_tables_creation.md.json │ │ │ └── Rotating_a_table.md.json │ │ ├── Adding_data_from_external_storages.md.json │ │ ├── Adding_documents_to_a_table/ │ │ │ ├── Adding_documents_to_a_real-time_table.md.json │ │ │ └── Adding_rules_to_a_percolate_table.md.json │ │ ├── Data_creation_and_modification.md.json │ │ ├── Deleting_documents.md.json │ │ ├── Transactions.md.json │ │ └── Updating_documents/ │ │ ├── REPLACE.md.json │ │ ├── REPLACE_vs_UPDATE.md.json │ │ └── UPDATE.md.json │ ├── Deleting_a_table.md.json │ ├── Emptying_a_table.md.json │ ├── Extensions/ │ │ ├── FEDERATED.md.json │ │ ├── SphinxSE.md.json │ │ └── UDFs_and_Plugins/ │ │ ├── Listing_plugins.md.json │ │ ├── Plugins/ │ │ │ ├── Creating_a_plugin.md.json │ │ │ ├── Deleting_a_plugin.md.json │ │ │ ├── Enabling_and_disabling_buddy_plugins.md.json │ │ │ ├── Ranker_plugins.md.json │ │ │ ├── Reloading_plugins.md.json │ │ │ └── Token_filter_plugins.md.json │ │ ├── UDF/ │ │ │ ├── Creating_a_function.md.json │ │ │ └── Deleting_a_function.md.json │ │ ├── UDF.md.json │ │ └── UDFs_and_Plugins.md.json │ ├── Functions/ │ │ ├── Arrays_and_conditions_functions.md.json │ │ ├── Date_and_time_functions.md.json │ │ ├── Geo_spatial_functions.md.json │ │ ├── Mathematical_functions.md.json │ │ ├── Other_functions.md.json │ │ ├── Searching_and_ranking_functions.md.json │ │ ├── String_functions.md.json │ │ └── Type_casting_functions.md.json │ ├── Functions.md.json │ ├── Installation/ │ │ ├── Compiling_from_sources.md.json │ │ ├── Debian_and_Ubuntu.md.json │ │ ├── Docker.md.json │ │ ├── Installation.md.json │ │ ├── MacOS.md.json │ │ ├── Manticore_Buddy.md.json │ │ ├── Migration_from_Sphinx.md.json │ │ ├── RHEL_and_Centos.md.json │ │ └── Windows.md.json │ ├── Integration/ │ │ ├── Apache_Superset.md.json │ │ ├── DBeaver.md.json │ │ ├── Filebeat.md.json │ │ ├── Fluentbit.md.json │ │ ├── Grafana.md.json │ │ ├── Kafka.md.json │ │ ├── Kibana.md.json │ │ ├── Logstash.md.json │ │ └── Vectordev.md.json │ ├── Introduction.md.json │ ├── Listing_tables.md.json │ ├── Logging/ │ │ ├── Binary_logging.md.json │ │ ├── Docker_logging.md.json │ │ ├── Query_logging.md.json │ │ ├── Rotating_query_and_server_logs.md.json │ │ └── Server_logging.md.json │ ├── Miscellaneous_tools.md.json │ ├── Node_info_and_management/ │ │ ├── KILL.md.json │ │ ├── Node_status.md.json │ │ ├── Profiling/ │ │ │ ├── Query_plan.md.json │ │ │ └── Query_profile.md.json │ │ ├── SHOW_META.md.json │ │ ├── SHOW_QUERIES.md.json │ │ ├── SHOW_THREADS.md.json │ │ ├── SHOW_VARIABLES.md.json │ │ ├── SHOW_VERSION.md.json │ │ ├── SHOW_WARNINGS.md.json │ │ └── Table_settings_and_status/ │ │ ├── SHOW_TABLE_INDEXES.md.json │ │ ├── SHOW_TABLE_SETTINGS.md.json │ │ └── SHOW_TABLE_STATUS.md.json │ ├── Openapi.md.json │ ├── Quick_start_guide.md.json │ ├── README.md.json │ ├── Read_this_first.md.json │ ├── References.md.json │ ├── Reporting_bugs.md.json │ ├── Searching/ │ │ ├── Autocomplete.md.json │ │ ├── Collations.md.json │ │ ├── Cost_based_optimizer.md.json │ │ ├── Distributed_searching.md.json │ │ ├── Expressions.md.json │ │ ├── Faceted_search.md.json │ │ ├── Filters.md.json │ │ ├── Full_text_matching/ │ │ │ ├── Basic_usage.md.json │ │ │ ├── Boolean_optimization.md.json │ │ │ ├── Escaping.md.json │ │ │ ├── Operators.md.json │ │ │ └── Profiling.md.json │ │ ├── Geo_search.md.json │ │ ├── Grouping.md.json │ │ ├── Highlighting.md.json │ │ ├── Intro.md.json │ │ ├── Joining.md.json │ │ ├── KNN.md.json │ │ ├── Multi-queries.md.json │ │ ├── Options.md.json │ │ ├── Pagination.md.json │ │ ├── Percolate_query.md.json │ │ ├── Query_cache.md.json │ │ ├── Search_results.md.json │ │ ├── Sorting_and_ranking.md.json │ │ ├── Spell_correction.md.json │ │ └── Sub-selects.md.json │ ├── Securing_and_compacting_a_table/ │ │ ├── Backup_and_restore.md.json │ │ ├── Compacting_a_table.md.json │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md.json │ │ ├── Flushing_RAM_chunk_to_disk.md.json │ │ ├── Flushing_attributes.md.json │ │ ├── Flushing_hostnames.md.json │ │ ├── Freezing_and_locking_a_table.md.json │ │ ├── Isolation_during_flushing_and_merging.md.json │ │ └── RT_table_structure.md.json │ ├── Security/ │ │ ├── Read_only.md.json │ │ └── SSL.md.json │ ├── Server_settings/ │ │ ├── Comments.md.json │ │ ├── Common.md.json │ │ ├── Inheritance_of_index_and_source_declarations.md.json │ │ ├── Scripted_configuration.md.json │ │ ├── Searchd.md.json │ │ ├── Setting_variables_online.md.json │ │ └── Special_suffixes.md.json │ ├── Starting_the_server/ │ │ ├── Docker.md.json │ │ ├── Linux.md.json │ │ ├── MacOS.md.json │ │ ├── Manually.md.json │ │ └── Windows.md.json │ ├── Starting_the_server.md.json │ ├── Telemetry.md.json │ └── Updating_table_schema_and_settings.md.json ├── 116.conf ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── INSTALL ├── LICENSE ├── README.md ├── TESTING.md ├── actions/ │ ├── checklist-validator/ │ │ └── action.yml │ └── update-deps/ │ └── action.yml ├── api/ │ ├── lgpl-3.0.txt │ ├── libsphinxclient/ │ │ ├── CMakeLists.txt │ │ ├── COPYING │ │ ├── README │ │ ├── smoke.cmake │ │ ├── smoke_data.csv │ │ ├── smoke_ref.txt │ │ ├── smoke_test.conf │ │ ├── smoke_test.sh │ │ ├── sphinxclient.c │ │ ├── sphinxclient.h │ │ └── test.c │ ├── ruby/ │ │ ├── README.rdoc │ │ ├── Rakefile │ │ ├── init.rb │ │ ├── install.rb │ │ ├── lib/ │ │ │ ├── sphinx/ │ │ │ │ ├── client.rb │ │ │ │ ├── request.rb │ │ │ │ └── response.rb │ │ │ └── sphinx.rb │ │ ├── spec/ │ │ │ ├── client_response_spec.rb │ │ │ ├── client_spec.rb │ │ │ ├── fixtures/ │ │ │ │ ├── default_search.php │ │ │ │ ├── default_search_index.php │ │ │ │ ├── excerpt_custom.php │ │ │ │ ├── excerpt_default.php │ │ │ │ ├── excerpt_flags.php │ │ │ │ ├── field_weights.php │ │ │ │ ├── filter.php │ │ │ │ ├── filter_exclude.php │ │ │ │ ├── filter_float_range.php │ │ │ │ ├── filter_float_range_exclude.php │ │ │ │ ├── filter_range.php │ │ │ │ ├── filter_range_exclude.php │ │ │ │ ├── filter_range_int64.php │ │ │ │ ├── filter_ranges.php │ │ │ │ ├── filters.php │ │ │ │ ├── filters_different.php │ │ │ │ ├── geo_anchor.php │ │ │ │ ├── group_by_attr.php │ │ │ │ ├── group_by_attrpair.php │ │ │ │ ├── group_by_day.php │ │ │ │ ├── group_by_day_sort.php │ │ │ │ ├── group_by_month.php │ │ │ │ ├── group_by_week.php │ │ │ │ ├── group_by_year.php │ │ │ │ ├── group_distinct.php │ │ │ │ ├── id_range.php │ │ │ │ ├── id_range64.php │ │ │ │ ├── index_weights.php │ │ │ │ ├── keywords.php │ │ │ │ ├── limits.php │ │ │ │ ├── limits_cutoff.php │ │ │ │ ├── limits_max.php │ │ │ │ ├── limits_max_cutoff.php │ │ │ │ ├── match_all.php │ │ │ │ ├── match_any.php │ │ │ │ ├── match_boolean.php │ │ │ │ ├── match_extended.php │ │ │ │ ├── match_extended2.php │ │ │ │ ├── match_fullscan.php │ │ │ │ ├── match_phrase.php │ │ │ │ ├── max_query_time.php │ │ │ │ ├── miltiple_queries.php │ │ │ │ ├── ranking_bm25.php │ │ │ │ ├── ranking_none.php │ │ │ │ ├── ranking_proximity.php │ │ │ │ ├── ranking_proximity_bm25.php │ │ │ │ ├── ranking_wordcount.php │ │ │ │ ├── retries.php │ │ │ │ ├── retries_delay.php │ │ │ │ ├── select.php │ │ │ │ ├── set_override.php │ │ │ │ ├── sort_attr_asc.php │ │ │ │ ├── sort_attr_desc.php │ │ │ │ ├── sort_expr.php │ │ │ │ ├── sort_extended.php │ │ │ │ ├── sort_relevance.php │ │ │ │ ├── sort_time_segments.php │ │ │ │ ├── sphinxapi.php │ │ │ │ ├── update_attributes.php │ │ │ │ ├── update_attributes_mva.php │ │ │ │ └── weights.php │ │ │ └── sphinx/ │ │ │ ├── sphinx-id64.conf │ │ │ ├── sphinx.conf │ │ │ └── sphinx_test.sql │ │ ├── sphinx.yml.tpl │ │ ├── tasks/ │ │ │ └── sphinx.rake │ │ └── test.rb │ └── sphinxapi.php ├── cmake/ │ ├── CommonInfo.cmake │ ├── FindMysql.cmake │ ├── FindZSTD.cmake │ ├── Findre2.cmake │ ├── Findstemmer.cmake │ ├── GetCCTZ.cmake │ ├── GetColumnar.cmake │ ├── GetGALERA.cmake │ ├── GetGooglebench.cmake │ ├── GetGoogletest.cmake │ ├── GetICU.cmake │ ├── GetJIEBA.cmake │ ├── GetNLJSON.cmake │ ├── GetRBitmap.cmake │ ├── GetRE2.cmake │ ├── GetSSL.cmake │ ├── GetSTEMMER.cmake │ ├── GetUniAlgo.cmake │ ├── GetVCPKG.cmake │ ├── GetxxHash.cmake │ ├── SetBuildType.cmake │ ├── banner.cmake │ ├── builds/ │ │ ├── CommonDeb.cmake │ │ ├── CommonRpm.cmake │ │ ├── VersionDeps.cmake │ │ ├── build_bionic.cmake │ │ ├── build_bookworm.cmake │ │ ├── build_bullseye.cmake │ │ ├── build_buster.cmake │ │ ├── build_debian.cmake │ │ ├── build_default.cmake │ │ ├── build_focal.cmake │ │ ├── build_jammy.cmake │ │ ├── build_macosbrew.cmake │ │ ├── build_rhel.cmake │ │ ├── build_rhel10.cmake │ │ ├── build_rhel8.cmake │ │ ├── build_rhel9.cmake │ │ ├── build_stretch.cmake │ │ ├── build_windows.cmake │ │ └── build_xenial.cmake │ ├── check_atomic_intrinsics.cmake │ ├── check_const_iconv.cmake │ ├── check_rwlock_prefer_writer.cmake │ ├── check_unaligned_ram_access.cmake │ ├── check_vitable_pthread_setname_np.cmake │ ├── columnar-imported.cmake.in │ ├── external-build.cmake.in │ ├── fixup_test_name.cmake │ ├── galera-copy-package.sh.in │ ├── galera-imported.cmake.in │ ├── galera-package.cmake.in │ ├── gbench-imported.cmake.in │ ├── genheader.cmake │ ├── gtest-imported.cmake.in │ ├── helpers.cmake │ ├── init_cache_settings.cmake │ ├── mincore_test.cmake │ ├── mybison.cmake │ ├── printers.cmake │ ├── setup_distribution_build.cmake │ ├── split.cmake │ └── update_bundle.cmake ├── columnar_src.txt ├── compare_manuals.sh ├── component-licenses/ │ ├── FindMysql.cmake-license-gplv2floss │ ├── README.md │ ├── cjson-license │ ├── http_parser-license │ ├── libmysqlclient-license │ ├── lz4-license │ ├── sphinx-license │ └── xxhash-license ├── config/ │ ├── config_cmake.h.in │ └── config_indexer_cmake.h.in ├── configure ├── contrib/ │ ├── README │ └── scripts/ │ ├── cachecleanup.sh │ └── searchd ├── deps.txt ├── dist/ │ ├── 70-manticore.conf │ ├── CPackOptions.cmake.in │ ├── build_dockers/ │ │ ├── README.md │ │ ├── cross/ │ │ │ ├── external_toolchain/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Dockerfile_cmake3243 │ │ │ │ └── entry_point.sh │ │ │ ├── freebsd.cmake │ │ │ ├── linux.cmake │ │ │ ├── osx.cmake │ │ │ ├── sysroots/ │ │ │ │ ├── README.md │ │ │ │ ├── boost_include.tar.xz.md │ │ │ │ ├── boost_library.sh │ │ │ │ ├── boost_macos__.tar.xz.md │ │ │ │ ├── boost_windows_x64.tar.xz.md │ │ │ │ ├── build_alma10.sh │ │ │ │ ├── build_alma9.sh │ │ │ │ ├── build_bionic.sh │ │ │ │ ├── build_bookworm.sh │ │ │ │ ├── build_bullseye.sh │ │ │ │ ├── build_buster.sh │ │ │ │ ├── build_centos8.sh │ │ │ │ ├── build_focal.sh │ │ │ │ ├── build_jammy.sh │ │ │ │ ├── debian.sh │ │ │ │ ├── finalize.sh │ │ │ │ ├── in_debian.sh │ │ │ │ ├── in_rhel10.sh │ │ │ │ ├── in_rhel8.sh │ │ │ │ ├── in_rhel9.sh │ │ │ │ ├── mkboost.sh │ │ │ │ ├── mksysroot.sh │ │ │ │ ├── mksysrootrhel.sh │ │ │ │ ├── packages_bionic.txt │ │ │ │ ├── packages_bookworm.txt │ │ │ │ ├── packages_bullseye.txt │ │ │ │ ├── packages_buster.txt │ │ │ │ ├── packages_focal.txt │ │ │ │ ├── packages_jammy.txt │ │ │ │ ├── packages_rhel10.txt │ │ │ │ ├── packages_rhel8.txt │ │ │ │ ├── packages_rhel9.txt │ │ │ │ ├── redhat.sh │ │ │ │ ├── sysroot_freebsd13_x86_64.tar.xz.md │ │ │ │ ├── sysroot_macos__.tar.xz.md │ │ │ │ └── sysroot_windows_x64.tar.xz.md │ │ │ ├── triplets/ │ │ │ │ ├── README.md │ │ │ │ ├── arm64-linux.cmake │ │ │ │ ├── arm64-osx.cmake │ │ │ │ ├── x64-freebsd.cmake │ │ │ │ ├── x64-linux.cmake │ │ │ │ └── x64-osx.cmake │ │ │ ├── windows-cl.cmake │ │ │ └── windows.cmake │ │ ├── nsis/ │ │ │ ├── Dockerfile │ │ │ ├── deploy.sh │ │ │ ├── nsis_src_parser.sh │ │ │ └── nsisscript.nsi │ │ └── retired/ │ │ ├── README.md │ │ ├── aarch64/ │ │ │ ├── bionic/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── buildall.sh │ │ │ ├── bullseye/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── buster/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── centos7/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── centos8/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── focal/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ ├── stretch/ │ │ │ │ ├── base_build/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── boost_175/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── build.sh │ │ │ │ ├── build_base.sh │ │ │ │ ├── build_boost.sh │ │ │ │ ├── build_cmake.sh │ │ │ │ ├── cmake_320/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── distr.txt │ │ │ └── xenial/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_cmake.sh │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── bionic/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── base_build_arm/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175_arm/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320_arm/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── buildall.sh │ │ ├── bullseye/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── buster/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── centos7/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_7/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── centos8/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_11/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── cross/ │ │ │ ├── base_clang12/ │ │ │ │ └── Dockerfile │ │ │ ├── base_clang13/ │ │ │ │ └── Dockerfile │ │ │ ├── bigsur_arm64/ │ │ │ │ ├── Dockerfile │ │ │ │ └── homebrew_arm64.tar.xz.md │ │ │ ├── bigsur_sdk/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── MacOSX11.3.sdk.tar.xz.md │ │ │ │ └── toolchain.cmake │ │ │ ├── bigsur_x64/ │ │ │ │ ├── Dockerfile │ │ │ │ └── homebrew_x64.tar.xz.md │ │ │ ├── build │ │ │ ├── build_cross/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── boost_include.tar.xz.md │ │ │ │ ├── entry_point.sh │ │ │ │ └── toolchain.cmake │ │ │ ├── centos_rhel/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake232/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake323/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_clang/ │ │ │ │ └── Dockerfile │ │ │ ├── freebsd_13/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── sysroot_fbsd_13.md │ │ │ │ └── toolchain.cmake │ │ │ ├── sysroots/ │ │ │ │ ├── build_stretch.sh │ │ │ │ ├── build_xenial.sh │ │ │ │ └── stretch.apt │ │ │ ├── toolchain_clang/ │ │ │ │ └── Dockerfile │ │ │ ├── ubuntu_debian/ │ │ │ │ ├── Dockerfile │ │ │ │ └── entry_point.sh │ │ │ ├── ubuntu_debian_amd64/ │ │ │ │ ├── Dockerfile │ │ │ │ └── some_name_x86_64.tar.xz.md │ │ │ └── ubuntu_debian_arm64/ │ │ │ ├── Dockerfile │ │ │ └── some_name_aarc64.tar.xz.md │ │ ├── focal/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── jammy/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_178/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_323/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ ├── stretch/ │ │ │ ├── base_build/ │ │ │ │ └── Dockerfile │ │ │ ├── boost_175/ │ │ │ │ └── Dockerfile │ │ │ ├── build.sh │ │ │ ├── build_base.sh │ │ │ ├── build_boost.sh │ │ │ ├── build_clang.sh │ │ │ ├── build_cmake.sh │ │ │ ├── clang_13/ │ │ │ │ └── Dockerfile │ │ │ ├── cmake_320/ │ │ │ │ └── Dockerfile │ │ │ └── distr.txt │ │ └── xenial/ │ │ ├── base_build/ │ │ │ └── Dockerfile │ │ ├── boost_175/ │ │ │ └── Dockerfile │ │ ├── build.sh │ │ ├── build_base.sh │ │ ├── build_boost.sh │ │ ├── build_clang.sh │ │ ├── build_cmake.sh │ │ ├── clang_12/ │ │ │ └── Dockerfile │ │ ├── cmake_320/ │ │ │ └── Dockerfile │ │ └── distr.txt │ ├── bundle/ │ │ └── BUNDLE_LICENSES.in │ ├── check_deps_in_repos.sh │ ├── deb/ │ │ ├── README.Debian.in │ │ ├── README.Debian.in.prepare.php │ │ ├── conffiles-common.in │ │ ├── conffiles-server.in │ │ ├── conffiles-tools.in │ │ ├── manticore-indexer.service.in │ │ ├── manticore-indexer@.service.in │ │ ├── manticore-indexer_global.default.in │ │ ├── manticore.default.in │ │ ├── manticore.logrotate.in │ │ ├── manticore.service.in │ │ ├── manticore_new_cluster │ │ ├── postinst-common.in │ │ ├── postinst-core.in │ │ ├── postinst-server.head │ │ ├── postinst.debian.tail │ │ ├── postinst.in.in │ │ ├── postinst.ubuntu.tail │ │ ├── postrm-common.in │ │ ├── postrm-core.in │ │ ├── postrm-server.in │ │ ├── prerm.debian.in │ │ └── prerm.ubuntu.in │ ├── dockerhub_deploy.sh │ ├── download_bundle_deps.sh │ ├── download_bundle_language_packs.sh │ ├── gitlab-release.yml │ ├── nsis-release.yml │ ├── rpm/ │ │ ├── manticore-common.post.in │ │ ├── manticore-core.post.in │ │ ├── manticore-indexer.service.in │ │ ├── manticore-indexer@.service.in │ │ ├── manticore-indexer_global.default.in │ │ ├── manticore-server.post.in │ │ ├── manticore-tools.preun │ │ ├── manticore.logrotate.in │ │ ├── manticore.service.in │ │ ├── manticore.tmpfiles.in │ │ └── manticore_new_cluster │ ├── test_kit_docker_build.sh │ └── test_kit_docker_push.sh ├── doc/ │ ├── binary-logging.md │ ├── indexer.1 │ ├── indextool.1 │ ├── internal-binary-protocol.md │ ├── internals-coding-standard.txt │ ├── internals-format-versions.txt │ ├── internals-index-format.md │ ├── md2man.bash │ └── searchd.1 ├── docker-compose-test.yml ├── example.sql ├── galera_packaging/ │ ├── CommonDeb.cmake │ ├── CommonRpm.cmake │ ├── README.md │ ├── build_bionic.cmake │ ├── build_bookworm.cmake │ ├── build_bullseye.cmake │ ├── build_buster.cmake │ ├── build_focal.cmake │ ├── build_jammy.cmake │ ├── build_macos.cmake │ ├── build_rhel10.cmake │ ├── build_rhel7.cmake │ ├── build_rhel8.cmake │ ├── build_rhel9.cmake │ ├── description.txt │ ├── metainfo.cmake │ ├── packaging.cmake │ └── tmp ├── libicu/ │ └── CMakeLists.txt ├── libre2/ │ ├── CMakeLists.txt │ └── libre2.patch ├── libstemmer_c/ │ ├── CMakeLists.txt │ └── README ├── manticore.conf.in ├── manual/ │ ├── chinese/ │ │ ├── Changelog.md │ │ ├── Connecting_to_the_server/ │ │ │ ├── HTTP.md │ │ │ └── MySQL_protocol.md │ │ ├── Connecting_to_the_server.md │ │ ├── Creating_a_cluster/ │ │ │ ├── Adding_a_new_node.md │ │ │ ├── Creating_a_cluster.md │ │ │ ├── Remote_nodes/ │ │ │ │ ├── Load_balancing.md │ │ │ │ └── Mirroring.md │ │ │ ├── Remote_nodes.md │ │ │ └── Setting_up_replication/ │ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md │ │ │ ├── Cluster_recovery.md │ │ │ ├── Creating_a_replication_cluster.md │ │ │ ├── Deleting_a_replication_cluster.md │ │ │ ├── Joining_a_replication_cluster.md │ │ │ ├── Managing_replication_nodes.md │ │ │ ├── Replication_cluster_status.md │ │ │ ├── Restarting_a_cluster.md │ │ │ └── Setting_up_replication.md │ │ ├── Creating_a_table/ │ │ │ ├── Creating_a_distributed_table/ │ │ │ │ ├── Creating_a_distributed_table.md │ │ │ │ ├── Creating_a_local_distributed_table.md │ │ │ │ └── Remote_tables.md │ │ │ ├── Data_types.md │ │ │ ├── Local_tables/ │ │ │ │ ├── Percolate_table.md │ │ │ │ ├── Plain_and_real-time_table_settings.md │ │ │ │ ├── Plain_table.md │ │ │ │ ├── Real-time_table.md │ │ │ │ └── Template_table.md │ │ │ ├── Local_tables.md │ │ │ └── NLP_and_tokenization/ │ │ │ ├── Advanced_HTML_tokenization.md │ │ │ ├── Data_tokenization.md │ │ │ ├── Exceptions.md │ │ │ ├── Ignoring_stop-words.md │ │ │ ├── Languages_with_continuous_scripts.md │ │ │ ├── Low-level_tokenization.md │ │ │ ├── Morphology.md │ │ │ ├── Supported_languages.md │ │ │ ├── Wildcard_searching_settings.md │ │ │ └── Wordforms.md │ │ ├── Creating_a_table.md │ │ ├── Data_creation_and_modification/ │ │ │ ├── Adding_data_from_external_storages/ │ │ │ │ ├── Adding_data_to_tables/ │ │ │ │ │ ├── Attaching_one_table_to_another.md │ │ │ │ │ ├── Importing_table.md │ │ │ │ │ ├── Killlist_in_plain_tables.md │ │ │ │ │ └── Merging_tables.md │ │ │ │ ├── Fetching_from_CSV,TSV.md │ │ │ │ ├── Fetching_from_XML_streams.md │ │ │ │ ├── Fetching_from_databases/ │ │ │ │ │ ├── Database_connection.md │ │ │ │ │ ├── Execution_of_fetch_queries.md │ │ │ │ │ ├── Introduction.md │ │ │ │ │ ├── Processing_fetched_data.md │ │ │ │ │ └── Ranged_queries.md │ │ │ │ ├── Main_delta.md │ │ │ │ ├── Plain_tables_creation.md │ │ │ │ └── Rotating_a_table.md │ │ │ ├── Adding_data_from_external_storages.md │ │ │ ├── Adding_documents_to_a_table/ │ │ │ │ ├── Adding_documents_to_a_real-time_table.md │ │ │ │ └── Adding_rules_to_a_percolate_table.md │ │ │ ├── Data_creation_and_modification.md │ │ │ ├── Deleting_documents.md │ │ │ ├── Transactions.md │ │ │ └── Updating_documents/ │ │ │ ├── REPLACE.md │ │ │ ├── REPLACE_vs_UPDATE.md │ │ │ └── UPDATE.md │ │ ├── Deleting_a_table.md │ │ ├── Emptying_a_table.md │ │ ├── Extensions/ │ │ │ ├── FEDERATED.md │ │ │ ├── SphinxSE.md │ │ │ └── UDFs_and_Plugins/ │ │ │ ├── Listing_plugins.md │ │ │ ├── Plugins/ │ │ │ │ ├── Creating_a_plugin.md │ │ │ │ ├── Deleting_a_plugin.md │ │ │ │ ├── Enabling_and_disabling_buddy_plugins.md │ │ │ │ ├── Ranker_plugins.md │ │ │ │ ├── Reloading_plugins.md │ │ │ │ └── Token_filter_plugins.md │ │ │ ├── UDF/ │ │ │ │ ├── Creating_a_function.md │ │ │ │ └── Deleting_a_function.md │ │ │ ├── UDF.md │ │ │ └── UDFs_and_Plugins.md │ │ ├── Functions/ │ │ │ ├── Arrays_and_conditions_functions.md │ │ │ ├── Date_and_time_functions.md │ │ │ ├── Geo_spatial_functions.md │ │ │ ├── Mathematical_functions.md │ │ │ ├── Other_functions.md │ │ │ ├── Searching_and_ranking_functions.md │ │ │ ├── String_functions.md │ │ │ └── Type_casting_functions.md │ │ ├── Functions.md │ │ ├── Installation/ │ │ │ ├── Compiling_from_sources.md │ │ │ ├── Debian_and_Ubuntu.md │ │ │ ├── Docker.md │ │ │ ├── Installation.md │ │ │ ├── MacOS.md │ │ │ ├── Manticore_Buddy.md │ │ │ ├── Migration_from_Sphinx.md │ │ │ ├── RHEL_and_Centos.md │ │ │ └── Windows.md │ │ ├── Integration/ │ │ │ ├── Apache_Superset.md │ │ │ ├── DBeaver.md │ │ │ ├── Filebeat.md │ │ │ ├── Fluentbit.md │ │ │ ├── Grafana.md │ │ │ ├── Kafka.md │ │ │ ├── Kibana.md │ │ │ ├── Logstash.md │ │ │ └── Vectordev.md │ │ ├── Introduction.md │ │ ├── Listing_tables.md │ │ ├── Logging/ │ │ │ ├── Binary_logging.md │ │ │ ├── Docker_logging.md │ │ │ ├── Query_logging.md │ │ │ ├── Rotating_query_and_server_logs.md │ │ │ └── Server_logging.md │ │ ├── Miscellaneous_tools.md │ │ ├── Node_info_and_management/ │ │ │ ├── KILL.md │ │ │ ├── Node_status.md │ │ │ ├── Profiling/ │ │ │ │ ├── Query_plan.md │ │ │ │ └── Query_profile.md │ │ │ ├── SHOW_META.md │ │ │ ├── SHOW_QUERIES.md │ │ │ ├── SHOW_THREADS.md │ │ │ ├── SHOW_VARIABLES.md │ │ │ ├── SHOW_VERSION.md │ │ │ ├── SHOW_WARNINGS.md │ │ │ └── Table_settings_and_status/ │ │ │ ├── SHOW_TABLE_INDEXES.md │ │ │ ├── SHOW_TABLE_SETTINGS.md │ │ │ └── SHOW_TABLE_STATUS.md │ │ ├── Openapi.md │ │ ├── Quick_start_guide.md │ │ ├── README.md │ │ ├── Read_this_first.md │ │ ├── References.md │ │ ├── Reporting_bugs.md │ │ ├── Searching/ │ │ │ ├── Autocomplete.md │ │ │ ├── Collations.md │ │ │ ├── Cost_based_optimizer.md │ │ │ ├── Distributed_searching.md │ │ │ ├── Expressions.md │ │ │ ├── Faceted_search.md │ │ │ ├── Filters.md │ │ │ ├── Full_text_matching/ │ │ │ │ ├── Basic_usage.md │ │ │ │ ├── Boolean_optimization.md │ │ │ │ ├── Escaping.md │ │ │ │ ├── Operators.md │ │ │ │ └── Profiling.md │ │ │ ├── Geo_search.md │ │ │ ├── Grouping.md │ │ │ ├── Highlighting.md │ │ │ ├── Intro.md │ │ │ ├── Joining.md │ │ │ ├── KNN.md │ │ │ ├── Multi-queries.md │ │ │ ├── Options.md │ │ │ ├── Pagination.md │ │ │ ├── Percolate_query.md │ │ │ ├── Query_cache.md │ │ │ ├── Search_results.md │ │ │ ├── Sorting_and_ranking.md │ │ │ ├── Spell_correction.md │ │ │ └── Sub-selects.md │ │ ├── Securing_and_compacting_a_table/ │ │ │ ├── Backup_and_restore.md │ │ │ ├── Compacting_a_table.md │ │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md │ │ │ ├── Flushing_RAM_chunk_to_disk.md │ │ │ ├── Flushing_attributes.md │ │ │ ├── Flushing_hostnames.md │ │ │ ├── Freezing_and_locking_a_table.md │ │ │ ├── Isolation_during_flushing_and_merging.md │ │ │ └── RT_table_structure.md │ │ ├── Security/ │ │ │ ├── Read_only.md │ │ │ └── SSL.md │ │ ├── Server_settings/ │ │ │ ├── Comments.md │ │ │ ├── Common.md │ │ │ ├── Inheritance_of_index_and_source_declarations.md │ │ │ ├── Scripted_configuration.md │ │ │ ├── Searchd.md │ │ │ ├── Setting_variables_online.md │ │ │ └── Special_suffixes.md │ │ ├── Starting_the_server/ │ │ │ ├── Docker.md │ │ │ ├── Linux.md │ │ │ ├── MacOS.md │ │ │ ├── Manually.md │ │ │ └── Windows.md │ │ ├── Starting_the_server.md │ │ ├── Telemetry.md │ │ ├── Updating_table_schema_and_settings.md │ │ ├── latest_release_version │ │ └── redirects │ ├── english/ │ │ ├── Changelog.md │ │ ├── Connecting_to_the_server/ │ │ │ ├── HTTP.md │ │ │ └── MySQL_protocol.md │ │ ├── Connecting_to_the_server.md │ │ ├── Creating_a_cluster/ │ │ │ ├── Adding_a_new_node.md │ │ │ ├── Creating_a_cluster.md │ │ │ ├── Remote_nodes/ │ │ │ │ ├── Load_balancing.md │ │ │ │ └── Mirroring.md │ │ │ ├── Remote_nodes.md │ │ │ └── Setting_up_replication/ │ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md │ │ │ ├── Cluster_recovery.md │ │ │ ├── Creating_a_replication_cluster.md │ │ │ ├── Deleting_a_replication_cluster.md │ │ │ ├── Joining_a_replication_cluster.md │ │ │ ├── Managing_replication_nodes.md │ │ │ ├── Replication_cluster_status.md │ │ │ ├── Restarting_a_cluster.md │ │ │ └── Setting_up_replication.md │ │ ├── Creating_a_table/ │ │ │ ├── Creating_a_distributed_table/ │ │ │ │ ├── Creating_a_distributed_table.md │ │ │ │ ├── Creating_a_local_distributed_table.md │ │ │ │ └── Remote_tables.md │ │ │ ├── Data_types.md │ │ │ ├── Local_tables/ │ │ │ │ ├── Percolate_table.md │ │ │ │ ├── Plain_and_real-time_table_settings.md │ │ │ │ ├── Plain_table.md │ │ │ │ ├── Real-time_table.md │ │ │ │ └── Template_table.md │ │ │ ├── Local_tables.md │ │ │ └── NLP_and_tokenization/ │ │ │ ├── Advanced_HTML_tokenization.md │ │ │ ├── Data_tokenization.md │ │ │ ├── Exceptions.md │ │ │ ├── Ignoring_stop-words.md │ │ │ ├── Languages_with_continuous_scripts.md │ │ │ ├── Low-level_tokenization.md │ │ │ ├── Morphology.md │ │ │ ├── Supported_languages.md │ │ │ ├── Wildcard_searching_settings.md │ │ │ └── Wordforms.md │ │ ├── Creating_a_table.md │ │ ├── Data_creation_and_modification/ │ │ │ ├── Adding_data_from_external_storages/ │ │ │ │ ├── Adding_data_to_tables/ │ │ │ │ │ ├── Attaching_one_table_to_another.md │ │ │ │ │ ├── Importing_table.md │ │ │ │ │ ├── Killlist_in_plain_tables.md │ │ │ │ │ └── Merging_tables.md │ │ │ │ ├── Fetching_from_CSV,TSV.md │ │ │ │ ├── Fetching_from_XML_streams.md │ │ │ │ ├── Fetching_from_databases/ │ │ │ │ │ ├── Database_connection.md │ │ │ │ │ ├── Execution_of_fetch_queries.md │ │ │ │ │ ├── Introduction.md │ │ │ │ │ ├── Processing_fetched_data.md │ │ │ │ │ └── Ranged_queries.md │ │ │ │ ├── Main_delta.md │ │ │ │ ├── Plain_tables_creation.md │ │ │ │ └── Rotating_a_table.md │ │ │ ├── Adding_data_from_external_storages.md │ │ │ ├── Adding_documents_to_a_table/ │ │ │ │ ├── Adding_documents_to_a_real-time_table.md │ │ │ │ └── Adding_rules_to_a_percolate_table.md │ │ │ ├── Data_creation_and_modification.md │ │ │ ├── Deleting_documents.md │ │ │ ├── Transactions.md │ │ │ └── Updating_documents/ │ │ │ ├── REPLACE.md │ │ │ ├── REPLACE_vs_UPDATE.md │ │ │ └── UPDATE.md │ │ ├── Deleting_a_table.md │ │ ├── Emptying_a_table.md │ │ ├── Extensions/ │ │ │ ├── FEDERATED.md │ │ │ ├── SphinxSE.md │ │ │ └── UDFs_and_Plugins/ │ │ │ ├── Listing_plugins.md │ │ │ ├── Plugins/ │ │ │ │ ├── Creating_a_plugin.md │ │ │ │ ├── Deleting_a_plugin.md │ │ │ │ ├── Enabling_and_disabling_buddy_plugins.md │ │ │ │ ├── Ranker_plugins.md │ │ │ │ ├── Reloading_plugins.md │ │ │ │ └── Token_filter_plugins.md │ │ │ ├── UDF/ │ │ │ │ ├── Creating_a_function.md │ │ │ │ └── Deleting_a_function.md │ │ │ ├── UDF.md │ │ │ └── UDFs_and_Plugins.md │ │ ├── Functions/ │ │ │ ├── Arrays_and_conditions_functions.md │ │ │ ├── Date_and_time_functions.md │ │ │ ├── Geo_spatial_functions.md │ │ │ ├── Mathematical_functions.md │ │ │ ├── Other_functions.md │ │ │ ├── Searching_and_ranking_functions.md │ │ │ ├── String_functions.md │ │ │ └── Type_casting_functions.md │ │ ├── Functions.md │ │ ├── Installation/ │ │ │ ├── Compiling_from_sources.md │ │ │ ├── Debian_and_Ubuntu.md │ │ │ ├── Docker.md │ │ │ ├── Installation.md │ │ │ ├── MacOS.md │ │ │ ├── Manticore_Buddy.md │ │ │ ├── Migration_from_Sphinx.md │ │ │ ├── RHEL_and_Centos.md │ │ │ └── Windows.md │ │ ├── Integration/ │ │ │ ├── Apache_Superset.md │ │ │ ├── DBeaver.md │ │ │ ├── Filebeat.md │ │ │ ├── Fluentbit.md │ │ │ ├── Grafana.md │ │ │ ├── Kafka.md │ │ │ ├── Kibana.md │ │ │ ├── Logstash.md │ │ │ └── Vectordev.md │ │ ├── Introduction.md │ │ ├── Listing_tables.md │ │ ├── Logging/ │ │ │ ├── Binary_logging.md │ │ │ ├── Docker_logging.md │ │ │ ├── Query_logging.md │ │ │ ├── Rotating_query_and_server_logs.md │ │ │ └── Server_logging.md │ │ ├── Miscellaneous_tools.md │ │ ├── Node_info_and_management/ │ │ │ ├── KILL.md │ │ │ ├── Node_status.md │ │ │ ├── Profiling/ │ │ │ │ ├── Query_plan.md │ │ │ │ └── Query_profile.md │ │ │ ├── SHOW_META.md │ │ │ ├── SHOW_QUERIES.md │ │ │ ├── SHOW_THREADS.md │ │ │ ├── SHOW_VARIABLES.md │ │ │ ├── SHOW_VERSION.md │ │ │ ├── SHOW_WARNINGS.md │ │ │ └── Table_settings_and_status/ │ │ │ ├── SHOW_TABLE_INDEXES.md │ │ │ ├── SHOW_TABLE_SETTINGS.md │ │ │ └── SHOW_TABLE_STATUS.md │ │ ├── Openapi.md │ │ ├── Quick_start_guide.md │ │ ├── README.md │ │ ├── Read_this_first.md │ │ ├── References.md │ │ ├── Reporting_bugs.md │ │ ├── Searching/ │ │ │ ├── Autocomplete.md │ │ │ ├── Collations.md │ │ │ ├── Cost_based_optimizer.md │ │ │ ├── Distributed_searching.md │ │ │ ├── Expressions.md │ │ │ ├── Faceted_search.md │ │ │ ├── Filters.md │ │ │ ├── Full_text_matching/ │ │ │ │ ├── Basic_usage.md │ │ │ │ ├── Boolean_optimization.md │ │ │ │ ├── Escaping.md │ │ │ │ ├── Operators.md │ │ │ │ └── Profiling.md │ │ │ ├── Geo_search.md │ │ │ ├── Grouping.md │ │ │ ├── Highlighting.md │ │ │ ├── Intro.md │ │ │ ├── Joining.md │ │ │ ├── KNN.md │ │ │ ├── Multi-queries.md │ │ │ ├── Options.md │ │ │ ├── Pagination.md │ │ │ ├── Percolate_query.md │ │ │ ├── Query_cache.md │ │ │ ├── Search_results.md │ │ │ ├── Sorting_and_ranking.md │ │ │ ├── Spell_correction.md │ │ │ └── Sub-selects.md │ │ ├── Securing_and_compacting_a_table/ │ │ │ ├── Backup_and_restore.md │ │ │ ├── Compacting_a_table.md │ │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md │ │ │ ├── Flushing_RAM_chunk_to_disk.md │ │ │ ├── Flushing_attributes.md │ │ │ ├── Flushing_hostnames.md │ │ │ ├── Freezing_and_locking_a_table.md │ │ │ ├── Isolation_during_flushing_and_merging.md │ │ │ └── RT_table_structure.md │ │ ├── Security/ │ │ │ ├── Read_only.md │ │ │ └── SSL.md │ │ ├── Server_settings/ │ │ │ ├── Comments.md │ │ │ ├── Common.md │ │ │ ├── Inheritance_of_index_and_source_declarations.md │ │ │ ├── Scripted_configuration.md │ │ │ ├── Searchd.md │ │ │ ├── Setting_variables_online.md │ │ │ └── Special_suffixes.md │ │ ├── Starting_the_server/ │ │ │ ├── Docker.md │ │ │ ├── Linux.md │ │ │ ├── MacOS.md │ │ │ ├── Manually.md │ │ │ └── Windows.md │ │ ├── Starting_the_server.md │ │ ├── Telemetry.md │ │ ├── Updating_table_schema_and_settings.md │ │ ├── latest_release_version │ │ └── redirects │ ├── latest_release_version │ └── russian/ │ ├── Changelog.md │ ├── Connecting_to_the_server/ │ │ ├── HTTP.md │ │ └── MySQL_protocol.md │ ├── Connecting_to_the_server.md │ ├── Creating_a_cluster/ │ │ ├── Adding_a_new_node.md │ │ ├── Creating_a_cluster.md │ │ ├── Remote_nodes/ │ │ │ ├── Load_balancing.md │ │ │ └── Mirroring.md │ │ ├── Remote_nodes.md │ │ └── Setting_up_replication/ │ │ ├── Adding_and_removing_a_table_from_a_replication_cluster.md │ │ ├── Cluster_recovery.md │ │ ├── Creating_a_replication_cluster.md │ │ ├── Deleting_a_replication_cluster.md │ │ ├── Joining_a_replication_cluster.md │ │ ├── Managing_replication_nodes.md │ │ ├── Replication_cluster_status.md │ │ ├── Restarting_a_cluster.md │ │ └── Setting_up_replication.md │ ├── Creating_a_table/ │ │ ├── Creating_a_distributed_table/ │ │ │ ├── Creating_a_distributed_table.md │ │ │ ├── Creating_a_local_distributed_table.md │ │ │ └── Remote_tables.md │ │ ├── Data_types.md │ │ ├── Local_tables/ │ │ │ ├── Percolate_table.md │ │ │ ├── Plain_and_real-time_table_settings.md │ │ │ ├── Plain_table.md │ │ │ ├── Real-time_table.md │ │ │ └── Template_table.md │ │ ├── Local_tables.md │ │ └── NLP_and_tokenization/ │ │ ├── Advanced_HTML_tokenization.md │ │ ├── Data_tokenization.md │ │ ├── Exceptions.md │ │ ├── Ignoring_stop-words.md │ │ ├── Languages_with_continuous_scripts.md │ │ ├── Low-level_tokenization.md │ │ ├── Morphology.md │ │ ├── Supported_languages.md │ │ ├── Wildcard_searching_settings.md │ │ └── Wordforms.md │ ├── Creating_a_table.md │ ├── Data_creation_and_modification/ │ │ ├── Adding_data_from_external_storages/ │ │ │ ├── Adding_data_to_tables/ │ │ │ │ ├── Attaching_one_table_to_another.md │ │ │ │ ├── Importing_table.md │ │ │ │ ├── Killlist_in_plain_tables.md │ │ │ │ └── Merging_tables.md │ │ │ ├── Fetching_from_CSV,TSV.md │ │ │ ├── Fetching_from_XML_streams.md │ │ │ ├── Fetching_from_databases/ │ │ │ │ ├── Database_connection.md │ │ │ │ ├── Execution_of_fetch_queries.md │ │ │ │ ├── Introduction.md │ │ │ │ ├── Processing_fetched_data.md │ │ │ │ └── Ranged_queries.md │ │ │ ├── Main_delta.md │ │ │ ├── Plain_tables_creation.md │ │ │ └── Rotating_a_table.md │ │ ├── Adding_data_from_external_storages.md │ │ ├── Adding_documents_to_a_table/ │ │ │ ├── Adding_documents_to_a_real-time_table.md │ │ │ └── Adding_rules_to_a_percolate_table.md │ │ ├── Data_creation_and_modification.md │ │ ├── Deleting_documents.md │ │ ├── Transactions.md │ │ └── Updating_documents/ │ │ ├── REPLACE.md │ │ ├── REPLACE_vs_UPDATE.md │ │ └── UPDATE.md │ ├── Deleting_a_table.md │ ├── Emptying_a_table.md │ ├── Extensions/ │ │ ├── FEDERATED.md │ │ ├── SphinxSE.md │ │ └── UDFs_and_Plugins/ │ │ ├── Listing_plugins.md │ │ ├── Plugins/ │ │ │ ├── Creating_a_plugin.md │ │ │ ├── Deleting_a_plugin.md │ │ │ ├── Enabling_and_disabling_buddy_plugins.md │ │ │ ├── Ranker_plugins.md │ │ │ ├── Reloading_plugins.md │ │ │ └── Token_filter_plugins.md │ │ ├── UDF/ │ │ │ ├── Creating_a_function.md │ │ │ └── Deleting_a_function.md │ │ ├── UDF.md │ │ └── UDFs_and_Plugins.md │ ├── Functions/ │ │ ├── Arrays_and_conditions_functions.md │ │ ├── Date_and_time_functions.md │ │ ├── Geo_spatial_functions.md │ │ ├── Mathematical_functions.md │ │ ├── Other_functions.md │ │ ├── Searching_and_ranking_functions.md │ │ ├── String_functions.md │ │ └── Type_casting_functions.md │ ├── Functions.md │ ├── Installation/ │ │ ├── Compiling_from_sources.md │ │ ├── Debian_and_Ubuntu.md │ │ ├── Docker.md │ │ ├── Installation.md │ │ ├── MacOS.md │ │ ├── Manticore_Buddy.md │ │ ├── Migration_from_Sphinx.md │ │ ├── RHEL_and_Centos.md │ │ └── Windows.md │ ├── Integration/ │ │ ├── Apache_Superset.md │ │ ├── DBeaver.md │ │ ├── Filebeat.md │ │ ├── Fluentbit.md │ │ ├── Grafana.md │ │ ├── Kafka.md │ │ ├── Kibana.md │ │ ├── Logstash.md │ │ └── Vectordev.md │ ├── Introduction.md │ ├── Listing_tables.md │ ├── Logging/ │ │ ├── Binary_logging.md │ │ ├── Docker_logging.md │ │ ├── Query_logging.md │ │ ├── Rotating_query_and_server_logs.md │ │ └── Server_logging.md │ ├── Miscellaneous_tools.md │ ├── Node_info_and_management/ │ │ ├── KILL.md │ │ ├── Node_status.md │ │ ├── Profiling/ │ │ │ ├── Query_plan.md │ │ │ └── Query_profile.md │ │ ├── SHOW_META.md │ │ ├── SHOW_QUERIES.md │ │ ├── SHOW_THREADS.md │ │ ├── SHOW_VARIABLES.md │ │ ├── SHOW_VERSION.md │ │ ├── SHOW_WARNINGS.md │ │ └── Table_settings_and_status/ │ │ ├── SHOW_TABLE_INDEXES.md │ │ ├── SHOW_TABLE_SETTINGS.md │ │ └── SHOW_TABLE_STATUS.md │ ├── Openapi.md │ ├── Quick_start_guide.md │ ├── README.md │ ├── Read_this_first.md │ ├── References.md │ ├── Reporting_bugs.md │ ├── Searching/ │ │ ├── Autocomplete.md │ │ ├── Collations.md │ │ ├── Cost_based_optimizer.md │ │ ├── Distributed_searching.md │ │ ├── Expressions.md │ │ ├── Faceted_search.md │ │ ├── Filters.md │ │ ├── Full_text_matching/ │ │ │ ├── Basic_usage.md │ │ │ ├── Boolean_optimization.md │ │ │ ├── Escaping.md │ │ │ ├── Operators.md │ │ │ └── Profiling.md │ │ ├── Geo_search.md │ │ ├── Grouping.md │ │ ├── Highlighting.md │ │ ├── Intro.md │ │ ├── Joining.md │ │ ├── KNN.md │ │ ├── Multi-queries.md │ │ ├── Options.md │ │ ├── Pagination.md │ │ ├── Percolate_query.md │ │ ├── Query_cache.md │ │ ├── Search_results.md │ │ ├── Sorting_and_ranking.md │ │ ├── Spell_correction.md │ │ └── Sub-selects.md │ ├── Securing_and_compacting_a_table/ │ │ ├── Backup_and_restore.md │ │ ├── Compacting_a_table.md │ │ ├── Flushing_RAM_chunk_to_a_new_disk_chunk.md │ │ ├── Flushing_RAM_chunk_to_disk.md │ │ ├── Flushing_attributes.md │ │ ├── Flushing_hostnames.md │ │ ├── Freezing_and_locking_a_table.md │ │ ├── Isolation_during_flushing_and_merging.md │ │ └── RT_table_structure.md │ ├── Security/ │ │ ├── Read_only.md │ │ └── SSL.md │ ├── Server_settings/ │ │ ├── Comments.md │ │ ├── Common.md │ │ ├── Inheritance_of_index_and_source_declarations.md │ │ ├── Scripted_configuration.md │ │ ├── Searchd.md │ │ ├── Setting_variables_online.md │ │ └── Special_suffixes.md │ ├── Starting_the_server/ │ │ ├── Docker.md │ │ ├── Linux.md │ │ ├── MacOS.md │ │ ├── Manually.md │ │ └── Windows.md │ ├── Starting_the_server.md │ ├── Telemetry.md │ ├── Updating_table_schema_and_settings.md │ ├── latest_release_version │ └── redirects ├── memcheck.sh ├── memdocker.sh ├── misc/ │ ├── .gitignore │ ├── build-local-test-kit.sh │ ├── compare_manuals.sh │ ├── ctest/ │ │ ├── gltest.cmake │ │ ├── justbuild.cmake │ │ ├── memcheck.cmake │ │ ├── memcheck.md │ │ ├── ubertests/ │ │ │ ├── Dockerfile │ │ │ ├── aot.sh │ │ │ ├── entry_point.sh │ │ │ └── ubertests_docker_image/ │ │ │ ├── Dockerfile │ │ │ ├── entry_point.sh │ │ │ ├── resource.json │ │ │ └── sphinx │ │ └── valgrind/ │ │ ├── Dockerfile │ │ ├── entry_point.sh │ │ └── sphinx │ ├── dockerfiles/ │ │ ├── README.md │ │ ├── mysql/ │ │ │ ├── Dockerfile │ │ │ └── docker-entrypoint.sh │ │ ├── scripts/ │ │ │ ├── smoke.sh │ │ │ ├── smoke_libclient.sh │ │ │ └── smoke_tests.sh │ │ └── test/ │ │ └── Dockerfile │ ├── http-log-to-test │ ├── junit/ │ │ └── ctest2junit.xsl │ ├── manticore.natvis │ ├── manticore_lldb.py │ ├── manual.sh │ ├── raminfo.py │ ├── resolve.py │ ├── search_json_pretty.php │ ├── stopwords/ │ │ ├── af │ │ ├── ar │ │ ├── bg │ │ ├── bn │ │ ├── ca │ │ ├── ckb │ │ ├── cz │ │ ├── da │ │ ├── de │ │ ├── el │ │ ├── en │ │ ├── eo │ │ ├── es │ │ ├── et │ │ ├── eu │ │ ├── fa │ │ ├── fi │ │ ├── fr │ │ ├── ga │ │ ├── gl │ │ ├── he │ │ ├── hi │ │ ├── hr │ │ ├── hu │ │ ├── hy │ │ ├── id │ │ ├── it │ │ ├── ja │ │ ├── ko │ │ ├── la │ │ ├── languages_list.txt │ │ ├── lt │ │ ├── lv │ │ ├── mr │ │ ├── nl │ │ ├── no │ │ ├── pl │ │ ├── pt │ │ ├── ro │ │ ├── ru │ │ ├── sk │ │ ├── sl │ │ ├── so │ │ ├── st │ │ ├── sv │ │ ├── sw │ │ ├── th │ │ ├── tr │ │ ├── yo │ │ ├── zh │ │ └── zu │ ├── suggest/ │ │ ├── README │ │ ├── suggest.conf │ │ └── suggest.php │ ├── tzdata/ │ │ └── Asia/ │ │ └── Novosibirsk │ ├── winbundle/ │ │ ├── CURLConfig.cmake │ │ ├── EXPATConfig.cmake │ │ ├── IconvConfig.cmake │ │ ├── MysqlConfig.cmake │ │ ├── OpenSSLConfig.cmake │ │ ├── PostgreSQLConfig.cmake │ │ ├── README.md │ │ └── ZSTDConfig.cmake │ └── wordbreak.pl ├── mysqlse/ │ ├── CMakeLists.txt │ ├── INSTALL │ ├── Makefile.am │ ├── gen_data.php │ ├── ha_sphinx.cc │ ├── ha_sphinx.h │ ├── make-patch.sh │ ├── plug.in │ ├── snippets_udf.cc │ ├── sphinx.5.0.22.diff │ ├── sphinx.5.0.27.diff │ ├── sphinx.5.0.37.diff │ └── sphinx.5.0.91.diff ├── smoke.sh ├── smokeci.sh ├── sphinxrev.cmake ├── sphinxrevcheck.cmake ├── src/ │ ├── .clang-format │ ├── .cursor/ │ │ └── rules/ │ │ └── stas-1.mdc │ ├── .gitattributes │ ├── CMakeLists.txt │ ├── accumulator.cpp │ ├── accumulator.h │ ├── aggregate.cpp │ ├── aggregate.h │ ├── aggrexpr.cpp │ ├── aggrexpr.h │ ├── attr_embedding.cpp │ ├── attr_embedding.h │ ├── attribute.cpp │ ├── attribute.h │ ├── attrindex_builder.cpp │ ├── attrindex_builder.h │ ├── attrindex_merge.cpp │ ├── attrindex_merge.h │ ├── binlog.cpp │ ├── binlog.h │ ├── binlog_defs.h │ ├── charsets/ │ │ ├── chinese.txt │ │ ├── cjk.txt │ │ ├── cont.txt │ │ ├── english.txt │ │ ├── globalaliases.h.in │ │ ├── japanese.txt │ │ ├── korean.txt │ │ ├── non_cjk.txt │ │ ├── non_cont.txt │ │ ├── russian.txt │ │ └── thai.txt │ ├── chunksearchctx.cpp │ ├── chunksearchctx.h │ ├── cjkpreprocessor.cpp │ ├── cjkpreprocessor.h │ ├── client_session.h │ ├── client_task_info.cpp │ ├── client_task_info.h │ ├── collation.cpp │ ├── collation.h │ ├── columnarexpr.cpp │ ├── columnarexpr.h │ ├── columnarfilter.cpp │ ├── columnarfilter.h │ ├── columnargrouper.cpp │ ├── columnargrouper.h │ ├── columnarlib.cpp │ ├── columnarlib.h │ ├── columnarmisc.cpp │ ├── columnarmisc.h │ ├── columnarrt.cpp │ ├── columnarrt.h │ ├── columnarsort.cpp │ ├── columnarsort.h │ ├── compressed_http.cpp │ ├── compressed_http.h │ ├── compressed_mysql_layer.cpp │ ├── compressed_mysql_layer.h │ ├── compressed_zlib_mysql.cpp │ ├── compressed_zlib_mysql.h │ ├── compressed_zstd_mysql.cpp │ ├── compressed_zstd_mysql.h │ ├── config_reloader.cpp │ ├── config_reloader.h │ ├── conversion.cpp │ ├── conversion.h │ ├── coro_stack.cpp │ ├── coro_stack.h │ ├── coro_waker.h │ ├── coroutine.cpp │ ├── coroutine.h │ ├── costestimate.cpp │ ├── costestimate.h │ ├── daemon/ │ │ ├── CMakeLists.txt │ │ ├── api_commands.h │ │ ├── api_search.cpp │ │ ├── api_search.h │ │ ├── crash_logger.cpp │ │ ├── crash_logger.h │ │ ├── daemon_log.cpp │ │ ├── failures_log.cpp │ │ ├── failures_log.h │ │ ├── http_log.cpp │ │ ├── logger.h │ │ ├── match_iterator.cpp │ │ ├── match_iterator.h │ │ ├── minimize_aggr_result.cpp │ │ ├── minimize_aggr_result.h │ │ ├── query_log.cpp │ │ ├── search_handler.cpp │ │ ├── search_handler.h │ │ ├── system_tables.cpp │ │ ├── winservice.cpp │ │ └── winservice.h │ ├── datareader.cpp │ ├── datareader.h │ ├── datetime.cpp │ ├── datetime.h │ ├── ddl.l │ ├── ddl.y │ ├── debug_cmds.cpp │ ├── debug_cmds.h │ ├── detail/ │ │ ├── coroutine_impl.h │ │ ├── expmeter.h │ │ ├── indexlink.cpp │ │ └── indexlink.h │ ├── dict/ │ │ ├── CMakeLists.txt │ │ ├── aggregate_hit.h │ │ ├── bin.cpp │ │ ├── bin.h │ │ ├── crc_engine.h │ │ ├── crc_engine_impl.h │ │ ├── dict_base.cpp │ │ ├── dict_base.h │ │ ├── dict_crc.cpp │ │ ├── dict_crc.h │ │ ├── dict_crc_impl.h │ │ ├── dict_entry.h │ │ ├── dict_exact.cpp │ │ ├── dict_keywords.cpp │ │ ├── dict_proxy.h │ │ ├── dict_star.cpp │ │ ├── infix/ │ │ │ ├── CMakeLists.txt │ │ │ ├── infix_builder.cpp │ │ │ └── infix_builder.h │ │ ├── stem/ │ │ │ ├── CMakeLists.txt │ │ │ ├── sphinxmetaphone.cpp │ │ │ ├── sphinxsoundex.cpp │ │ │ ├── sphinxstem.h │ │ │ ├── sphinxstemar.cpp │ │ │ ├── sphinxstemcz.cpp │ │ │ ├── sphinxstemen.cpp │ │ │ ├── sphinxstemru.cpp │ │ │ └── sphinxstemru.inl │ │ ├── template_dict_traits.cpp │ │ ├── template_dict_traits.h │ │ ├── word_forms.cpp │ │ └── word_forms.h │ ├── digest_sha1.cpp │ ├── digest_sha1.h │ ├── distinct.cpp │ ├── distinct.h │ ├── docidlookup.cpp │ ├── docidlookup.h │ ├── docs_collector.cpp │ ├── docs_collector.h │ ├── docstore.cpp │ ├── docstore.h │ ├── dynamic_idx.cpp │ ├── dynamic_idx.h │ ├── embeddingutils.cpp │ ├── embeddingutils.h │ ├── event.h │ ├── exprdatetime.cpp │ ├── exprdatetime.h │ ├── exprdocstore.cpp │ ├── exprdocstore.h │ ├── exprgeodist.cpp │ ├── exprgeodist.h │ ├── exprremap.cpp │ ├── exprremap.h │ ├── exprtraits.cpp │ ├── exprtraits.h │ ├── farmhash/ │ │ └── farmhash.h │ ├── fileio.cpp │ ├── fileio.h │ ├── fileutils.cpp │ ├── fileutils.h │ ├── frontendschema.cpp │ ├── frontendschema.h │ ├── fuzzer/ │ │ ├── CMakeLists.txt │ │ ├── dict.txt │ │ └── fuzzer.cpp │ ├── gbenches/ │ │ ├── CMakeLists.txt │ │ ├── appendf.cpp │ │ ├── cJSON_test.c │ │ ├── expressions.cpp │ │ ├── functions.cpp │ │ ├── geodist.cpp │ │ ├── json.cpp │ │ ├── locators.cpp │ │ ├── misc.cpp │ │ ├── popcount.cpp │ │ ├── stripper.cpp │ │ ├── text.cpp │ │ └── tokenizer.cpp │ ├── geodist.cpp │ ├── geodist.h │ ├── global_idf.cpp │ ├── global_idf.h │ ├── grouper.cpp │ ├── grouper.h │ ├── gtests/ │ │ ├── CMakeLists.txt │ │ ├── gtests_filter.cpp │ │ ├── gtests_functions.cpp │ │ ├── gtests_globalstate.cpp │ │ ├── gtests_hugetokenizer.cpp │ │ ├── gtests_json.cpp │ │ ├── gtests_pqstuff.cpp │ │ ├── gtests_rtstuff.cpp │ │ ├── gtests_searchd.cpp │ │ ├── gtests_searchdaemon.cpp │ │ ├── gtests_strfmt.cpp │ │ ├── gtests_stringbuilder.cpp │ │ ├── gtests_text.cpp │ │ ├── gtests_threadstuff.cpp │ │ ├── gtests_tokenizer.cpp │ │ ├── gtests_wsrep.cpp │ │ ├── libsphinxtest.txt │ │ └── libsphinxtest2.txt │ ├── hazard_pointer.cpp │ ├── hazard_pointer.h │ ├── histogram.cpp │ ├── histogram.h │ ├── http/ │ │ ├── http_parser.c │ │ ├── http_parser.h │ │ └── log_management.h │ ├── hyperloglog.cpp │ ├── hyperloglog.h │ ├── icu.cpp │ ├── icu.h │ ├── index_converter.cpp │ ├── index_rotator.cpp │ ├── index_rotator.h │ ├── indexcheck.cpp │ ├── indexcheck.h │ ├── indexer.cpp │ ├── indexfilebase.cpp │ ├── indexfilebase.h │ ├── indexfiles.cpp │ ├── indexfiles.h │ ├── indexformat.cpp │ ├── indexformat.h │ ├── indexing_sources/ │ │ ├── CMakeLists.txt │ │ ├── schema_configurator.h │ │ ├── source_document.cpp │ │ ├── source_document.h │ │ ├── source_mysql.cpp │ │ ├── source_mysql.h │ │ ├── source_odbc.cpp │ │ ├── source_odbc.h │ │ ├── source_pgsql.cpp │ │ ├── source_pgsql.h │ │ ├── source_sql.cpp │ │ ├── source_sql.h │ │ ├── source_stats.h │ │ ├── source_svpipe.cpp │ │ ├── source_svpipe.h │ │ ├── source_xmlpipe2.cpp │ │ └── source_xmlpipe2.h │ ├── indexsettings.cpp │ ├── indexsettings.h │ ├── indextool.cpp │ ├── jieba.cpp │ ├── jieba.h │ ├── joinsorter.cpp │ ├── joinsorter.h │ ├── json/ │ │ ├── cJSON.c │ │ └── cJSON.h │ ├── jsonqueryfilter.cpp │ ├── jsonqueryfilter.h │ ├── jsonsi.cpp │ ├── jsonsi.h │ ├── killlist.cpp │ ├── killlist.h │ ├── knnlib.cpp │ ├── knnlib.h │ ├── knnmisc.cpp │ ├── knnmisc.h │ ├── libutils.cpp │ ├── libutils.h │ ├── literal.h.in │ ├── loop_profiler.h │ ├── lz4/ │ │ ├── lz4.c │ │ ├── lz4.h │ │ ├── lz4hc.c │ │ └── lz4hc.h │ ├── match.h │ ├── match_impl.h │ ├── memio.cpp │ ├── memio.h │ ├── memio_impl.h │ ├── mini_timer.cpp │ ├── mini_timer.h │ ├── net_action_accept.cpp │ ├── net_action_accept.h │ ├── netfetch.cpp │ ├── netfetch.h │ ├── netpoll.cpp │ ├── netpoll.h │ ├── netreceive_api.cpp │ ├── netreceive_api.h │ ├── netreceive_http.cpp │ ├── netreceive_http.h │ ├── netreceive_ql.cpp │ ├── netreceive_ql.h │ ├── networking_daemon.cpp │ ├── networking_daemon.h │ ├── perfetto/ │ │ ├── CMakeLists.txt │ │ └── README.txt │ ├── pollable_event.cpp │ ├── pollable_event.h │ ├── pseudosharding.cpp │ ├── pseudosharding.h │ ├── query_status.cpp │ ├── query_status.h │ ├── querycontext.cpp │ ├── querycontext.h │ ├── queryfilter.cpp │ ├── queryfilter.h │ ├── queryprofile.cpp │ ├── queryprofile.h │ ├── querystats.cpp │ ├── querystats.h │ ├── queuecreator.cpp │ ├── queuecreator.h │ ├── replication/ │ │ ├── CMakeLists.txt │ │ ├── api_command_cluster.cpp │ │ ├── api_command_cluster.h │ │ ├── cluster_binlog.cpp │ │ ├── cluster_binlog.h │ │ ├── cluster_commands.h │ │ ├── cluster_delete.cpp │ │ ├── cluster_delete.h │ │ ├── cluster_file_reserve.cpp │ │ ├── cluster_file_reserve.h │ │ ├── cluster_file_send.cpp │ │ ├── cluster_file_send.h │ │ ├── cluster_get_nodes.cpp │ │ ├── cluster_get_nodes.h │ │ ├── cluster_index_add_local.cpp │ │ ├── cluster_index_add_local.h │ │ ├── cluster_recv_state_cleanup.cpp │ │ ├── cluster_recv_state_cleanup.h │ │ ├── cluster_sst_progress.cpp │ │ ├── cluster_sst_progress.h │ │ ├── cluster_synced.cpp │ │ ├── cluster_synced.h │ │ ├── cluster_update_nodes.cpp │ │ ├── cluster_update_nodes.h │ │ ├── commit_monitor.cpp │ │ ├── commit_monitor.h │ │ ├── common.h │ │ ├── configuration.cpp │ │ ├── configuration.h │ │ ├── grastate.cpp │ │ ├── grastate.h │ │ ├── nodes.cpp │ │ ├── nodes.h │ │ ├── portrange.cpp │ │ ├── portrange.h │ │ ├── receiver_ctx.cpp │ │ ├── receiver_ctx.h │ │ ├── recv_state.cpp │ │ ├── recv_state.h │ │ ├── replicate_index.cpp │ │ ├── replicate_index.h │ │ ├── send_files.cpp │ │ ├── send_files.h │ │ ├── serialize.cpp │ │ ├── serialize.h │ │ ├── wsrep_cxx.cpp │ │ ├── wsrep_cxx.h │ │ ├── wsrep_cxx_int.h │ │ ├── wsrep_documentation/ │ │ │ └── wsrep_api_h.txt │ │ ├── wsrep_v25.cpp │ │ └── wsrep_v31.cpp │ ├── reserved.py │ ├── schema/ │ │ ├── CMakeLists.txt │ │ ├── columninfo.cpp │ │ ├── columninfo.h │ │ ├── helper.cpp │ │ ├── helper.h │ │ ├── ischema.h │ │ ├── locator.h │ │ ├── locator_impl.h │ │ ├── rset.cpp │ │ ├── rset.h │ │ ├── schema.cpp │ │ └── schema.h │ ├── schematransform.cpp │ ├── schematransform.h │ ├── searchd.cpp │ ├── searchdaemon.cpp │ ├── searchdaemon.h │ ├── searchdbuddy.cpp │ ├── searchdbuddy.h │ ├── searchdconfig.cpp │ ├── searchdconfig.h │ ├── searchdddl.cpp │ ├── searchdddl.h │ ├── searchdexpr.cpp │ ├── searchdexpr.h │ ├── searchdfields.cpp │ ├── searchdha.cpp │ ├── searchdha.h │ ├── searchdhttp.cpp │ ├── searchdhttp.h │ ├── searchdhttpcompat.cpp │ ├── searchdreplication.cpp │ ├── searchdreplication.h │ ├── searchdsql.cpp │ ├── searchdsql.h │ ├── searchdssl.cpp │ ├── searchdssl.h │ ├── searchdssl_stub.cpp │ ├── searchdtask.cpp │ ├── searchdtask.h │ ├── searchnode.cpp │ ├── searchnode.h │ ├── secondaryindex.cpp │ ├── secondaryindex.h │ ├── secondarylib.cpp │ ├── secondarylib.h │ ├── skip_cache.cpp │ ├── skip_cache.h │ ├── snippetfunctor.cpp │ ├── snippetfunctor.h │ ├── snippetindex.cpp │ ├── snippetindex.h │ ├── snippetpassage.cpp │ ├── snippetpassage.h │ ├── snippetstream.cpp │ ├── snippetstream.h │ ├── sortcomp.h │ ├── sortergroup.cpp │ ├── sortergroup.h │ ├── sorterprecalc.cpp │ ├── sorterprecalc.h │ ├── sorterscroll.cpp │ ├── sorterscroll.h │ ├── sortertraits.cpp │ ├── sortertraits.h │ ├── sortsetup.cpp │ ├── sortsetup.h │ ├── spelldump.cpp │ ├── sphinx.cpp │ ├── sphinx.h │ ├── sphinx_alter.cpp │ ├── sphinx_alter.h │ ├── sphinxaot.cpp │ ├── sphinxdefs.h │ ├── sphinxexcerpt.cpp │ ├── sphinxexcerpt.h │ ├── sphinxexpr.cpp │ ├── sphinxexpr.h │ ├── sphinxexpr.l │ ├── sphinxexpr.y │ ├── sphinxfilter.cpp │ ├── sphinxfilter.h │ ├── sphinxint.h │ ├── sphinxjson.cpp │ ├── sphinxjson.h │ ├── sphinxjson.l │ ├── sphinxjson.y │ ├── sphinxjsonquery.cpp │ ├── sphinxjsonquery.h │ ├── sphinxplugin.cpp │ ├── sphinxplugin.h │ ├── sphinxpq.cpp │ ├── sphinxpq.h │ ├── sphinxqcache.cpp │ ├── sphinxqcache.h │ ├── sphinxql.l │ ├── sphinxql.y │ ├── sphinxql_debug.cpp │ ├── sphinxql_debug.h │ ├── sphinxql_debug.l │ ├── sphinxql_debug.y │ ├── sphinxql_extra.cpp │ ├── sphinxql_extra.h │ ├── sphinxql_extra.l │ ├── sphinxql_extra.y │ ├── sphinxql_second.cpp │ ├── sphinxql_second.h │ ├── sphinxql_second.l │ ├── sphinxql_second.y │ ├── sphinxquery/ │ │ ├── CMakeLists.txt │ │ ├── common_subtree.cpp │ │ ├── parse_helper.cpp │ │ ├── parse_helper.h │ │ ├── sphinxquery.cpp │ │ ├── sphinxquery.h │ │ ├── sphinxquery.y │ │ ├── transform_andnotnotnot.cpp │ │ ├── transform_commonandnotfactor.cpp │ │ ├── transform_commoncompoundnot.cpp │ │ ├── transform_commonkeywords.cpp │ │ ├── transform_commonnot.cpp │ │ ├── transform_commonornot.cpp │ │ ├── transform_commonsubterm.cpp │ │ ├── transform_excessandnot.cpp │ │ ├── transform_hungoperand.cpp │ │ ├── transform_phrase.cpp │ │ ├── transformation.cpp │ │ ├── transformation.h │ │ ├── xqdebug.h │ │ ├── xqnode.cpp │ │ ├── xqparser.cpp │ │ └── xqparser.h │ ├── sphinxrt.cpp │ ├── sphinxrt.h │ ├── sphinxsearch.cpp │ ├── sphinxsearch.h │ ├── sphinxselect.y │ ├── sphinxsort.cpp │ ├── sphinxsort.h │ ├── sphinxstd.h │ ├── sphinxudf.c │ ├── sphinxudf.h │ ├── sphinxutils.cpp │ ├── sphinxutils.h │ ├── sphinxversion.cpp │ ├── sphinxversion.h.in │ ├── sqlchecks/ │ │ ├── CMakeLists.txt │ │ ├── checks.h │ │ ├── scan_parameters.cpp │ │ ├── scanparams.l │ │ ├── validate_vector.cpp │ │ └── validatevec.l │ ├── stackmock.cpp │ ├── stackmock.h │ ├── std/ │ │ ├── CMakeLists.txt │ │ ├── accessor.h │ │ ├── accessor_impl.h │ │ ├── at_scope_exit.h │ │ ├── attrstub.h │ │ ├── autoevent.cpp │ │ ├── autoevent.h │ │ ├── base64.cpp │ │ ├── base64.h │ │ ├── binarysearch.h │ │ ├── binarysearch_impl.h │ │ ├── bitcount.h │ │ ├── bitcount_impl.h │ │ ├── bitvec.h │ │ ├── bitvec_impl.h │ │ ├── blobs.h │ │ ├── blobs_impl.h │ │ ├── buffer.h │ │ ├── buffer_impl.h │ │ ├── checks.cpp │ │ ├── checks.h │ │ ├── circular_buffer.h │ │ ├── circular_buffer_impl.h │ │ ├── comma.h │ │ ├── comma_impl.h │ │ ├── comp.h │ │ ├── comp_impl.h │ │ ├── crc32.cpp │ │ ├── crc32.h │ │ ├── crc32_impl.h │ │ ├── datamove.h │ │ ├── datamove_impl.h │ │ ├── deleter.h │ │ ├── deleter_impl.h │ │ ├── env.cpp │ │ ├── env.h │ │ ├── escaped_builder.h │ │ ├── escaped_builder_impl.h │ │ ├── fastlog.cpp │ │ ├── fastlog.h │ │ ├── fastlog_impl.h │ │ ├── fatal.cpp │ │ ├── fatal.h │ │ ├── fixedvector.h │ │ ├── fixedvector_impl.h │ │ ├── fnv64.cpp │ │ ├── fnv64.h │ │ ├── format.h │ │ ├── generics.h │ │ ├── hash.h │ │ ├── helpers.h │ │ ├── helpers_impl.h │ │ ├── ints.h │ │ ├── iterations.h │ │ ├── iterations_impl.h │ │ ├── largebuffer.h │ │ ├── largebuffer_impl.h │ │ ├── log2.h │ │ ├── log2_impl.h │ │ ├── lrucache.h │ │ ├── lrucache_impl.h │ │ ├── mem.cpp │ │ ├── mem.h │ │ ├── mm.cpp │ │ ├── mm.h │ │ ├── mutex.cpp │ │ ├── mutex.h │ │ ├── num_conv.h │ │ ├── num_conv_impl.h │ │ ├── openhash.h │ │ ├── openhash_impl.h │ │ ├── orderedhash.h │ │ ├── orderedhash_impl.h │ │ ├── queue.h │ │ ├── queue_impl.h │ │ ├── rand.cpp │ │ ├── rand.h │ │ ├── refcounted_mt.h │ │ ├── refcounted_mt_impl.h │ │ ├── refptr.h │ │ ├── relimit.h │ │ ├── relimit_impl.h │ │ ├── rwlock.cpp │ │ ├── rwlock.h │ │ ├── rwlock_impl.h │ │ ├── scoped_comma.h │ │ ├── scoped_comma_impl.h │ │ ├── scopedlock.h │ │ ├── scopedlock_impl.h │ │ ├── sharedptr.h │ │ ├── sharedptr_impl.h │ │ ├── smalloc.cpp │ │ ├── smalloc.h │ │ ├── smalloc_impl.h │ │ ├── sort.h │ │ ├── sort_impl.h │ │ ├── sphwarn.cpp │ │ ├── sphwarn.h │ │ ├── spinlock.h │ │ ├── storage.h │ │ ├── strerrorm.h │ │ ├── string.cpp │ │ ├── string.h │ │ ├── string_impl.h │ │ ├── stringbuilder.cpp │ │ ├── stringbuilder.h │ │ ├── stringbuilder_impl.h │ │ ├── stringhash.cpp │ │ ├── stringhash.h │ │ ├── sys.cpp │ │ ├── sys.h │ │ ├── tdigest.cpp │ │ ├── tdigest.h │ │ ├── thread_annotations.h │ │ ├── threadrole.h │ │ ├── timers.cpp │ │ ├── timers.h │ │ ├── type_traits.h │ │ ├── uniq.h │ │ ├── uniq_impl.h │ │ ├── unique_lock.h │ │ ├── variant.h │ │ ├── variant_impl.h │ │ ├── vector.h │ │ ├── vector_impl.h │ │ ├── vectraits.h │ │ ├── vectraits_impl.h │ │ ├── widest.h │ │ ├── zip.h │ │ └── zip_impl.h │ ├── stripper/ │ │ ├── CMakeLists.txt │ │ ├── html_stripper.cpp │ │ ├── html_stripper.h │ │ └── html_stripper_tag.h │ ├── task_dispatcher.cpp │ ├── task_dispatcher.h │ ├── task_info.cpp │ ├── task_info.h │ ├── taskflushattrs.cpp │ ├── taskflushattrs.h │ ├── taskflushbinlog.cpp │ ├── taskflushbinlog.h │ ├── taskflushmutable.cpp │ ├── taskflushmutable.h │ ├── taskglobalidf.cpp │ ├── taskglobalidf.h │ ├── taskmalloctrim.cpp │ ├── taskmalloctrim.h │ ├── taskping.cpp │ ├── taskping.h │ ├── taskpreread.cpp │ ├── taskpreread.h │ ├── tasksavestate.cpp │ ├── tasksavestate.h │ ├── testrt.conf.in │ ├── testrt.cpp │ ├── tests.cpp │ ├── threads_detached.cpp │ ├── threadutils.cpp │ ├── threadutils.h │ ├── threadutils_impl.h │ ├── timeout_queue.cpp │ ├── timeout_queue.h │ ├── tokenizer/ │ │ ├── CMakeLists.txt │ │ ├── charset_definition_parser.cpp │ │ ├── charset_definition_parser.h │ │ ├── exceptions_trie.cpp │ │ ├── exceptions_trie.h │ │ ├── lowercaser.cpp │ │ ├── lowercaser.h │ │ ├── lowercaser_impl.h │ │ ├── multiform_container.h │ │ ├── remap_range.h │ │ ├── tok_internals.h │ │ ├── token_filter.h │ │ ├── tokenizer.cpp │ │ ├── tokenizer.h │ │ ├── tokenizer_bigram.cpp │ │ ├── tokenizer_multiform.cpp │ │ ├── tokenizer_plugin.cpp │ │ ├── tokenizer_utf8.cpp │ │ ├── tokenizerbase.cpp │ │ ├── tokenizerbase2.cpp │ │ ├── tokenizerbase2_impl.h │ │ └── tokenizerbase_impl.h │ ├── tracer.cpp │ ├── tracer.h │ ├── udfexample.c │ └── wordbreaker.cpp ├── stack.txt ├── test/ │ ├── .gitattributes │ ├── CMakeLists.txt │ ├── bench/ │ │ ├── FILTER-chart1.xml │ │ ├── FILTER-chart2.xml │ │ ├── FILTER-chart3.xml │ │ ├── FILTER-chart4.xml │ │ ├── filter.xml │ │ ├── filter3.xml │ │ ├── fullscan.php │ │ ├── fullscan.xml │ │ ├── killlist_filter.xml │ │ ├── ljq1k.txt │ │ ├── match-modes.xml │ │ ├── rtmerge.xml │ │ ├── sphinx.html │ │ └── subtree_cache.xml │ ├── bench-results/ │ │ └── stub.txt │ ├── bench.php │ ├── clean.cmd │ ├── clean.sh │ ├── clean_old.sh │ ├── clt-tests/ │ │ ├── base/ │ │ │ ├── basic-initialization-manticore-kafka.recb │ │ │ ├── dind/ │ │ │ │ ├── Dockerfile │ │ │ │ └── init.recb │ │ │ ├── kafka-reset-consumer-offsets.recb │ │ │ ├── replication/ │ │ │ │ ├── create-cluster.recb │ │ │ │ ├── join-cluster-on-all-nodes.recb │ │ │ │ ├── start-searchd-precach.recb │ │ │ │ └── stop-searchd.recb │ │ │ ├── searchd-with-flexible-ports.conf │ │ │ ├── start-kafka-kraft.recb │ │ │ ├── start-searchd-with-buddy.recb │ │ │ ├── start-searchd-with-cpustats.recb │ │ │ └── start-searchd.recb │ │ ├── buddy/ │ │ │ ├── test-buddy-protocol-validation.rec │ │ │ ├── test-fuzzy-search-non-min-infix-len.rec │ │ │ ├── test-log-level-buddy-sync.rec │ │ │ ├── test-manticore-version-in-telemetry.rec │ │ │ ├── test-show-version.rec │ │ │ └── test-unserialize-error-absence-kafka-operations.rec │ │ ├── buddy-plugins/ │ │ │ ├── test-enable-disable-buddy-plugin.rec │ │ │ ├── test-facet-with-option-fuzzy.rec │ │ │ ├── test-fuzzy-autocomplete-http.rec │ │ │ ├── test-fuzzy-search-dist-table.rec │ │ │ ├── test-fuzzy-search.rec │ │ │ ├── test-fuzzy-trailing-semicolon.rec │ │ │ ├── test-inconsistent-comunication-with-buddy.rec │ │ │ ├── test-prometheus-exporter.rec │ │ │ └── test-skipping-plugin-loading.rec │ │ ├── bugs/ │ │ │ ├── 1335-test-issue.rec │ │ │ ├── 3037-secondary-indexes-bug.rec │ │ │ ├── 3247-rt-save-disk-chunk-race.rec │ │ │ ├── 3428-test-having-total-found.rec │ │ │ ├── 3481-http-update-distributed-table-wrong-cluster-crash.rec │ │ │ ├── 3489-fuzzy-option-alias-bug.rec │ │ │ ├── 3602-knn-dist-attribute-error.rec │ │ │ ├── 3832-fuzzy-cli-json-multiquery.rec │ │ │ ├── 3844-max-ft-field-crash.rec │ │ │ ├── 3847-conflict-handling-verification.rec │ │ │ ├── 4009-qcache-secondaryindex-bug.rec │ │ │ ├── 4176-attach-rt-externals.rec │ │ │ ├── 4176-rename-rt-externals.rec │ │ │ ├── 567-fuzzy-search-skips-numeric-words.rec │ │ │ ├── 569-fuzzy-single-letter-word-merge.rec │ │ │ ├── 599-fuzzy-join-facet-no-such-table.rec │ │ │ └── fuzzy-preserve-distance-exact-words.rec │ │ ├── core/ │ │ │ ├── boolean-simplify.rec │ │ │ ├── call-autocomplete-force-bigrams.rec │ │ │ ├── call-suggest-force-bigrams.rec │ │ │ ├── query-test-rt-table.rec │ │ │ ├── test-alter-rebuild-knn.rec │ │ │ ├── test-alter-rename-http.rec │ │ │ ├── test-alter-rename.rec │ │ │ ├── test-alter-table-distributed.rec │ │ │ ├── test-alter-table.rec │ │ │ ├── test-auto-schema.rec │ │ │ ├── test-create-table-like-existing-table-with-data.rec │ │ │ ├── test-expansion-phrase-limit.rec │ │ │ ├── test-external-files-handling-ramchunk.rec │ │ │ ├── test-external-files-handling.rec │ │ │ ├── test-freeze-unfreeze-update.rec │ │ │ ├── test-import-table.rec │ │ │ ├── test-truncate-distributed-table.rec │ │ │ ├── test-unfreeze-defrosts.rec │ │ │ └── test-warning-wordlist-size-mismatch.rec │ │ ├── data-manipulation/ │ │ │ ├── test-alter-rename-nightly.rec │ │ │ ├── test-lock-tables-mysqldump-compat.rec │ │ │ ├── test-lock-unlock-tables.rec │ │ │ └── test-replace-into.rec │ │ ├── expected-errors/ │ │ │ ├── buddy-plugin-backup.rec │ │ │ ├── buddy-plugin-empty-string.rec │ │ │ ├── buddy-plugin-select.rec │ │ │ ├── buddy-plugin-show.rec │ │ │ ├── start-searchd.recb │ │ │ ├── test-character-transformation-when-sending-to-buddy.rec │ │ │ ├── test-declaration-of-duplicate-attributes.rec │ │ │ ├── test-declaration-of-duplicate-fields.rec │ │ │ ├── test-errors-insert-for-distributed-missing-table.rec │ │ │ ├── test-external-files-handling-negative.rec │ │ │ ├── test-fuzzy-search-negative.rec │ │ │ ├── test-fuzzy-sql-endpoint-negative.rec │ │ │ ├── test-inconsistency-in-error-messages.rec │ │ │ ├── test-lock-tables-errors.rec │ │ │ └── test-system-variables-error-handling.rec │ │ ├── fulltext-search/ │ │ │ └── test-name-of-fields-in-show-meta.rec │ │ ├── http-interface/ │ │ │ ├── cli-endpoint.rec │ │ │ ├── cli-json-endpoint.rec │ │ │ ├── error-handling.rec │ │ │ ├── multi-query.rec │ │ │ ├── show-version-http.rec │ │ │ ├── show-version-trailing-semicolon.rec │ │ │ ├── sql-endpoint.rec │ │ │ ├── sql-mode-raw-endpoint.rec │ │ │ ├── test-concurrent-requests-to-buddy.rec │ │ │ ├── test-content-type-header-daemon-only.rec │ │ │ ├── test-content-type-header-with-buddy.rec │ │ │ ├── test-distributed-inserts.rec │ │ │ ├── test-fuzzy-search-sql-endpoint.rec │ │ │ ├── test-inserts.rec │ │ │ └── test-manticore-handling-id.rec │ │ ├── indexer/ │ │ │ ├── indexer-latest-mysql-postgres/ │ │ │ │ ├── indexer-latest-mysql-postgres.rec │ │ │ │ ├── min_mysql.conf │ │ │ │ └── min_postgres.sql │ │ │ ├── test-max-iops.rec │ │ │ └── test-max-iosize.rec │ │ ├── indexing-error/ │ │ │ ├── csv_crash.conf │ │ │ ├── min_mysql.conf │ │ │ ├── min_postgres.sql │ │ │ ├── test-id-attribute-error-during-indexing.rec │ │ │ ├── tsv_crash.conf │ │ │ └── xml.conf │ │ ├── installation/ │ │ │ ├── check-backup.recb │ │ │ ├── check-searchd-process.recb │ │ │ ├── check-version/ │ │ │ │ ├── comparison-version.recb │ │ │ │ ├── export-current-version.recb │ │ │ │ └── export-new-version.recb │ │ │ ├── deb-dev-install.rec │ │ │ ├── deb-dev-update.rec │ │ │ ├── deb-release-install.rec │ │ │ ├── ex-sw-wf.recb │ │ │ ├── exceptions-stopwords-wordforms-validation-release-to-dev.rec │ │ │ ├── manticore-and-packages-installation.recb │ │ │ ├── rhel-dev-install.rec │ │ │ ├── rhel-dev-update.rec │ │ │ ├── rhel-release-install.rec │ │ │ ├── rhel7-release-install.rec │ │ │ ├── start-searchd-dev.recb │ │ │ ├── start-searchd-release.recb │ │ │ └── stop-searchd-dev.recb │ │ ├── integrations/ │ │ │ ├── dbeaver/ │ │ │ │ └── test-integrations-dbeaver.rec │ │ │ ├── filebeat/ │ │ │ │ ├── test-integrations-check-filebeat-versions.rec │ │ │ │ ├── test-integrations-filebeat.rec │ │ │ │ └── test-integrations-support-filebeat-versions.rec │ │ │ ├── fluentbit/ │ │ │ │ └── test-integrations-fluentbit.rec │ │ │ ├── grafana/ │ │ │ │ ├── test-integrations-check-grafana-versions.rec │ │ │ │ ├── test-integrations-grafana.rec │ │ │ │ └── test-integrations-test-grafana-versions.rec │ │ │ ├── kafka/ │ │ │ │ ├── dump.json │ │ │ │ ├── import.sh │ │ │ │ ├── script_versions_kafka.sh │ │ │ │ ├── test-integration-kafka-ms.rec │ │ │ │ ├── test-integration-kafka-partition-based-ingestion.rec │ │ │ │ ├── test-integration-kafka-version.rec │ │ │ │ └── test-unserialize-error-absence-kafka-operations.rec │ │ │ ├── logstash/ │ │ │ │ ├── test-integrations-check-logstash-versions.rec │ │ │ │ ├── test-integrations-logstash.rec │ │ │ │ └── test-integrations-test-logstash-versions.rec │ │ │ └── vector/ │ │ │ └── test-integrations-vector.rec │ │ ├── join/ │ │ │ ├── test-avg-select-join.rec │ │ │ └── test-join-query-logging-completeness.rec │ │ ├── kibana/ │ │ │ ├── test-kibana-log-to-test-script.rec │ │ │ └── test-parameter-for-installing-the-kibana-version.rec │ │ ├── mcl/ │ │ │ ├── auto-embeddings-backup-restore.rec │ │ │ ├── auto-embeddings-concurrent.rec │ │ │ ├── auto-embeddings-dml-test.rec │ │ │ ├── auto-embeddings-duplicate-id.rec │ │ │ ├── auto-embeddings-edge-cases.rec │ │ │ ├── auto-embeddings-endpoints.rec │ │ │ ├── auto-embeddings-error-handling.rec │ │ │ ├── auto-embeddings-from-vector-check.rec │ │ │ ├── auto-embeddings-hnsw-configs.rec │ │ │ ├── auto-embeddings-jina-remote.rec │ │ │ ├── auto-embeddings-json-api.rec │ │ │ ├── auto-embeddings-knn-select-scenarios.rec │ │ │ ├── auto-embeddings-openai-remote.rec │ │ │ ├── auto-embeddings-qwen.rec │ │ │ ├── auto-embeddings-syntax-check.rec │ │ │ ├── auto-embeddings-voyage-remote.rec │ │ │ └── base.recb │ │ ├── migration-es-ms/ │ │ │ └── test-migration-es-ms.rec │ │ ├── mysqldump/ │ │ │ ├── common/ │ │ │ │ ├── mcl-all-json.recb │ │ │ │ ├── mcl-all-multi.recb │ │ │ │ ├── mcl-all-multi64.recb │ │ │ │ ├── mcl-id-json.recb │ │ │ │ ├── mcl-id-multi.recb │ │ │ │ ├── mcl-id-multi64.recb │ │ │ │ ├── mcl-only-json.recb │ │ │ │ ├── mcl-only-multi.recb │ │ │ │ ├── mcl-only-multi64.recb │ │ │ │ ├── no-mcl-json.recb │ │ │ │ ├── no-mcl-multi.recb │ │ │ │ ├── no-mcl-multi64.recb │ │ │ │ ├── pq-table-mysqldump.recb │ │ │ │ └── random-1m-dump-restore.recb │ │ │ ├── dumps/ │ │ │ │ ├── mcl-all/ │ │ │ │ │ ├── json-batch-1.sql │ │ │ │ │ ├── json-batch-2.sql │ │ │ │ │ ├── json-batch-3.sql │ │ │ │ │ ├── json.sql │ │ │ │ │ ├── multi-batch-1.sql │ │ │ │ │ ├── multi-batch-2.sql │ │ │ │ │ ├── multi-batch-3.sql │ │ │ │ │ ├── multi.sql │ │ │ │ │ ├── multi64-batch-1.sql │ │ │ │ │ ├── multi64-batch-2.sql │ │ │ │ │ ├── multi64-batch-3.sql │ │ │ │ │ └── multi64.sql │ │ │ │ ├── mcl-id/ │ │ │ │ │ ├── json-batch-1.sql │ │ │ │ │ ├── json-batch-2.sql │ │ │ │ │ ├── json-batch-3.sql │ │ │ │ │ ├── json.sql │ │ │ │ │ ├── multi-batch-1.sql │ │ │ │ │ ├── multi-batch-2.sql │ │ │ │ │ ├── multi-batch-3.sql │ │ │ │ │ ├── multi.sql │ │ │ │ │ ├── multi64-batch-1.sql │ │ │ │ │ ├── multi64-batch-2.sql │ │ │ │ │ ├── multi64-batch-3.sql │ │ │ │ │ └── multi64.sql │ │ │ │ ├── mcl-only/ │ │ │ │ │ ├── json-batch-1.sql │ │ │ │ │ ├── json-batch-2.sql │ │ │ │ │ ├── json-batch-3.sql │ │ │ │ │ ├── json.sql │ │ │ │ │ ├── multi-batch-1.sql │ │ │ │ │ ├── multi-batch-2.sql │ │ │ │ │ ├── multi-batch-3.sql │ │ │ │ │ ├── multi.sql │ │ │ │ │ ├── multi64-batch-1.sql │ │ │ │ │ ├── multi64-batch-2.sql │ │ │ │ │ ├── multi64-batch-3.sql │ │ │ │ │ └── multi64.sql │ │ │ │ └── no-mcl/ │ │ │ │ ├── json-batch-1.sql │ │ │ │ ├── json-batch-2.sql │ │ │ │ ├── json-batch-3.sql │ │ │ │ ├── json.sql │ │ │ │ ├── multi-batch-1.sql │ │ │ │ ├── multi-batch-2.sql │ │ │ │ ├── multi-batch-3.sql │ │ │ │ ├── multi.sql │ │ │ │ ├── multi64-batch-1.sql │ │ │ │ ├── multi64-batch-2.sql │ │ │ │ ├── multi64-batch-3.sql │ │ │ │ └── multi64.sql │ │ │ ├── maria/ │ │ │ │ ├── init.recb │ │ │ │ ├── mcl-all-json.rec │ │ │ │ ├── mcl-all-multi.rec │ │ │ │ ├── mcl-all-multi64.rec │ │ │ │ ├── mcl-id-json.rec │ │ │ │ ├── mcl-id-multi.rec │ │ │ │ ├── mcl-id-multi64.rec │ │ │ │ ├── mcl-only-json.rec │ │ │ │ ├── mcl-only-multi.rec │ │ │ │ ├── mcl-only-multi64.rec │ │ │ │ ├── no-mcl-json.rec │ │ │ │ ├── no-mcl-multi.rec │ │ │ │ ├── no-mcl-multi64.rec │ │ │ │ ├── pq-table-mysqldump.rec │ │ │ │ └── random-1m-dump-restore.rec │ │ │ ├── mysql/ │ │ │ │ ├── mcl-all-json.rec │ │ │ │ ├── mcl-all-multi.rec │ │ │ │ ├── mcl-all-multi64.rec │ │ │ │ ├── mcl-id-json.rec │ │ │ │ ├── mcl-id-multi.rec │ │ │ │ ├── mcl-id-multi64.rec │ │ │ │ ├── mcl-only-json.rec │ │ │ │ ├── mcl-only-multi.rec │ │ │ │ ├── mcl-only-multi64.rec │ │ │ │ ├── no-mcl-json.rec │ │ │ │ ├── no-mcl-multi.rec │ │ │ │ ├── no-mcl-multi64.rec │ │ │ │ ├── pq-table-mysqldump.rec │ │ │ │ └── random-1m-dump-restore.rec │ │ │ └── versions/ │ │ │ ├── mariadb/ │ │ │ │ ├── script_versions_mariadb.sh │ │ │ │ └── test-supported-mysqldump-mariadb-versions.rec │ │ │ └── mysql/ │ │ │ ├── script_versions_mysql.sh │ │ │ └── test-supported-mysqldump-mysql-versions.rec │ │ ├── performance/ │ │ │ ├── concurrent-load-search-stats-validation.rec │ │ │ ├── test-json-disk_chunks.rec │ │ │ ├── test-optimisation-and-update.rec │ │ │ └── test-show-table-tbl-name-status.rec │ │ ├── performance-nightly/ │ │ │ ├── test-comparison-overhead-json-sql.rec │ │ │ └── test-performance-for-queries-with-multiple-disk-chunks.rec │ │ ├── replication/ │ │ │ ├── fatal-invalid-port.rec │ │ │ ├── test-auto-embeddings-replication.rec │ │ │ ├── test-cluster-creation-without-replication.rec │ │ │ ├── test-generation-of-document-auto-id-in-replication.rec │ │ │ ├── test-ist-recovery-after-node-crash.rec │ │ │ ├── test-lock-tables-replicated.rec │ │ │ ├── test-replication-with-mysqldump.rec │ │ │ ├── test-replication.rec │ │ │ └── test-sst-progress.rec │ │ ├── scripts/ │ │ │ ├── fnames.txt │ │ │ ├── generate-1mln-records.sh │ │ │ ├── generate-records-json.sh │ │ │ ├── generate-records.sh │ │ │ ├── issue-1335-dump.php │ │ │ ├── load_names_attr.php │ │ │ ├── names.txt │ │ │ └── surnames.txt │ │ ├── sharding/ │ │ │ ├── cluster/ │ │ │ │ ├── attach-table-while-joining-cluster.rec │ │ │ │ ├── join-cluster-while-attaching-table.rec │ │ │ │ ├── join-cluster-while-creating-another.rec │ │ │ │ ├── join-cluster-while-joining-another.rec │ │ │ │ ├── join-multiple-clusters-on-same-node.rec │ │ │ │ ├── multiple-join-single-alter-cluster.rec │ │ │ │ └── test-drop-sharded-clustering-table.rec │ │ │ ├── drop/ │ │ │ │ └── test-drop-sharded-table.rec │ │ │ ├── functional/ │ │ │ │ ├── functional-sharding-and-cluster-negative.rec │ │ │ │ ├── functional-sharding-positive.rec │ │ │ │ └── test-dist-table-shards-5000.rec │ │ │ ├── replication/ │ │ │ │ ├── create-table-1-node-10-shards.rec │ │ │ │ ├── create-table-2-nodes-4-shards.rec │ │ │ │ ├── create-table-3-nodes-6-shards.rec │ │ │ │ ├── create-table-5-nodes-60-shards.rec │ │ │ │ ├── test-data-manipulation.rec │ │ │ │ ├── test-distributed-inserts-with-replication.rec │ │ │ │ └── test-multi-node-sharding-and-replication.rec │ │ │ └── syntax/ │ │ │ ├── sharding-syntax-negative.rec │ │ │ └── sharding-syntax-positive.rec │ │ ├── tables-interaction/ │ │ │ └── test-tables-interaction.rec │ │ ├── test-configuration/ │ │ │ ├── show-settings.rec │ │ │ ├── show-threads.rec │ │ │ ├── test-buddy-max-connections-configuration.rec │ │ │ ├── test-buddy-requests-not-logged.rec │ │ │ ├── test-default-config.rec │ │ │ ├── test-update-with-query-log-min-msec.rec │ │ │ ├── test-writing-binlog-during-parallel-queries.rec │ │ │ └── timezone.rec │ │ └── vector-knn/ │ │ ├── test-knn-id.rec │ │ ├── test-knn-search-by-doc-id.rec │ │ ├── test-knn-validation.rec │ │ └── tets-insert-knn-errors.rec │ ├── go_prepared_stmt/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── helpers.inc │ ├── helpers_rt.inc │ ├── html_120.txt │ ├── indextool/ │ │ ├── CMakeLists.txt │ │ ├── indextool.conf │ │ └── test.cmake │ ├── mre.rec │ ├── mysql_prepared_stmt.md │ ├── mysql_prepared_stmt.php │ ├── node_prepared_stmt/ │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── ql/ │ │ ├── README │ │ ├── data/ │ │ │ ├── rt.kill │ │ │ ├── rt.meta │ │ │ └── rt.ram │ │ ├── qltest.cs │ │ ├── qltest.java │ │ ├── qltest.php │ │ ├── qltest.py │ │ ├── qltest.rb │ │ ├── sphinx.conf │ │ ├── t.cmd │ │ └── t2.cmd │ ├── settings.inc │ ├── sqlx_prepared_stmt/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ └── main.rs │ ├── ssl_keys/ │ │ ├── server-cert.pem │ │ └── server-key.pem │ ├── stopwords.txt │ ├── stopwords_121.txt │ ├── synonyms.txt │ ├── test-templates.xml │ ├── test_001/ │ │ └── test.xml │ ├── test_002/ │ │ └── test.xml │ ├── test_003/ │ │ └── test.xml │ ├── test_004/ │ │ └── test.xml │ ├── test_005/ │ │ └── test.xml │ ├── test_006/ │ │ └── test.xml │ ├── test_007/ │ │ └── test.xml │ ├── test_008/ │ │ └── test.xml │ ├── test_009/ │ │ └── test.xml │ ├── test_010/ │ │ └── test.xml │ ├── test_011/ │ │ └── test.xml │ ├── test_012/ │ │ └── test.xml │ ├── test_013/ │ │ └── test.xml │ ├── test_014/ │ │ └── test.xml │ ├── test_015/ │ │ ├── stops.txt │ │ └── test.xml │ ├── test_016/ │ │ └── test.xml │ ├── test_017/ │ │ └── test.xml │ ├── test_018/ │ │ └── test.xml │ ├── test_019/ │ │ └── test.xml │ ├── test_020/ │ │ └── test.xml │ ├── test_021/ │ │ └── test.xml │ ├── test_022/ │ │ ├── test.xml │ │ ├── wf_multi.txt │ │ ├── wf_multi2.txt │ │ ├── wf_multi3.txt │ │ └── wf_num.txt │ ├── test_023/ │ │ └── test.xml │ ├── test_024/ │ │ └── test.xml │ ├── test_025/ │ │ ├── s25.txt │ │ └── test.xml │ ├── test_026/ │ │ └── test.xml │ ├── test_027/ │ │ └── test.xml │ ├── test_028/ │ │ ├── model.aff │ │ ├── model.dict │ │ ├── model.spell │ │ └── test.inc │ ├── test_029/ │ │ └── test.xml │ ├── test_030/ │ │ └── test.xml │ ├── test_031/ │ │ └── test.xml │ ├── test_032/ │ │ └── test.xml │ ├── test_033/ │ │ └── test.xml │ ├── test_034/ │ │ └── test.xml │ ├── test_035/ │ │ └── test.xml │ ├── test_036/ │ │ └── test.xml │ ├── test_037/ │ │ └── test.xml │ ├── test_038/ │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_039/ │ │ └── test.xml │ ├── test_040/ │ │ └── test.xml │ ├── test_041/ │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_042/ │ │ └── test.xml │ ├── test_043/ │ │ └── test.xml │ ├── test_044/ │ │ └── test.xml │ ├── test_045/ │ │ └── test.xml │ ├── test_046/ │ │ └── test.xml │ ├── test_047/ │ │ ├── data1.csv │ │ ├── data1.xml │ │ └── test.xml │ ├── test_048/ │ │ └── test.xml │ ├── test_049/ │ │ └── test.xml │ ├── test_050/ │ │ └── test.xml │ ├── test_051/ │ │ └── test.xml │ ├── test_052/ │ │ └── test.xml │ ├── test_053/ │ │ └── test.xml │ ├── test_054/ │ │ └── test.xml │ ├── test_055/ │ │ └── test.xml │ ├── test_056/ │ │ └── test.xml │ ├── test_057/ │ │ └── test.xml │ ├── test_058/ │ │ └── test.xml │ ├── test_059/ │ │ └── test.xml │ ├── test_060/ │ │ └── test.xml │ ├── test_061/ │ │ └── test.xml │ ├── test_062/ │ │ └── test.xml │ ├── test_063/ │ │ ├── stop_blend.txt │ │ └── test.xml │ ├── test_064/ │ │ └── test.xml │ ├── test_065/ │ │ └── test.xml │ ├── test_066/ │ │ └── test.xml │ ├── test_067/ │ │ └── test.xml │ ├── test_068/ │ │ ├── data1.csv │ │ ├── data1.tsv │ │ ├── data1.xml │ │ ├── data2.csv │ │ ├── data2.xml │ │ ├── data3.xml │ │ ├── data51.xml │ │ ├── data_embedded.xml │ │ ├── data_embedded1.xml │ │ ├── data_embedded2.xml │ │ ├── data_large.xml │ │ ├── data_spec.csv │ │ ├── data_spec.tsv │ │ ├── test.xml │ │ └── test_kl.xml │ ├── test_069/ │ │ └── test.xml │ ├── test_070/ │ │ └── test.xml │ ├── test_071/ │ │ └── test.xml │ ├── test_072/ │ │ └── test.xml │ ├── test_073/ │ │ └── test.xml │ ├── test_074/ │ │ └── test.xml │ ├── test_075/ │ │ └── test.xml │ ├── test_076/ │ │ └── test.xml │ ├── test_077/ │ │ └── test.xml │ ├── test_078/ │ │ └── test.xml │ ├── test_079/ │ │ └── test.xml │ ├── test_080/ │ │ └── test.xml │ ├── test_081/ │ │ ├── test.xml │ │ ├── words1.txt │ │ ├── words2.txt │ │ └── words3.txt │ ├── test_082/ │ │ ├── test.xml │ │ ├── words_delta.txt │ │ └── words_main.txt │ ├── test_083/ │ │ └── test.xml │ ├── test_084/ │ │ └── test.xml │ ├── test_085/ │ │ └── test.xml │ ├── test_086/ │ │ └── test.xml │ ├── test_087/ │ │ └── test.xml │ ├── test_088/ │ │ └── test.xml │ ├── test_089/ │ │ └── test.xml │ ├── test_090/ │ │ └── test.xml │ ├── test_091/ │ │ └── test.xml │ ├── test_092/ │ │ └── test.xml │ ├── test_093/ │ │ └── test.xml │ ├── test_094/ │ │ └── test.xml │ ├── test_095/ │ │ └── test.xml │ ├── test_096/ │ │ └── test.xml │ ├── test_097/ │ │ └── test.xml │ ├── test_098/ │ │ ├── test.xml │ │ ├── wf3.txt │ │ └── wordforms.txt │ ├── test_099/ │ │ └── test.xml │ ├── test_100/ │ │ └── test.xml │ ├── test_101/ │ │ └── test.xml │ ├── test_102/ │ │ └── test.xml │ ├── test_103/ │ │ └── test.xml │ ├── test_104/ │ │ └── test.xml │ ├── test_105/ │ │ └── test.xml │ ├── test_106/ │ │ └── test.xml │ ├── test_107/ │ │ └── test.xml │ ├── test_108/ │ │ ├── data.xml │ │ ├── data2.xml │ │ ├── data3.xml │ │ └── test.xml │ ├── test_109/ │ │ └── test.xml │ ├── test_110/ │ │ └── test.xml │ ├── test_111/ │ │ └── test.xml │ ├── test_112/ │ │ └── test.xml │ ├── test_113/ │ │ └── test.xml │ ├── test_114/ │ │ └── test.xml │ ├── test_115/ │ │ ├── test.xml │ │ └── wf_multi.txt │ ├── test_116/ │ │ └── test.xml │ ├── test_117/ │ │ └── test.xml │ ├── test_118/ │ │ └── test.xml │ ├── test_119/ │ │ └── test.xml │ ├── test_120/ │ │ └── test.xml │ ├── test_121/ │ │ └── test.xml │ ├── test_122/ │ │ └── test.xml │ ├── test_123/ │ │ └── test.xml │ ├── test_124/ │ │ ├── field_124_match.txt │ │ └── test.xml │ ├── test_125/ │ │ └── test.xml │ ├── test_126/ │ │ └── test.xml │ ├── test_127/ │ │ └── test.xml │ ├── test_128/ │ │ └── test.xml │ ├── test_129/ │ │ └── test.xml │ ├── test_130/ │ │ ├── 512k.xml │ │ ├── empty.txt │ │ ├── load_file.txt │ │ └── test.xml │ ├── test_131/ │ │ └── test.xml │ ├── test_132/ │ │ └── test.xml │ ├── test_133/ │ │ └── test.xml │ ├── test_134/ │ │ └── test.xml │ ├── test_135/ │ │ └── test.xml │ ├── test_136/ │ │ ├── exceptions.txt │ │ └── test.xml │ ├── test_137/ │ │ └── test.xml │ ├── test_138/ │ │ └── test.xml │ ├── test_139/ │ │ └── test.xml │ ├── test_140/ │ │ └── test.xml │ ├── test_141/ │ │ └── test.xml │ ├── test_142/ │ │ └── test.xml │ ├── test_143/ │ │ ├── test.xml │ │ ├── wordforms.txt │ │ └── wordforms_multi_dest.txt │ ├── test_144/ │ │ └── test.xml │ ├── test_145/ │ │ ├── stop0.txt │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_146/ │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_147/ │ │ └── test.xml │ ├── test_148/ │ │ ├── doc1.txt │ │ ├── doc2.txt │ │ ├── doc3.txt │ │ └── test.xml │ ├── test_149/ │ │ └── test.xml │ ├── test_150/ │ │ └── test.xml │ ├── test_151/ │ │ └── test.xml │ ├── test_152/ │ │ └── test.xml │ ├── test_153/ │ │ └── test.xml │ ├── test_154/ │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_155/ │ │ └── test.xml │ ├── test_156/ │ │ └── test.xml │ ├── test_157/ │ │ └── test.xml │ ├── test_158/ │ │ ├── test.xml │ │ └── wf158.txt │ ├── test_159/ │ │ └── test.xml │ ├── test_160/ │ │ ├── multiwordorms.txt │ │ └── test.xml │ ├── test_161/ │ │ ├── data1.xml │ │ └── test.xml │ ├── test_162/ │ │ └── test.xml │ ├── test_163/ │ │ └── test.xml │ ├── test_164/ │ │ └── test.xml │ ├── test_165/ │ │ ├── synonyms.txt │ │ ├── synonyms2.txt │ │ ├── synonyms3.txt │ │ ├── synonyms4.txt │ │ └── test.xml │ ├── test_166/ │ │ └── test.xml │ ├── test_167/ │ │ └── test.xml │ ├── test_168/ │ │ ├── test.xml │ │ ├── text1.txt │ │ └── text2.txt │ ├── test_169/ │ │ └── test.xml │ ├── test_170/ │ │ └── test.xml │ ├── test_171/ │ │ ├── data_mm.tsv │ │ └── test.xml │ ├── test_172/ │ │ └── test.xml │ ├── test_173/ │ │ └── test.xml │ ├── test_174/ │ │ ├── readme.txt │ │ └── test.xml │ ├── test_175/ │ │ ├── hits1.xml │ │ └── test.xml │ ├── test_176/ │ │ └── test.xml │ ├── test_177/ │ │ └── test.xml │ ├── test_178/ │ │ └── test.xml │ ├── test_179/ │ │ └── test.xml │ ├── test_180/ │ │ └── test.xml │ ├── test_181/ │ │ └── test.xml │ ├── test_182/ │ │ └── test.xml │ ├── test_183/ │ │ ├── data_embedded.xml │ │ └── test.xml │ ├── test_184/ │ │ ├── data_ext.xml │ │ ├── data_fields.xml │ │ ├── data_int.xml │ │ └── test.xml │ ├── test_185/ │ │ └── test.xml │ ├── test_186/ │ │ └── test.xml │ ├── test_187/ │ │ └── test.xml │ ├── test_188/ │ │ └── test.xml │ ├── test_189/ │ │ └── test.xml │ ├── test_190/ │ │ ├── refdata/ │ │ │ ├── agent1/ │ │ │ │ ├── allfiles/ │ │ │ │ │ ├── text1.txt │ │ │ │ │ ├── text2.txt │ │ │ │ │ ├── text3.txt │ │ │ │ │ ├── text4.txt │ │ │ │ │ ├── text5.txt │ │ │ │ │ └── text6.txt │ │ │ │ └── scatteredfiles/ │ │ │ │ ├── text3.txt │ │ │ │ └── text4.txt │ │ │ ├── agent2/ │ │ │ │ ├── allfiles/ │ │ │ │ │ ├── text1.txt │ │ │ │ │ ├── text2.txt │ │ │ │ │ ├── text3.txt │ │ │ │ │ ├── text4.txt │ │ │ │ │ ├── text5.txt │ │ │ │ │ └── text6.txt │ │ │ │ └── scatteredfiles/ │ │ │ │ ├── text5.txt │ │ │ │ └── text6.txt │ │ │ └── master/ │ │ │ ├── allfiles/ │ │ │ │ ├── text1.txt │ │ │ │ ├── text2.txt │ │ │ │ ├── text3.txt │ │ │ │ ├── text4.txt │ │ │ │ ├── text5.txt │ │ │ │ └── text6.txt │ │ │ └── scatteredfiles/ │ │ │ ├── text1.txt │ │ │ └── text2.txt │ │ └── test.xml │ ├── test_191/ │ │ └── test.xml │ ├── test_192/ │ │ ├── test.xml │ │ ├── wordforms-12.txt │ │ ├── wordforms-wb.txt │ │ └── wordforms.txt │ ├── test_193/ │ │ ├── stopwords.txt │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_194/ │ │ ├── file1.txt │ │ ├── file2.txt │ │ ├── file3.txt │ │ └── test.xml │ ├── test_195/ │ │ └── test.xml │ ├── test_196/ │ │ ├── ex21.txt │ │ ├── test.xml │ │ ├── wf1.txt │ │ ├── wf2.txt │ │ ├── wf21.txt │ │ ├── wf_pre.txt │ │ ├── wordforms.txt │ │ ├── words1.txt │ │ └── words2.txt │ ├── test_197/ │ │ └── test.xml │ ├── test_198/ │ │ └── test.xml │ ├── test_199/ │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_200/ │ │ └── test.xml │ ├── test_201/ │ │ └── test.xml │ ├── test_202/ │ │ └── test.xml │ ├── test_203/ │ │ └── test.xml │ ├── test_204/ │ │ └── test.xml │ ├── test_205/ │ │ └── test.xml │ ├── test_206/ │ │ └── test.xml │ ├── test_207/ │ │ ├── test.xml │ │ ├── wordforms.txt │ │ ├── wordforms2.txt │ │ └── wordforms3.txt │ ├── test_208/ │ │ └── test.xml │ ├── test_209/ │ │ └── test.xml │ ├── test_210/ │ │ ├── stopwords.txt │ │ └── test.xml │ ├── test_211/ │ │ └── test.xml │ ├── test_212/ │ │ └── test.xml │ ├── test_213/ │ │ └── test.xml │ ├── test_214/ │ │ └── test.xml │ ├── test_215/ │ │ └── test.xml │ ├── test_216/ │ │ └── test.xml │ ├── test_217/ │ │ └── test.xml │ ├── test_218/ │ │ ├── data.xml │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_219/ │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_220/ │ │ └── test.xml │ ├── test_221/ │ │ └── test.xml │ ├── test_222/ │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_223/ │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_224/ │ │ └── test.xml │ ├── test_225/ │ │ └── test.xml │ ├── test_226/ │ │ └── test.xml │ ├── test_227/ │ │ └── test.xml │ ├── test_228/ │ │ └── test.xml │ ├── test_229/ │ │ └── test.xml │ ├── test_230/ │ │ └── test.xml │ ├── test_231/ │ │ └── test.xml │ ├── test_232/ │ │ └── test.xml │ ├── test_233/ │ │ ├── data/ │ │ │ ├── reload.spa │ │ │ ├── reload.spb │ │ │ ├── reload.spd │ │ │ ├── reload.spe │ │ │ ├── reload.sph │ │ │ ├── reload.spi │ │ │ ├── reload.spm │ │ │ ├── reload.spp │ │ │ ├── reload.spt │ │ │ ├── test.spa │ │ │ ├── test.spb │ │ │ ├── test.spd │ │ │ ├── test.spe │ │ │ ├── test.sph │ │ │ ├── test.spi │ │ │ ├── test.spm │ │ │ ├── test.spp │ │ │ └── test.spt │ │ ├── reload_path/ │ │ │ └── .gitignore │ │ └── test.xml │ ├── test_234/ │ │ └── test.xml │ ├── test_235/ │ │ └── test.xml │ ├── test_236/ │ │ ├── data1.csv │ │ ├── data1.tsv │ │ ├── data1.xml │ │ ├── data2.xml │ │ ├── data3.xml │ │ ├── data4.xml │ │ └── test.xml │ ├── test_237/ │ │ └── test.xml │ ├── test_238/ │ │ └── test.xml │ ├── test_239/ │ │ └── test.xml │ ├── test_240/ │ │ └── test.xml │ ├── test_241/ │ │ └── test.xml │ ├── test_242/ │ │ └── test.xml │ ├── test_243/ │ │ └── test.xml │ ├── test_244/ │ │ └── test.xml │ ├── test_245/ │ │ ├── data.xml │ │ ├── data_rev.xml │ │ └── test.xml │ ├── test_246/ │ │ └── test.xml │ ├── test_247/ │ │ └── test.xml │ ├── test_248/ │ │ └── test.xml │ ├── test_249/ │ │ └── test.xml │ ├── test_250/ │ │ ├── data/ │ │ │ ├── plain2.spa │ │ │ ├── plain2.spd │ │ │ ├── plain2.spe │ │ │ ├── plain2.sph │ │ │ ├── plain2.spi │ │ │ ├── plain2.spm │ │ │ ├── plain2.spp │ │ │ └── plain2.spt │ │ └── test.xml │ ├── test_251/ │ │ └── test.xml │ ├── test_252/ │ │ └── test.xml │ ├── test_253/ │ │ └── test.xml │ ├── test_254/ │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_255/ │ │ ├── test.xml │ │ └── wf1.txt │ ├── test_256/ │ │ └── test.xml │ ├── test_257/ │ │ ├── data1.csv │ │ ├── data1.tsv │ │ ├── data1.xml │ │ ├── data2.csv │ │ ├── data3.csv │ │ └── test.xml │ ├── test_258/ │ │ └── test.xml │ ├── test_259/ │ │ └── test.xml │ ├── test_260/ │ │ └── test.xml │ ├── test_261/ │ │ └── test.xml │ ├── test_262/ │ │ └── test.xml │ ├── test_263/ │ │ ├── test.csv │ │ └── test.xml │ ├── test_264/ │ │ └── test.xml │ ├── test_265/ │ │ └── test.xml │ ├── test_266/ │ │ └── test.xml │ ├── test_267/ │ │ └── test.xml │ ├── test_268/ │ │ └── test.xml │ ├── test_269/ │ │ └── test.xml │ ├── test_270/ │ │ ├── data1.tsv │ │ └── test.xml │ ├── test_271/ │ │ └── test.xml │ ├── test_272/ │ │ └── test.xml │ ├── test_273/ │ │ └── test.xml │ ├── test_274/ │ │ └── test.xml │ ├── test_275/ │ │ └── test.xml │ ├── test_276/ │ │ └── test.xml │ ├── test_277/ │ │ └── test.xml │ ├── test_278/ │ │ └── test.xml │ ├── test_279/ │ │ └── test.xml │ ├── test_280/ │ │ └── test.xml │ ├── test_281/ │ │ └── test.xml │ ├── test_282/ │ │ └── test.xml │ ├── test_283/ │ │ └── test.xml │ ├── test_284/ │ │ └── test.xml │ ├── test_285/ │ │ └── test.xml │ ├── test_286/ │ │ └── test.xml │ ├── test_287/ │ │ └── test.xml │ ├── test_288/ │ │ └── test.xml │ ├── test_289/ │ │ └── test.xml │ ├── test_290/ │ │ └── test.xml │ ├── test_291/ │ │ └── test.xml │ ├── test_292/ │ │ └── test.xml │ ├── test_293/ │ │ └── test.xml │ ├── test_294/ │ │ └── test.xml │ ├── test_295/ │ │ └── test.xml │ ├── test_296/ │ │ └── test.xml │ ├── test_297/ │ │ └── test.xml │ ├── test_298/ │ │ └── test.xml │ ├── test_299/ │ │ └── test.xml │ ├── test_300/ │ │ ├── bug.py │ │ └── test.xml │ ├── test_301/ │ │ └── test.xml │ ├── test_302/ │ │ └── test.xml │ ├── test_303/ │ │ └── test.xml │ ├── test_304/ │ │ └── test.xml │ ├── test_305/ │ │ └── test.xml │ ├── test_306/ │ │ └── test.xml │ ├── test_307/ │ │ └── test.xml │ ├── test_308/ │ │ └── test.xml │ ├── test_309/ │ │ ├── jieba_user_dict.txt │ │ └── test.xml │ ├── test_310/ │ │ ├── data.xml │ │ ├── jieba_user_dict.txt │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_311/ │ │ ├── data.xml │ │ └── test.xml │ ├── test_312/ │ │ └── test.xml │ ├── test_313/ │ │ └── test.xml │ ├── test_314/ │ │ └── test.xml │ ├── test_315/ │ │ └── test.xml │ ├── test_316/ │ │ └── test.xml │ ├── test_317/ │ │ └── test.xml │ ├── test_318/ │ │ └── test.xml │ ├── test_319/ │ │ └── test.xml │ ├── test_320/ │ │ └── test.xml │ ├── test_321/ │ │ └── test.xml │ ├── test_322/ │ │ └── test.xml │ ├── test_323/ │ │ └── test.xml │ ├── test_324/ │ │ └── test.xml │ ├── test_325/ │ │ └── test.xml │ ├── test_326/ │ │ └── test.xml │ ├── test_327/ │ │ └── test.xml │ ├── test_328/ │ │ └── test.xml │ ├── test_329/ │ │ └── test.xml │ ├── test_330/ │ │ └── test.xml │ ├── test_331/ │ │ └── test.xml │ ├── test_332/ │ │ └── test.xml │ ├── test_333/ │ │ └── test.xml │ ├── test_334/ │ │ ├── exc.txt │ │ └── test.xml │ ├── test_335/ │ │ └── test.xml │ ├── test_336/ │ │ └── test.xml │ ├── test_337/ │ │ └── test.xml │ ├── test_338/ │ │ └── test.xml │ ├── test_339/ │ │ └── test.xml │ ├── test_340/ │ │ └── test.xml │ ├── test_341/ │ │ └── test.xml │ ├── test_342/ │ │ └── test.xml │ ├── test_343/ │ │ └── test.xml │ ├── test_344/ │ │ └── test.xml │ ├── test_345/ │ │ └── test.xml │ ├── test_346/ │ │ └── test.xml │ ├── test_347/ │ │ └── test.xml │ ├── test_348/ │ │ └── test.xml │ ├── test_349/ │ │ └── test.xml │ ├── test_350/ │ │ └── test.xml │ ├── test_351/ │ │ └── test.xml │ ├── test_352/ │ │ └── test.xml │ ├── test_353/ │ │ └── test.xml │ ├── test_354/ │ │ └── test.xml │ ├── test_355/ │ │ └── test.xml │ ├── test_356/ │ │ └── test.xml │ ├── test_357/ │ │ └── test.xml │ ├── test_358/ │ │ └── test.xml │ ├── test_359/ │ │ └── test.xml │ ├── test_360/ │ │ ├── stops.txt │ │ └── test.xml │ ├── test_361/ │ │ └── test.xml │ ├── test_362/ │ │ └── test.xml │ ├── test_363/ │ │ └── test.xml │ ├── test_364/ │ │ └── test.xml │ ├── test_365/ │ │ └── test.xml │ ├── test_366/ │ │ └── test.xml │ ├── test_367/ │ │ └── test.xml │ ├── test_368/ │ │ └── test.xml │ ├── test_369/ │ │ └── test.xml │ ├── test_370/ │ │ └── test.xml │ ├── test_371/ │ │ └── test.xml │ ├── test_372/ │ │ └── test.xml │ ├── test_373/ │ │ └── test.xml │ ├── test_374/ │ │ └── test.xml │ ├── test_375/ │ │ └── test.xml │ ├── test_376/ │ │ └── test.xml │ ├── test_377/ │ │ └── test.xml │ ├── test_378/ │ │ └── test.xml │ ├── test_379/ │ │ └── test.xml │ ├── test_380/ │ │ └── test.xml │ ├── test_381/ │ │ └── test.xml │ ├── test_382/ │ │ └── test.xml │ ├── test_383/ │ │ └── test.xml │ ├── test_384/ │ │ └── test.xml │ ├── test_385/ │ │ └── test.xml │ ├── test_386/ │ │ └── test.xml │ ├── test_387/ │ │ └── test.xml │ ├── test_388/ │ │ └── test.xml │ ├── test_389/ │ │ └── test.xml │ ├── test_390/ │ │ └── test.xml │ ├── test_391/ │ │ └── test.xml │ ├── test_392/ │ │ └── test.xml │ ├── test_393/ │ │ └── test.xml │ ├── test_394/ │ │ └── test.xml │ ├── test_395/ │ │ └── test.xml │ ├── test_396/ │ │ └── test.xml │ ├── test_397/ │ │ ├── stops.txt │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_398/ │ │ └── test.xml │ ├── test_399/ │ │ └── test.xml │ ├── test_400/ │ │ └── test.xml │ ├── test_401/ │ │ ├── data.xml │ │ └── test.xml │ ├── test_402/ │ │ └── test.xml │ ├── test_403/ │ │ ├── exc1.txt │ │ ├── exceptions.txt │ │ ├── stops.txt │ │ ├── stops1.txt │ │ ├── test.xml │ │ ├── wordforms.txt │ │ └── wordforms2.txt │ ├── test_404/ │ │ └── test.xml │ ├── test_405/ │ │ ├── exc.txt │ │ ├── stop.txt │ │ ├── test.xml │ │ ├── wordforms.txt │ │ └── wordforms1.txt │ ├── test_406/ │ │ ├── data/ │ │ │ ├── index.0.spa │ │ │ ├── index.0.spd │ │ │ ├── index.0.spds │ │ │ ├── index.0.spe │ │ │ ├── index.0.sph │ │ │ ├── index.0.sphi │ │ │ ├── index.0.spi │ │ │ ├── index.0.spm │ │ │ ├── index.0.spp │ │ │ ├── index.0.spt │ │ │ ├── index.meta │ │ │ ├── index.ram │ │ │ ├── pq.meta │ │ │ ├── rel320/ │ │ │ │ ├── idx320.meta │ │ │ │ └── idx320.ram │ │ │ └── rt67/ │ │ │ ├── hitless_words_chunk0_0.txt │ │ │ ├── rt67.0.spa │ │ │ ├── rt67.0.spd │ │ │ ├── rt67.0.spds │ │ │ ├── rt67.0.spe │ │ │ ├── rt67.0.sph │ │ │ ├── rt67.0.sphi │ │ │ ├── rt67.0.spi │ │ │ ├── rt67.0.spidx │ │ │ ├── rt67.0.spm │ │ │ ├── rt67.0.spp │ │ │ ├── rt67.0.spt │ │ │ ├── rt67.meta │ │ │ └── rt67.settings │ │ └── test.xml │ ├── test_407/ │ │ └── test.xml │ ├── test_408/ │ │ ├── test.xml │ │ ├── word_a.txt │ │ ├── words1.txt │ │ ├── words2.txt │ │ └── words3.txt │ ├── test_409/ │ │ ├── ex1.txt │ │ ├── hw1.txt │ │ ├── hw3.txt │ │ ├── stop1.txt │ │ ├── stop2.txt │ │ ├── test.xml │ │ ├── wf1.txt │ │ └── wf3.txt │ ├── test_410/ │ │ └── test.xml │ ├── test_411/ │ │ └── test.xml │ ├── test_412/ │ │ └── test.xml │ ├── test_413/ │ │ └── test.xml │ ├── test_414/ │ │ └── test.xml │ ├── test_415/ │ │ └── test.xml │ ├── test_416/ │ │ └── test.xml │ ├── test_417/ │ │ └── test.xml │ ├── test_418/ │ │ ├── data1.xml │ │ └── test.xml │ ├── test_419/ │ │ └── test.xml │ ├── test_420/ │ │ └── test.xml │ ├── test_421/ │ │ └── test.xml │ ├── test_422/ │ │ └── test.xml │ ├── test_430/ │ │ └── test.xml │ ├── test_431/ │ │ └── test.xml │ ├── test_432/ │ │ ├── data1.csv │ │ ├── data1.xml │ │ └── test.xml │ ├── test_433/ │ │ └── test.xml │ ├── test_434/ │ │ └── test.xml │ ├── test_435/ │ │ └── test.xml │ ├── test_436/ │ │ └── test.xml │ ├── test_437/ │ │ └── test.xml │ ├── test_438/ │ │ └── test.xml │ ├── test_439/ │ │ └── test.xml │ ├── test_440/ │ │ └── test.xml │ ├── test_441/ │ │ └── test.xml │ ├── test_442/ │ │ └── test.xml │ ├── test_443/ │ │ └── test.xml │ ├── test_444/ │ │ └── test.xml │ ├── test_445/ │ │ └── test.xml │ ├── test_446/ │ │ └── test.xml │ ├── test_447/ │ │ └── test.xml │ ├── test_448/ │ │ └── test.xml │ ├── test_449/ │ │ └── test.xml │ ├── test_450/ │ │ └── test.xml │ ├── test_451/ │ │ └── test.xml │ ├── test_452/ │ │ └── test.xml │ ├── test_453/ │ │ └── test.xml │ ├── test_454/ │ │ └── test.xml │ ├── test_455/ │ │ └── test.xml │ ├── test_456/ │ │ └── test.xml │ ├── test_457/ │ │ └── test.xml │ ├── test_458/ │ │ └── test.xml │ ├── test_459/ │ │ └── test.xml │ ├── test_460/ │ │ └── test.xml │ ├── test_461/ │ │ └── test.xml │ ├── test_462/ │ │ └── test.xml │ ├── test_463/ │ │ └── test.xml │ ├── test_464/ │ │ ├── exceptions.txt │ │ ├── stops.txt │ │ ├── test.xml │ │ └── wordforms.txt │ ├── test_465/ │ │ └── test.xml │ ├── test_466/ │ │ └── test.xml │ ├── test_467/ │ │ └── test.xml │ ├── test_468/ │ │ └── test.xml │ ├── test_469/ │ │ └── test.xml │ ├── test_470/ │ │ └── test.xml │ ├── test_471/ │ │ ├── global.idf │ │ ├── global_idf_src.txt │ │ └── test.xml │ ├── test_472/ │ │ ├── global.idf │ │ ├── global2.idf │ │ ├── global_idf2_src.txt │ │ ├── global_idf_src.txt │ │ └── test.xml │ ├── test_473/ │ │ └── test.xml │ ├── test_474/ │ │ └── test.xml │ ├── test_475/ │ │ └── test.xml │ ├── test_476/ │ │ └── test.xml │ ├── test_477/ │ │ └── test.xml │ ├── test_478/ │ │ └── test.xml │ ├── test_479/ │ │ └── test.xml │ ├── test_480/ │ │ ├── dummy.txt │ │ ├── dummy_empty.txt │ │ ├── exc1.txt │ │ ├── hitless1.txt │ │ ├── stops.txt │ │ ├── stops_line.txt │ │ ├── stops_mixed.txt │ │ ├── test.xml │ │ ├── wordforms.txt │ │ └── wordforms2.txt │ ├── test_481/ │ │ └── test.xml │ ├── test_482/ │ │ └── test.xml │ ├── test_483/ │ │ ├── data1.csv │ │ ├── data2.csv │ │ └── test.xml │ ├── test_484/ │ │ └── test.xml │ ├── test_485/ │ │ └── test.xml │ ├── test_486/ │ │ └── test.xml │ ├── test_487/ │ │ └── test.xml │ ├── test_488/ │ │ └── test.xml │ ├── test_columnar.conf │ ├── test_icu.conf │ ├── test_jieba.conf │ ├── test_odbc.conf │ ├── test_re.conf │ ├── ubertest.php │ ├── ubertest.php.in │ ├── valgrind.supp │ └── wordforms.txt ├── translator.config.yaml ├── translator.models.yaml ├── translator.role.tpl └── valgrind
Showing preview only (1,079K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10991 symbols across 594 files)
FILE: api/libsphinxclient/sphinxclient.c
type st_filter (line 93) | struct st_filter
type st_override (line 117) | struct st_override
type st_sphinx_client (line 126) | struct st_sphinx_client
function sphinx_client (line 206) | sphinx_client * sphinx_create ( sphinx_bool copy_args )
function sphinx_free_results (line 292) | static void sphinx_free_results ( sphinx_client * client )
function sphinx_cleanup (line 324) | void sphinx_cleanup ( sphinx_client * client )
function sphinx_destroy (line 341) | void sphinx_destroy ( sphinx_client * client )
function set_error (line 374) | static void set_error ( sphinx_client * client, const char * template, ....
type st_memblock (line 392) | struct st_memblock
type st_memblock (line 401) | struct st_memblock
type st_memblock (line 406) | struct st_memblock
type st_memblock (line 409) | struct st_memblock
function unchain (line 431) | static void unchain ( sphinx_client * client, const void * ptr )
function unchain_all (line 453) | static void unchain_all ( sphinx_client * client )
function sphinx_bool (line 472) | sphinx_bool sphinx_set_server ( sphinx_client * client, const char * hos...
function sphinx_bool (line 487) | sphinx_bool sphinx_set_connect_timeout ( sphinx_client * client, float s...
function sphinx_bool (line 497) | sphinx_bool sphinx_set_limits ( sphinx_client * client, int offset, int ...
function sphinx_bool (line 519) | sphinx_bool sphinx_set_max_query_time ( sphinx_client * client, int max_...
function sphinx_bool (line 532) | sphinx_bool sphinx_set_match_mode ( sphinx_client * client, int mode )
function sphinx_bool (line 547) | sphinx_bool sphinx_set_ranking_mode ( sphinx_client * client, int ranker...
function sphinx_bool (line 561) | sphinx_bool sphinx_set_sort_mode ( sphinx_client * client, int mode, con...
function sphinx_bool (line 590) | sphinx_bool sphinx_set_field_weights ( sphinx_client * client, int num_w...
function sphinx_bool (line 623) | sphinx_bool sphinx_set_index_weights ( sphinx_client * client, int num_w...
function sphinx_bool (line 656) | sphinx_bool sphinx_set_id_range ( sphinx_client * client, sphinx_uint64_...
type st_filter (line 670) | struct st_filter
type st_filter (line 676) | struct st_filter
function sphinx_bool (line 688) | sphinx_bool sphinx_add_filter ( sphinx_client * client, const char * att...
function sphinx_bool (line 714) | sphinx_bool sphinx_add_filter_string ( sphinx_client * client, const cha...
function sphinx_bool (line 738) | sphinx_bool sphinx_add_filter_range ( sphinx_client * client, const char...
function sphinx_bool (line 763) | sphinx_bool sphinx_add_filter_float_range ( sphinx_client * client, cons...
function sphinx_bool (line 788) | sphinx_bool sphinx_set_geoanchor ( sphinx_client * client, const char * ...
function sphinx_bool (line 808) | sphinx_bool sphinx_set_groupby ( sphinx_client * client, const char * at...
function sphinx_bool (line 836) | sphinx_bool sphinx_set_groupby_distinct ( sphinx_client * client, const ...
function sphinx_bool (line 851) | sphinx_bool sphinx_set_retries ( sphinx_client * client, int count, int ...
function sphinx_bool (line 867) | sphinx_bool sphinx_add_override ( sphinx_client * client, const char * a...
function sphinx_bool (line 899) | sphinx_bool sphinx_set_select ( sphinx_client * client, const char * sel...
function set_bit (line 916) | void set_bit ( int * flags, int bit, sphinx_bool enable )
function sphinx_bool (line 926) | sphinx_bool sphinx_set_query_flags ( sphinx_client * client, const char ...
function sphinx_reset_query_flags (line 982) | void sphinx_reset_query_flags ( sphinx_client * client )
function sphinx_bool (line 989) | sphinx_bool sphinx_set_outer_select ( sphinx_client * client, const char...
function sphinx_reset_outer_select (line 1009) | void sphinx_reset_outer_select ( sphinx_client * client )
function sphinx_reset_filters (line 1022) | void sphinx_reset_filters ( sphinx_client * client )
function sphinx_reset_groupby (line 1048) | void sphinx_reset_groupby ( sphinx_client * client )
function sphinx_dismiss_requests (line 1063) | static int sphinx_dismiss_requests ( sphinx_client * client )
function sphinx_result (line 1073) | sphinx_result * sphinx_query ( sphinx_client * client, const char * quer...
function safestrlen (line 1100) | static size_t safestrlen ( const char * s )
function calc_req_len (line 1106) | static int calc_req_len ( sphinx_client * client, const char * query, co...
function send_bytes (line 1168) | static void send_bytes ( char ** pp, const char * bytes, int len )
function send_int (line 1181) | static void send_int ( char ** pp, unsigned int value )
function send_word (line 1192) | static void send_word ( char ** pp, unsigned short value )
function send_str (line 1201) | static void send_str ( char ** pp, const char * s )
function send_qword (line 1210) | static void send_qword ( char ** pp, sphinx_uint64_t value )
function send_float (line 1217) | static void send_float ( char ** pp, float value )
function sphinx_add_query (line 1230) | int sphinx_add_query ( sphinx_client * client, const char * query, const...
function sock_errno (line 1408) | static int sock_errno ()
function sock_set_nonblocking (line 1418) | static int sock_set_nonblocking ( int sock )
function sock_set_blocking (line 1429) | static int sock_set_blocking ( int sock )
function sock_close (line 1440) | void sock_close ( int sock )
function SPH_FD_SET (line 1457) | void SPH_FD_SET ( int fd, fd_set * fdset ) { FD_SET ( fd, fdset ); }
function sphinx_bool (line 1465) | static sphinx_bool net_write ( int fd, const char * bytes, int len, sphi...
function sphinx_bool (line 1490) | static sphinx_bool net_read ( int fd, char * buf, int len, sphinx_client...
function net_create_inet_sock (line 1521) | static int net_create_inet_sock ( sphinx_client * client )
function net_create_unix_sock (line 1584) | static int net_create_unix_sock ( sphinx_client * client )
function net_connect_get (line 1644) | static int net_connect_get ( sphinx_client * client )
function sphinx_bool (line 1722) | static sphinx_bool net_sock_eof ( int sock )
function net_connect_ex (line 1757) | static int net_connect_ex ( sphinx_client * client )
function unpack_short (line 1777) | static unsigned short unpack_short ( char ** cur )
function unpack_int (line 1786) | static unsigned int unpack_int ( char ** cur )
function sphinx_uint64_t (line 1808) | static sphinx_uint64_t unpack_qword ( char ** cur )
function unpack_float (line 1817) | static float unpack_float ( char ** cur )
function net_get_response (line 1829) | static void net_get_response ( int fd, sphinx_client * client )
function sphinx_bool (line 1922) | sphinx_bool sphinx_open ( sphinx_client * client )
function sphinx_bool (line 1952) | sphinx_bool sphinx_close ( sphinx_client * client )
function sphinx_result (line 1985) | sphinx_result * sphinx_run_queries ( sphinx_client * client )
function sphinx_get_num_results (line 2174) | int sphinx_get_num_results ( sphinx_client * client )
function sphinx_uint64_t (line 2180) | sphinx_uint64_t sphinx_get_id ( sphinx_result * result, int match )
function sphinx_get_weight (line 2186) | int sphinx_get_weight ( sphinx_result * result, int match )
function sphinx_int64_t (line 2192) | sphinx_int64_t sphinx_get_int ( sphinx_result * result, int match, int a...
function sphinx_get_float (line 2201) | float sphinx_get_float ( sphinx_result * result, int match, int attr )
function sphinx_uint64_t (line 2218) | sphinx_uint64_t sphinx_get_mva64_value ( unsigned int * mva, int i )
function sphinx_bool (line 2235) | static sphinx_bool net_simple_query ( sphinx_client * client, char * buf...
function sphinx_init_excerpt_options (line 2261) | void sphinx_init_excerpt_options ( sphinx_excerpt_options * opts )
function sphinx_update_attributes (line 2410) | int sphinx_update_attributes ( sphinx_client * client, const char * inde...
function sphinx_update_attributes_mva (line 2476) | int sphinx_update_attributes_mva ( sphinx_client * client, const char * ...
function sphinx_keyword_info (line 2535) | sphinx_keyword_info * sphinx_build_keywords ( sphinx_client * client, co...
function sphinx_status_destroy (line 2668) | void sphinx_status_destroy ( char ** status, int num_rows, int num_cols )
FILE: api/libsphinxclient/sphinxclient.h
type __int64 (line 115) | typedef __int64 sphinx_int64_t;
type sphinx_uint64_t (line 116) | typedef unsigned __int64 sphinx_uint64_t;
type sphinx_int64_t (line 118) | typedef long long sphinx_int64_t;
type sphinx_uint64_t (line 119) | typedef unsigned long long sphinx_uint64_t;
type sphinx_bool (line 123) | typedef int sphinx_bool;
type sphinx_client (line 129) | typedef struct st_sphinx_client sphinx_client;
type sphinx_wordinfo (line 131) | typedef struct st_sphinx_wordinfo
type sphinx_result (line 139) | typedef struct st_sphinx_result
type sphinx_excerpt_options (line 163) | typedef struct st_sphinx_excerpt_options
type sphinx_keyword_info (line 187) | typedef struct st_sphinx_keyword_info
FILE: api/libsphinxclient/test.c
function die (line 28) | void die ( const char * template, ... )
function net_init (line 40) | void net_init ()
function print_name (line 53) | void print_name (const char* szname )
function test_query (line 58) | void test_query ( sphinx_client * client, const char * query, const char...
function test_excerpt (line 129) | void test_excerpt ( sphinx_client * client )
function test_excerpt_spz (line 165) | void test_excerpt_spz ( sphinx_client * client )
function test_persist_work (line 217) | void test_persist_work ( sphinx_client * client )
function test_update (line 286) | void test_update ( sphinx_client * client, sphinx_uint64_t id )
function test_update_mva (line 303) | void test_update_mva ( sphinx_client * client )
function test_keywords (line 322) | void test_keywords ( sphinx_client * client )
function test_status (line 347) | void test_status ( sphinx_client * client )
function test_group_by (line 390) | void test_group_by ( sphinx_client * client, const char * attr )
function test_filter (line 399) | void test_filter ( sphinx_client * client )
function title (line 419) | void title ( const char * name )
function main (line 427) | int main ( int argc, char ** argv )
FILE: api/ruby/lib/sphinx.rb
type Sphinx (line 5) | module Sphinx
FILE: api/ruby/lib/sphinx/client.rb
type Sphinx (line 35) | module Sphinx
class SphinxError (line 38) | class SphinxError < StandardError; end
class SphinxArgumentError (line 39) | class SphinxArgumentError < SphinxError; end
class SphinxConnectError (line 40) | class SphinxConnectError < SphinxError; end
class SphinxResponseError (line 41) | class SphinxResponseError < SphinxError; end
class SphinxInternalError (line 42) | class SphinxInternalError < SphinxError; end
class SphinxTemporaryError (line 43) | class SphinxTemporaryError < SphinxError; end
class SphinxUnknownError (line 44) | class SphinxUnknownError < SphinxError; end
class Client (line 48) | class Client
method initialize (line 182) | def initialize
method GetLastError (line 223) | def GetLastError
method GetLastWarning (line 228) | def GetLastWarning
method SetServer (line 233) | def SetServer(host, port)
method SetLimits (line 243) | def SetLimits(offset, limit, max = 0, cutoff = 0)
method SetMaxQueryTime (line 259) | def SetMaxQueryTime(max)
method SetMatchMode (line 266) | def SetMatchMode(mode)
method SetRankingMode (line 280) | def SetRankingMode(ranker, rankexpr = '')
method SetSortMode (line 296) | def SetSortMode(mode, sortby = '')
method SetWeights (line 313) | def SetWeights(weights)
method SetFieldWeights (line 328) | def SetFieldWeights(weights)
method SetIndexWeights (line 339) | def SetIndexWeights(weights)
method SetIDRange (line 352) | def SetIDRange(min, max)
method SetFilter (line 365) | def SetFilter(attribute, values, exclude = false)
method SetFilterRange (line 383) | def SetFilterRange(attribute, min, max, exclude = false)
method SetFilterFloatRange (line 396) | def SetFilterFloatRange(attribute, min, max, exclude = false)
method SetGeoAnchor (line 415) | def SetGeoAnchor(attrlat, attrlong, lat, long)
method SetGroupBy (line 460) | def SetGroupBy(attribute, func, groupsort = '@group desc')
method SetGroupDistinct (line 476) | def SetGroupDistinct(attribute)
method SetRetries (line 482) | def SetRetries(count, delay = 0)
method SetOverride (line 494) | def SetOverride(attrname, attrtype, values)
method SetSelect (line 504) | def SetSelect(select)
method ResetFilters (line 510) | def ResetFilters
method ResetGroupBy (line 516) | def ResetGroupBy
method ResetOverrides (line 524) | def ResetOverrides
method Query (line 554) | def Query(query, index = '*', comment = '')
method AddQuery (line 583) | def AddQuery(query, index = '*', comment = '')
method RunQueries (line 703) | def RunQueries
method BuildExcerpts (line 855) | def BuildExcerpts(docs, index, words, opts = {})
method BuildKeywords (line 936) | def BuildKeywords(query, index, hits)
method UpdateAttributes (line 985) | def UpdateAttributes(index, attrs, values, mva = false, ignoreexiste...
method Connect (line 1046) | def Connect
method GetResponse (line 1070) | def GetResponse(sock, client_version)
method PerformRequest (line 1133) | def PerformRequest(command, request, additional = nil)
method assert (line 1148) | def assert
FILE: api/ruby/lib/sphinx/request.rb
type Sphinx (line 1) | module Sphinx
class Request (line 4) | class Request
method initialize (line 6) | def initialize
method put_int (line 11) | def put_int(*ints)
method put_int64 (line 16) | def put_int64(*ints)
method put_string (line 21) | def put_string(*strings)
method put_float (line 26) | def put_float(*floats)
method put_int_array (line 35) | def put_int_array(arr)
method put_int64_array (line 40) | def put_int64_array(arr)
method to_s (line 46) | def to_s
FILE: api/ruby/lib/sphinx/response.rb
type Sphinx (line 1) | module Sphinx
class Response (line 4) | class Response
method initialize (line 6) | def initialize(response)
method position (line 13) | def position
method size (line 18) | def size
method eof? (line 23) | def eof?
method get_int (line 28) | def get_int
method get_int64 (line 36) | def get_int64
method get_ints (line 44) | def get_ints(count)
method get_string (line 53) | def get_string
method get_float (line 62) | def get_float
FILE: api/ruby/spec/client_response_spec.rb
function validate_results_wifi (line 75) | def validate_results_wifi(result)
FILE: api/ruby/spec/client_spec.rb
class SphinxSpecError (line 3) | class SphinxSpecError < StandardError; end
type SphinxFixtureHelper (line 5) | module SphinxFixtureHelper
function sphinx_fixture (line 6) | def sphinx_fixture(name)
type SphinxApiCall (line 11) | module SphinxApiCall
function create_sphinx (line 12) | def create_sphinx
function safe_call (line 20) | def safe_call
FILE: api/ruby/spec/fixtures/sphinxapi.php
function sphPack64 (line 88) | function sphPack64 ( $v )
function sphUnpack64 (line 134) | function sphUnpack64 ( $v )
class SphinxClient (line 179) | class SphinxClient
method SphinxClient (line 220) | function SphinxClient ()
method GetLastError (line 260) | function GetLastError ()
method GetLastWarning (line 266) | function GetLastWarning ()
method SetServer (line 272) | function SetServer ( $host, $port )
method _MBPush (line 283) | function _MBPush ()
method _MBPop (line 294) | function _MBPop ()
method _Connect (line 301) | function _Connect ()
method _OldConnect (line 306) | function _OldConnect()
method _GetResponse (line 330) | function _GetResponse ( $fp, $client_ver )
method _OldGetResponse (line 335) | function _OldGetResponse ( $fp, $client_ver )
method SetLimits (line 406) | function SetLimits ( $offset, $limit, $max=0, $cutoff=0 )
method SetMaxQueryTime (line 423) | function SetMaxQueryTime ( $max )
method SetMatchMode (line 431) | function SetMatchMode ( $mode )
method SetRankingMode (line 444) | function SetRankingMode ( $ranker )
method SetSortMode (line 455) | function SetSortMode ( $mode, $sortby="" )
method SetWeights (line 473) | function SetWeights ( $weights )
method SetFieldWeights (line 483) | function SetFieldWeights ( $weights )
method SetIndexWeights (line 495) | function SetIndexWeights ( $weights )
method SetIDRange (line 508) | function SetIDRange ( $min, $max )
method SetFilter (line 519) | function SetFilter ( $attribute, $values, $exclude=false )
method SetFilterRange (line 536) | function SetFilterRange ( $attribute, $min, $max, $exclude=false )
method SetFilterFloatRange (line 548) | function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false )
method SetGeoAnchor (line 561) | function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long )
method SetGroupBy (line 572) | function SetGroupBy ( $attribute, $func, $groupsort="@group desc" )
method SetGroupDistinct (line 589) | function SetGroupDistinct ( $attribute )
method SetRetries (line 596) | function SetRetries ( $count, $delay=0 )
method SetArrayResult (line 606) | function SetArrayResult ( $arrayresult )
method SetOverride (line 615) | function SetOverride ( $attrname, $attrtype, $values )
method SetSelect (line 625) | function SetSelect ( $select )
method ResetFilters (line 634) | function ResetFilters ()
method ResetGroupBy (line 641) | function ResetGroupBy ()
method ResetOverrides (line 650) | function ResetOverrides ()
method Query (line 659) | function Query ( $query, $index="*", $comment="" )
method _PackFloat (line 678) | function _PackFloat ( $f )
method AddQuery (line 687) | function AddQuery ( $query, $index="*", $comment="" )
method RunQueries (line 800) | function RunQueries ()
method BuildExcerpts (line 1003) | function BuildExcerpts ( $docs, $index, $words, $opts=array() )
method BuildKeywords (line 1108) | function BuildKeywords ( $query, $index, $hits )
method EscapeString (line 1185) | function EscapeString ( $string )
method UpdateAttributes (line 1199) | function UpdateAttributes ( $index, $attrs, $values, $mva=false )
FILE: api/ruby/spec/sphinx/sphinx_test.sql
type `links` (line 20) | CREATE TABLE `links` (
type `tags` (line 34) | CREATE TABLE `tags` (
type `links_tags` (line 44) | CREATE TABLE `links_tags` (
type `links64` (line 54) | CREATE TABLE `links64` (
FILE: api/ruby/tasks/sphinx.rake
function load_config (line 60) | def load_config
FILE: api/sphinxapi.php
function sphPackI64 (line 151) | function sphPackI64 ( $v )
function sphPackU64 (line 200) | function sphPackU64 ( $v )
function sphUnpackU64 (line 259) | function sphUnpackU64 ( $v )
function sphUnpackI64 (line 325) | function sphUnpackI64 ( $v )
function sphFixUint (line 394) | function sphFixUint ( $value )
function sphSetBit (line 409) | function sphSetBit ( $flag, $bit, $on )
class SphinxClient (line 424) | class SphinxClient
method __construct (line 479) | function __construct ()
method __destruct (line 533) | function __destruct()
method GetLastError (line 540) | function GetLastError ()
method GetLastWarning (line 546) | function GetLastWarning ()
method IsConnectError (line 552) | function IsConnectError()
method SetServer (line 558) | function SetServer ( $host, $port = 0 )
method SetConnectTimeout (line 580) | function SetConnectTimeout ( $timeout )
method _Send (line 587) | function _Send ( $handle, $data, $length )
method _MBPush (line 601) | function _MBPush ()
method _MBPop (line 612) | function _MBPop ()
method _Connect (line 619) | function _Connect ()
method _GetResponse (line 690) | function _GetResponse ( $fp, $client_ver )
method SetLimits (line 762) | function SetLimits ( $offset, $limit, $max=0, $cutoff=0 )
method SetMaxQueryTime (line 779) | function SetMaxQueryTime ( $max )
method SetMatchMode (line 787) | function SetMatchMode ( $mode )
method SetRankingMode (line 801) | function SetRankingMode ( $ranker, $rankexpr="" )
method SetSortMode (line 810) | function SetSortMode ( $mode, $sortby="" )
method SetWeights (line 828) | function SetWeights ( $weights )
method SetFieldWeights (line 834) | function SetFieldWeights ( $weights )
method SetIndexWeights (line 846) | function SetIndexWeights ( $weights )
method SetIDRange (line 859) | function SetIDRange ( $min, $max )
method SetFilter (line 870) | function SetFilter ( $attribute, $values, $exclude=false )
method SetFilterString (line 886) | function SetFilterString ( $attribute, $value, $exclude=false )
method SetFilterStringList (line 894) | function SetFilterStringList ( $attribute, $value, $exclude=false )
method SetFilterRange (line 908) | function SetFilterRange ( $attribute, $min, $max, $exclude=false )
method SetFilterFloatRange (line 920) | function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false )
method SetGeoAnchor (line 933) | function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long )
method SetGroupBy (line 944) | function SetGroupBy ( $attribute, $func, $groupsort="@group desc" )
method SetGroupDistinct (line 961) | function SetGroupDistinct ( $attribute )
method SetRetries (line 968) | function SetRetries ( $count, $delay=0 )
method SetArrayResult (line 978) | function SetArrayResult ( $arrayresult )
method SetOverride (line 987) | function SetOverride ( $attrname, $attrtype, $values )
method SetSelect (line 998) | function SetSelect ( $select )
method SetQueryFlag (line 1004) | function SetQueryFlag ( $flag_name, $flag_value )
method SetOuterSelect (line 1035) | function SetOuterSelect ( $orderby, $offset, $limit )
method SetTokenFilter (line 1050) | function SetTokenFilter ( $library, $name, $opts="" )
method ResetFilters (line 1064) | function ResetFilters ()
method ResetGroupBy (line 1071) | function ResetGroupBy ()
method ResetOverrides (line 1080) | function ResetOverrides ()
method ResetQueryFlag (line 1085) | function ResetQueryFlag ()
method ResetOuterSelect (line 1091) | function ResetOuterSelect ()
method Query (line 1103) | function Query ( $query, $index="*", $comment="" )
method _PackFloat (line 1123) | function _PackFloat ( $f )
method AddQuery (line 1132) | function AddQuery ( $query, $index="*", $comment="" )
method RunQueries (line 1274) | function RunQueries ()
method _ParseSearchResponse (line 1312) | function _ParseSearchResponse ( $response, $nreqs )
method BuildExcerpts (line 1496) | function BuildExcerpts ( $docs, $index, $words, $opts=array() )
method BuildKeywords (line 1621) | function BuildKeywords ( $query, $index, $hits )
method EscapeString (line 1698) | function EscapeString ( $string )
method UpdateAttributes (line 1712) | function UpdateAttributes ( $index, $attrs, $values, $type=SPH_UPDATE_...
method Open (line 1806) | function Open()
method Close (line 1825) | function Close()
method Status (line 1843) | function Status ($session=false)
method FlushAttributes (line 1881) | function FlushAttributes ()
FILE: example.sql
type test (line 2) | CREATE TABLE test.documents
type test (line 19) | CREATE TABLE test.tags
FILE: misc/manticore_lldb.py
class VecTraitsSynthProvider (line 7) | class VecTraitsSynthProvider:
method __init__ (line 9) | def __init__(self, valobj, dict):
method num_children (line 13) | def num_children(self):
method num_children_impl (line 18) | def num_children_impl(self):
method get_child_at_index (line 30) | def get_child_at_index(self, index):
method update (line 41) | def update(self):
method get_child_index (line 60) | def get_child_index(self, name):
method has_children (line 66) | def has_children(self):
function VecTraitsSummaryProvider (line 70) | def VecTraitsSummaryProvider(valobj, internal_dict):
function VecSummaryProvider (line 79) | def VecSummaryProvider(valobj, internal_dict):
function LocatorSummaryProvider (line 90) | def LocatorSummaryProvider(valobj, internal_dict):
function JsonNodeValue (line 107) | def JsonNodeValue(valobj):
function JsonNodeSummaryProvider (line 141) | def JsonNodeSummaryProvider(valobj, internal_dict):
function __lldb_init_module (line 165) | def __lldb_init_module(debugger, unused):
FILE: misc/raminfo.py
function get_dword (line 6) | def get_dword(f):
function get_id (line 10) | def get_id(f, id64):
function skip_vec (line 17) | def skip_vec(f, entry_size):
function main (line 21) | def main(argv):
FILE: misc/resolve.py
function myopen (line 11) | def myopen(name):
FILE: misc/search_json_pretty.php
function print_json_row (line 35) | function print_json_row ( $j, $name )
FILE: misc/suggest/suggest.php
function BuildTrigrams (line 15) | function BuildTrigrams ( $keyword )
function BuildDictionarySQL (line 29) | function BuildDictionarySQL ( $out, $in )
function MakeSuggestion (line 76) | function MakeSuggestion ( $keyword )
FILE: mysqlse/ha_sphinx.cc
function T (line 85) | inline T sphUnalignedRead ( const T & tRef )
function sphUnalignedWrite (line 91) | void sphUnalignedWrite ( void * pPtr, const T & tVal )
function T (line 100) | inline T sphUnalignedRead ( const T & tRef )
function sphUnalignedWrite (line 112) | void sphUnalignedWrite ( void * pPtr, const T & tVal )
type ESphSortOrder (line 167) | enum ESphSortOrder
type ESphMatchMode (line 180) | enum ESphMatchMode
type ESphRankMode (line 194) | enum ESphRankMode
type ESphGroupBy (line 211) | enum ESphGroupBy
function SPH_DEBUG (line 253) | inline void SPH_DEBUG ( const char * format, ... )
function SPH_DEBUG (line 263) | inline void SPH_DEBUG ( const char *, ... ) {}
type CSphSEShare (line 289) | struct CSphSEShare
method CSphSEShare (line 313) | CSphSEShare ()
method ResetTable (line 343) | void ResetTable ()
type CSphSEAttr (line 353) | struct CSphSEAttr
method CSphSEAttr (line 359) | CSphSEAttr()
type CSphSEWordStats (line 372) | struct CSphSEWordStats
method CSphSEWordStats (line 378) | CSphSEWordStats ()
type CSphSEStats (line 391) | struct CSphSEStats
method CSphSEStats (line 402) | CSphSEStats()
method Reset (line 408) | void Reset ()
type CSphSEThreadTable (line 426) | struct CSphSEThreadTable
method CSphSEThreadTable (line 451) | CSphSEThreadTable ( const ha_sphinx * pHandler )
type CSphTLS (line 465) | struct CSphTLS
method CSphTLS (line 469) | explicit CSphTLS ( const ha_sphinx * pHandler )
type ESphFilter (line 488) | enum ESphFilter
type CSphSEFilter (line 497) | struct CSphSEFilter
method CSphSEFilter (line 511) | CSphSEFilter ()
function uint32 (line 532) | inline uint32 sphF2DW ( float f ) { union { float f; uint32 d; } u; u.f ...
function sphDW2F (line 535) | inline float sphDW2F ( uint32 d ) { union { float f; uint32 d; } u; u.d ...
type CSphSEQuery (line 539) | struct CSphSEQuery
type Override_t (line 592) | struct Override_t
method SendWord (line 627) | void SendWord ( short int v ) { v = ntohs(v); SendBytes ( &v, sizeo...
method SendInt (line 628) | void SendInt ( int v ) { v = ntohl(v); SendBytes ( &v, sizeof(v) ...
method SendDword (line 629) | void SendDword ( uint v ) { v = ntohl(v) ;SendBytes ( &v, sizeof(v...
method SendUint64 (line 630) | void SendUint64 ( ulonglong v ) { SendDword ( (uint)(v>>32) ); Send...
method SendString (line 631) | void SendString ( const char * v ) { int iLen = strlen(v); SendDword...
method SendFloat (line 632) | void SendFloat ( float v ) { SendDword ( sphF2DW(v) ); }
type ha_panic_function (line 649) | enum ha_panic_function
type ha_stat_type (line 650) | enum ha_stat_type
function byte (line 715) | static byte * sphinx_get_key ( const byte * pSharePtr, GetKeyLength_t * ...
function sphinx_init_func (line 725) | static int sphinx_init_func ( void * p )
function sphinx_init_func_for_handlerton (line 752) | static bool sphinx_init_func_for_handlerton ()
function sphinx_close_connection (line 761) | static int sphinx_close_connection ( handlerton * hton, THD * thd )
function sphinx_done_func (line 773) | static int sphinx_done_func ( void * )
function sphinx_panic (line 791) | static int sphinx_panic ( handlerton * hton, enum ha_panic_function )
function sphinx_close_connection (line 798) | static int sphinx_close_connection ( THD * thd )
type ha_stat_type (line 816) | enum ha_stat_type
function sphinx_show_status (line 818) | bool sphinx_show_status ( THD * thd )
function sphLogError (line 952) | static void sphLogError ( const char * sFmt, ... )
function ParseUrl (line 998) | static bool ParseUrl ( CSphSEShare * share, TABLE * table, bool bCreate )
function CSphSEShare (line 1178) | static CSphSEShare * get_share ( const char * table_name, TABLE * table )
method CSphSEShare (line 313) | CSphSEShare ()
method ResetTable (line 343) | void ResetTable ()
function free_share (line 1238) | static int free_share ( CSphSEShare * pShare )
function handler (line 1255) | static handler * sphinx_create_handler ( handlerton * hton, TABLE_SHARE ...
function myisattr (line 1398) | static bool myisattr ( char c )
function myismagic (line 1407) | static bool myismagic ( char c )
type sockaddr_in (line 2127) | struct sockaddr_in
type sockaddr_un (line 2129) | struct sockaddr_un
type sockaddr (line 2134) | struct sockaddr
type sockaddr (line 2142) | struct sockaddr
type addrinfo (line 2158) | struct addrinfo
type hostent (line 2167) | struct hostent
type sockaddr_in (line 2187) | struct sockaddr_in
type sockaddr (line 2199) | struct sockaddr
type ha_extra_function (line 2300) | enum ha_extra_function
function IsIntegerFieldType (line 2403) | static inline bool IsIntegerFieldType ( enum_field_types eType )
function IsIDField (line 2409) | static inline bool IsIDField ( Field * pField )
function uint32 (line 2504) | uint32 ha_sphinx::UnpackDword ()
function Item (line 2726) | const Item * ha_sphinx::cond_push ( const Item *cond )
function CSphSEThreadTable (line 2796) | CSphSEThreadTable * ha_sphinx::GetTls()
method CSphSEThreadTable (line 451) | CSphSEThreadTable ( const ha_sphinx * pHandler )
type ha_rkey_function (line 2836) | enum ha_rkey_function
type ha_rkey_function (line 3013) | enum ha_rkey_function
function THR_LOCK_DATA (line 3332) | THR_LOCK_DATA ** ha_sphinx::store_lock ( THD *, THR_LOCK_DATA ** to,
function ha_rows (line 3371) | ha_rows ha_sphinx::records_in_range ( uint, key_range *, key_range * )
function CSphSEStats (line 3523) | CSphSEStats * sphinx_get_stats ( THD * thd, SHOW_VAR * out )
method CSphSEStats (line 402) | CSphSEStats()
method Reset (line 408) | void Reset ()
function sphinx_showfunc_total (line 3544) | int sphinx_showfunc_total ( THD * thd, SHOW_VAR * out, char * )
function sphinx_showfunc_total_found (line 3555) | int sphinx_showfunc_total_found ( THD * thd, SHOW_VAR * out, char * )
function sphinx_showfunc_time (line 3566) | int sphinx_showfunc_time ( THD * thd, SHOW_VAR * out, char * )
function sphinx_showfunc_word_count (line 3577) | int sphinx_showfunc_word_count ( THD * thd, SHOW_VAR * out, char * )
function sphinx_showfunc_error (line 3645) | int sphinx_showfunc_error ( THD * thd, SHOW_VAR * out, char * )
type st_mysql_storage_engine (line 3657) | struct st_mysql_storage_engine
type st_mysql_show_var (line 3662) | struct st_mysql_show_var
FILE: mysqlse/ha_sphinx.h
type uchar (line 17) | typedef uchar byte;
type CSphReqQuery (line 23) | struct CSphReqQuery
type CSphSEShare (line 24) | struct CSphSEShare
type CSphSEAttr (line 25) | struct CSphSEAttr
type CSphSEStats (line 26) | struct CSphSEStats
type CSphSEThreadTable (line 27) | struct CSphSEThreadTable
function class (line 30) | class ha_sphinx : public handler
FILE: mysqlse/snippets_udf.cc
function T (line 45) | inline T sphUnalignedRead ( const T & tRef )
function sphUnalignedWrite (line 51) | void sphUnalignedWrite ( void * pPtr, const T & tVal )
function T (line 60) | inline T sphUnalignedRead ( const T & tRef )
function sphUnalignedWrite (line 72) | void sphUnalignedWrite ( void * pPtr, const T & tVal )
function DWORD (line 91) | inline DWORD sphF2DW ( float f ) { union { float f; uint32 d; } u; u.f =...
function sphShowErrno (line 107) | static inline void sphShowErrno ( const char * sCall )
function sphSend (line 116) | static bool sphSend ( int iFd, const char * pBuffer, int iSize, bool bRe...
function sphRecv (line 130) | static bool sphRecv ( int iFd, char * pBuffer, int iSize, bool bReportEr...
class CSphBuffer (line 179) | class CSphBuffer
method CSphBuffer (line 189) | explicit CSphBuffer ( const int iSize )
method Finalize (line 206) | bool Finalize()
method SendWord (line 213) | void SendWord ( short int v ) { v = ntohs(v); SendBytes ( &v, size...
method SendInt (line 214) | void SendInt ( int v ) { v = ntohl(v); SendBytes ( &v, sizeof(v)...
method SendDword (line 215) | void SendDword ( DWORD v ) { v = ntohl(v) ;SendBytes ( &v, sizeof...
method SendUint64 (line 216) | void SendUint64 ( ulonglong v ) { SendDword ( uint ( v>>32 ) ); Se...
method SendString (line 217) | void SendString ( const char * v ) { SendString ( v, strlen(v) ); }
method SendString (line 218) | void SendString ( const char * v, int iLen ) { SendDword(iLen); SendBy...
method SendFloat (line 219) | void SendFloat ( float v ) { SendDword ( sphF2DW(v) ); }
type CSphUrl (line 236) | struct CSphUrl
method CSphUrl (line 247) | CSphUrl()
type sockaddr_in (line 357) | struct sockaddr_in
type sockaddr_un (line 359) | struct sockaddr_un
type sockaddr (line 364) | struct sockaddr
type sockaddr (line 372) | struct sockaddr
type addrinfo (line 387) | struct addrinfo
type hostent (line 396) | struct hostent
type sockaddr (line 428) | struct sockaddr
type CSphResponse (line 490) | struct CSphResponse
method CSphResponse (line 495) | CSphResponse ()
method CSphResponse (line 500) | explicit CSphResponse ( DWORD uSize )
function CSphResponse (line 514) | CSphResponse *
method CSphResponse (line 495) | CSphResponse ()
method CSphResponse (line 500) | explicit CSphResponse ( DWORD uSize )
type CSphSnippets (line 570) | struct CSphSnippets
method CSphSnippets (line 587) | CSphSnippets()
function my_bool (line 635) | my_bool sphinx_snippets_init ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char *...
function sphinx_snippets_deinit (line 806) | void sphinx_snippets_deinit ( UDF_INIT * pUDF )
FILE: src/accumulator.cpp
function MakeReplicationCommand (line 21) | std::unique_ptr<ReplicationCommand_t> MakeReplicationCommand ( ReplCmd_e...
function ReplicationCommand_t (line 30) | ReplicationCommand_t* RtAccum_t::AddCommand ( ReplCmd_e eCmd, CSphString...
function BYTE (line 63) | const BYTE* RtAccum_t::GetPackedKeywords() const
function RepackBlob (line 98) | static bool RepackBlob ( const CSphColumnInfo & tAttr, const CSphColumnI...
function StoreEmbeddings (line 114) | static bool StoreEmbeddings ( const CSphSchema & tSchema, int iAttr, int...
function ARRAY_FOREACH (line 160) | ARRAY_FOREACH ( i, dAttrsWithModels )
function ARRAY_FOREACH (line 263) | ARRAY_FOREACH ( i, dResultIds )
function ARRAY_FOREACH (line 298) | ARRAY_FOREACH ( i, dAttrsWithModels )
function ARRAY_FOREACH (line 337) | ARRAY_FOREACH ( i, dAttrsWithModels )
function ResetTailHit (line 451) | static void ResetTailHit ( CSphWordHit * pHit )
function ConcatFromFields (line 483) | static CSphVector<char> ConcatFromFields ( const InsertDocData_c & tDoc,...
function IsDefaultEmbedding (line 512) | static bool IsDefaultEmbedding ( const InsertDocData_c & tDoc, const CSp...
function ARRAY_FOREACH (line 541) | ARRAY_FOREACH ( i, dAttrsWithModels )
function DWORD (line 556) | static DWORD * SetupFieldLengths ( const RtIndex_i * pIndex, const CSphS...
type AccumDocHits_t (line 793) | struct AccumDocHits_t
function ARRAY_FOREACH (line 906) | ARRAY_FOREACH ( i, dRowMap )
function RowID_t (line 971) | RowID_t RtAccum_t::GenerateRowID()
FILE: src/accumulator.h
type StoredQueryDesc_t (line 22) | struct StoredQueryDesc_t
function ReplCmd_e (line 40) | enum class ReplCmd_e {
type ReplicatedCommand_t (line 89) | struct ReplicatedCommand_t
type AttrWithModel_t (line 103) | struct AttrWithModel_t
function class (line 114) | class RtAccum_t
FILE: src/aggregate.cpp
class AggrFunc_Traits_T (line 19) | class AggrFunc_Traits_T : public AggrFunc_i
method AggrFunc_Traits_T (line 22) | explicit AggrFunc_Traits_T ( const CSphAttrLocator & tLocator ) : m_t...
function DWORD (line 32) | inline DWORD AggrFunc_Traits_T<DWORD>::GetValue ( const CSphMatch & tRow )
class AggrColumnar_Traits_T (line 80) | class AggrColumnar_Traits_T : public AggrFunc_Traits_T<T>
method AggrColumnar_Traits_T (line 85) | AggrColumnar_Traits_T ( const CSphAttrLocator & tLoc, const CSphString...
method SetColumnar (line 90) | void SetColumnar ( columnar::Columnar_i * pColumnar ) final
method Setup (line 104) | void Setup ( CSphMatch & tDst, const CSphMatch & tSrc, bool bMerge ) f...
method T (line 114) | inline T FetchValue ( const CSphMatch & tSrc, bool bMerge )
class AggrSum_T (line 128) | class AggrSum_T final : public AggrFunc_Traits_T<T>
method AggrSum_T (line 134) | explicit AggrSum_T ( const CSphAttrLocator & tLoc ) : AggrFunc_Traits_...
method Update (line 137) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
class AggrSumColumnar_T (line 148) | class AggrSumColumnar_T final : public AggrColumnar_Traits_T<T>
method Update (line 154) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
class AggrAvg_T (line 166) | class AggrAvg_T final : public AggrFunc_Traits_T<T>
method AggrAvg_T (line 173) | AggrAvg_T ( const CSphAttrLocator & tLoc, const CSphAttrLocator & tCou...
method Ungroup (line 177) | void Ungroup ( CSphMatch & tDst ) final
method Update (line 182) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
method Finalize (line 193) | void Finalize ( CSphMatch & tDst ) final
class AggrAvgColumnar_T (line 202) | class AggrAvgColumnar_T final : public AggrColumnar_Traits_T<T>
method AggrAvgColumnar_T (line 209) | AggrAvgColumnar_T ( const CSphAttrLocator & tLoc, const CSphString & s...
method Ungroup (line 214) | void Ungroup ( CSphMatch & tDst ) final
method Update (line 219) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
method Finalize (line 230) | void Finalize ( CSphMatch & tDst ) final
class AggrMax_T (line 243) | class AggrMax_T final : public AggrFunc_Traits_T<T>
method Update (line 249) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
class AggrMaxColumnar_T (line 259) | class AggrMaxColumnar_T final : public AggrColumnar_Traits_T<T>
method Update (line 265) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
class AggrMin_T (line 276) | class AggrMin_T final : public AggrFunc_Traits_T<T>
method Update (line 282) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
class AggrMinColumnar_T (line 292) | class AggrMinColumnar_T final : public AggrColumnar_Traits_T<T>
method Update (line 298) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
function BStream_c (line 356) | static BStream_c & operator<< ( BStream_c & dOut, const ByteBlob_t & tDa...
function BStream_c (line 363) | static BStream_c & operator<< ( BStream_c & dOut, NUM iNum )
function BStream_c (line 380) | static BStream_c & operator<< ( BStream_c & dOut, const VecTraits_T<BYTE...
function ByteBlob_t (line 400) | static ByteBlob_t & operator>> ( ByteBlob_t & dIn, NUM & iNum )
function ByteBlob_t (line 410) | static ByteBlob_t & operator>> ( ByteBlob_t & dIn, ByteBlob_t & tData )
function ByteBlob_t (line 432) | static ByteBlob_t & operator>> ( ByteBlob_t & dIn, VecTraits_T<BYTE> & t...
class AggrConcat_c (line 443) | class AggrConcat_c final : public AggrFunc_i
method AggrConcat_c (line 448) | explicit AggrConcat_c ( const CSphColumnInfo & tCol )
method Finalize (line 456) | void Finalize ( CSphMatch & tMatch ) final
method Update (line 491) | void Update ( CSphMatch & tDst, const CSphMatch & tSrc, bool bGrouped,...
method AppendStringToString (line 523) | static void AppendStringToString ( BStream_c & dOut, const ByteBlob_t ...
method WriteCount (line 533) | static void WriteCount ( BStream_c& dOut, int iCount )
method AppendBlobToBlob (line 543) | static void AppendBlobToBlob ( BStream_c& dOut, ByteBlob_t dInDst, Byt...
method AppendBlobToString (line 591) | static void AppendBlobToString ( BStream_c & dOut, const ByteBlob_t & ...
function GetColumnarCol (line 641) | static bool GetColumnarCol ( const CSphColumnInfo & tAttr, CSphString & ...
function AggrFunc_i (line 653) | AggrFunc_i * CreateAggrSum ( const CSphColumnInfo & tAttr )
function AggrFunc_i (line 689) | AggrFunc_i * CreateAggrAvg ( const CSphColumnInfo & tAttr, const CSphAtt...
function AggrFunc_i (line 731) | AggrFunc_i * CreateAggrMin ( const CSphColumnInfo & tAttr )
function AggrFunc_i (line 773) | AggrFunc_i * CreateAggrMax ( const CSphColumnInfo & tAttr )
function AggrFunc_i (line 816) | AggrFunc_i * CreateAggrConcat ( const CSphColumnInfo & tAttr )
FILE: src/aggregate.h
function class (line 19) | class AggrFunc_i
FILE: src/aggrexpr.cpp
function uint64_t (line 25) | class AggrRangeExpr_T : public Expr_ArgVsSet_T<int>
function ISphExpr (line 91) | ISphExpr * Clone() const final
function ISphExpr (line 104) | ISphExpr * CreateExprRange ( ISphExpr * pAttr, const AggrRangeSetting_t ...
function DumpRange (line 112) | static void DumpRange ( const RangeSetting_t & tRange, bool bFloat, Stri...
function DumpRangeOpenLeft (line 120) | static void DumpRangeOpenLeft ( const RangeSetting_t & tRange, bool bFlo...
function DumpRangeOpenRigth (line 128) | static void DumpRangeOpenRigth ( const RangeSetting_t & tRange, bool bFl...
function DumpRange (line 136) | static void DumpRange ( int iItem, const AggrRangeSetting_t & tRanges, S...
function CSphString (line 149) | static CSphString DumpAggrRange ( const CSphString & sCol, const AggrRan...
function CSphString (line 163) | static CSphString DumpAggrRange ( const CSphString & sCol, const AggrDat...
function ParseAggrRange (line 185) | bool ParseAggrRange ( const VecTraits_T< VecTraits_T < CSphNamedVariant ...
function CSphString (line 330) | CSphString GetAggrName ( int iItem, const CSphString & sCol )
function FormatKeyFloat (line 337) | static void FormatKeyFloat ( const RangeSetting_t & tRange, bool bHasFro...
function FormatKeyInt (line 354) | static void FormatKeyInt ( const RangeSetting_t & tRange, bool bHasFrom,...
function FormatDate (line 370) | static void FormatDate ( const CSphString & sVal, int iNow, CSphString &...
function FormatDate (line 380) | static void FormatDate ( time_t tDate, char * sBuf, int iSize )
function FormatDate (line 389) | void FormatDate ( time_t tDate, CSphString & sRes )
function FormatDate (line 397) | void FormatDate ( time_t tDate, StringBuilder_c & sRes )
function FormatKeyDate (line 404) | static void FormatKeyDate ( const DateRangeSetting_t & tRange, int iNow,...
function GetRangeKeyNames (line 433) | void GetRangeKeyNames ( const AggrRangeSetting_t & tRanges, RangeNameHas...
function GetRangeKeyNames (line 461) | void GetRangeKeyNames ( const AggrDateRangeSetting_t & tRanges, int iNow...
function CSphString (line 471) | static CSphString DumpAggrHist ( const CSphString & sCol, const AggrHist...
function CSphString (line 485) | static CSphString DumpAggrHist ( const CSphString & sCol, const AggrDate...
function CSphString (line 497) | CSphString DumpAggr ( const CSphString & sCol, const AggrSettings_t & tA...
function ConvertIntoFloat (line 510) | static void ConvertIntoFloat ( AggrBound_t & tVal )
function FixFloat (line 516) | void FixFloat ( AggrHistSetting_t & tHist )
function PromoteHistogramToFloat (line 529) | void PromoteHistogramToFloat ( AggrHistSetting_t & tHist )
function SetValue (line 536) | static void SetValue ( const CSphNamedVariant & tPair, AggrBound_t & tVal )
function ParseAggrHistogram (line 546) | bool ParseAggrHistogram ( const VecTraits_T < CSphNamedVariant > & dVari...
function ParseAggrDateHistogram (line 571) | bool ParseAggrDateHistogram ( const VecTraits_T < CSphNamedVariant > & d...
function uint64_t (line 608) | class AggrHistExpr_T : public Expr_ArgVsSet_T<int>
function ISphExpr (line 657) | ISphExpr * Clone() const final
function ISphExpr (line 670) | ISphExpr * CreateExprHistogram ( ISphExpr * pAttr, const AggrHistSetting...
class AggrDateHistExpr_T (line 680) | class AggrDateHistExpr_T : public Expr_ArgVsSet_T<int>
method AggrDateHistExpr_T (line 687) | AggrDateHistExpr_T ( ISphExpr * pAttr, const AggrDateHistSetting_t & t...
method IntEval (line 699) | int IntEval ( const CSphMatch & tMatch ) const final
method GetBucket (line 706) | int GetBucket ( const CSphMatch & tMatch ) const
method GetHash (line 718) | uint64_t GetHash ( const ISphSchema & tSorterSchema, uint64_t uPrevHas...
method ISphExpr (line 727) | ISphExpr * Clone() const final
method AggrDateHistExpr_T (line 733) | AggrDateHistExpr_T ( const AggrDateHistExpr_T & rhs )
function ISphExpr (line 742) | ISphExpr * CreateExprDateHistogram ( ISphExpr * pAttr, const AggrDateHis...
FILE: src/aggrexpr.h
type RangeSetting_t (line 22) | struct RangeSetting_t
type AggrRangeSetting_t (line 37) | struct AggrRangeSetting_t
type AggrHistSetting_t (line 45) | struct AggrHistSetting_t
type class (line 53) | enum class
type DateRangeSetting_t (line 69) | struct DateRangeSetting_t
type AggrDateRangeSetting_t (line 76) | struct AggrDateRangeSetting_t
type AggrDateHistSetting_t (line 81) | struct AggrDateHistSetting_t
type AggrSettings_t (line 88) | struct AggrSettings_t
type RangeKeyDesc_t (line 103) | struct RangeKeyDesc_t
FILE: src/attr_embedding.cpp
function AddAttrToIndex (line 20) | void AddAttrToIndex ( const SqlStmt_t & tStmt, CSphIndex * pIdx, CSphStr...
function IsModelBackedEmbedding (line 93) | static bool IsModelBackedEmbedding ( const SqlStmt_t & tStmt )
function RunEmbeddingPopulateLoop (line 98) | static bool RunEmbeddingPopulateLoop ( const CSphRefcountedPtr<const Ser...
function HandleAlterAddColumn (line 180) | bool HandleAlterAddColumn ( const SqlStmt_t & tStmt, const CSphRefcounte...
function HandleAlterRebuildEmbeddings (line 205) | bool HandleAlterRebuildEmbeddings ( const CSphString & sAttr, const CSph...
FILE: src/attr_embedding.h
type SqlStmt_t (line 21) | struct SqlStmt_t
FILE: src/attribute.cpp
function BYTE (line 34) | static BYTE CalcBlobRowFlags ( DWORD uTotalLen )
function DWORD (line 46) | static DWORD RowFlagsToLen ( BYTE uFlags )
class AttributePacker_i (line 60) | class AttributePacker_i
class AttributePacker_c (line 69) | class AttributePacker_c : public AttributePacker_i
method AttributePacker_c (line 72) | AttributePacker_c () = default;
method AttributePacker_c (line 74) | explicit AttributePacker_c ( BlobAttrInput_e eExpectedInput )
method SetData (line 77) | bool SetData ( const BYTE * pData, int iDataLen, BlobAttrInput_e eInpu...
class AttributePacker_MVA_T (line 97) | class AttributePacker_MVA_T : public AttributePacker_c
method AttributePacker_MVA_T (line 100) | AttributePacker_MVA_T ( bool bNeedSorting = false ) : m_bNeedSorting (...
method SetData (line 102) | bool SetData ( const BYTE * pData, int iDataLen, BlobAttrInput_e eInpu...
class AttributePacker_Json_c (line 173) | class AttributePacker_Json_c : public AttributePacker_c
method SetData (line 176) | bool SetData ( const BYTE * pData, int iDataLen, BlobAttrInput_e eInpu...
class BlobRowBuilder_Base_c (line 196) | class BlobRowBuilder_Base_c : public BlobRowBuilder_i
method SetAttr (line 199) | bool SetAttr ( int iAttr, const BYTE * pData, int iDataLen, BlobAttrIn...
class BlobRowBuilder_File_c (line 206) | class BlobRowBuilder_File_c : public BlobRowBuilder_Base_c
class BlobRowBuilder_Mem_c (line 349) | class BlobRowBuilder_Mem_c : public BlobRowBuilder_Base_c
method Flush (line 356) | std::pair<SphOffset_t,SphOffset_t> Flush ( const BYTE * pOldRow ) over...
method Done (line 357) | bool Done ( CSphString & /*sError*/ ) override { return true; }
class BlobRowBuilder_MemUpdate_c (line 452) | class BlobRowBuilder_MemUpdate_c : public BlobRowBuilder_Mem_c
function sphCreateBlobRowBuilder (line 523) | std::unique_ptr<BlobRowBuilder_i> sphCreateBlobRowBuilder ( const ISphSc...
function sphCreateBlobRowJsonBuilder (line 533) | std::unique_ptr<BlobRowBuilder_i> sphCreateBlobRowJsonBuilder ( const IS...
function sphCreateBlobRowBuilder (line 543) | std::unique_ptr<BlobRowBuilder_i> sphCreateBlobRowBuilder ( const ISphSc...
function sphCreateBlobRowBuilderUpdate (line 549) | std::unique_ptr<BlobRowBuilder_i> sphCreateBlobRowBuilderUpdate ( const ...
function GetBlobRowOffset (line 556) | static int64_t GetBlobRowOffset ( const CSphRowitem * pDocinfo, int iBlo...
function GetBlobRowOffset (line 561) | static int64_t GetBlobRowOffset ( const CSphMatch & tMatch, const CSphAt...
function BYTE (line 568) | static const BYTE * GetBlobAttr ( int iBlobAttrId, int nBlobAttrs, const...
function BYTE (line 579) | static const BYTE * GetBlobAttr ( const BYTE * pRow, int iBlobAttrId, in...
function ByteBlob_t (line 596) | static ByteBlob_t GetBlobAttr ( int iBlobAttrId, int nBlobAttrs, const B...
function ByteBlob_t (line 608) | static ByteBlob_t GetBlobAttr ( const BYTE * pRow, int iBlobAttrId, int ...
function ByteBlob_t (line 624) | ByteBlob_t sphGetBlobAttr ( const BYTE * pBlobRow, const CSphAttrLocator...
function BYTE (line 630) | const BYTE * sphGetBlobAttr ( const CSphMatch & tMatch, const CSphAttrLo...
function ByteBlob_t (line 637) | ByteBlob_t sphGetBlobAttr ( const CSphMatch & tMatch, const CSphAttrLoca...
function BYTE (line 644) | const BYTE * sphGetBlobAttr ( const CSphRowitem * pDocinfo, const CSphAt...
function ByteBlob_t (line 651) | ByteBlob_t sphGetBlobAttr ( const CSphRowitem * pDocinfo, const CSphAttr...
function GetBlobAttrLen (line 659) | static int GetBlobAttrLen ( int iBlobAttrId, const BYTE * pRow )
function sphGetBlobAttrLen (line 670) | int sphGetBlobAttrLen ( const CSphMatch & tMatch, const CSphAttrLocator ...
function GetBlobTotalLen (line 691) | static int GetBlobTotalLen ( const BYTE * pRow, int nBlobAttrs )
function DWORD (line 698) | DWORD sphGetBlobTotalLen ( const BYTE * pRow, int nBlobAttrs )
function sphCopyBlobRow (line 714) | int64_t sphCopyBlobRow ( CSphTightVector<BYTE> & dDstPool, const CSphTig...
function AddAttrToBlobRowNoData (line 726) | static void AddAttrToBlobRowNoData ( const CSphRowitem * pDocinfo, CSphT...
function AddAttrToBlobRowWithData (line 743) | static void AddAttrToBlobRowWithData ( const CSphRowitem * pDocinfo, CSp...
function AddAttrToBlobRowFirst (line 811) | static void AddAttrToBlobRowFirst ( CSphTightVector<BYTE> & dBlobRow, co...
function sphAddAttrToBlobRow (line 838) | void sphAddAttrToBlobRow ( const CSphRowitem * pDocinfo, CSphTightVector...
function sphRemoveAttrFromBlobRow (line 854) | void sphRemoveAttrFromBlobRow ( const CSphRowitem * pDocinfo, CSphTightV...
function CheckMVAValues (line 939) | static bool CheckMVAValues ( const T * pMVA, DWORD uLengthBytes, int iBl...
function sphCheckBlobRow (line 959) | bool sphCheckBlobRow ( int64_t iOff, DebugCheckReader_i & tBlobs, const ...
function CSphString (line 1088) | const CSphString & sphGetDocidStr()
function sphIsBlobAttr (line 1094) | bool sphIsBlobAttr ( ESphAttr eAttr )
function sphIsBlobAttr (line 1100) | bool sphIsBlobAttr ( const CSphColumnInfo & tAttr )
function IsMvaAttr (line 1109) | bool IsMvaAttr ( ESphAttr eAttr )
function IsBlobAttrEmpty (line 1114) | bool IsBlobAttrEmpty ( const ByteBlob_t & tAttr )
function IsBlobAttrZero (line 1119) | bool IsBlobAttrZero ( const ByteBlob_t & tAttr, int iDims )
function sphCalcPackedLength (line 1140) | int sphCalcPackedLength ( int iLengthBytes )
function BYTE (line 1145) | BYTE * sphPackedBlob ( ByteBlob_t dBlob )
function BYTE (line 1153) | BYTE * sphPackPtrAttr ( ByteBlob_t dBlob )
function sphPackPtrAttr (line 1165) | int sphPackPtrAttr ( BYTE * pPrealloc, ByteBlob_t dBlob )
function sphPackPtrAttrInPlace (line 1173) | void sphPackPtrAttrInPlace ( TightPackedVec_T<BYTE> & dAttr, int iSize )
function BYTE (line 1185) | BYTE * sphPackPtrAttr ( int iLengthBytes, BYTE ** ppData )
function ByteBlob_t (line 1195) | ByteBlob_t sphUnpackPtrAttr ( const BYTE * pData )
function ESphAttr (line 1205) | ESphAttr sphPlainAttrToPtrAttr ( ESphAttr eAttrType )
function sphIsDataPtrAttr (line 1220) | bool sphIsDataPtrAttr ( ESphAttr eAttr )
function MVA2Str (line 1231) | static void MVA2Str ( const T * pMVA, int iLengthBytes, StringBuilder_c ...
function FloatVec2Str (line 1249) | static void FloatVec2Str ( const float * pFloatVec, int iLengthBytes, St...
function sphIsInternalAttr (line 1263) | bool sphIsInternalAttr ( const CSphString & sAttrName )
function sphIsInternalAttr (line 1269) | bool sphIsInternalAttr ( const CSphColumnInfo & tCol )
function sphMVA2Str (line 1275) | void sphMVA2Str ( ByteBlob_t dMVA, bool b64bit, StringBuilder_c & dStr )
function sphPackedMVA2Str (line 1284) | void sphPackedMVA2Str ( const BYTE * pMVA, bool b64bit, StringBuilder_c ...
function sphFloatVec2Str (line 1291) | void sphFloatVec2Str ( ByteBlob_t dFloatVec, StringBuilder_c & dStr )
function sphPackedFloatVec2Str (line 1297) | void sphPackedFloatVec2Str ( const BYTE * pData, StringBuilder_c & dStr )
function IsNotRealAttribute (line 1304) | bool IsNotRealAttribute ( const CSphColumnInfo & tColumn )
FILE: src/attribute.h
type CSphAttrLocator (line 20) | struct CSphAttrLocator
type ThrottleState_t (line 25) | struct ThrottleState_t
type class (line 28) | enum class
function class (line 35) | class BlobRowBuilder_i
type TypedAttribute_t (line 46) | struct TypedAttribute_t
function FORCE_INLINE (line 146) | FORCE_INLINE BYTE * sphCopyPackedAttr ( const BYTE * pData ) { return sp...
function FORCE_INLINE (line 161) | FORCE_INLINE DocID_t sphGetDocID ( const CSphRowitem * pData )
function FORCE_INLINE (line 171) | FORCE_INLINE void sphDeallocatePacked ( const BYTE* pBlob )
FILE: src/attrindex_builder.cpp
function ARRAY_FOREACH (line 96) | ARRAY_FOREACH ( i, m_dIntAttrs )
function ARRAY_FOREACH (line 104) | ARRAY_FOREACH ( i, m_dFloatAttrs )
function ARRAY_FOREACH (line 122) | ARRAY_FOREACH ( i, m_dIntAttrs )
function ARRAY_FOREACH (line 128) | ARRAY_FOREACH ( i, m_dFloatAttrs )
function ARRAY_FOREACH (line 166) | ARRAY_FOREACH ( i, m_dIntAttrs )
function ARRAY_FOREACH (line 174) | ARRAY_FOREACH ( i, m_dFloatAttrs )
FILE: src/attrindex_builder.h
type CSphAttrLocator (line 19) | struct CSphAttrLocator
function class (line 23) | class AttrIndexBuilder_c : ISphNoncopyable
FILE: src/attrindex_merge.cpp
class AttrMerger_c::Impl_c (line 27) | class AttrMerger_c::Impl_c
method CSphString (line 59) | CSphString GetTmpFilename ( const CSphIndex* pIdx, ESphExt eExt )
method Impl_c (line 68) | Impl_c ( MergeCb_c & tMonitor, CSphString & sError, int64_t iTotalDocs...
function ARRAY_FOREACH (line 203) | ARRAY_FOREACH ( i, dColumnarIterators )
class SiBuilder_c (line 422) | class SiBuilder_c
method StrVec_t (line 428) | StrVec_t GetOldFiles() const { return m_dOldFiles; }
method StrVec_t (line 429) | StrVec_t GetNewFiles() const { return m_dNewFiles; }
function SiRecreate (line 569) | bool SiRecreate ( MergeCb_c & tMonitor, const CSphIndex & tIndex, int64_...
FILE: src/attrindex_merge.h
type BuildBufferSettings_t (line 18) | struct BuildBufferSettings_t
function class (line 20) | class AttrMerger_c
FILE: src/binlog.cpp
type Blop_e (line 33) | enum Blop_e : BYTE
type BinlogIndexInfo_t (line 48) | struct BinlogIndexInfo_t
type BinlogIndexReplayInfo_t (line 56) | struct BinlogIndexReplayInfo_t : BinlogIndexInfo_t
type BinlogFileDesc_t (line 64) | struct BinlogFileDesc_t
type BinlogReplayFileDesc_t (line 70) | struct BinlogReplayFileDesc_t
class BinlogWriter_c (line 77) | class BinlogWriter_c final : public MemoryWriter2_c
method BinlogWriter_c (line 80) | BinlogWriter_c() : MemoryWriter2_c(m_dBuf) {}
method GetFilePos (line 87) | int64_t GetFilePos() const noexcept { return m_iLastFilePos; }
method CSphString (line 94) | const CSphString & GetError() const { return m_sError; }
method HasUnwrittenData (line 96) | bool HasUnwrittenData () const { return !m_dBuf.IsEmpty(); }
method HasUnsyncedData (line 97) | bool HasUnsyncedData () const { return m_iLastFsyncPos.load(std::mem...
method IsOpen (line 99) | bool IsOpen() const noexcept { return ( m_tFile.GetFD()!=-1 ); }
method GetBuffPos (line 108) | inline int64_t GetBuffPos () const noexcept { return m_dBuf.GetLengthB...
class BinlogReader_c (line 121) | class BinlogReader_c final : public CSphAutoreader
class Binlog_c (line 135) | class Binlog_c
method IsActive (line 215) | bool IsActive () const { return !m_bDisabled; }
method CSphString (line 223) | inline CSphString GetLogPath() const noexcept { return m_sLogPath; }
type SaveMeta_e (line 265) | enum SaveMeta_e : bool { eNoForce, eForce }
type FlushAction_e (line 137) | enum class FlushAction_e : BYTE
type BinlogFileState_e (line 145) | enum class BinlogFileState_e
class SingleBinlog_c (line 158) | class SingleBinlog_c final : public ISphRefcountedMT
method SingleBinlog_c (line 172) | explicit SingleBinlog_c ( Binlog_c* pOwner ) noexcept
class Binlog_c (line 202) | class Binlog_c : public ISphNoncopyable
method IsActive (line 215) | bool IsActive () const { return !m_bDisabled; }
method CSphString (line 223) | inline CSphString GetLogPath() const noexcept { return m_sLogPath; }
type SaveMeta_e (line 265) | enum SaveMeta_e : bool { eNoForce, eForce }
class BinlogTransactionGuard_c (line 313) | class BinlogTransactionGuard_c final
method BinlogTransactionGuard_c (line 318) | explicit BinlogTransactionGuard_c ( BinlogWriter_c & tWriter, bool bWr...
class TransactionSizeGuard_c (line 337) | class TransactionSizeGuard_c final
method TransactionSizeGuard_c (line 343) | explicit TransactionSizeGuard_c ( BinlogWriter_c & tWriter )
function fsync (line 396) | int fsync ( int iFD )
function CSphString (line 479) | CSphString BinlogWriter_c::GetFilename () const noexcept
function ARRAY_FOREACH (line 661) | ARRAY_FOREACH ( iLog, m_dLogFiles )
function SingleBinlog_c (line 977) | SingleBinlog_c* Binlog_c::GetWriteIndexBinlog ( const char* szIndexName,...
method SingleBinlog_c (line 172) | explicit SingleBinlog_c ( Binlog_c* pOwner ) noexcept
function SingleBinlog_c (line 1017) | SingleBinlog_c * Binlog_c::GetSingleWriteIndexBinlog ( bool bOpenNewLog ...
method SingleBinlog_c (line 172) | explicit SingleBinlog_c ( Binlog_c* pOwner ) noexcept
function SingleBinlog_c (line 1061) | SingleBinlog_c * Binlog_c::GetFlushIndexBinlog ( const char * szIndexNam...
method SingleBinlog_c (line 172) | explicit SingleBinlog_c ( Binlog_c* pOwner ) noexcept
function CSphString (line 1095) | CSphString Binlog_c::MakeBinlogName ( int iExt ) const noexcept
function IntVec_t (line 1345) | IntVec_t Binlog_c::CollectBinlogFiles ()
function IntVec_t (line 1352) | IntVec_t Binlog_c::CollectBinlogFilesUnlock ()
function BinlogFileState_e (line 1539) | BinlogFileState_e Binlog_c::ReplayBinlog ( BinlogReplayFileDesc_t & tLog...
function SkipBytes (line 1808) | void SkipBytes ( CSphAutoreader& tReader, DWORD uSize )
function CSphString (line 1994) | CSphString Binlog::GetPath()
FILE: src/binlog.h
function namespace (line 18) | namespace Binlog {
type Shutdown_e (line 75) | enum Shutdown_e : bool { NoShutdown=false, Shutdown }
type ForceSave_e (line 76) | enum ForceSave_e : BYTE { NoSave=0, ForceSave, DropTable }
FILE: src/binlog_defs.h
function namespace (line 18) | namespace Binlog {
FILE: src/chunksearchctx.h
type DiskChunkSearcherCtx_t (line 18) | struct DiskChunkSearcherCtx_t
type DiskChunkSearcherCloneCtx_t (line 33) | struct DiskChunkSearcherCloneCtx_t
FILE: src/cjkpreprocessor.cpp
function CreateFilterCJK (line 149) | std::unique_ptr<ISphFieldFilter> CreateFilterCJK ( std::unique_ptr<ISphF...
function CheckTokenizerCJK (line 191) | bool CheckTokenizerCJK ( CSphIndexSettings & tSettings, const CSphTokeni...
FILE: src/cjkpreprocessor.h
function class (line 18) | class CJKPreprocessor_c
function class (line 69) | class FieldFilterCJK_c : public ISphFieldFilter
FILE: src/client_session.h
type BinaryPreparedStmt_t (line 24) | struct BinaryPreparedStmt_t
function class (line 25) | class PreparedStatements
function CSphString (line 50) | CSphString m_sCurrentDbName { szManticore };
FILE: src/client_task_info.cpp
function DEFINE_RENDER (line 18) | DEFINE_RENDER ( ClientTaskInfo_t )
function MiniTaskInfo_t (line 38) | MiniTaskInfo_t* myinfo::HazardGetMini()
function ClientTaskInfo_t (line 46) | ClientTaskInfo_t * HazardGetClient ()
function ClientTaskInfo_t (line 51) | ClientTaskInfo_t & ClientTaskInfo_t::Info ( bool bStrict ) noexcept
function ClientSession_c (line 76) | ClientSession_c* ClientTaskInfo_t::GetClientSession()
function GetEffectiveDistThreads (line 102) | int GetEffectiveDistThreads ()
function GetEffectiveBaseDispatcherTemplate (line 108) | Dispatcher::Template_t GetEffectiveBaseDispatcherTemplate()
function GetEffectivePseudoShardingDispatcherTemplate (line 115) | Dispatcher::Template_t GetEffectivePseudoShardingDispatcherTemplate()
FILE: src/client_task_info.h
type Profile_e (line 19) | enum Profile_e {
function MiniTaskInfo_t (line 32) | struct ClientTaskInfo_t : public MiniTaskInfo_t
function namespace (line 230) | namespace myinfo {
FILE: src/collation.cpp
function UnpackStrings (line 22) | inline static void UnpackStrings ( ByteBlob_t& dStr1, ByteBlob_t& dStr2,...
function CollateBinary (line 39) | static int CollateBinary ( ByteBlob_t dStr1, ByteBlob_t dStr2, bool bDat...
function CollateLibcCI (line 48) | static int CollateLibcCI ( ByteBlob_t dStr1, ByteBlob_t dStr2, bool bDat...
function CollateLibcCS (line 57) | static int CollateLibcCS ( ByteBlob_t dStr1, ByteBlob_t dStr2, bool bDat...
function HashStrLen (line 241) | uint64_t HashStrLen ( const BYTE * pStr, int iLen )
function sphCollationInit (line 250) | void sphCollationInit()
function CollateUTF8CI (line 272) | static inline int CollateUTF8CI ( int iCode )
function CollateUtf8GeneralCI (line 281) | static int CollateUtf8GeneralCI ( ByteBlob_t dStr1, ByteBlob_t dStr2, bo...
function SphStringCmp_fn (line 313) | SphStringCmp_fn GetStringCmpFunc ( ESphCollation eCollation )
function StrHashCalc_fn (line 393) | StrHashCalc_fn GetStringHashCalcFunc ( ESphCollation eCollation )
function ESphCollation (line 404) | volatile ESphCollation& GlobalCollation()
function ESphCollation (line 410) | ESphCollation sphCollationFromName ( const CSphString & sName, CSphStrin...
function SetLocale (line 432) | void SetLocale ( const CSphString & sLocale, bool bSet )
function IsGlobalLocaleSet (line 448) | bool IsGlobalLocaleSet()
FILE: src/collation.h
function class (line 19) | class LibcCSHash_fn
function class (line 26) | class LibcCIHash_fn
function class (line 33) | class Utf8CIHash_fn
function class (line 40) | class BinaryHash_fn
type ESphCollation (line 48) | enum ESphCollation
FILE: src/columnarexpr.cpp
class Expr_Columnar_MVAIn_T (line 19) | class Expr_Columnar_MVAIn_T : public Expr_ArgVsConstSet_T<int64_t>
method ByteBlob_t (line 26) | ByteBlob_t MvaEval ( const CSphMatch & ) const final { assert ( 0 && "...
method ISphExpr (line 30) | ISphExpr * Clone() const final { return new Expr_Columnar_MVAIn_T ( *t...
class Expr_Columnar_StringIn_c (line 87) | class Expr_Columnar_StringIn_c : public Expr_ArgVsConstSet_T<int64_t>
method ISphExpr (line 97) | ISphExpr * Clone() const final { return new Expr_Columnar_StringIn_c (...
class Expr_Columnar_StringLength_c (line 205) | class Expr_Columnar_StringLength_c : public ISphExpr
method Expr_Columnar_StringLength_c (line 208) | Expr_Columnar_StringLength_c ( const CSphString & sName ) : m_sName ( ...
method IntEval (line 210) | int IntEval ( const CSphMatch & tMatch ) const override { return m_p...
method Eval (line 212) | float Eval ( const CSphMatch & tMatch ) const final { return (float)I...
method FixupLocator (line 214) | void FixupLocator ( const ISphSchema * /*pOldSchema*/, const ISphSche...
method ISphExpr (line 215) | ISphExpr * Clone() const override{ return new Expr_Columnar_StringLeng...
class Expr_Columnar_MvaLength_T (line 247) | class Expr_Columnar_MvaLength_T : public Expr_Columnar_StringLength_c
method IntEval (line 252) | int IntEval ( const CSphMatch & tMatch ) const final { return m_pIte...
method ISphExpr (line 254) | ISphExpr * Clone() const final { return new Expr_Columnar_MvaLength_T(...
class Expr_ColumnarMVAAggr_T (line 269) | class Expr_ColumnarMVAAggr_T : public Expr_NoLocator_c
method Eval (line 275) | float Eval ( const CSphMatch & tMatch ) const final { return (float)I...
method IntEval (line 276) | int IntEval ( const CSphMatch & tMatch ) const final { return (int)I...
method ISphExpr (line 279) | ISphExpr * Clone() const final { return new Expr_ColumnarMVAAggr_T ( *...
class Expr_GetColumnar_Traits_c (line 344) | class Expr_GetColumnar_Traits_c : public ISphExpr
method FixupLocator (line 350) | void FixupLocator ( const ISphSchema * /*pOldSchema*/, const ISphSche...
method CalcHash (line 359) | uint64_t CalcHash ( const char * szTag, const ISphSchema & tSorterSche...
class Expr_GetColumnarInt_c (line 418) | class Expr_GetColumnarInt_c : public Expr_GetColumnar_Traits_c
method Eval (line 423) | float Eval ( const CSphMatch & tMatch ) const override { return (flo...
method IntEval (line 424) | int IntEval ( const CSphMatch & tMatch ) const override { return (i...
method Int64Eval (line 425) | int64_t Int64Eval ( const CSphMatch & tMatch ) const override { retur...
method ISphExpr (line 427) | ISphExpr * Clone() const override { return new Expr_GetColumna...
method SphAttr_t (line 430) | inline SphAttr_t FetchValue ( const CSphMatch & tMatch ) const { ret...
class Expr_GetColumnarFloat_c (line 442) | class Expr_GetColumnarFloat_c : public Expr_GetColumnarInt_c
method Eval (line 447) | float Eval ( const CSphMatch & tMatch ) const final { return sphDW2F ...
method IntEval (line 448) | int IntEval ( const CSphMatch & tMatch ) const final { return (int)sp...
method Int64Eval (line 449) | int64_t Int64Eval ( const CSphMatch & tMatch ) const final { return (i...
method ISphExpr (line 450) | ISphExpr * Clone() const final { return new Expr_GetColumnarFlo...
class Expr_GetColumnarString_c (line 455) | class Expr_GetColumnarString_c : public Expr_GetColumnar_Traits_c
method Eval (line 460) | float Eval ( const CSphMatch & ) const final { assert ( 0 ); return ...
method StringEval (line 461) | int StringEval ( const CSphMatch & tMatch, const BYTE ** ppStr ) co...
method BYTE (line 462) | const BYTE * StringEvalPacked ( const CSphMatch & tMatch ) const final...
method StringLenEval (line 463) | int StringLenEval ( const CSphMatch & tMatch ) const final { r...
method ISphExpr (line 465) | ISphExpr * Clone() const final { return new Expr_GetColumnarString_c ...
class Expr_GetColumnarMva_c (line 477) | class Expr_GetColumnarMva_c : public Expr_GetColumnar_Traits_c
method Eval (line 482) | float Eval ( const CSphMatch & ) const final { assert ( 0 ); return 0; }
method Int64Eval (line 483) | int64_t Int64Eval ( const CSphMatch & tMatch ) const final { return (...
method ISphExpr (line 486) | ISphExpr * Clone() const final { return new Expr_GetColumnarMva_c ( m_...
function ByteBlob_t (line 490) | ByteBlob_t Expr_GetColumnarMva_c::MvaEval ( const CSphMatch & tMatch ) c...
function ISphExpr (line 506) | ISphExpr * CreateExpr_ColumnarMva32In ( const CSphString & sName, ConstL...
function ISphExpr (line 507) | ISphExpr * CreateExpr_ColumnarMva64In ( const CSphString & sName, ConstL...
function ISphExpr (line 508) | ISphExpr * CreateExpr_ColumnarStringIn ( const CSphString & sName, Const...
function ISphExpr (line 510) | ISphExpr * CreateExpr_ColumnarStringLength ( const CSphString & sName ) ...
function ISphExpr (line 511) | ISphExpr * CreateExpr_ColumnarMva32Length ( const CSphString & sName ) {...
function ISphExpr (line 512) | ISphExpr * CreateExpr_ColumnarMva64Length ( const CSphString & sName ) {...
function ISphExpr (line 514) | ISphExpr * CreateExpr_ColumnarMva32Aggr ( ISphExpr * pExpr, ESphAggrFunc...
function ISphExpr (line 515) | ISphExpr * CreateExpr_ColumnarMva64Aggr ( ISphExpr * pExpr, ESphAggrFunc...
function ISphExpr (line 517) | ISphExpr * CreateExpr_GetColumnarInt ( const CSphString & sName, bool bS...
function ISphExpr (line 518) | ISphExpr * CreateExpr_GetColumnarFloat ( const CSphString & sName, bool ...
function ISphExpr (line 519) | ISphExpr * CreateExpr_GetColumnarString ( const CSphString & sName, bool...
function ISphExpr (line 520) | ISphExpr * CreateExpr_GetColumnarMva ( const CSphString & sName, bool bS...
FILE: src/columnarfilter.cpp
class ColumnarFilter_c (line 17) | class ColumnarFilter_c : public ISphFilter
function ByteBlob_t (line 57) | ByteBlob_t ColumnarFilter_c::GetValue ( RowID_t tRowID ) const
class Filter_SingleValueColumnar_c (line 67) | class Filter_SingleValueColumnar_c : public ColumnarFilter_c
method Eval (line 73) | bool Eval ( const CSphMatch & tMatch ) const override { return m_pIt...
class Filter_ValuesColumnar_c (line 98) | class Filter_ValuesColumnar_c : public ColumnarFilter_c
class Filter_StringColumnar_T (line 224) | class Filter_StringColumnar_T : public ColumnarFilter_c
method CanExclude (line 233) | bool CanExclude() const final { return true; }
class FilterStringCmpColumnar_c (line 340) | class FilterStringCmpColumnar_c : public ColumnarFilter_c
method CanExclude (line 347) | bool CanExclude() const final { return true; }
class Filter_RangeColumnar_T (line 408) | class Filter_RangeColumnar_T : public ColumnarFilter_c
function CreateColumnarRangeFilter (line 459) | static std::unique_ptr<ISphFilter> CreateColumnarRangeFilter ( const CSp...
class Filter_SingleValueColumnar_MVA_T (line 485) | class Filter_SingleValueColumnar_MVA_T : public Filter_SingleValueColumn...
method Eval (line 490) | bool Eval ( const CSphMatch & tMatch ) const final
class Filter_ValuesColumnar_MVA_T (line 501) | class Filter_ValuesColumnar_MVA_T : public ColumnarFilter_c
class Filter_RangeColumnar_MVA_T (line 547) | class Filter_RangeColumnar_MVA_T : public ColumnarFilter_c
class Filter_NullColumnar_c (line 587) | class Filter_NullColumnar_c : public ISphFilter
method Eval (line 590) | bool Eval ( const CSphMatch & tMatch ) const final { return true; }
function CreateColumnarMvaFilterValues (line 596) | static std::unique_ptr<ISphFilter> CreateColumnarMvaFilterValues ( const...
function CreateColumnarMvaRangeFilter (line 606) | static std::unique_ptr<ISphFilter> CreateColumnarMvaRangeFilter ( const ...
function CSphString (line 632) | static CSphString GetAttributeName ( int iAttr, const ISphSchema & tSche...
function CreateColumnarFilterMVA (line 648) | static std::unique_ptr<ISphFilter> CreateColumnarFilterMVA ( int iAttr, ...
function CreateColumnarFilterPlain (line 677) | static std::unique_ptr<ISphFilter> CreateColumnarFilterPlain ( int iAttr...
function TryToCreateColumnarFilter (line 710) | std::unique_ptr<ISphFilter> TryToCreateColumnarFilter ( int iAttr, const...
function ToColumnarFilterType (line 755) | static common::FilterType_e ToColumnarFilterType ( ESphFilter eType )
function ToColumnarAggr (line 770) | static common::MvaAggr_e ToColumnarAggr ( ESphMvaFunc eAggr )
function ToColumnarFilter (line 781) | bool ToColumnarFilter ( common::Filter_t & tFilter, const CSphFilterSett...
function AddColumnarFilter (line 828) | bool AddColumnarFilter ( std::vector<common::Filter_t> & dDst, const CSp...
function ToColumnarFilters (line 839) | void ToColumnarFilters ( VecTraits_T<const CSphFilterSettings> & dFilter...
FILE: src/columnargrouper.cpp
function FetchMVAValues (line 17) | static inline void FetchMVAValues ( const std::unique_ptr<columnar::Iter...
function NextSet (line 30) | bool NextSet ( CSphFixedVector<int> & dSet, const CSphFixedVector<CSphVe...
class GrouperColumnarInt_c (line 50) | class GrouperColumnarInt_c : public CSphGrouper
method GetLocator (line 56) | void GetLocator ( CSphAttrLocator & tOut ) const final {}
method ESphAttr (line 57) | ESphAttr GetResultType () const final { return m_eAttrType; }
method SphGroupKey_t (line 58) | SphGroupKey_t KeyFromMatch ( const CSphMatch & tMatch ) const final { ...
method SphGroupKey_t (line 59) | SphGroupKey_t KeyFromValue ( SphAttr_t ) const final { assert(0); retu...
method MultipleKeysFromMatch (line 60) | void MultipleKeysFromMatch ( const CSphMatch & tMatch, CSphVector<Sp...
method CSphGrouper (line 62) | CSphGrouper * Clone() const final { return new GrouperColumnarInt_c(*t...
class GrouperColumnarString_T (line 93) | class GrouperColumnarString_T : public CSphGrouper, public HASH
method GetLocator (line 99) | void GetLocator ( CSphAttrLocator & tOut ) const final {}
method ESphAttr (line 100) | ESphAttr GetResultType () const final { return SPH_ATTR_BIGINT; }
method SphGroupKey_t (line 102) | SphGroupKey_t KeyFromValue ( SphAttr_t ) const final { assert(0); retu...
method MultipleKeysFromMatch (line 103) | void MultipleKeysFromMatch ( const CSphMatch & tMatch, CSphVector<Sp...
function SphGroupKey_t (line 127) | SphGroupKey_t GrouperColumnarString_T<HASH>::KeyFromMatch ( const CSphMa...
function CSphGrouper (line 154) | CSphGrouper * GrouperColumnarString_T<HASH>::Clone() const
class GrouperColumnarMVA_T (line 162) | class GrouperColumnarMVA_T : public CSphGrouper
method GrouperColumnarMVA_T (line 165) | GrouperColumnarMVA_T ( const CSphString & sName ) : m_sAttrName ( sNam...
method GrouperColumnarMVA_T (line 166) | GrouperColumnarMVA_T ( const GrouperColumnarMVA_T & rhs ) : m_sAttrNam...
method GetLocator (line 168) | void GetLocator ( CSphAttrLocator & tOut ) const final {}
method ESphAttr (line 169) | ESphAttr GetResultType () const final { return SPH_ATTR_BIGINT; }
method SphGroupKey_t (line 170) | SphGroupKey_t KeyFromMatch ( const CSphMatch & tMatch ) const final { ...
method MultipleKeysFromMatch (line 171) | void MultipleKeysFromMatch ( const CSphMatch & tMatch, CSphVector<Sp...
method SphGroupKey_t (line 172) | SphGroupKey_t KeyFromValue ( SphAttr_t ) const final { assert(0); retu...
method CSphGrouper (line 174) | CSphGrouper * Clone() const final { return new GrouperColumnarMVA_T(*t...
method IsMultiValue (line 175) | bool IsMultiValue() const final { return true; }
class GrouperColumnarMulti (line 193) | class GrouperColumnarMulti final : public CSphGrouper, public HASH
method CSphGrouper (line 200) | CSphGrouper * Clone() const final { return new GrouperColumnarMulti<HA...
method SphGroupKey_t (line 202) | SphGroupKey_t KeyFromValue ( SphAttr_t ) const final { assert(0); retu...
method GetLocator (line 203) | void GetLocator ( CSphAttrLocator & ) const final { assert(0); }
method ESphAttr (line 204) | ESphAttr GetResultType() const final { return SPH_ATTR_BIGINT; }
function SphGroupKey_t (line 228) | SphGroupKey_t GrouperColumnarMulti<HASH>::KeyFromMatch ( const CSphMatch...
function SphGroupKey_t (line 311) | SphGroupKey_t GrouperColumnarMulti<HASH>::FetchStringHash ( int iAttr, c...
function SphGroupKey_t (line 326) | SphGroupKey_t GrouperColumnarMulti<HASH>::FetchStringHash ( int iAttr, c...
function ARRAY_FOREACH (line 347) | ARRAY_FOREACH ( i, m_dAttrs )
function CSphGrouper (line 369) | CSphGrouper * CreateGrouperColumnarInt ( const CSphString & sName, ESphA...
function CSphGrouper (line 375) | CSphGrouper * CreateGrouperColumnarString ( const CSphString & sName, ES...
function CSphGrouper (line 387) | CSphGrouper * CreateGrouperColumnarMulti ( const CSphVector<CSphColumnIn...
function CSphGrouper (line 399) | CSphGrouper * CreateGrouperColumnarMVA ( const CSphString & sName, ESphA...
class DistinctFetcherColumnar_c (line 409) | class DistinctFetcherColumnar_c : public DistinctFetcher_i
method DistinctFetcherColumnar_c (line 412) | DistinctFetcherColumnar_c ( const CSphString & sName ) : m_sName(sName...
method SetBlobPool (line 414) | void SetBlobPool ( const BYTE * pBlobPool ) override {}
method FixupLocators (line 415) | void FixupLocators ( const ISphSchema * pOldSchema, const ISphSchema *...
class DistinctFetcherColumnarPlain_c (line 423) | class DistinctFetcherColumnarPlain_c : public DistinctFetcherColumnar_c
method GetKeys (line 428) | void GetKeys ( const CSphMatch & tMatch, CSphVector<SphAttr_t> & dKeys...
method IsMultiValue (line 429) | bool IsMultiValue() const override { return false; }
class DistinctFetcherColumnarMulti_c (line 433) | class DistinctFetcherColumnarMulti_c : public DistinctFetcherColumnar_c
method SphAttr_t (line 438) | SphAttr_t GetKey ( const CSphMatch & tMatch ) const override { assert ...
method IsMultiValue (line 439) | bool IsMultiValue() const override { return true; }
class DistinctFetcherColumnarInt_c (line 443) | class DistinctFetcherColumnarInt_c : public DistinctFetcherColumnarPlain_c
method SphAttr_t (line 448) | SphAttr_t GetKey ( const CSphMatch & tMatch ) const override { return ...
method DistinctFetcher_i (line 450) | DistinctFetcher_i * Clone() const override { return new DistinctFetche...
class DistinctFetcherColumnarMva_T (line 464) | class DistinctFetcherColumnarMva_T : public DistinctFetcherColumnarMulti_c
method DistinctFetcher_i (line 471) | DistinctFetcher_i * Clone() const override { return new DistinctFetche...
class DistinctFetcherColumnarString_T (line 498) | class DistinctFetcherColumnarString_T : public DistinctFetcherColumnarPl...
method DistinctFetcher_i (line 505) | DistinctFetcher_i * Clone() const override { return new DistinctFetche...
function SphAttr_t (line 512) | SphAttr_t DistinctFetcherColumnarString_T<HASH>::GetKey ( const CSphMatc...
function DistinctFetcher_i (line 540) | DistinctFetcher_i * CreateColumnarDistinctFetcher ( const CSphString & s...
FILE: src/columnarlib.cpp
type col (line 18) | namespace col {
function ToColumnarType (line 35) | common::AttrType_e ToColumnarType ( ESphAttr eAttrType, int iBitCount )
function CreateColumnarStorageReader (line 57) | std::unique_ptr<columnar::Columnar_i> CreateColumnarStorageReader ( cons...
function CreateColumnarBuilder (line 75) | std::unique_ptr<columnar::Builder_i> CreateColumnarBuilder ( const ISphS...
function CheckColumnarStorage (line 116) | void CheckColumnarStorage ( const CSphString & sFile, DWORD uNumRows, st...
function InitColumnar (line 130) | bool InitColumnar ( CSphString & sError )
function ShutdownColumnar (line 181) | void ShutdownColumnar()
function InitColumnar (line 188) | bool InitColumnar ( CSphString & sError )
function ShutdownColumnar (line 194) | void ShutdownColumnar()
function IsColumnarLibLoaded (line 209) | bool IsColumnarLibLoaded()
function CreateColumnarIterator (line 215) | std::unique_ptr<columnar::Iterator_i> CreateColumnarIterator ( const col...
FILE: src/columnarmisc.cpp
function CreateAllColumnarIterators (line 15) | CSphVector<ScopedTypedIterator_t> CreateAllColumnarIterators ( const col...
function SphAttr_t (line 36) | SphAttr_t SetColumnarAttr ( int iAttr, ESphAttr eType, columnar::Builder...
function SetDefaultColumnarAttr (line 82) | void SetDefaultColumnarAttr ( int iAttr, const CSphColumnInfo & tAttr, c...
function CSphString (line 113) | CSphString ColumnarAttrType2Str ( common::AttrType_e eType )
function SphAttr_t (line 143) | SphAttr_t PlainOrColumnar_t::Get ( RowID_t tRowID, const CSphRowitem * p...
FILE: src/columnarmisc.h
type PlainOrColumnar_t (line 33) | struct PlainOrColumnar_t
function namespace (line 46) | namespace SI
FILE: src/columnarrt.cpp
function GetLengthOffset (line 20) | static std::pair<T,T> GetLengthOffset ( const CSphVector<T> & dLengths, ...
function T (line 34) | static T GetLength ( const CSphVector<T> & dLengths, RowID_t tRowID )
class ColumnarAttrRT_i (line 45) | class ColumnarAttrRT_i
class ColumnarAttrRT_c (line 65) | class ColumnarAttrRT_c : public ColumnarAttrRT_i
method ColumnarAttrRT_c (line 68) | ColumnarAttrRT_c ( ESphAttr eType ) : m_eType(eType) {}
method AddDoc (line 70) | void AddDoc ( SphAttr_t tAttr ) override { assert ( 0 && "Unsuppo...
method AddDoc (line 71) | void AddDoc ( const BYTE * pData, int iLength ) override { assert ( 0...
method AddDoc (line 72) | void AddDoc ( const int64_t * pData, int iLength ) override { assert (...
method GetType (line 74) | common::AttrType_e GetType() const override { return ToColumnarType ( ...
class ColumnarIterator_RT_c (line 81) | class ColumnarIterator_RT_c : public columnar::Iterator_i
method Get (line 84) | int64_t Get ( uint32_t tRowID ) override { assert ( 0 && "Unsupporte...
method Fetch (line 85) | void Fetch ( const util::Span_T<uint32_t> & dRowIDs, util::Span_T<int...
method Get (line 87) | int Get ( uint32_t tRowID, const uint8_t * & pData ) override { asse...
method GetLength (line 89) | int GetLength ( uint32_t tRowID ) override { assert ( 0 && "Unsuppor...
method AddDesc (line 91) | void AddDesc ( std::vector<common::IteratorDesc_t> & dDesc ) const ov...
class ColumnarIterator_Int_T (line 97) | class ColumnarIterator_Int_T : public ColumnarIterator_RT_c
method ColumnarIterator_Int_T (line 100) | ColumnarIterator_Int_T ( const CSphVector<T> & dValues ) : m_dValues (...
method Get (line 102) | int64_t Get ( uint32_t tRowID ) override { return m_dValues[tRowID]; }
class ColumnarAttr_Int_T (line 122) | class ColumnarAttr_Int_T : public ColumnarAttrRT_c
method AddDoc (line 127) | void AddDoc ( SphAttr_t tAttr ) override { m_dValues.Add ( ( (T)tAtt...
method Save (line 129) | void Save ( MemoryWriter_c & tWriter ) const override { SaveData(tWrit...
method Save (line 130) | void Save ( Writer_i & tWriter ) const override { SaveData(tWriter); }
method Load (line 131) | void Load ( MemoryReader_c & tReader ) override { LoadData(tReader); }
method Load (line 132) | void Load ( CSphReader & tReader ) override { LoadData(tReader); }
method AllocatedBytes (line 133) | int64_t AllocatedBytes() const override { return m_dValues.GetLengt...
method CreateIterator (line 135) | std::unique_ptr<columnar::Iterator_i> CreateIterator() const override ...
class ColumnarAttr_Bool_c (line 177) | class ColumnarAttr_Bool_c : public ColumnarAttr_Int_T<BYTE>
method ColumnarAttr_Bool_c (line 182) | ColumnarAttr_Bool_c() : BASE ( SPH_ATTR_BOOL, 1 ) {}
method AddDoc (line 184) | void AddDoc ( SphAttr_t tAttr ) override { BASE::m_dValues.Add ( tAttr...
class ColumnarIterator_String_c (line 189) | class ColumnarIterator_String_c : public ColumnarIterator_RT_c
method ColumnarIterator_String_c (line 192) | ColumnarIterator_String_c ( const CSphVector<BYTE> & dData, const CSph...
method GetLength (line 196) | int GetLength ( uint32_t tRowID ) override { return (int)::GetLength...
class ColumnarAttr_String_c (line 222) | class ColumnarAttr_String_c : public ColumnarAttrRT_c
method ColumnarAttr_String_c (line 225) | ColumnarAttr_String_c() : ColumnarAttrRT_c ( SPH_ATTR_STRING ) {}
method Save (line 229) | void Save ( MemoryWriter_c & tWriter ) const override { SaveData(tWrit...
method Save (line 230) | void Save ( Writer_i & tWriter ) const override { SaveData(tWriter); }
method Load (line 231) | void Load ( MemoryReader_c & tReader ) override { LoadData(tReader); }
method Load (line 232) | void Load ( CSphReader & tReader ) override { LoadData(tReader); }
method AllocatedBytes (line 233) | int64_t AllocatedBytes() const override { return m_dData.GetLengthB...
method CreateIterator (line 235) | std::unique_ptr<columnar::Iterator_i> CreateIterator() const override ...
class ColumnarIterator_MVA_T (line 279) | class ColumnarIterator_MVA_T : public ColumnarIterator_RT_c
method ColumnarIterator_MVA_T (line 282) | ColumnarIterator_MVA_T ( const CSphVector<T> & dData, const CSphVector...
method GetLength (line 286) | int GetLength ( uint32_t tRowID ) override { return ::GetLength ( m_...
class ColumnarAttr_MVA_T (line 317) | class ColumnarAttr_MVA_T : public ColumnarAttrRT_c
method ColumnarAttr_MVA_T (line 320) | ColumnarAttr_MVA_T ( ESphAttr eType ) : ColumnarAttrRT_c ( eType ) {}
method Save (line 324) | void Save ( MemoryWriter_c & tWriter ) const override { SaveData(tWrit...
method Save (line 325) | void Save ( Writer_i & tWriter ) const override { SaveData(tWriter); }
method AllocatedBytes (line 326) | int64_t AllocatedBytes() const override { return m_dData.GetLengthB...
method Load (line 327) | void Load ( MemoryReader_c & tReader ) override { LoadData(tReader); }
method Load (line 328) | void Load ( CSphReader & tReader ) override { LoadData(tReader); }
method CreateIterator (line 330) | std::unique_ptr<columnar::Iterator_i> CreateIterator() const override ...
function CreateColumnarAttrRT (line 376) | static std::unique_ptr<ColumnarAttrRT_i> CreateColumnarAttrRT ( ESphAttr...
class ColumnarBuilderRT_c (line 401) | class ColumnarBuilderRT_c : public ColumnarBuilderRT_i
method ColumnarBuilderRT_c (line 405) | explicit ColumnarBuilderRT_c ( MemoryReader_c & tReader ) { Load(tRead...
method SetAttr (line 407) | void SetAttr ( int iAttr, int64_t tAttr ) override { m_dAttrs[iAt...
method SetAttr (line 408) | void SetAttr ( int iAttr, const uint8_t * pData, int iLength ) overrid...
method SetAttr (line 409) | void SetAttr ( int iAttr, const int64_t * pData, int iLength ) overrid...
method Done (line 410) | bool Done ( std::string & sError ) override { return true; }
class ColumnarRT_c (line 452) | class ColumnarRT_c : public ColumnarRT_i
method CreateAnalyzerOrPrefilter (line 458) | std::vector<common::BlockIterator_i *> CreateAnalyzerOrPrefilter ( con...
method EstimateMinMax (line 459) | int64_t EstimateMinMax ( const common::Filter_t & tFilter, const col...
method EarlyReject (line 462) | bool EarlyReject ( const std::vector<common::Filter_t> & dFilters, c...
method IsFilterDegenerate (line 463) | bool IsFilterDegenerate ( const common::Filter_t & tFilter ) const o...
class LightColumnarRT_c (line 481) | class LightColumnarRT_c : public ColumnarRT_c
method LightColumnarRT_c (line 484) | LightColumnarRT_c ( const CSphSchema& tSchema, const ColumnarBuilderRT...
class FullColumnarRT_c (line 492) | class FullColumnarRT_c: public ColumnarRT_c
method FullColumnarRT_c (line 495) | FullColumnarRT_c ( const CSphSchema& tSchema, ColumnarBuilderRT_i* pBu...
method FullColumnarRT_c (line 502) | FullColumnarRT_c ( const CSphSchema& tSchema, CSphReader& tReader )
function CreateColumnarBuilderRT (line 578) | std::unique_ptr<ColumnarBuilderRT_i> CreateColumnarBuilderRT ( MemoryRea...
function CreateColumnarBuilderRT (line 584) | std::unique_ptr<ColumnarBuilderRT_i> CreateColumnarBuilderRT ( const CSp...
function CreateLightColumnarRT (line 594) | std::unique_ptr<ColumnarRT_i> CreateLightColumnarRT ( const CSphSchema& ...
function CreateColumnarRT (line 603) | std::unique_ptr<ColumnarRT_i> CreateColumnarRT ( const CSphSchema& tSche...
function CreateColumnarRT (line 612) | std::unique_ptr<ColumnarRT_i> CreateColumnarRT ( const CSphSchema & tSch...
function RemoveColumnarDuplicates (line 626) | void RemoveColumnarDuplicates ( std::unique_ptr<ColumnarBuilderRT_i> & p...
FILE: src/columnarrt.h
function class (line 22) | class ColumnarRT_i : public columnar::Columnar_i
function class (line 33) | class ColumnarBuilderRT_i : public columnar::Builder_i
FILE: src/columnarsort.cpp
class CompareSingleError_fn (line 18) | class CompareSingleError_fn
method FORCE_INLINE (line 21) | FORCE_INLINE static bool IsLess ( RowID_t tRowIdA, SphAttr_t a, RowID_...
class CompareSingleInt_fn (line 29) | class CompareSingleInt_fn
method FORCE_INLINE (line 32) | FORCE_INLINE static bool IsLess ( RowID_t tRowIdA, SphAttr_t a, RowID_...
class CompareSingleFloat_fn (line 40) | class CompareSingleFloat_fn
method FORCE_INLINE (line 43) | FORCE_INLINE static bool IsLess ( RowID_t tRowIdA, SphAttr_t a, RowID_...
class CompareError_fn (line 54) | class CompareError_fn
method FORCE_INLINE (line 57) | FORCE_INLINE static bool IsLess ( const CSphMatch & tMatchA, SphAttr_t...
class CompareInt_fn (line 65) | class CompareInt_fn
method FORCE_INLINE (line 68) | FORCE_INLINE static bool IsLess ( const CSphMatch & tMatchA, SphAttr_t...
function FORCE_INLINE (line 76) | FORCE_INLINE bool CompareInt_fn<2>::IsLess ( const CSphMatch & tMatchA, ...
function FORCE_INLINE (line 85) | FORCE_INLINE bool CompareInt_fn<3>::IsLess ( const CSphMatch & tMatchA, ...
function FORCE_INLINE (line 95) | FORCE_INLINE bool CompareInt_fn<4>::IsLess ( const CSphMatch & tMatchA, ...
function FORCE_INLINE (line 106) | FORCE_INLINE bool CompareInt_fn<5>::IsLess ( const CSphMatch & tMatchA, ...
class CompareFloat_fn (line 127) | class CompareFloat_fn
method FORCE_INLINE (line 130) | FORCE_INLINE static bool IsLess ( const CSphMatch & tMatchA, SphAttr_t...
function FORCE_INLINE (line 138) | FORCE_INLINE bool CompareFloat_fn<2>::IsLess ( const CSphMatch & tMatchA...
function FORCE_INLINE (line 147) | FORCE_INLINE bool CompareFloat_fn<3>::IsLess ( const CSphMatch & tMatchA...
function FORCE_INLINE (line 157) | FORCE_INLINE bool CompareFloat_fn<4>::IsLess ( const CSphMatch & tMatchA...
function FORCE_INLINE (line 168) | FORCE_INLINE bool CompareFloat_fn<5>::IsLess ( const CSphMatch & tMatchA...
class Compare_fn (line 218) | class Compare_fn
method FORCE_INLINE (line 221) | FORCE_INLINE static bool IsLess ( RowID_t tRowIdA, SphAttr_t a, RowID_...
method FORCE_INLINE (line 227) | FORCE_INLINE static bool IsLess ( const CSphMatch & tMatchA, SphAttr_t...
function FORCE_INLINE (line 235) | FORCE_INLINE bool Compare_fn<1>::IsLess ( const CSphMatch & tMatchA, Sph...
function FORCE_INLINE (line 242) | FORCE_INLINE bool Compare_fn<2>::IsLess ( const CSphMatch & tMatchA, Sph...
function FORCE_INLINE (line 250) | FORCE_INLINE bool Compare_fn<3>::IsLess ( const CSphMatch & tMatchA, Sph...
function FORCE_INLINE (line 259) | FORCE_INLINE bool Compare_fn<4>::IsLess ( const CSphMatch & tMatchA, Sph...
function FORCE_INLINE (line 269) | FORCE_INLINE bool Compare_fn<5>::IsLess ( const CSphMatch & tMatchA, Sph...
class ColumnarProxySorter_T (line 282) | class ColumnarProxySorter_T : public ISphMatchSorter
method Push (line 288) | bool Push ( const CSphMatch & tEntry ) final { return PushMatch(...
method Push (line 289) | void Push ( const VecTraits_T<const CSphMatch> & dMatches ) override {...
method IsGroupby (line 291) | bool IsGroupby() const override { return m_pSorter->IsGroupby...
method PushGrouped (line 292) | bool PushGrouped ( const CSphMatch & tEntry, bool bNewSet ) override {...
method ISphMatchSorter (line 298) | ISphMatchSorter * Clone() const override { return new ColumnarP...
method CSphMatchComparatorState (line 302) | const CSphMatchComparatorState & GetState() const override { return...
method ISphSchema (line 305) | const ISphSchema * GetSchema() const override { return m_pSchema; }
method GetTotalCount (line 308) | int64_t GetTotalCount() const override { return m_pSorter->Get...
method SetFilteredAttrs (line 310) | void SetFilteredAttrs ( const sph::StringSet & hAttrs, bool bAddDocid ...
method IsRandom (line 313) | bool IsRandom() const override { return m_pSorter->IsRandom(...
method SetRandom (line 314) | void SetRandom ( bool bRandom ) override { m_pSorter->SetRandom...
method GetMatchCapacity (line 316) | int GetMatchCapacity() const override { return m_pSorter->GetM...
method RowTagged_t (line 318) | RowTagged_t GetJustPushed() const override { assert (0 && "No...
method GetJustPopped (line 319) | VecTraits_T<RowTagged_t> GetJustPopped() const override { assert ...
method SetMerge (line 321) | void SetMerge ( bool bMerge ) override {}
type IteratorWithLocator_t (line 324) | struct IteratorWithLocator_t
function ARRAY_FOREACH (line 694) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 714) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 760) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 782) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 834) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 858) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 916) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 942) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 960) | ARRAY_FOREACH ( i, m_dIterators )
function ARRAY_FOREACH (line 979) | ARRAY_FOREACH ( iMatch, dMatches )
function ARRAY_FOREACH (line 1009) | ARRAY_FOREACH ( iMatch, dMatches )
function CanCreateColumnarSorter (line 1084) | static bool CanCreateColumnarSorter ( const ISphSchema & tSchema, const ...
function ISphMatchSorter (line 1139) | static ISphMatchSorter * CreateProxySorter ( ISphMatchSorter * pSorter, ...
function ISphMatchSorter (line 1195) | ISphMatchSorter * CreateColumnarProxySorter ( ISphMatchSorter * pSorter,...
FILE: src/compressed_http.cpp
function GzipDecompress (line 17) | bool GzipDecompress ( const ByteBlob_t sIn, CSphVector<BYTE> & dRes, CSp...
function HasGzip (line 70) | bool HasGzip()
FILE: src/compressed_mysql_layer.cpp
function DWORD (line 17) | DWORD MysqlCompressedSocket_c::ReadLSBSmallDword ( InputBuffer_c& tIn )
FILE: src/compressed_mysql_layer.h
function class (line 19) | class MysqlCompressedSocket_c : public AsyncNetBuffer_c
FILE: src/compressed_zlib_mysql.cpp
class ZlibCompressor (line 17) | class ZlibCompressor
method csize_t (line 22) | inline static csize_t Common_compressBound ( csize_t uSize )
method Common_compress (line 27) | inline static int Common_compress ( BYTE* pDest, csize_t* pDestLen, co...
method Common_uncompress (line 32) | inline static bool Common_uncompress ( BYTE* pDest, csize_t* pDestLen,...
function IsZlibCompressionAvailable (line 39) | bool IsZlibCompressionAvailable()
function MakeZlibMysqlCompressedLayer (line 44) | void MakeZlibMysqlCompressedLayer ( std::unique_ptr<AsyncNetBuffer_c> & ...
FILE: src/compressed_zlib_mysql.h
function IsZlibCompressionAvailable (line 24) | inline bool IsZlibCompressionAvailable() { return false; }
function MakeZlibMysqlCompressedLayer (line 25) | inline void MakeZlibMysqlCompressedLayer ( std::unique_ptr<AsyncNetBuffe...
FILE: src/compressed_zstd_mysql.cpp
function InitDynamicZstd (line 26) | static bool InitDynamicZstd()
function ZstdCompressor (line 64) | ZstdCompressor()
function csize_t (line 76) | inline csize_t Common_compressBound ( csize_t uSize )
function Common_compress (line 81) | inline int Common_compress ( BYTE* pDest, csize_t* pDestLen, const BYTE*...
function Common_uncompress (line 88) | inline bool Common_uncompress ( BYTE* pDest, csize_t* pDestLen, const BY...
function SetLevel (line 98) | inline void SetLevel ( int iLevel )
function IsZstdCompressionAvailable (line 104) | bool IsZstdCompressionAvailable()
function MakeZstdMysqlCompressedLayer (line 113) | void MakeZstdMysqlCompressedLayer ( std::unique_ptr<AsyncNetBuffer_c>& p...
FILE: src/compressed_zstd_mysql.h
function IsZstdCompressionAvailable (line 24) | inline bool IsZstdCompressionAvailable() { return false; }
function MakeZstdMysqlCompressedLayer (line 25) | inline void MakeZstdMysqlCompressedLayer ( std::unique_ptr<AsyncNetBuffe...
FILE: src/config_reloader.cpp
class ConfigReloader_c::Impl_c (line 22) | class ConfigReloader_c::Impl_c final
method ExistsLocal (line 33) | bool ExistsLocal ( const CSphString& sIndex ) const
method ExistsDistr (line 39) | bool ExistsDistr ( const CSphString& sIndex ) const
method cServedIndexRefPtr_c (line 45) | inline cServedIndexRefPtr_c GetSnapServed ( const CSphString& sName ) ...
method CopyExistingLocal (line 53) | bool CopyExistingLocal ( const CSphString& sIndex )
method CopyExistingDistr (line 63) | bool CopyExistingDistr ( const CSphString& sIndex )
method KeepExisting (line 73) | void KeepExisting ( const CSphString& sIndex )
method AddDeferred (line 80) | void AddDeferred ( const CSphString& sIndex, ServedIndexRefPtr_c&& pSe...
method LoadDistrFromConfig (line 88) | void LoadDistrFromConfig ( const CSphString& sIndex, const CSphConfigS...
method LoadNewLocalFromConfig (line 102) | void LoadNewLocalFromConfig ( const CSphString& sIndex, const CSphConf...
method PreparePlainRotationIfNeed (line 130) | void PreparePlainRotationIfNeed ( const CSphString& sIndex, const cSer...
method ReconfigureIndex (line 146) | void ReconfigureIndex ( const CSphString& sIndex, const CSphConfigSect...
method LoadLocalFromConfig (line 162) | void LoadLocalFromConfig ( const CSphString& sIndex, IndexType_e eType...
method Impl_c (line 206) | explicit Impl_c ( HashOfServed_c& hDeferred )
method LoadIndexFromConfig (line 217) | void LoadIndexFromConfig ( const CSphString& sIndex, IndexType_e eType...
method IssuePlainOldRotation (line 234) | void IssuePlainOldRotation() noexcept
FILE: src/conversion.cpp
function DWORD (line 19) | DWORD sphToDword ( const char * s )
function sphToFloat (line 27) | float sphToFloat ( const char * s )
function sphToInt64 (line 41) | int64_t sphToInt64 ( const char * szNumber, CSphString * pError )
function sphToUInt64 (line 64) | uint64_t sphToUInt64 ( const char * szNumber, CSphString * pError )
function StrToDocID (line 85) | uint64_t StrToDocID ( const char * szNumber, CSphString & sError )
FILE: src/conversion.h
function FORCE_INLINE (line 24) | FORCE_INLINE DWORD sphF2DW ( float f ) { union { float f; DWORD d; } u; ...
function FORCE_INLINE (line 27) | FORCE_INLINE float sphDW2F ( DWORD d ) { union { float f; DWORD d; } u; ...
function FORCE_INLINE (line 30) | FORCE_INLINE uint64_t sphD2QW ( double f ) { union { double f; uint64_t ...
function FORCE_INLINE (line 33) | FORCE_INLINE double sphQW2D ( uint64_t d ) { union { double f; uint64_t ...
FILE: src/coro_stack.cpp
type Threads (line 21) | namespace Threads {
function AlignStackSize (line 25) | inline size_t AlignStackSize ( size_t iSize )
function CoroStack_t (line 30) | CoroStack_t AllocateStack ( size_t iStack )
function CoroStack_t (line 51) | CoroStack_t MockedStack ( VecTraits_T<BYTE> dStack )
function DeallocateStack (line 62) | void DeallocateStack ( CoroStack_t tStack )
FILE: src/coro_stack.h
function namespace (line 24) | namespace Threads
FILE: src/coro_waker.h
function namespace (line 23) | namespace detail
function class (line 28) | class Waker_c
FILE: src/coroutine.cpp
type Threads (line 23) | namespace Threads {
function StackMockingAllowed (line 27) | bool StackMockingAllowed()
class CoRoutine_c (line 43) | class CoRoutine_c
type State_e (line 45) | enum class State_e
method WorkerLowest (line 60) | void WorkerLowest ( Ctx_t tCtx )
method YieldLowest (line 70) | void YieldLowest ()
method CreateContext (line 75) | void CreateContext ( Handler fnHandler, CoroStack_t tStack )
method CoRoutine_c (line 85) | CoRoutine_c ( Handler fnHandler, CoroStack_t tStack )
method Run (line 95) | void Run ()
method IsFinished (line 102) | bool IsFinished () const
method IsMocked (line 107) | bool IsMocked () const noexcept
method Yield_ (line 113) | void Yield_ ()
method BYTE (line 122) | const BYTE* GetTopOfStack() const noexcept
method GetStackSize (line 127) | int GetStackSize() const noexcept
function StringBuilder_c (line 133) | StringBuilder_c & operator<< ( StringBuilder_c & dOut, CoRoutine_c::St...
type CoroState_t (line 144) | struct CoroState_t
type ESTATE (line 146) | enum ESTATE : DWORD
method DWORD (line 155) | DWORD ResetFlags( DWORD uFlags )
method DWORD (line 161) | DWORD SetFlags ( DWORD uFlags )
type Coro (line 169) | namespace Coro {
class Worker_c (line 171) | class Worker_c final: public details::SchedulerOperation_t
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 546) | Worker_c* CurrentWorker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 551) | Worker_c* Worker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Go (line 559) | void Go ( Handler&& fnHandler, Scheduler_i * pScheduler )
function Co (line 569) | void Co ( Handler&& fnHandler, Waiter_t tSignaller )
function Continue (line 580) | void Continue ( Handler&& fnHandler, int iStack )
function YieldWith (line 593) | void YieldWith ( Handler fnHandler ) noexcept
function MoveTo (line 599) | void MoveTo ( Scheduler_i * pScheduler ) noexcept
function Yield_ (line 604) | void Yield_ () noexcept
function Reschedule (line 609) | void Reschedule() noexcept
function ID (line 616) | int ID() noexcept
function RuntimeExceeded (line 621) | bool RuntimeExceeded() noexcept
function RestartRuntime (line 631) | void RestartRuntime() noexcept
function NumOfRestarts (line 636) | int NumOfRestarts() noexcept
function ExecuteN (line 832) | void ExecuteN ( int iConcurrency, Threads::Handler&& fnWorker )
function SetDefaultThrottlingPeriodMS (line 853) | void SetDefaultThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodMS (line 858) | void SetThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodUS (line 865) | void SetThrottlingPeriodUS ( int64_t tmPeriodUs )
function GetThrottlingPeriodUS (line 871) | int64_t GetThrottlingPeriodUS ()
function RescheduleAndKeepCrashQuery (line 876) | void RescheduleAndKeepCrashQuery ( bool bVip ) noexcept
function fnResume (line 882) | inline void fnResume ( volatile Worker_c* pCtx )
function SleepMsec (line 889) | void SleepMsec ( int iMsec )
function DWORD (line 1170) | [[nodiscard]] DWORD ReadTableLock_c::GetReads() const noexcept
function Resumer_fn (line 643) | Resumer_fn MakeCoroExecutor ( Handler fnHandler )
function CallPlainCoroutine (line 649) | void CallPlainCoroutine ( Handler fnHandler, Scheduler_i* pScheduler )
function ATTRIBUTE_NO_SANITIZE_ADDRESS (line 659) | ATTRIBUTE_NO_SANITIZE_ADDRESS void MockCallCoroutine ( VecTraits_T<BYT...
function CallCoroutine (line 666) | void CallCoroutine ( Handler fnHandler )
function CallCoroutineRes (line 684) | bool CallCoroutineRes ( Predicate fnHandler )
function StartJob (line 692) | void StartJob ( Handler fnHandler, Scheduler_i * pScheduler )
function Handler (line 702) | Handler CurrentRestarter ( bool bVip ) noexcept
function CreateWaker (line 707) | Coro::Waker_c CreateWaker ( Coro::Worker_c* pWorker ) noexcept
function Waiter_t (line 713) | Waiter_t DefferedRestarter () noexcept
function Waiter_t (line 718) | Waiter_t DefferedContinuator () noexcept
function WaitForDeffered (line 723) | void WaitForDeffered ( Waiter_t&& dWaiter ) noexcept
function WaitForN (line 729) | int WaitForN ( DWORD uN, std::initializer_list<Handler> dTasks )
function MyStackSize (line 780) | int MyStackSize()
function IsIMocked (line 788) | bool IsIMocked ()
function IsInsideCoroutine (line 807) | bool IsInsideCoroutine()
function Scheduler_i (line 813) | Scheduler_i* Coro::CurrentScheduler()
function NThreads (line 821) | int NThreads()
type Coro (line 829) | namespace Coro
class Worker_c (line 171) | class Worker_c final: public details::SchedulerOperation_t
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 546) | Worker_c* CurrentWorker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 551) | Worker_c* Worker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Go (line 559) | void Go ( Handler&& fnHandler, Scheduler_i * pScheduler )
function Co (line 569) | void Co ( Handler&& fnHandler, Waiter_t tSignaller )
function Continue (line 580) | void Continue ( Handler&& fnHandler, int iStack )
function YieldWith (line 593) | void YieldWith ( Handler fnHandler ) noexcept
function MoveTo (line 599) | void MoveTo ( Scheduler_i * pScheduler ) noexcept
function Yield_ (line 604) | void Yield_ () noexcept
function Reschedule (line 609) | void Reschedule() noexcept
function ID (line 616) | int ID() noexcept
function RuntimeExceeded (line 621) | bool RuntimeExceeded() noexcept
function RestartRuntime (line 631) | void RestartRuntime() noexcept
function NumOfRestarts (line 636) | int NumOfRestarts() noexcept
function ExecuteN (line 832) | void ExecuteN ( int iConcurrency, Threads::Handler&& fnWorker )
function SetDefaultThrottlingPeriodMS (line 853) | void SetDefaultThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodMS (line 858) | void SetThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodUS (line 865) | void SetThrottlingPeriodUS ( int64_t tmPeriodUs )
function GetThrottlingPeriodUS (line 871) | int64_t GetThrottlingPeriodUS ()
function RescheduleAndKeepCrashQuery (line 876) | void RescheduleAndKeepCrashQuery ( bool bVip ) noexcept
function fnResume (line 882) | inline void fnResume ( volatile Worker_c* pCtx )
function SleepMsec (line 889) | void SleepMsec ( int iMsec )
function DWORD (line 1170) | [[nodiscard]] DWORD ReadTableLock_c::GetReads() const noexcept
function sphTaskCpuTimer (line 761) | int64_t sphTaskCpuTimer()
type Threads (line 770) | namespace Threads {
function StackMockingAllowed (line 27) | bool StackMockingAllowed()
class CoRoutine_c (line 43) | class CoRoutine_c
type State_e (line 45) | enum class State_e
method WorkerLowest (line 60) | void WorkerLowest ( Ctx_t tCtx )
method YieldLowest (line 70) | void YieldLowest ()
method CreateContext (line 75) | void CreateContext ( Handler fnHandler, CoroStack_t tStack )
method CoRoutine_c (line 85) | CoRoutine_c ( Handler fnHandler, CoroStack_t tStack )
method Run (line 95) | void Run ()
method IsFinished (line 102) | bool IsFinished () const
method IsMocked (line 107) | bool IsMocked () const noexcept
method Yield_ (line 113) | void Yield_ ()
method BYTE (line 122) | const BYTE* GetTopOfStack() const noexcept
method GetStackSize (line 127) | int GetStackSize() const noexcept
function StringBuilder_c (line 133) | StringBuilder_c & operator<< ( StringBuilder_c & dOut, CoRoutine_c::St...
type CoroState_t (line 144) | struct CoroState_t
type ESTATE (line 146) | enum ESTATE : DWORD
method DWORD (line 155) | DWORD ResetFlags( DWORD uFlags )
method DWORD (line 161) | DWORD SetFlags ( DWORD uFlags )
type Coro (line 169) | namespace Coro {
class Worker_c (line 171) | class Worker_c final: public details::SchedulerOperation_t
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 546) | Worker_c* CurrentWorker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 551) | Worker_c* Worker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Go (line 559) | void Go ( Handler&& fnHandler, Scheduler_i * pScheduler )
function Co (line 569) | void Co ( Handler&& fnHandler, Waiter_t tSignaller )
function Continue (line 580) | void Continue ( Handler&& fnHandler, int iStack )
function YieldWith (line 593) | void YieldWith ( Handler fnHandler ) noexcept
function MoveTo (line 599) | void MoveTo ( Scheduler_i * pScheduler ) noexcept
function Yield_ (line 604) | void Yield_ () noexcept
function Reschedule (line 609) | void Reschedule() noexcept
function ID (line 616) | int ID() noexcept
function RuntimeExceeded (line 621) | bool RuntimeExceeded() noexcept
function RestartRuntime (line 631) | void RestartRuntime() noexcept
function NumOfRestarts (line 636) | int NumOfRestarts() noexcept
function ExecuteN (line 832) | void ExecuteN ( int iConcurrency, Threads::Handler&& fnWorker )
function SetDefaultThrottlingPeriodMS (line 853) | void SetDefaultThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodMS (line 858) | void SetThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodUS (line 865) | void SetThrottlingPeriodUS ( int64_t tmPeriodUs )
function GetThrottlingPeriodUS (line 871) | int64_t GetThrottlingPeriodUS ()
function RescheduleAndKeepCrashQuery (line 876) | void RescheduleAndKeepCrashQuery ( bool bVip ) noexcept
function fnResume (line 882) | inline void fnResume ( volatile Worker_c* pCtx )
function SleepMsec (line 889) | void SleepMsec ( int iMsec )
function DWORD (line 1170) | [[nodiscard]] DWORD ReadTableLock_c::GetReads() const noexcept
function Resumer_fn (line 643) | Resumer_fn MakeCoroExecutor ( Handler fnHandler )
function CallPlainCoroutine (line 649) | void CallPlainCoroutine ( Handler fnHandler, Scheduler_i* pScheduler )
function ATTRIBUTE_NO_SANITIZE_ADDRESS (line 659) | ATTRIBUTE_NO_SANITIZE_ADDRESS void MockCallCoroutine ( VecTraits_T<BYT...
function CallCoroutine (line 666) | void CallCoroutine ( Handler fnHandler )
function CallCoroutineRes (line 684) | bool CallCoroutineRes ( Predicate fnHandler )
function StartJob (line 692) | void StartJob ( Handler fnHandler, Scheduler_i * pScheduler )
function Handler (line 702) | Handler CurrentRestarter ( bool bVip ) noexcept
function CreateWaker (line 707) | Coro::Waker_c CreateWaker ( Coro::Worker_c* pWorker ) noexcept
function Waiter_t (line 713) | Waiter_t DefferedRestarter () noexcept
function Waiter_t (line 718) | Waiter_t DefferedContinuator () noexcept
function WaitForDeffered (line 723) | void WaitForDeffered ( Waiter_t&& dWaiter ) noexcept
function WaitForN (line 729) | int WaitForN ( DWORD uN, std::initializer_list<Handler> dTasks )
function MyStackSize (line 780) | int MyStackSize()
function IsIMocked (line 788) | bool IsIMocked ()
function IsInsideCoroutine (line 807) | bool IsInsideCoroutine()
function Scheduler_i (line 813) | Scheduler_i* Coro::CurrentScheduler()
function NThreads (line 821) | int NThreads()
type Coro (line 829) | namespace Coro
class Worker_c (line 171) | class Worker_c final: public details::SchedulerOperation_t
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 546) | Worker_c* CurrentWorker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Worker_c (line 551) | Worker_c* Worker() noexcept
method InitWorkerID (line 202) | static uint64_t InitWorkerID()
type TimePoint_e (line 208) | enum class TimePoint_e : bool { fromresume, realtime }
method CheckEngageTimer (line 209) | inline void CheckEngageTimer ( TimePoint_e eKind )
method CoroGuardEnter (line 218) | inline void CoroGuardEnter() noexcept
method CoroGuardExit (line 229) | inline void CoroGuardExit()
class CoroGuard_c (line 241) | class CoroGuard_c
method CoroGuard_c (line 245) | explicit CoroGuard_c ( Worker_c* pWorker ) : m_pWorker { pWorker...
method DoComplete (line 249) | static void DoComplete ( void* pOwner, SchedulerOperation_t* pBase )
method Worker_c (line 262) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler )
method Worker_c (line 274) | Worker_c ( Handler fnHandler, Scheduler_i* pScheduler, Waiter_t tT...
method Worker_c (line 285) | Worker_c ( Handler fnHandler, VecTraits_T<BYTE> dStack )
method ResetRunningAndReschedule (line 292) | inline void ResetRunningAndReschedule () noexcept
method Run (line 308) | inline void Run() noexcept
method Schedule (line 314) | inline void Schedule(bool bVip=false) noexcept
method ScheduleContinuation (line 324) | inline void ScheduleContinuation () noexcept
method StartPrimary (line 334) | static void StartPrimary ( Handler fnHandler, Scheduler_i* pSchedu...
method StartOther (line 341) | static void StartOther ( Handler fnHandler, Scheduler_i * pSchedul...
method StartCall (line 349) | static void StartCall ( Handler fnHandler, Scheduler_i* pScheduler...
method StartContinuation (line 357) | static void StartContinuation ( Handler fnHandler, Scheduler_i * p...
method ATTRIBUTE_NO_SANITIZE_ADDRESS (line 362) | ATTRIBUTE_NO_SANITIZE_ADDRESS static void MockRun ( Handler fnHand...
method Worker_c (line 375) | Worker_c* MakeWorker ( Handler fnHandler ) const
method Restart (line 380) | inline void Restart ( bool bVip = true ) noexcept
method Continue (line 386) | inline void Continue () noexcept // continue previously run task. ...
method Pause (line 392) | inline void Pause ( bool bVip = true ) noexcept
method Reschedule (line 398) | inline void Reschedule ( bool bVip = true ) noexcept
method Yield_ (line 405) | inline void Yield_ () noexcept
method YieldWith (line 410) | inline void YieldWith ( Handler fnHandler ) noexcept
method MoveTo (line 416) | inline void MoveTo ( Scheduler_i * pScheduler ) noexcept
method Resume (line 425) | inline bool Resume () noexcept
method Handler (line 439) | inline Handler Restarter ( bool bVip = true ) noexcept
method Handler (line 444) | inline Handler Continuator () noexcept
method BYTE (line 449) | const BYTE * GetTopOfStack () const noexcept
method GetStackSize (line 454) | int GetStackSize () const noexcept
method IsMocked (line 459) | bool IsMocked () const noexcept
method Scheduler_i (line 464) | inline Scheduler_i * CurrentScheduler() const noexcept
method GetCurrentCpuTimeBase (line 469) | inline int64_t GetCurrentCpuTimeBase() const noexcept
method UID (line 474) | inline uint64_t UID() const noexcept
method ID (line 479) | inline int ID() const noexcept
method Worker_c (line 484) | inline static Worker_c* CurrentWorker() noexcept
method Wake (line 489) | inline bool Wake ( size_t iExpectedEpoch, bool bVip ) noexcept
method Waker_c (line 502) | inline Waker_c CreateWaker() noexcept
method SetTimePeriodUS (line 508) | inline void SetTimePeriodUS ( int64_t tmTimePointPeriodUS )
method GetTimePeriodUS (line 514) | inline int64_t GetTimePeriodUS() const noexcept
method RuntimeExceeded (line 519) | inline bool RuntimeExceeded() const
method GetRestPeriodUS (line 529) | inline int64_t GetRestPeriodUS() const noexcept
method RestartRuntime (line 534) | inline void RestartRuntime() noexcept
method NumOfRestarts (line 539) | inline int NumOfRestarts() const noexcept
function Go (line 559) | void Go ( Handler&& fnHandler, Scheduler_i * pScheduler )
function Co (line 569) | void Co ( Handler&& fnHandler, Waiter_t tSignaller )
function Continue (line 580) | void Continue ( Handler&& fnHandler, int iStack )
function YieldWith (line 593) | void YieldWith ( Handler fnHandler ) noexcept
function MoveTo (line 599) | void MoveTo ( Scheduler_i * pScheduler ) noexcept
function Yield_ (line 604) | void Yield_ () noexcept
function Reschedule (line 609) | void Reschedule() noexcept
function ID (line 616) | int ID() noexcept
function RuntimeExceeded (line 621) | bool RuntimeExceeded() noexcept
function RestartRuntime (line 631) | void RestartRuntime() noexcept
function NumOfRestarts (line 636) | int NumOfRestarts() noexcept
function ExecuteN (line 832) | void ExecuteN ( int iConcurrency, Threads::Handler&& fnWorker )
function SetDefaultThrottlingPeriodMS (line 853) | void SetDefaultThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodMS (line 858) | void SetThrottlingPeriodMS ( int tmPeriodMs )
function SetThrottlingPeriodUS (line 865) | void SetThrottlingPeriodUS ( int64_t tmPeriodUs )
function GetThrottlingPeriodUS (line 871) | int64_t GetThrottlingPeriodUS ()
function RescheduleAndKeepCrashQuery (line 876) | void RescheduleAndKeepCrashQuery ( bool bVip ) noexcept
function fnResume (line 882) | inline void fnResume ( volatile Worker_c* pCtx )
function SleepMsec (line 889) | void SleepMsec ( int iMsec )
function DWORD (line 1170) | [[nodiscard]] DWORD ReadTableLock_c::GetReads() const noexcept
FILE: src/coroutine.h
function Waiter_t (line 80) | Waiter_t DefferedRestarter() noexcept;
function mutable (line 345) | mutable sph::Spinlock_c m_tInternalMutex {}
function WaitQueue_c (line 346) | WaitQueue_c m_tWaitRQueue {}
function WaitQueue_c (line 376) | WaitQueue_c m_tWaitQueue {}
function Worker_c (line 377) | Worker_c* m_pOwner { nullptr };
function class (line 389) | class ConditionVariableAny_c: public ISphNoncopyable
function class (line 424) | class ConditionVariable_c: public ISphNoncopyable
function T (line 446) | T m_tValue { 0 }
function CheckAcquiredSched (line 522) | inline void CheckAcquiredSched ( SchedRole R ) ACQUIRE( R ) NO_THREAD_SA...
function CheckAcquiredSched (line 528) | inline void CheckAcquiredSched ( RoledSchedulerSharedPtr_t& R ) ACQUIRE(...
function CheckReleasedSched (line 534) | inline void CheckReleasedSched ( SchedRole R ) RELEASE( R ) NO_THREAD_SA...
function CheckReleasedSched (line 538) | inline void CheckReleasedSched ( RoledSchedulerSharedPtr_t & R ) RELEASE...
function class (line 542) | class SCOPED_CAPABILITY CheckRole_c
FILE: src/costestimate.cpp
function EstimateFilterSelectivity (line 26) | int64_t EstimateFilterSelectivity ( const CSphFilterSettings & tSettings...
class FilterSelectivityEstimator_c (line 43) | class FilterSelectivityEstimator_c
method ClampEstimate (line 56) | int64_t ClampEstimate ( int64_t iValue ) const { return std::clamp ( ...
function EstimateFilterSelectivity (line 134) | int64_t EstimateFilterSelectivity ( const VecTraits_T<CSphFilterSettings...
function EstimateMTCost (line 149) | static float EstimateMTCost ( float fCost, int iThreads, float fKPerf, f...
function EstimateMTCost (line 176) | float EstimateMTCost ( float fCost, int iThreads )
function EstimateMTCostCS (line 185) | float EstimateMTCostCS ( float fCost, int iThreads )
function EstimateMTCostSI (line 194) | float EstimateMTCostSI ( float fCost, int iThreads )
function EstimateMTCostSIFT (line 203) | float EstimateMTCostSIFT ( float fCost, int iThreads )
class CostEstimate_c (line 213) | class CostEstimate_c : public CostEstimate_i
method Cost_Filter (line 242) | static float Cost_Filter ( int64_t iDocs, float fComplexity ) { retur...
method Cost_BlockFilter (line 243) | static float Cost_BlockFilter ( int64_t iDocs, float fComplexity ) { r...
method Cost_ColumnarFilter (line 244) | static float Cost_ColumnarFilter ( int64_t iDocs, float fComplexity ){...
method Cost_Push (line 245) | static float Cost_Push ( int64_t iDocs ) { return COST_PUSH*iDo...
method Cost_PushImplicitGroupby (line 246) | static float Cost_PushImplicitGroupby ( int64_t iDocs ) { return CO...
method Cost_IndexReadSingle (line 248) | static float Cost_IndexReadSingle ( int64_t iDocs ) { return COST_...
method Cost_IndexReadBitmap (line 249) | static float Cost_IndexReadBitmap ( int64_t iDocs ) { return COST_...
method Cost_IndexUnionQueue (line 250) | static float Cost_IndexUnionQueue ( int64_t iDocs ) { return COST_...
method Cost_LookupRead (line 251) | static float Cost_LookupRead ( int64_t iDocs ) { return COST_LOOK...
method Cost_IndexIteratorInit (line 252) | static float Cost_IndexIteratorInit ( int64_t iNumIterators ) { retur...
method CalcMTCost (line 261) | float CalcMTCost ( float fCost ) const { return EstimateMTCost ( fCost...
method CalcMTCostCS (line 262) | float CalcMTCostCS ( float fCost ) const { return EstimateMTCostCS ( f...
method CalcMTCostSI (line 263) | float CalcMTCostSI ( float fCost ) const { return EstimateMTCostSI ( f...
method GetNumIndexes (line 273) | int GetNumIndexes() const { return m_dSIInfo.GetLength(); }
method SecondaryIndexInfo_t (line 274) | const SecondaryIndexInfo_t & GetIndex ( int iIndex ) const { return m_...
method CSphFilterSettings (line 275) | const CSphFilterSettings & GetFilter ( int iIndex ) const { return m_t...
function CostEstimate_i (line 645) | CostEstimate_i * CreateCostEstimate ( const CSphVector<SecondaryIndexInf...
function CalcFTIntersectCost (line 651) | float CalcFTIntersectCost ( const NodeEstimate_t & tEst1, const NodeEsti...
FILE: src/costestimate.h
function class (line 16) | class CostEstimate_i
type SecondaryIndexInfo_t (line 28) | struct SecondaryIndexInfo_t
type SelectIteratorCtx_t (line 44) | struct SelectIteratorCtx_t
type NodeEstimate_t (line 67) | struct NodeEstimate_t
type CreateFilterContext_t (line 68) | struct CreateFilterContext_t
FILE: src/daemon/api_search.cpp
function ParseMatch (line 333) | static void ParseMatch ( CSphMatch & tMatch, MemInputBuffer_c & tReq, co...
function ParseSchema (line 443) | static void ParseSchema ( OneResultset_t & tRes, MemInputBuffer_c & tReq )
function ParseSearchFilter (line 588) | static bool ParseSearchFilter ( CSphFilterSettings & tFilter, InputBuffe...
function AddDocids (line 685) | static void AddDocids ( CSphVector<CSphQueryItem> & dItems )
function PrepareQueryEmulation (line 703) | void PrepareQueryEmulation ( CSphQuery * pQuery )
function FixupQuerySettings (line 750) | static void FixupQuerySettings ( CSphQuery & tQuery )
function ParseSearchQuery (line 764) | bool ParseSearchQuery ( InputBuffer_c & tReq, ISphOutputBuffer & tOut, C...
function SendDataPtrAttr (line 1147) | static void SendDataPtrAttr ( ISphOutputBuffer& tOut, const BYTE * pData )
function SendJsonAsString (line 1156) | static void SendJsonAsString ( ISphOutputBuffer& tOut, const BYTE * pJSON )
function SendJson (line 1171) | static void SendJson ( ISphOutputBuffer& tOut, const BYTE * pJSON, bool ...
function SendJsonFieldAsString (line 1179) | static void SendJsonFieldAsString ( ISphOutputBuffer& tOut, const BYTE *...
function SendJsonField (line 1196) | static void SendJsonField ( ISphOutputBuffer& tOut, const BYTE * pJSON, ...
function SendMVA (line 1214) | static void SendMVA ( ISphOutputBuffer& tOut, const BYTE * pMVA, bool b6...
function SendFloatVec (line 1246) | static void SendFloatVec ( ISphOutputBuffer & tOut, const BYTE * pData )
function ESphAttr (line 1263) | static ESphAttr FixupAttrForNetwork ( const CSphColumnInfo & tCol, const...
function SendSchema (line 1305) | static void SendSchema ( ISphOutputBuffer & tOut, const AggrResult_t & t...
function SendAttribute (line 1326) | static void SendAttribute ( ISphOutputBuffer & tOut, const CSphMatch & t...
function SendResult (line 1393) | void SendResult ( int iVer, ISphOutputBuffer & tOut, const AggrResult_t&...
function HandleCommandSearch (line 1507) | void HandleCommandSearch ( ISphOutputBuffer & tOut, WORD uVer, InputBuff...
FILE: src/daemon/api_search.h
function explicit (line 41) | explicit SearchReplyParser_c ( int iResults )
function iQueryResult (line 48) | struct cSearchResult final : iQueryResult
FILE: src/daemon/crash_logger.cpp
type QueryCopyState_t (line 62) | struct QueryCopyState_t
function sphCopyEncodedBase64 (line 77) | static bool sphCopyEncodedBase64 ( QueryCopyState_t & tEnc )
function sphCopySphinxQL (line 131) | static bool sphCopySphinxQL ( QueryCopyState_t & tState )
function sphCopySphinxHttp (line 157) | static bool sphCopySphinxHttp ( QueryCopyState_t & tState )
class FixedStreamBuf (line 173) | class FixedStreamBuf : public std::streambuf
method FixedStreamBuf (line 176) | FixedStreamBuf ( char * pBuf, int iSize )
method GetPos (line 182) | int GetPos() const { return (int)( pptr()-pbase() ); }
method overflow (line 185) | int overflow ( int c ) override
method xsputn (line 196) | std::streamsize xsputn ( const char * sBuf, std::streamsize iBufSize )...
type sigaction (line 442) | struct sigaction
FILE: src/daemon/crash_logger.h
function namespace (line 15) | namespace CrashLogger
FILE: src/daemon/daemon_log.cpp
function LogTimeZoneStartup (line 39) | void LogTimeZoneStartup ( const CSphString & sWarning )
function GetDaemonLogBufSize (line 52) | int GetDaemonLogBufSize () noexcept
function SetLogFilter (line 58) | void SetLogFilter ( const CSphString & sFilter ) noexcept
function GetActiveLogFD (line 68) | int GetActiveLogFD () noexcept
function GetDaemonLogFD (line 74) | int GetDaemonLogFD () noexcept
function ForceLogStdout (line 80) | bool ForceLogStdout () noexcept
function StopLogStdout (line 86) | void StopLogStdout () noexcept
function SetLogFileMode (line 92) | void SetLogFileMode ( int iMode ) noexcept
function CSphString (line 98) | const CSphString & sphGetLogFile () noexcept
function RefreshIsAtty (line 104) | void RefreshIsAtty () noexcept
function sphLogEntry (line 112) | static void sphLogEntry ( ESphLogLevel eLevel, char * sBuf, char * sTtyB...
function sphLog (line 141) | void sphLog ( ESphLogLevel eLevel, const char * sFmt, va_list ap )
function ReopenDaemonLog (line 252) | void ReopenDaemonLog ()
function ChangeLogFileMode (line 272) | void ChangeLogFileMode ( int iFile ) noexcept
function SetDaemonLog (line 283) | void SetDaemonLog ( CSphString && sLog, bool bCloseIfOpened )
function DisableLogSyslog (line 321) | void DisableLogSyslog () noexcept
function LogSyslogEnabled (line 326) | bool LogSyslogEnabled () noexcept
FILE: src/daemon/failures_log.cpp
function CmpString (line 17) | static int CmpString ( const CSphString & a, const CSphString & b )
function ReportIndexesName (line 43) | void ReportIndexesName ( int iSpanStart, int iSpandEnd, const CSphVector...
FILE: src/daemon/failures_log.h
type SearchFailure_t (line 18) | struct SearchFailure_t
function class (line 25) | class SearchFailuresLog_c
FILE: src/daemon/http_log.cpp
function HttpLogEnabled (line 24) | bool HttpLogEnabled () noexcept
function ReopenHttpLog (line 29) | void ReopenHttpLog ()
function SetupHttpLog (line 48) | void SetupHttpLog ( CSphString sHttpLog )
function logRec (line 61) | static void logRec ( const StringBuilder_c& sData )
function logHttpOutput (line 67) | void logHttpOutput ( VecTraits_T<BYTE> dData, int iReqID )
function logHttpInput (line 85) | void logHttpInput ( VecTraits_T<BYTE> sData, int iReqID, int64_t iTimest...
FILE: src/daemon/logger.h
type ESphLogLevel (line 19) | enum ESphLogLevel
type class (line 47) | enum class
type SqlStmt_e (line 53) | enum SqlStmt_e
function LOG_FORMAT (line 56) | LOG_FORMAT LogFormat () noexcept;
type class (line 83) | enum class
FILE: src/daemon/match_iterator.cpp
class MatchTagSortAccessor_c (line 16) | class MatchTagSortAccessor_c
method MatchTagSortAccessor_c (line 20) | explicit MatchTagSortAccessor_c ( const VecTraits_T<CSphMatch> & dTagO...
method MEDIAN_TYPE (line 23) | static MEDIAN_TYPE Key ( T * a ) { return a->m_iTag; }
method Swap (line 24) | static void Swap ( T * a, T * b ) noexcept { ::Swap ( a->m_iTag, b->m_...
method T (line 25) | static T * Add ( T * p, int i ) noexcept { return p+i; }
method Sub (line 26) | static int Sub ( T * b, T * a ) noexcept { return (int)(b-a); }
method CopyKey (line 27) | static void CopyKey ( MEDIAN_TYPE * pMed, CSphMatch * pVal ) noexcept ...
method IsLess (line 29) | bool IsLess ( int a, int b ) const noexcept
FILE: src/daemon/match_iterator.h
function class (line 33) | class MatchIterator_c
FILE: src/daemon/minimize_aggr_result.cpp
function MinimizeSchema (line 23) | static bool MinimizeSchema ( CSphSchema & tDst, const ISphSchema & tSrc )
function RemapResult (line 116) | static void RemapResult ( AggrResult_t & dResult )
function GetIndexSchemaItems (line 183) | static bool GetIndexSchemaItems ( const ISphSchema & tSchema, const CSph...
function IsJoinedWeight (line 202) | static bool IsJoinedWeight ( const CSphString & sAttr, const CSphQuery &...
function GetItemsLeftInSchema (line 217) | static bool GetItemsLeftInSchema ( const ISphSchema & tSchema, const CSp...
type AttrSort_fn (line 242) | struct AttrSort_fn
method AttrSort_fn (line 246) | explicit AttrSort_fn ( const ISphSchema & tSchema )
method IsLess (line 250) | bool IsLess ( int iA, int iB ) const
function DoExpansion (line 289) | static void DoExpansion ( const ISphSchema & tSchema, const CSphVector<i...
function KillPlainDupes (line 341) | static int KillPlainDupes ( ISphMatchSorter * pSorter, AggrResult_t & tR...
function KillGroupbyDupes (line 387) | static int KillGroupbyDupes ( ISphMatchSorter * pSorter, AggrResult_t & ...
function SortTagsAndDocstores (line 410) | static void SortTagsAndDocstores ( AggrResult_t & tRes, const VecTraits_...
function KillDupesAndFlatten (line 425) | static int KillDupesAndFlatten ( ISphMatchSorter * pSorter, AggrResult_t...
function RecoverAggregateFunctions (line 468) | static void RecoverAggregateFunctions ( const CSphQuery & tQuery, const ...
type GenericMatchSort_fn (line 487) | struct GenericMatchSort_fn : CSphMatchComparatorState
method IsLess (line 489) | bool IsLess ( const CSphMatch * a, const CSphMatch * b ) const
function ExtractPostlimit (line 542) | static void ExtractPostlimit ( const ISphSchema & tSchema, bool bMaster,...
function GetUniqueTagsWithDocstores (line 553) | static CSphVector<int> GetUniqueTagsWithDocstores ( const AggrResult_t &...
function SetupPostlimitExprs (line 578) | static void SetupPostlimitExprs ( const DocstoreReader_i * pDocstore, co...
function EvalPostlimitExprs (line 589) | static void EvalPostlimitExprs ( CSphMatch & tMatch, const CSphColumnInf...
function ProcessMultiPostlimit (line 624) | static void ProcessMultiPostlimit ( AggrResult_t & tRes, VecTraits_T<con...
function ProcessSinglePostlimit (line 663) | static void ProcessSinglePostlimit ( OneResultset_t & tRes, VecTraits_T<...
function ProcessLocalPostlimit (line 686) | static void ProcessLocalPostlimit ( AggrResult_t & tRes, const CSphQuery...
function MinimizeSchemas (line 720) | static bool MinimizeSchemas ( AggrResult_t & tRes )
function MergeAllMatches (line 752) | static bool MergeAllMatches ( AggrResult_t & tRes, const CSphQuery & tQu...
function ApplyOuterOrder (line 842) | static bool ApplyOuterOrder ( AggrResult_t & tRes, const CSphQuery & tQu...
function ComputePostlimit (line 864) | static void ComputePostlimit ( AggrResult_t & tRes, const CSphQuery & tQ...
function MinimizeAggrResult (line 888) | bool MinimizeAggrResult ( AggrResult_t & tRes, const CSphQuery & tQuery,...
FILE: src/daemon/query_log.cpp
function SlowTimeExceeded (line 41) | bool SlowTimeExceeded ( int iTimeMs ) noexcept
function SetLogFormat (line 47) | void SetLogFormat ( LOG_FORMAT eFormat ) noexcept
function LOG_FORMAT (line 53) | LOG_FORMAT LogFormat () noexcept
function SetLogCompact (line 59) | void SetLogCompact ( bool bCompact ) noexcept
function SetLogStatsFlags (line 65) | void SetLogStatsFlags ( bool bIOStats, bool bCPUStats ) noexcept
function SetupQueryLogDrain (line 72) | void SetupQueryLogDrain ( CSphString sQueryLog )
function ReopenQueryLog (line 89) | void ReopenQueryLog ()
function RedirectQueryLogToDaemonLog (line 108) | void RedirectQueryLogToDaemonLog ()
function OpenSyslogIfNecessary (line 116) | void OpenSyslogIfNecessary ()
function WriteQuery (line 129) | static void WriteQuery ( const StringBuilder_c & tBuf )
function LogQueryPlain (line 135) | static void LogQueryPlain ( const CSphQuery & tQuery, const CSphQueryRes...
function CSphString (line 238) | CSphString RemoveBackQuotes ( const char * pSrc )
function FormatOrderBy (line 271) | static void FormatOrderBy ( StringBuilder_c * pBuf, const char * sPrefix...
function FormatOption (line 306) | static void FormatOption ( const CSphQuery & tQuery, StringBuilder_c & t...
function AppendHint (line 413) | static void AppendHint ( const IndexHint_t & tHint, const StrVec_t & dIn...
function FormatIndexHints (line 422) | static void FormatIndexHints ( const CSphQuery & tQuery, StringBuilder_c...
function VacuumSpacesFromJson (line 453) | void VacuumSpacesFromJson ( const char* szJson, StringBuilder_c & tBuf )...
function LogQueryJson (line 511) | static void LogQueryJson ( const CSphQuery & q, StringBuilder_c & tBuf )
function FormatTimeConnClient (line 525) | static void FormatTimeConnClient ( StringBuilder_c & tBuf )
function FormatSphinxql (line 543) | void FormatSphinxql ( const CSphQuery & q, const CSphQuery & tJoinOption...
function LogQuerySphinxql (line 658) | static void LogQuerySphinxql ( const CSphQuery & q, const CSphQuery & tJ...
function LogQuery (line 742) | void LogQuery ( const CSphQuery & q, const CSphQuery & tJoinOptions, con...
function LogSphinxqlError (line 760) | void LogSphinxqlError ( const char * szStmt, const Str_t & sError )
function LogSphinxqlError (line 765) | void LogSphinxqlError ( const Str_t & sStmt, const Str_t & sError )
function LogBuddyQuery (line 788) | void LogBuddyQuery ( Str_t sQuery, BuddyQuery_e tType )
function LogFilterStatementSphinxql (line 822) | static int64_t LogFilterStatementSphinxql ( Str_t sQuery, SqlStmt_e eStmt )
function ConfigureQueryLogCommands (line 836) | void ConfigureQueryLogCommands ( const CSphString & sMode )
function LogSphinxqlClause (line 901) | void LogSphinxqlClause ( Str_t sQuery, int iRealTime )
function LogQueryToSphinxlLog (line 915) | void LogQueryToSphinxlLog (const CSphString& sQuery, const CSphString& s...
FILE: src/daemon/search_handler.cpp
class RetireQueriesVec_c (line 95) | class RetireQueriesVec_c
method OneQueryDeleted (line 100) | void OneQueryDeleted()
method Delete (line 109) | static void Delete ( void * pArg )
method EngageRetiring (line 121) | void EngageRetiring ( CSphFixedVector<CSphQuery> dQueries, CSphVector<...
function cServedIndexRefPtr_c (line 167) | cServedIndexRefPtr_c KeepCollection_c::Get ( const CSphString & sName ) ...
function ARRAY_FOREACH (line 258) | ARRAY_FOREACH ( i, m_dQueries )
function StrVec_t (line 284) | static StrVec_t GetDefaultSchema ( const CSphIndex* pIndex )
function GetMaxMatches (line 314) | static int GetMaxMatches ( int iQueryMaxMatches, const CSphIndex * pIndex )
function SphQueueSettings_t (line 323) | SphQueueSettings_t SearchHandler_c::MakeQueueSettings ( const CSphIndex ...
type LocalSearchRef_t (line 414) | struct LocalSearchRef_t
method LocalSearchRef_t (line 422) | LocalSearchRef_t ( ExprHook_c & tHook, StrVec_t* pExtra, VecTraits_T<S...
method MergeChild (line 430) | void MergeChild ( LocalSearchRef_t dChild ) const
method IsClonable (line 475) | inline static bool IsClonable()
type LocalSearchClone_t (line 481) | struct LocalSearchClone_t
method LocalSearchClone_t (line 490) | explicit LocalSearchClone_t ( const LocalSearchRef_t & dParent)
function cServedIndexRefPtr_c (line 521) | cServedIndexRefPtr_c SearchHandler_c::CheckIndexSelectable ( const CSphS...
function ARRAY_FOREACH (line 574) | ARRAY_FOREACH ( i, m_dNQueries )
function ARRAY_FOREACH (line 609) | ARRAY_FOREACH ( i, dErrors )
function ARRAY_FOREACH (line 625) | ARRAY_FOREACH ( iLocal, m_dLocal )
function ARRAY_FOREACH (line 684) | ARRAY_FOREACH ( iLocal, m_dLocal )
class AssignTag_c (line 726) | class AssignTag_c final: public MatchProcessor_i
method AssignTag_c (line 729) | explicit AssignTag_c ( int iTag )
method Process (line 733) | void Process ( CSphMatch * pMatch ) { ProcessMatch(pMatch); }
method ProcessInRowIdOrder (line 734) | bool ProcessInRowIdOrder() const { return false; }
method Process (line 735) | void Process ( VecTraits_T<CSphMatch *> & dMatches ) { dMatches.for_e...
method ProcessMatch (line 739) | void ProcessMatch ( CSphMatch * pMatch ) { pMatch->m_iTag = m_iTag; }
class GlobalSorters_c (line 743) | class GlobalSorters_c final
method GlobalSorters_c (line 746) | GlobalSorters_c ( const VecTraits_T<CSphQuery> & dQueries, const CSphV...
method StoreSorter (line 788) | bool StoreSorter ( int iQuery, int iIndex, ISphMatchSorter * & pSorter...
method NeedGlobalSorters (line 802) | bool NeedGlobalSorters() const
method MergeResults (line 807) | void MergeResults ( VecTraits_T<AggrResult_t> & dResults )
type SorterData_t (line 851) | struct SorterData_t
function ARRAY_FOREACH_COND (line 1190) | ARRAY_FOREACH_COND ( i, tFirstQueryItems, bSameItems )
type IndexSettings_t (line 1217) | struct IndexSettings_t
function ARRAY_FOREACH_COND (line 1231) | ARRAY_FOREACH_COND ( i, m_dLocal, bGlobalIDF )
function ARRAY_FOREACH (line 1276) | ARRAY_FOREACH ( i, m_dLocal )
function ARRAY_FOREACH (line 1289) | ARRAY_FOREACH ( i, dLocal )
function GetIndexWeight (line 1343) | static int GetIndexWeight ( const CSphString& sName, const CSphVector<CS...
function CalculateMass (line 1356) | uint64_t CalculateMass ( const CSphIndexStatus & dStats )
function GetIndexMass (line 1366) | static uint64_t GetIndexMass ( const CSphString & sName )
function FixupSystemTableW (line 1373) | static void FixupSystemTableW ( StrVec_t & dNames, CSphQuery & tQuery ) ...
function ARRAY_FOREACH (line 1624) | ARRAY_FOREACH ( iLocal, m_dLocal )
function CollectAllLocalIndexes (line 1685) | static CSphVector<LocalIndex_t> CollectAllLocalIndexes ( const CSphVecto...
function CheckExpansion (line 1810) | static void CheckExpansion ( CSphQueryResultMeta & tMeta )
type QueryInfo_t (line 1834) | struct QueryInfo_t : TaskInfo_t
function DEFINE_RENDER (line 1843) | DEFINE_RENDER ( QueryInfo_t )
function FillupFacetError (line 1853) | static void FillupFacetError ( int iQueries, const VecTraits_T<CSphQuery...
function ARRAY_FOREACH (line 2033) | ARRAY_FOREACH ( iAgent, dRemotes )
function ESphAggrFunc (line 2254) | static ESphAggrFunc GetAggr ( Aggr_e eAggrFunc )
function AddCompositeItems (line 2267) | void AddCompositeItems ( const CSphString & sCol, CSphVector<CSphQueryIt...
function SearchHandler_c (line 2290) | SearchHandler_c CreateMsearchHandler ( std::unique_ptr<QueryParser_i> pQ...
FILE: src/daemon/search_handler.h
type QueryStat_t (line 22) | struct QueryStat_t
type StatsPerQuery_t (line 30) | struct StatsPerQuery_t
function StatsPerQuery_t (line 35) | struct DistrServedByAgent_t : StatsPerQuery_t
function class (line 47) | class KeepCollection_c final
type LocalIndex_t (line 62) | struct LocalIndex_t
type JoinedIndexes_t (line 71) | struct JoinedIndexes_t
type LocalSearchRef_t (line 77) | struct LocalSearchRef_t
function SetJoinQueryOptions (line 92) | void SetJoinQueryOptions ( int iQuery, const CSphQuery & tJoinQuer...
function SetFederatedUser (line 94) | void SetFederatedUser () { m_bFederatedUser = true; }
type IndexPSInfo_t (line 146) | struct IndexPSInfo_t
type JoinedServedIndex_t (line 157) | struct JoinedServedIndex_t
FILE: src/daemon/system_tables.cpp
function ParseSystem (line 28) | static bool ParseSystem ( TableFeeder_fn & fnFeed, const CSphString & sN...
function ParseInformationSchema (line 48) | static bool ParseInformationSchema ( TableFeeder_fn & fnFeed, const CSph...
function ParseSubkeys (line 58) | static bool ParseSubkeys ( TableFeeder_fn & fnFeed, const CSphString & s...
FILE: src/daemon/winservice.cpp
function WinService (line 16) | bool WinService () noexcept
function StopWinService (line 39) | bool StopWinService () noexcept
function MySetServiceStatus (line 45) | void MySetServiceStatus ( DWORD dwCurrentState, DWORD dwWin32ExitCode, D...
function ServiceControl (line 67) | void WINAPI ServiceControl ( DWORD dwControlCode )
function SC_HANDLE (line 100) | SC_HANDLE ServiceOpenManager ()
function AppendArg (line 114) | void AppendArg ( char * sBuf, int iBufLimit, const char * sArg )
function ServiceInstall (line 166) | void ServiceInstall ( int argc, char ** argv )
function ServiceDelete (line 222) | void ServiceDelete ()
function EventLogEntry (line 251) | void EventLogEntry ( ESphLogLevel eLevel, char * sBuf, char * sTtyBuf )
function BOOL (line 289) | BOOL WINAPI CtrlHandler ( DWORD )
function WinSetConsoleCtrlHandler (line 296) | void WinSetConsoleCtrlHandler () noexcept
function ParseArgsAndStartWinService (line 304) | bool ParseArgsAndStartWinService ( int argc, char ** argv, void * Servic...
function SetupWinService (line 339) | void SetupWinService ( int& argc, char **& argv )
function SetWinServiceStopped (line 369) | void SetWinServiceStopped ()
function SetWinServiceRunning (line 374) | void SetWinServiceRunning ()
function CloseWinPipe (line 381) | void CloseWinPipe ()
function CheckWinSignals (line 387) | void CheckWinSignals ()
function WinStopOrWaitAnother (line 416) | int WinStopOrWaitAnother(int iPid, int iWaitTimeout)
FILE: src/daemon/winservice.h
type ESphLogLevel (line 26) | enum ESphLogLevel
FILE: src/datareader.cpp
function ESphQueryState (line 17) | inline static ESphQueryState StateByKind ( DataReaderFactory_c::Kind_e e...
class FileBlockReader_c (line 29) | class FileBlockReader_c : public FileBlockReader_i
method FileBlockReader_c (line 32) | explicit FileBlockReader_c ( const char * szFileName )
method RowID_t (line 36) | RowID_t UnzipRowid() override { return UnzipInt (); }
method SphWordID_t (line 37) | SphWordID_t UnzipWordid() override { return UnzipOffset (); }
class ThinMMapReader_c (line 46) | class ThinMMapReader_c final : public FileBlockReader_c
method SphOffset_t (line 49) | SphOffset_t GetPos () const final
method SeekTo (line 58) | void SeekTo ( SphOffset_t iPos, int /*iSizeHint*/ ) final
method Reset (line 71) | void Reset () final
method ThinMMapReader_c (line 86) | ThinMMapReader_c ( const BYTE * pArena, SphOffset_t iSize, const char ...
method BYTE (line 93) | BYTE GetByte() override
function DWORD (line 137) | DWORD ThinMMapReader_c::GetDword()
function SphOffset_t (line 145) | SphOffset_t ThinMMapReader_c::GetOffset()
function DWORD (line 153) | DWORD ThinMMapReader_c::UnzipInt()
class DirectFileReader_c (line 166) | class DirectFileReader_c final : public FileBlockReader_c, protected Fil...
method SeekTo (line 171) | void SeekTo ( SphOffset_t iPos, int iSizeHint ) final { FileReader_c...
method GetBytes (line 172) | void GetBytes ( BYTE * pData, int iSize ) final { FileReader_c::Ge...
method GetBytesZerocopy (line 173) | int GetBytesZerocopy ( const BYTE *& pData, int iMax ) final { retur...
method SphOffset_t (line 174) | SphOffset_t GetPos () const final { return FileReader_c::GetPos(); }
method BYTE (line 175) | BYTE GetByte() final { return FileReader_c::GetByte(); }
method DWORD (line 176) | DWORD GetDword () final { return FileReader_c::GetDword(); }
method SphOffset_t (line 177) | SphOffset_t GetOffset() final { return FileReader_c::GetOffset(); }
method DWORD (line 178) | DWORD UnzipInt() final { return FileReader_c::UnzipInt(); }
method UnzipOffset (line 179) | uint64_t UnzipOffset() final { return FileReader_c::UnzipOffset(); }
method Reset (line 180) | void Reset() final { FileReader_c::Reset(); }
method DirectFileReader_c (line 183) | explicit DirectFileReader_c ( BYTE * pBuf, int iSize, const char * szF...
class DirectFactory_c (line 194) | class DirectFactory_c final : public DataReaderFactory_c
method DirectFactory_c (line 197) | DirectFactory_c ( const CSphString & sFile, CSphString & sError, ESphQ...
method GetMappedsize (line 205) | uint64_t GetMappedsize () const final
method GetCoresize (line 210) | uint64_t GetCoresize () const final
method SphOffset_t (line 215) | SphOffset_t GetFilesize () const final
method SphOffset_t (line 220) | SphOffset_t GetPos () const final
method SeekTo (line 225) | void SeekTo ( SphOffset_t iPos ) final
method FileBlockReader_c (line 231) | FileBlockReader_c * MakeReader ( BYTE * pBuf, int iSize ) final
method SetProfile (line 244) | void SetProfile ( QueryProfile_c * pProfile ) final
class MMapFactory_c (line 263) | class MMapFactory_c final : public DataReaderFactory_c
method MMapFactory_c (line 266) | MMapFactory_c ( const CSphString & sFile, CSphString & sError, FileAcc...
method GetMappedsize (line 273) | uint64_t GetMappedsize () const final
method GetCoresize (line 278) | uint64_t GetCoresize () const final
method SphOffset_t (line 283) | SphOffset_t GetFilesize () const final
method SphOffset_t (line 288) | SphOffset_t GetPos () const final
method SeekTo (line 293) | void SeekTo ( SphOffset_t iPos ) final
method FileBlockReader_c (line 299) | FileBlockReader_c * MakeReader ( BYTE *, int ) final
function DataReaderFactory_c (line 318) | DataReaderFactory_c * NewProxyReader ( const CSphString & sFile, CSphStr...
FILE: src/datareader.h
function class (line 20) | class FileBlockReader_i : public ISphRefcountedMT
function class (line 42) | class DataReaderFactory_c : public ISphRefcountedMT
FILE: src/datetime.cpp
function CheckForUTC (line 23) | static void CheckForUTC()
function CSphString (line 29) | static CSphString DetermineLocalTimeZoneName ( CSphString & sWarning )
function CSphString (line 105) | static CSphString FixupZoneName ( const CSphString & sName )
function SetTimeZoneLocal (line 114) | static void SetTimeZoneLocal ( StrVec_t & dWarnings )
function InitTimeZones (line 147) | void InitTimeZones ( StrVec_t & dWarnings )
function SetTimeZone (line 155) | bool SetTimeZone ( const char * szTZ, CSphString & sError )
function IsTimeZoneSet (line 170) | bool IsTimeZoneSet()
function CSphString (line 176) | CSphString GetTimeZoneName()
function CSphString (line 185) | CSphString GetLocalTimeZoneName()
function ConvertTime (line 194) | cctz::civil_second ConvertTime ( time_t tTime )
function ConvertTimeLocal (line 200) | cctz::civil_second ConvertTimeLocal ( time_t tTime )
function ConvertTimeUTC (line 206) | cctz::civil_second ConvertTimeUTC ( time_t tTime )
function time_t (line 212) | time_t ConvertTime ( const cctz::civil_second & tCS )
function time_t (line 218) | time_t PackLocalTimeAsUTC ( time_t tTime )
function GetWeekDay (line 231) | int GetWeekDay ( const cctz::civil_second & tTime, bool bSundayFirst )
function GetYearDay (line 245) | int GetYearDay ( const cctz::civil_second & tTime )
function GetQuarter (line 251) | int GetQuarter ( const cctz::civil_second & tTime )
function FORCE_INLINE (line 257) | static FORCE_INLINE bool IsLeapYear ( int iYear )
function IsLeapYear (line 263) | bool IsLeapYear ( const cctz::civil_second & tTime )
function CalcNumYearDays (line 269) | int CalcNumYearDays ( const cctz::civil_second & tTime )
function CSphString (line 275) | CSphString FormatTime ( time_t tTime, const char * szFmt )
function CalcYearMonth (line 282) | int CalcYearMonth ( const cctz::civil_second & tTime )
function CalcYearMonthDay (line 288) | int CalcYearMonthDay ( const cctz::civil_second & tTime )
function CalcYearWeek (line 294) | int CalcYearWeek ( const cctz::civil_second & tTime )
function CalcDayNumber (line 311) | static int CalcDayNumber ( const cctz::civil_day & tTime )
type WeekFlags_e (line 318) | enum WeekFlags_e : uint32_t
function FixupWeekFlags (line 326) | static uint32_t FixupWeekFlags ( uint32_t uFlags )
function CalcWeekNumber (line 336) | int CalcWeekNumber ( const cctz::civil_second & tTime, uint32_t uFlags )
function ParseAsLocalTime (line 379) | bool ParseAsLocalTime ( const char * szFmt, const CSphString & sTime, ti...
FILE: src/datetime.h
type class (line 18) | enum class
FILE: src/debug_cmds.cpp
type DebugCmd (line 28) | namespace DebugCmd {
type Traits_e (line 29) | enum Traits_e : BYTE
type CmdNotice_t (line 38) | struct CmdNotice_t
function SetShutdownToken (line 84) | void SetShutdownToken ( CSphString sToken ) noexcept
function CSphString (line 90) | inline static CSphString strSHA1 ( const CSphString& sLine )
function HandleMysqlOptimizeManual (line 95) | void HandleMysqlOptimizeManual ( RowBuffer_i & tOut, const DebugCmd::Deb...
function HandleMysqlDropManual (line 123) | void HandleMysqlDropManual ( RowBuffer_i & tOut, const DebugCmd::DebugCo...
function HandleMysqlCompress (line 148) | void HandleMysqlCompress ( RowBuffer_i & tOut, const DebugCmd::DebugComm...
function HandleMysqlDedup (line 173) | void HandleMysqlDedup ( RowBuffer_i& tOut, const DebugCmd::DebugCommand_...
function HandleMysqlSplit (line 199) | void HandleMysqlSplit ( RowBuffer_i & tOut, const DebugCmd::DebugCommand...
function HandleMysqlDebugMeta (line 241) | void HandleMysqlDebugMeta ( RowBuffer_i & tOut, const DebugCmd::DebugCom...
function HandleMysqlfiles (line 251) | void HandleMysqlfiles ( RowBuffer_i & tOut, const DebugCmd::DebugCommand...
function HandleMysqlclose (line 281) | void HandleMysqlclose ( RowBuffer_i & tOut )
function HandleShutdownCrash (line 289) | void HandleShutdownCrash ( RowBuffer_i & tOut, const CSphString & sPassw...
function HandleProcDump (line 318) | void HandleProcDump ( RowBuffer_i & tOut )
function HandleGdbStatus (line 332) | void HandleGdbStatus ( RowBuffer_i & tOut )
function HandleSetGdb (line 348) | void HandleSetGdb ( RowBuffer_i & tOut, bool bParam )
function HandleWait (line 370) | void HandleWait ( RowBuffer_i& tOutBuf, const DebugCmd::DebugCommand_t& ...
function HandleWaitStatus (line 385) | void HandleWaitStatus ( RowBuffer_i& tOutBuf, const DebugCmd::DebugComma...
function HandleTrace (line 406) | void HandleTrace ( RowBuffer_i& tOut, const DebugCmd::DebugCommand_t& tC...
function HandleToken (line 427) | void HandleToken ( RowBuffer_i & tOut, const CSphString & sParam )
function HandleCurl (line 435) | void HandleCurl ( RowBuffer_i & tOut, const CSphString & sParam )
function HandlePause (line 444) | void HandlePause ( RowBuffer_i & tOut, const DebugCmd::DebugCommand_t & ...
function HandleMallocStats (line 454) | void HandleMallocStats ( RowBuffer_i & tOut, const CSphString& sParam )
function HandleMallocTrim (line 470) | void HandleMallocTrim ( RowBuffer_i & tOut )
function HandleSleep (line 480) | void HandleSleep ( RowBuffer_i & tOut, int64_t iParam )
function HandleTasks (line 493) | void HandleTasks ( RowBuffer_i & tOut )
function HandleSched (line 518) | void HandleSched ( RowBuffer_i & tOut )
function HandleMysqlDebug (line 533) | void HandleMysqlDebug ( RowBuffer_i &tOut, const DebugCmd::DebugCommand_...
FILE: src/detail/coroutine_impl.h
function namespace (line 15) | namespace Threads
function ScopedScheduler_c (line 210) | inline ScopedScheduler_c::ScopedScheduler_c ( SchedRole pRole )
function ScopedScheduler_c (line 220) | inline ScopedScheduler_c::ScopedScheduler_c ( RoledSchedulerSharedPtr_t&...
function ScopedScheduler_c (line 230) | inline ScopedScheduler_c::~ScopedScheduler_c()
function namespace (line 237) | namespace Coro
FILE: src/detail/expmeter.h
function class (line 17) | class ExpMeter_c
FILE: src/detail/indexlink.cpp
function WriteLinkFile (line 21) | bool WriteLinkFile ( const CSphString& sBase, const CSphString& sNewPath...
function CSphString (line 51) | CSphString RedirectToRealPath ( CSphString sBase )
FILE: src/dict/aggregate_hit.h
type AggregateHit_t (line 19) | struct AggregateHit_t
function SphWordID_t (line 22) | SphWordID_t m_uWordID { 0 }
function BYTE (line 23) | const BYTE* m_szKeyword {
Copy disabled (too large)
Download .json
Condensed preview — 3231 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (52,753K chars).
[
{
"path": ".clt/checkers/contains",
"chars": 1285,
"preview": "#!/usr/bin/env bash\n\n# Check if two arguments are provided\nif [ $# -ne 2 ]; then\n\techo \"Usage: $0 <patterns_file> <targe"
},
{
"path": ".clt/checkers/ignore",
"chars": 149,
"preview": "#!/usr/bin/env bash\n\n# Check if two arguments are provided\nif [ $# -ne 2 ]; then\n\techo \"Usage: $0 <patterns_file> <targe"
},
{
"path": ".clt/checkers/something",
"chars": 635,
"preview": "#!/usr/bin/env bash\n\n# Check if two arguments are provided\nif [ $# -ne 2 ]; then\n\techo \"Usage: $0 <patterns_file> <targe"
},
{
"path": ".clt/patterns",
"chars": 398,
"preview": "LLDATETIME [A-Za-z]{3}\\s+[0-9]{1,2}\\s[0-9]{2}:[0-9]{2}\nLLFILESIZE \\s*[0-9]+(K|B|G)?\nCOMMITDATE [a-z0-9]{7,9}@[0-9]{6,8}\n"
},
{
"path": ".cursorignore",
"chars": 156,
"preview": "# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)\n\nbuild*\n.translation-cache*\nmanual/chi"
},
{
"path": ".editorconfig",
"chars": 304,
"preview": "root = true\n\n[*]\nindent_style = tab\nindent_size = 4\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\nins"
},
{
"path": ".github/FUNDING.yml",
"chars": 50,
"preview": "custom: [\"https://www.paypal.me/manticoresearch\"]\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 2248,
"preview": "name: 🐞 Bug Report\ndescription: Submit a bug report for Manticore Search\nlabels: bug\nbody:\n - type: markdown\n attrib"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 547,
"preview": "contact_links:\n - name: \"Manticore Search quick start guide\"\n about: \"Get help with setting up and using Manticore S"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.yml",
"chars": 1428,
"preview": "name: 🌟 Feature Request\ndescription: Submit a proposal for a new Manticore Search feature or enhancement\nbody:\n - type:"
},
{
"path": ".github/ISSUE_TEMPLATE/support_request.yml",
"chars": 1720,
"preview": "name: ❓ Support Request\ndescription: Need help with Manticore Search? Submit your questions here!\nbody:\n - type: checkb"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 295,
"preview": "<!--\nBefore submitting a pull request, please ensure you've read the Contributing guide located at CONTRIBUTING.md in th"
},
{
"path": ".github/stale.yml",
"chars": 884,
"preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 30\n# Number of days of inactivity before a "
},
{
"path": ".github/workflows/build_template.yml",
"chars": 4259,
"preview": "name: Build Template\n\non:\n workflow_call:\n inputs:\n arch:\n required: false\n type: string\n "
},
{
"path": ".github/workflows/check_docs.yml",
"chars": 5992,
"preview": "name: 📖 Check docs\nrun-name: 📖 Check docs ${{ github.sha }}\n\non:\n workflow_call:\n workflow_run:\n workflows: \n "
},
{
"path": ".github/workflows/checklist_validator.yml",
"chars": 338,
"preview": "name: 📝 Checklist Validator\nrun-name: 📝 Checklist Validator for issue ${{ github.event.issue.number }}\n\non:\n issues:\n "
},
{
"path": ".github/workflows/clt_nightly.yml",
"chars": 10521,
"preview": "name: Nightly tests\nrun-name: 🌙 Nightly tests ${{ github.sha }}\n\non:\n schedule:\n - cron: '00 20 * * *'\n pull_reques"
},
{
"path": ".github/workflows/clt_tests.yml",
"chars": 4523,
"preview": "name: CLT tests \non:\n workflow_call:\n inputs:\n docker_image:\n required: true\n type: string\n "
},
{
"path": ".github/workflows/coverage.yml",
"chars": 1547,
"preview": "name: 📊 Code coverage test\nrun-name: 📊 Code coverage test ${{ github.sha }}\n\non:\n #workflow_run:\n # workflows: [ 🔬 Test"
},
{
"path": ".github/workflows/deploy_docs.yml",
"chars": 3352,
"preview": "name: 📖 Deploy docs\nrun-name: 📖 Deploy docs ${{ github.sha }}\n\non:\n push:\n paths:\n - 'manual/**'\n branches:\n"
},
{
"path": ".github/workflows/nightly_dumps.yml",
"chars": 2635,
"preview": "name: Nightly testing of supported versions of mysqldump and elasticdump\nrun-name: 🌙 Nightly tests of mysqldump and elas"
},
{
"path": ".github/workflows/nightly_fuzzer.yml",
"chars": 6519,
"preview": "name: Nightly Fuzz Testing\nrun-name: 🌙 Nightly Fuzz Testing ${{ github.sha }}\n\non:\n # 📅 Run this workflow every day at "
},
{
"path": ".github/workflows/nightly_integration.yml",
"chars": 7835,
"preview": "name: Nightly integration tests\nrun-name: 🌙 Nightly integration tests ${{ github.sha }}\n\non:\n schedule:\n - cron: '00"
},
{
"path": ".github/workflows/nightly_memleaks.yml",
"chars": 1455,
"preview": "name: Nightly valgrind checks\nrun-name: 🌙 Nightly valgrind checks ${{ github.sha }}\n\non:\n schedule:\n - cron: '00 20 "
},
{
"path": ".github/workflows/pack_publish.yml",
"chars": 25044,
"preview": "name: 📦 Pack and publish\nrun-name: 📦 Pack and publish ${{ github.sha }}\n\n#on: workflow_call\non:\n workflow_run:\n work"
},
{
"path": ".github/workflows/pack_publish_galera.yml",
"chars": 7137,
"preview": "name: 📦 Pack and publish Galera\nrun-name: 📦 Pack and publish Galera ${{ github.sha }}\n\n# See galera_packaging/README.md "
},
{
"path": ".github/workflows/test.yml",
"chars": 28306,
"preview": "name: 🔬 Test\nrun-name: 🔬 Test ${{ github.sha }}\n\n#on: workflow_call\n\non:\n push:\n branches:\n - master\n - ma"
},
{
"path": ".github/workflows/test_template.yml",
"chars": 6240,
"preview": "name: Test Template\n\non:\n workflow_call:\n inputs:\n WITH_COVERAGE:\n required: false\n type: number\n"
},
{
"path": ".github/workflows/trigger_docs_check.yml",
"chars": 996,
"preview": "name: 📖 Trigger doc check\nrun-name: 📖 Trigger doc check ${{ github.sha }}\n\n# We use this intermediate workflow to workar"
},
{
"path": ".github/workflows/win_test_template.yml",
"chars": 6003,
"preview": "name: Windows Test Template\n\non:\n workflow_call:\n inputs:\n CTEST_START:\n required: false\n type: n"
},
{
"path": ".gitignore",
"chars": 1396,
"preview": "# /\n/Makefile\n/config.status\n/config.log\n/sphinx-min.conf.dist\n/sphinx.conf.dist\n/bin\n/junk\n/*.suo\n/*.ncb\n/*.sdf\n/*.open"
},
{
"path": ".gitlab-ci.yml",
"chars": 7288,
"preview": "workflow:\n rules:\n - if: $CI_MERGE_REQUEST_ID\n - if: $CI_COMMIT_TAG\n - if: $CI_COMMIT_BRANCH == \"master\"\n -"
},
{
"path": ".gitmodules",
"chars": 103,
"preview": "[submodule \"translator\"]\n\tpath = translator\n\turl = https://github.com/manticoresoftware/translator.git\n"
},
{
"path": ".noindex",
"chars": 24,
"preview": "/test/**\n/translator/**\n"
},
{
"path": ".translation-cache/Changelog.md.json",
"chars": 2862950,
"preview": "{\n \"5167106ef1f5f57ff52f6e69322d9f7f584b44f21770d796e9df1fe8cdd6dfb6\": {\n \"original\": \"**Starting with version"
},
{
"path": ".translation-cache/Connecting_to_the_server/HTTP.md.json",
"chars": 156509,
"preview": "{\n \"b86fe0533dac8fed37811e51a77cd3761796c57127a9b1cff6350e51299402e0\": {\n \"original\": \"While the `/sql` endpoi"
},
{
"path": ".translation-cache/Connecting_to_the_server/MySQL_protocol.md.json",
"chars": 409043,
"preview": "{\n \"a9ea9b4a6c6e18fdf779a62f34c83aafef5b5ca48df43683c1ec41f80c2decf4\": {\n \"original\": \"# MySQL protocol\\n\\nMan"
},
{
"path": ".translation-cache/Connecting_to_the_server.md.json",
"chars": 12226,
"preview": "{\n \"fce431e476653b223fd96e578f84420034ed8de62b8e0b3ac12be07b4feb49cf\": {\n \"original\": \"# Connecting to the ser"
},
{
"path": ".translation-cache/Creating_a_cluster/Adding_a_new_node.md.json",
"chars": 3731,
"preview": "{\n \"c4fd76417f38c6ced30f4b7edbc6868d26ebaf38015f5a9b514efc18503ee20f\": {\n \"original\": \"# Adding a new node\\n\\n"
},
{
"path": ".translation-cache/Creating_a_cluster/Creating_a_cluster.md.json",
"chars": 6931,
"preview": "{\n \"9adcc36abec9262bb8a023fd8f6750052adb687f02551b1c2e98bc8d0a3f1c2c\": {\n \"original\": \"# Manticore cluster\\n\\n"
},
{
"path": ".translation-cache/Creating_a_cluster/Remote_nodes/Load_balancing.md.json",
"chars": 47401,
"preview": "{\n \"a81401714279f51352c3d72bc76842740c17d965f801d225afde5f086051be82\": {\n \"original\": \"# Load balancing\\n\\nLoa"
},
{
"path": ".translation-cache/Creating_a_cluster/Remote_nodes/Mirroring.md.json",
"chars": 20746,
"preview": "{\n \"e2a7390ff873f557c1f0de13c03e88d9855990b600e0d05cd12186b8cab3b9b0\": {\n \"original\": \"# Mirroring\\n\\n[Agent]("
},
{
"path": ".translation-cache/Creating_a_cluster/Remote_nodes.md.json",
"chars": 20444,
"preview": "{\n \"9067d572995f740235bc4357aa577e9ceb7a5670457346c6b0898a51e0a5d9e5\": {\n \"original\": \"# Adding a distributed "
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Adding_and_removing_a_table_from_a_replication_cluster.md.json",
"chars": 29281,
"preview": "{\n \"36ab19f5920c99507af3487cd60146533a30cf5a9b97d2fa8a7404ae32c13b07\": {\n \"original\": \"# Adding and removing a"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Cluster_recovery.md.json",
"chars": 66143,
"preview": "{\n \"c9bc3f7d09185f7836e850afefb58c5287e23970ad1a4a22ab86f30221f2e4af\": {\n \"original\": \"Split-brain can cause t"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Creating_a_replication_cluster.md.json",
"chars": 21452,
"preview": "{\n \"f04f31662c193a6d41ca05f2188383f31494e6b97e5180d2c5ef71c6b83975ae\": {\n \"original\": \"# Creating a replicatio"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Deleting_a_replication_cluster.md.json",
"chars": 11876,
"preview": "{\n \"218658ac95b6cf34d68c2e34ed911e303e5a21f985017b8be4517362cad91877\": {\n \"original\": \"# Deleting a replicatio"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Joining_a_replication_cluster.md.json",
"chars": 60231,
"preview": "{\n \"d82df0e36a9e072c125dc5b0179e6d26e8c9c1ec85cd5e2328b3cc9456a2844f\": {\n \"original\": \"# Joining a replication"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Managing_replication_nodes.md.json",
"chars": 32248,
"preview": "{\n \"3b93d259f0eaef9e6a80ca931d5288137ff85b44bae31bc0356d08de4014e89a\": {\n \"original\": \"# Managing replication "
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Replication_cluster_status.md.json",
"chars": 40643,
"preview": "{\n \"3fdc058a1fdaa2b3d129709cf32524da8f94a839fbec247799881b2953cbc2b2\": {\n \"original\": \"# Replication cluster s"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md.json",
"chars": 12328,
"preview": "{\n \"551df5adc8e9412f2b994dfe73da2988a4ede0ebed8b8f75ffac836e0e82e1ce\": {\n \"original\": \"# Restarting a cluster\\"
},
{
"path": ".translation-cache/Creating_a_cluster/Setting_up_replication/Setting_up_replication.md.json",
"chars": 120072,
"preview": "{\n \"c410e4e16168cf71bf714969d982e29b1825f0ab05d0b8a5904f5c9149d7e46b\": {\n \"original\": \"<!-- request Python-asy"
},
{
"path": ".translation-cache/Creating_a_table/Creating_a_distributed_table/Creating_a_distributed_table.md.json",
"chars": 20451,
"preview": "{\n \"033500901d28a799a9599ceae5287a1f2c086c2d9874ec6871f37324f7607349\": {\n \"original\": \"# Creating a distribute"
},
{
"path": ".translation-cache/Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md.json",
"chars": 13752,
"preview": "{\n \"8a34d9ccb3b411136212727cb2f92ed2333e5eecfd278546787123a05624a9a1\": {\n \"original\": \"# Creating a local dist"
},
{
"path": ".translation-cache/Creating_a_table/Creating_a_distributed_table/Remote_tables.md.json",
"chars": 129176,
"preview": "{\n \"ae84fce951e4fb63805f4cfa9b3cc69d38f73bfd8d731fb02ed0c0c3315d3443\": {\n \"original\": \"The `listen_tfo` option"
},
{
"path": ".translation-cache/Creating_a_table/Data_types.md.json",
"chars": 1057204,
"preview": "{\n \"79c245e8372abc19754ba09018a1bbb778992cf02251579bbf84ca8fd221c778\": {\n \"original\": \"CODE_BLOCK_225\\n<!-- in"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables/Percolate_table.md.json",
"chars": 48856,
"preview": "{\n \"c0d97d681aee7aa8efbfebfe91172a0535f7531f31d11871adca271eeadde903\": {\n \"original\": \"# Percolate table\\n\\n<!"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md.json",
"chars": 788500,
"preview": "{\n \"48b87c47101c3c4df21c5d037b21410df5dba8b362f7a1ea7f4c1ef829e51022\": {\n \"original\": \"### Natural language pr"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables/Plain_table.md.json",
"chars": 44398,
"preview": "{\n \"73d0ddf87781fc56d26829c0964d2a367de8f7cabe6f41e3e3524715752962c6\": {\n \"original\": \"| Extension | Descripti"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables/Real-time_table.md.json",
"chars": 77477,
"preview": "{\n \"ac79b103eb9c7561a297b08c0122b4ebffc0747271df78a7c2a5a603a7428241\": {\n \"original\": \"### \\u26d4 What you can"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables/Template_table.md.json",
"chars": 13088,
"preview": "{\n \"26a5767a0a98e1badb8941d3fb19ac3ef81b76314ed919dd2c99795101542319\": {\n \"original\": \"# Template table\\n\\n<!-"
},
{
"path": ".translation-cache/Creating_a_table/Local_tables.md.json",
"chars": 25014,
"preview": "{\n \"a6176ae45440cf2032193f04a9844b11516c5a9df4b45fb4dca53a32e6bb0c53\": {\n \"original\": \"# Creating a local tabl"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md.json",
"chars": 120102,
"preview": "{\n \"b3b91ff33f11f2922f4eef63b0ad8d3b245b5df7c078e8e60c26bc92dce82228\": {\n \"original\": \"* Question marks (?) an"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Data_tokenization.md.json",
"chars": 27390,
"preview": "{\n \"9af0fb9cb042dc34e426a6f9efc61865ee8b3227f7c0e1a832e4eef27e2249a2\": {\n \"original\": \"# Data tokenization\\n\\n"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Exceptions.md.json",
"chars": 70106,
"preview": "{\n \"4dd6d5e92bf656af9c1dc9ba53fe06f80b7abb1d1a58c741c770e179899171e6\": {\n \"original\": \"# Exceptions\\n\\nExcepti"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md.json",
"chars": 161343,
"preview": "{\n \"28dd00dfa4b76123bf90bda4858ab50b47d688a665009cccb5346ac548c10bc4\": {\n \"original\": \"CODE_BLOCK_31\\n\\n<!-- e"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Languages_with_continuous_scripts.md.json",
"chars": 45861,
"preview": "{\n \"04175168ceef92ee0998ba0f567f9f0553a059f29de3f8183f2aab8a6a3b9dd5\": {\n \"original\": \"# Chinese, Japanese and"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md.json",
"chars": 637552,
"preview": "{\n \"c3036e96a7ab544d7c683d336680186f8cbe51306ca19cbb9864cc1523c488aa\": {\n \"original\": \"<!-- example regexp_fil"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Morphology.md.json",
"chars": 116047,
"preview": "{\n \"c1aae9046eeffaa4eb4faaa2e1301ff553e7c1ab80b226c67f6d8324a7f44e38\": {\n \"original\": \"<!-- intro -->\\n##### J"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Supported_languages.md.json",
"chars": 70225,
"preview": "{\n \"cd07b30f03ec0dabe1bc2160fe551c85881475c2a30728d5133c87cac77d469b\": {\n \"original\": \"# Supported languages\\n"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md.json",
"chars": 170308,
"preview": "{\n \"68ac21cd312b85cf1b63c7d365e917d5a805e3876b3073ead1155c21f7f6ae6b\": {\n \"original\": \"CODE_BLOCK_41\\n\\nMaximu"
},
{
"path": ".translation-cache/Creating_a_table/NLP_and_tokenization/Wordforms.md.json",
"chars": 138215,
"preview": "{\n \"10195ea64441de7f5f4cecae3c2249e510ba4f9d1267dbb76f13dd671c0d9ade\": {\n \"original\": \"# Word forms\\n\\nWord fo"
},
{
"path": ".translation-cache/Creating_a_table.md.json",
"chars": 15964,
"preview": "{\n \"eb2618b18b066b4eec4ae36f82c7d0f988db2c32a9939481afcff4cf610b7db5\": {\n \"original\": \"# Creating a table\\n<!-"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Attaching_one_table_to_another.md.json",
"chars": 56759,
"preview": "{\n \"44ce0bf7c49c06addba38de9ae9d1d1502b86123eb2cd4089bfb73b9472a4281\": {\n \"original\": \"# Attaching one table t"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Importing_table.md.json",
"chars": 14370,
"preview": "{\n \"9bd1127a58c8ee92192052639fb36b3f91630e8ca379f7775cea5741934a3ed2\": {\n \"original\": \"# Importing table\\n\\nIf"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Killlist_in_plain_tables.md.json",
"chars": 68209,
"preview": "{\n \"9e68edf7298ab2962f56477d27f98057bfddbccc1c1516db71c55c5a797824e8\": {\n \"original\": \"# Killlist in plain tab"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Merging_tables.md.json",
"chars": 18738,
"preview": "{\n \"a6f7803a328fbb4ad4d7298afe6a9f0e8c363ef240eb069ec2c8c0d63c66471c\": {\n \"original\": \"# Merging tables\\n\\nMer"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_CSV,TSV.md.json",
"chars": 59263,
"preview": "{\n \"6cbc41d5756e39f53526db37b7e500f9f7f7efd7c4adc64a0b78faa65b557a64\": {\n \"original\": \"# Fetching from TSV,CSV"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_XML_streams.md.json",
"chars": 53833,
"preview": "{\n \"5cfdee1b401a14980cb92459c311fa2c8b3e2df20abd132932b222e5430b79a4\": {\n \"original\": \"Under certain occasions"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_databases/Database_connection.md.json",
"chars": 69006,
"preview": "{\n \"eb59c94ad91199efe04baa8dbeaf40b5af87e418903af28ada08f1e8b3697b54\": {\n \"original\": \"# Database connection\\n"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_databases/Execution_of_fetch_queries.md.json",
"chars": 39703,
"preview": "{\n \"ba4f93265520944908afb753ae38c3a79d3a34c48715ab9e49838c464944ce48\": {\n \"original\": \"# Execution of fetch qu"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_databases/Introduction.md.json",
"chars": 7203,
"preview": "{\n \"13a2bba92c25c6720b7f0ece131a61d611f5d1fa217bc6e44c3515175069a05e\": {\n \"original\": \"# Introduction\\n\\nManti"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_databases/Processing_fetched_data.md.json",
"chars": 140344,
"preview": "{\n \"43317a8cfe21e08ae4ccd128a9ff1f1b05813648b9c66aa0541862107db5cc33\": {\n \"original\": \"**Joined fields** let y"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Fetching_from_databases/Ranged_queries.md.json",
"chars": 33995,
"preview": "{\n \"982d9916e1f91d91c7e9f89c251c479519322e01b09d7d327d088398d463ab4b\": {\n \"original\": \"# Ranged queries\\n\\n\\nM"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Main_delta.md.json",
"chars": 41480,
"preview": "{\n \"03b51fc9d36b793e19d7c7bfb4258b70c27ab2a1b28857347f35ddb55f341667\": {\n \"original\": \"# Main+delta schema\\n\\n"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md.json",
"chars": 203069,
"preview": "{\n \"d885bd4f02b49acc8aafbdf1099151500ca6aa7401b24268f3a7475114e1452f\": {\n \"original\": \"Plain table building RA"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages/Rotating_a_table.md.json",
"chars": 55605,
"preview": "{\n \"99aa2083f2efb5e3256fa83ec588139f131026a40b06228dda7f9e4c91c5c1ad\": {\n \"original\": \"With seamless rotate en"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_data_from_external_storages.md.json",
"chars": 4810,
"preview": "{\n \"8635c34a0f6413b5cf65a686e28f12c7938bbd0574acb5cee167f7091d951e7d\": {\n \"original\": \"# Adding data from exte"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md.json",
"chars": 219519,
"preview": "{\n \"2772d1b50109310d3361b0e95e7695c0c26a5d78b364995d90a76a1ca86b5cdc\": {\n \"original\": \"The `/bulk` endpoint su"
},
{
"path": ".translation-cache/Data_creation_and_modification/Adding_documents_to_a_table/Adding_rules_to_a_percolate_table.md.json",
"chars": 56479,
"preview": "{\n \"7c064fce6e47d03e10c71923fb4e226dbb0fc2d9cf2109cc0ad1251de4659eef\": {\n \"original\": \"# Adding rules to a per"
},
{
"path": ".translation-cache/Data_creation_and_modification/Data_creation_and_modification.md.json",
"chars": 6191,
"preview": "{\n \"dbb71472e229d8f9a70f713a07022ae0b37cb88a8697718cfcc8ab5d0adb1158\": {\n \"original\": \"# Data creation and mod"
},
{
"path": ".translation-cache/Data_creation_and_modification/Deleting_documents.md.json",
"chars": 96621,
"preview": "{\n \"7a8844b7f3299bbb67c48d26b45f78606493a733915686f1f4036afa2262ccfd\": {\n \"original\": \"<!-- response C# -->\\nC"
},
{
"path": ".translation-cache/Data_creation_and_modification/Transactions.md.json",
"chars": 63615,
"preview": "{\n \"99b03c1208f7f255cea104ab74824c2de75039d0aae69e8748b0bc299995a49c\": {\n \"original\": \"# Transactions\\n\\nManti"
},
{
"path": ".translation-cache/Data_creation_and_modification/Updating_documents/REPLACE.md.json",
"chars": 102153,
"preview": "{\n \"b41e5e1557d493ccae739e7e8bfa8cd9866f892368d578648d7b4920ce189407\": {\n \"original\": \"# REPLACE\\n\\n<!-- examp"
},
{
"path": ".translation-cache/Data_creation_and_modification/Updating_documents/REPLACE_vs_UPDATE.md.json",
"chars": 12794,
"preview": "{\n \"860024ba47e1ce8bc3e51be4ff07a228da904fc514a513d0e42e7c74fcacdc73\": {\n \"original\": \"# REPLACE vs UPDATE\\n\\n"
},
{
"path": ".translation-cache/Data_creation_and_modification/Updating_documents/UPDATE.md.json",
"chars": 217043,
"preview": "{\n \"2e09996588808cfd0998e093ea97ff256b3d8da924bb4c694756d46330b59b3a\": {\n \"original\": \"<!-- response Python-as"
},
{
"path": ".translation-cache/Deleting_a_table.md.json",
"chars": 18723,
"preview": "{\n \"e2f4f0b2bee857082bf6df296404e5979331aa34c614ad0660aa476fc29a63ba\": {\n \"original\": \"# Deleting a table\\n\\n<"
},
{
"path": ".translation-cache/Emptying_a_table.md.json",
"chars": 24849,
"preview": "{\n \"96d1fde17437626f4417f1ab993e1c7ac87cf1e40e3b3ab98c046d5e86645cce\": {\n \"original\": \"# Emptying a table\\n\\n<"
},
{
"path": ".translation-cache/Extensions/FEDERATED.md.json",
"chars": 44353,
"preview": "{\n \"07b35c46eeeb8143a7fa584cdace3d6f79eb7f70502cf6f5b247206e3285ddfa\": {\n \"original\": \"# FEDERATED\\n\\nWith the"
},
{
"path": ".translation-cache/Extensions/SphinxSE.md.json",
"chars": 168474,
"preview": "{\n \"a78ddc0790c67673fdd07963ba1e61c6b977cfee8ae091185a3352e7b0f8aa29\": {\n \"original\": \"The binary providing th"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Listing_plugins.md.json",
"chars": 20147,
"preview": "{\n \"3114a7266739b143c5768b4d6323f2a91cb3b900b7ea1765e6ec10b795b941b2\": {\n \"original\": \"# Listing plugins\\n\\n##"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Creating_a_plugin.md.json",
"chars": 10424,
"preview": "{\n \"15495903f69954825c8479c4d2dbdc9efc3c70376750661cd6cd6bd17c8f936f\": {\n \"original\": \"# System plugins\\n## CR"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Deleting_a_plugin.md.json",
"chars": 7929,
"preview": "{\n \"20d640bdea675bfc5fb15eb9fdaa680be2af27c039a688a941d230b3b255edf0\": {\n \"original\": \"# DELETE PLUGIN\\n\\nCODE"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Enabling_and_disabling_buddy_plugins.md.json",
"chars": 11663,
"preview": "{\n \"7f8a2f6eb23ac68de5e274be5f3338a9e4bbc27be0679d56ea862eb7cabd7ab5\": {\n \"original\": \"# Enabling and disablin"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Ranker_plugins.md.json",
"chars": 14201,
"preview": "{\n \"e8de0b6e4164bd47ceaa53d01d86b230200fc316443b1a2d42cdbdbee5dab774\": {\n \"original\": \"# Ranker plugins\\n\\nRan"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Reloading_plugins.md.json",
"chars": 13048,
"preview": "{\n \"33044f916762118eb6eecdfa1e13c6add6bce15e88cc41e743a2ff5fe45dc18c\": {\n \"original\": \"# RELOADING PLUGINS\\n\\n"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/Plugins/Token_filter_plugins.md.json",
"chars": 33383,
"preview": "{\n \"74d06504d4a202b759ebe74cc4c70889bc88aa81d93721828ad17972dea84e7e\": {\n \"original\": \"# Token filter plugins\\"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/UDF/Creating_a_function.md.json",
"chars": 4510,
"preview": "{\n \"4c362687ad8fdcb57fd1c13d4196d88746aae45fa4147d210e61523567f666d6\": {\n \"original\": \"# CREATE FUNCTION\\n\\nCO"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/UDF/Deleting_a_function.md.json",
"chars": 3944,
"preview": "{\n \"fbcf9d777df6b627ff9aa503c5dc8f4abedf9500bc8b94528327b239f58eb0b0\": {\n \"original\": \"# DROP FUNCTION\\n\\nCODE"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/UDF.md.json",
"chars": 114664,
"preview": "{\n \"e001d0d1c6b82e206d64a36fb046848302766ee9cfc02508b1639342c0cceed3\": {\n \"original\": \"CODE_BLOCK_3\\n\\nNote ho"
},
{
"path": ".translation-cache/Extensions/UDFs_and_Plugins/UDFs_and_Plugins.md.json",
"chars": 89379,
"preview": "{\n \"92c56c5c23909e24226739eade4381637a9845a60ac9c57e38a28dc4c726c392\": {\n \"original\": \"# UDFs and Plugins\\n\\nM"
},
{
"path": ".translation-cache/Functions/Arrays_and_conditions_functions.md.json",
"chars": 133895,
"preview": "{\n \"70357d80d4bfe96f1a82c02deb9c6314751a3107b2ddbc6a1a2702d5b638b5c6\": {\n \"original\": \"### HISTOGRAM()\\n<!-- e"
},
{
"path": ".translation-cache/Functions/Date_and_time_functions.md.json",
"chars": 67289,
"preview": "{\n \"bba1117036395bd9e4b7239a91f4c2e6abfc1535d5417c25886872962a4af2f6\": {\n \"original\": \"This example formats th"
},
{
"path": ".translation-cache/Functions/Geo_spatial_functions.md.json",
"chars": 17030,
"preview": "{\n \"7e883c3abc9fe2459f06f2a8cf0a5bff30b8a7f919a15c4d56311affd1da355f\": {\n \"original\": \"# Geo spatial functions"
},
{
"path": ".translation-cache/Functions/Mathematical_functions.md.json",
"chars": 19435,
"preview": "{\n \"00af94506a9b63c1e6d779f7cc74a6482893c762e5a2a91057fd598077ef5e9b\": {\n \"original\": \"# Mathematical function"
},
{
"path": ".translation-cache/Functions/Other_functions.md.json",
"chars": 9064,
"preview": "{\n \"f5781c248161814de211c5f4d031419d324ff169b43bdd5d46f023e29111182e\": {\n \"original\": \"# Other functions\\n\\n##"
},
{
"path": ".translation-cache/Functions/Searching_and_ranking_functions.md.json",
"chars": 98600,
"preview": "{\n \"ddc1869a663b46438ff09266014c222b4b40e6ff7a142451c523567911556489\": {\n \"original\": \"Table functions are a m"
},
{
"path": ".translation-cache/Functions/String_functions.md.json",
"chars": 34111,
"preview": "{\n \"d1544881a9c73a69b9960969d7aecb81ba50add6c043c0700c5f331ce36f862e\": {\n \"original\": \"# String functions\\n\\n#"
},
{
"path": ".translation-cache/Functions/Type_casting_functions.md.json",
"chars": 20494,
"preview": "{\n \"0b9ece452c075fe528bde7a659b2483b47b295b4d33dbbeb7fabe8c585a74786\": {\n \"original\": \"# Type Casting Function"
},
{
"path": ".translation-cache/Functions.md.json",
"chars": 624,
"preview": "{\n \"163fe55349c1afb398192965de498c86c98d679105299bb418122da48c31b863\": {\n \"original\": \"# Functions\\n<!-- proof"
},
{
"path": ".translation-cache/Installation/Compiling_from_sources.md.json",
"chars": 390102,
"preview": "{\n \"5f725256eb8c8f7ae18cab0f5a03cf4da9ce3f7cd58320b506c5464cbf3c4f6a\": {\n \"original\": \"You can also configure "
},
{
"path": ".translation-cache/Installation/Debian_and_Ubuntu.md.json",
"chars": 27922,
"preview": "{\n \"5409c76f6f7c416d1d2b06f12000e16e5faadf1d7d268eb76d4bd923cd178c67\": {\n \"original\": \"# Installing Manticore "
},
{
"path": ".translation-cache/Installation/Docker.md.json",
"chars": 3706,
"preview": "{\n \"ef7e0ac80bb96d7deebf2c9dacb54066b82a286297bfeead53464eff8bf20168\": {\n \"original\": \"# Installing Manticore "
},
{
"path": ".translation-cache/Installation/Installation.md.json",
"chars": 22412,
"preview": "{\n \"fcdbe7450ab62275dc46de101cd72e65dcd029222e13e30eec7e75256ee2443c\": {\n \"original\": \"# Installation\\n\\n<!-- "
},
{
"path": ".translation-cache/Installation/MacOS.md.json",
"chars": 7807,
"preview": "{\n \"64bec79f1d66fc784971f10026f13fc8df36dc95056fec3c65fa160b183ff537\": {\n \"original\": \"# Installing Manticore "
},
{
"path": ".translation-cache/Installation/Manticore_Buddy.md.json",
"chars": 9592,
"preview": "{\n \"d69f35acf5c6c39a0ab82714cdab3f4573c6c6be128191b48c836acff4034c19\": {\n \"original\": \"# Manticore Buddy\\n\\nMa"
},
{
"path": ".translation-cache/Installation/Migration_from_Sphinx.md.json",
"chars": 101052,
"preview": "{\n \"febaf5dee92b5198ce01c95ac69149abd95b11afb3e306e21fa9f233e1df470c\": {\n \"original\": \"* `--config <file>` (`-"
},
{
"path": ".translation-cache/Installation/RHEL_and_Centos.md.json",
"chars": 29231,
"preview": "{\n \"a83e88eb0a11b677f1fa1ffb2ae97e37b7ad86d604bd16e9c990e9aca3ebce6d\": {\n \"original\": \"# Installing Manticore "
},
{
"path": ".translation-cache/Installation/Windows.md.json",
"chars": 19443,
"preview": "{\n \"b3a627b7d6d2722c9b3652711cef062fc52706050dc45abc64ad801b75a68697\": {\n \"original\": \"# Installing Manticore "
},
{
"path": ".translation-cache/Integration/Apache_Superset.md.json",
"chars": 29543,
"preview": "{\n \"8912119de308c761f4eecd3d9468f1ec46e54c8c25c4dbe34e5ef52c4d8dc0e7\": {\n \"original\": \"# Integration with Apac"
},
{
"path": ".translation-cache/Integration/DBeaver.md.json",
"chars": 53839,
"preview": "{\n \"1954b7fa81bc7fb09403201430186d63fec5b67657baf69a3c35b7a08adfa8fa\": {\n \"original\": \"# Integration with DBea"
},
{
"path": ".translation-cache/Integration/Filebeat.md.json",
"chars": 58707,
"preview": "{\n \"2eb051735c68badaf960d71b74cecbefa195bd6640571b4e2b7fec3a2b517d93\": {\n \"original\": \"# Integration with File"
},
{
"path": ".translation-cache/Integration/Fluentbit.md.json",
"chars": 17755,
"preview": "{\n \"09bcc544321aa64e31021b213e69f0ef6460bf389a332f9773d0fcd11772bf9e\": {\n \"original\": \"# Integration with Flue"
},
{
"path": ".translation-cache/Integration/Grafana.md.json",
"chars": 234100,
"preview": "{\n \"24c8596b27788d8e35566cc96db15027f737a4ae527cdf4992a27d335a381b0a\": {\n \"original\": \"# Integration with Graf"
},
{
"path": ".translation-cache/Integration/Kafka.md.json",
"chars": 109475,
"preview": "{\n \"922eb3d7aa6cb7ce2efe34be92363a7d504aa08b0a2ba10e9a512f92d79f8571\": {\n \"original\": \"<!-- intro -->\\n\\n#####"
},
{
"path": ".translation-cache/Integration/Kibana.md.json",
"chars": 18449,
"preview": "{\n \"1f63a904cc5d1f4e93e349a0b8ce0b76dfe9ef4a41b3fb583fd08d243abd5c64\": {\n \"original\": \"# Integration of Mantic"
},
{
"path": ".translation-cache/Integration/Logstash.md.json",
"chars": 44348,
"preview": "{\n \"d5b4750b1fedc8b16a7eaf718cf27910ec9ec67a6ec6fd1ab9040bdaf38121a3\": {\n \"original\": \"# Integration with Logs"
},
{
"path": ".translation-cache/Integration/Vectordev.md.json",
"chars": 17873,
"preview": "{\n \"67f4d584fda4a75a49932b298ec02809bc54f16e86ac60ae195f9e3428e79489\": {\n \"original\": \"# Integration with Vect"
},
{
"path": ".translation-cache/Introduction.md.json",
"chars": 126239,
"preview": "{\n \"1bd0fc7e77a27745f0e8bf25d2470afe8aa3e7612a893f8ec3d150bb1ca208cb\": {\n \"original\": \"# Introduction\\n\\nManti"
},
{
"path": ".translation-cache/Listing_tables.md.json",
"chars": 76977,
"preview": "{\n \"1c5bcfee0e0cddc896980aab4328d9e95479c9ee17aa3bd6e6a24c4b9b471181\": {\n \"original\": \"# Listing tables\\n\\nMan"
},
{
"path": ".translation-cache/Logging/Binary_logging.md.json",
"chars": 78878,
"preview": "{\n \"4cad62f91891022358c0f57587ca507a045c08328d216582e02511cb951f7d62\": {\n \"original\": \"* `0` - Data is written"
},
{
"path": ".translation-cache/Logging/Docker_logging.md.json",
"chars": 4219,
"preview": "{\n \"ad7822c0dcf70f6175db7c0f214f19ed0798961811e78dd031366fd7a10e8a28\": {\n \"original\": \"# Docker logging\\n\\nWhe"
},
{
"path": ".translation-cache/Logging/Query_logging.md.json",
"chars": 166017,
"preview": "{\n \"285a2a6b38f28f3dae3f9d6112f041d932f5361261e4f41f9219ed72b64a2f26\": {\n \"original\": \"# Query logging\\n\\n<!--"
},
{
"path": ".translation-cache/Logging/Rotating_query_and_server_logs.md.json",
"chars": 6018,
"preview": "{\n \"62622bdc2b9459863105b15e6b41b51a5b9da2bd08c71851bb68084b9a31b12c\": {\n \"original\": \"# Rotating query and se"
},
{
"path": ".translation-cache/Logging/Server_logging.md.json",
"chars": 11138,
"preview": "{\n \"696518548074a3070a166b59a3e91aa55befccd499c3f0f7b6c3b53a97cf767b\": {\n \"original\": \"# Server logging\\n\\nBy "
},
{
"path": ".translation-cache/Miscellaneous_tools.md.json",
"chars": 102969,
"preview": "{\n \"d818a67ff93d523c824ea9760d38a26f3a80e14b174d705399d4047268e4926d\": {\n \"original\": \"This command prevents t"
},
{
"path": ".translation-cache/Node_info_and_management/KILL.md.json",
"chars": 2018,
"preview": "{\n \"a391fc213f66af0786a34d6a8b410c5e4b8dad930e9814b9b32112de1929d66d\": {\n \"original\": \"# KILL\\n\\n<!-- example "
},
{
"path": ".translation-cache/Node_info_and_management/Node_status.md.json",
"chars": 235651,
"preview": "{\n \"bccecbaee7dc96d4df0a3cdb5eacc663eea888a271140606133292ced09d969a\": {\n \"original\": \"<!-- intro -->\\n##### R"
},
{
"path": ".translation-cache/Node_info_and_management/Profiling/Query_plan.md.json",
"chars": 68317,
"preview": "{\n \"1e3364b15842da2c8fb49922375cb2a25329ed6490dd161f08669e11f3e0b343\": {\n \"original\": \"# Query plan\\n\\n<!-- ex"
},
{
"path": ".translation-cache/Node_info_and_management/Profiling/Query_profile.md.json",
"chars": 28987,
"preview": "{\n \"a26ca37214b01581d93ad4b32f0a8e5169ff22acf24f3a6046574de8715e30af\": {\n \"original\": \"# Query profile\\n\\n<!--"
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_META.md.json",
"chars": 106286,
"preview": "{\n \"4046ddca9d2092a610281ff23839005fe9b33df8608115582f1aeaca01978f90\": {\n \"original\": \"CODE_BLOCK_16\\n\\n<!-- e"
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_QUERIES.md.json",
"chars": 14712,
"preview": "{\n \"1c145e7cd75f9d4b765f6479c9798d72b0c883b6c6fc491bf4d17dd0243f5e5a\": {\n \"original\": \"# SHOW QUERIES\\n\\n<!-- "
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_THREADS.md.json",
"chars": 59237,
"preview": "{\n \"7e7cd58599631e8654f2f5528391b0b9fa1629b3d7303d92f5d41e525e7354af\": {\n \"original\": \"# SHOW THREADS\\n\\nCODE_"
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_VARIABLES.md.json",
"chars": 3159,
"preview": "{\n \"20a45f5f6844e6dc178468aa3cad486227a252c7799f52197c3fb3b5d9347559\": {\n \"original\": \"# SHOW VARIABLES\\n\\nCOD"
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_VERSION.md.json",
"chars": 6528,
"preview": "{\n \"421e68af2576559c550d8d9cc665d0d4aafee5298a8f9cd5ff40d427f53d5efc\": {\n \"original\": \"# SHOW VERSION\\n\\n<!-- "
},
{
"path": ".translation-cache/Node_info_and_management/SHOW_WARNINGS.md.json",
"chars": 3014,
"preview": "{\n \"bee6431fd613cbd80ad5949d08960a6d734952829e888db8061730df3e47f45a\": {\n \"original\": \"# SHOW WARNINGS\\n\\n`SHO"
},
{
"path": ".translation-cache/Node_info_and_management/Table_settings_and_status/SHOW_TABLE_INDEXES.md.json",
"chars": 18187,
"preview": "{\n \"f51a8063910891f2fa848420fab60e458da0b1e15e8f83df9b730056f05bb9d9\": {\n \"original\": \"# SHOW TABLE INDEXES\\n\\"
},
{
"path": ".translation-cache/Node_info_and_management/Table_settings_and_status/SHOW_TABLE_SETTINGS.md.json",
"chars": 7391,
"preview": "{\n \"25b22243190a3fb41e2db1dccac8a84e2054d204884c6e5108104d23723e1fdb\": {\n \"original\": \"# SHOW TABLE SETTINGS\\n"
},
{
"path": ".translation-cache/Node_info_and_management/Table_settings_and_status/SHOW_TABLE_STATUS.md.json",
"chars": 144569,
"preview": "{\n \"193a0aad6eb01f428abce2c401762417385aa870347702845c4e49f47931c9c9\": {\n \"original\": \"CODE_BLOCK_11\\n<!-- res"
},
{
"path": ".translation-cache/Openapi.md.json",
"chars": 3388,
"preview": "{\n \"509637c4c6bfe87148be35e898e58fbba9972be60c266f4230689c573ee5453a\": {\n \"original\": \"# OpenAPI specification"
},
{
"path": ".translation-cache/Quick_start_guide.md.json",
"chars": 200394,
"preview": "{\n \"072055cae726b8730dbf87acdc5adc7cf0d2f1d26900366444e1bbd7fca29e43\": {\n \"original\": \"CODE_BLOCK_83\\nindexApi"
},
{
"path": ".translation-cache/README.md.json",
"chars": 291388,
"preview": "{\n \"ec242006d2d04b828dd6091745e7a0772cbe3c262933f21326f97167776b5f7d\": {\n \"original\": \"* [\\u261d Introduction]"
},
{
"path": ".translation-cache/Read_this_first.md.json",
"chars": 45699,
"preview": "{\n \"79494e3e639b83a15983fd2a4e20bca56d5b3fa56672a6d1b448e1a5fac1f63a\": {\n \"original\": \"# Read this first\\n\\n##"
},
{
"path": ".translation-cache/References.md.json",
"chars": 732820,
"preview": "{\n \"a521286595ee15c683edf09a1d08af7ce8154a0c7e2ce8d4b2c63a7566bb3b88\": {\n \"original\": \"## Table Converter for "
},
{
"path": ".translation-cache/Reporting_bugs.md.json",
"chars": 121410,
"preview": "{\n \"ceece3476a943b7562d144fce37b7e85fc67a44db36e633670b7ae2a089a6545\": {\n \"original\": \"2. Find symbols in `/us"
},
{
"path": ".translation-cache/Searching/Autocomplete.md.json",
"chars": 83757,
"preview": "{\n \"7ed396dff53c3b45a104375a399808d030f8a59fe4308d78fdb842165cd61dad\": {\n \"original\": \"There is an [article ab"
},
{
"path": ".translation-cache/Searching/Collations.md.json",
"chars": 29456,
"preview": "{\n \"d518a6683de7295364461052f2fa57fd26166f489984a680cad15f4331de1219\": {\n \"original\": \"# Collations\\n\\nCollati"
},
{
"path": ".translation-cache/Searching/Cost_based_optimizer.md.json",
"chars": 43695,
"preview": "{\n \"5d214ec701657c47f459029b0795af71fb882ee8ab0e44041ad4544751ec02a0\": {\n \"original\": \"# Cost-based optimizer\\"
},
{
"path": ".translation-cache/Searching/Distributed_searching.md.json",
"chars": 16721,
"preview": "{\n \"312ae3c53db1444a5f8866065ddf00d861d2da0d9398296dfd80891f287f4c49\": {\n \"original\": \"# Distributed searching"
},
{
"path": ".translation-cache/Searching/Expressions.md.json",
"chars": 75069,
"preview": "{\n \"bdcce5f2284998873dcf25ffc0e3490f99e2e3ecc9aaf1c5cd21a3b1873cbb20\": {\n \"original\": \"# Expressions in search"
},
{
"path": ".translation-cache/Searching/Faceted_search.md.json",
"chars": 259700,
"preview": "{\n \"ca6aeb574ad3ee0b7f3c918c5963c6297614f2049867634c74ed08d155a19717\": {\n \"original\": \"<!-- request Go -->\\nCO"
},
{
"path": ".translation-cache/Searching/Filters.md.json",
"chars": 104725,
"preview": "{\n \"580284ef707ba4edd5bfd49e30e5a205d36d2f3a206397c9e41ccced0f229b7c\": {\n \"original\": \"##### distance\\nSpecifi"
},
{
"path": ".translation-cache/Searching/Full_text_matching/Basic_usage.md.json",
"chars": 82230,
"preview": "{\n \"15b49bdace952eca2396d07210dc6a746259528c9a0e776374fd5404b65d1e8b\": {\n \"original\": \"# MATCH\\n\\nThe `MATCH` "
},
{
"path": ".translation-cache/Searching/Full_text_matching/Boolean_optimization.md.json",
"chars": 13042,
"preview": "{\n \"9f049f8e6fa6526b67823387cea5eedb392ac2970cc7be00f3336a921a34b0e5\": {\n \"original\": \"# Boolean optimization\\"
},
{
"path": ".translation-cache/Searching/Full_text_matching/Escaping.md.json",
"chars": 122306,
"preview": "{\n \"d90923570f1be3602c6b9b6b22bd125841e0f063d6703fc5c6f34101700ed25f\": {\n \"original\": \"# Escaping characters i"
},
{
"path": ".translation-cache/Searching/Full_text_matching/Operators.md.json",
"chars": 148994,
"preview": "{\n \"d5d72dc016b6e0a3925a1c2882a32dfe9dcd1983a54f2ac058b568c347de8992\": {\n \"original\": \"### Exact form modifier"
},
{
"path": ".translation-cache/Searching/Full_text_matching/Profiling.md.json",
"chars": 122095,
"preview": "{\n \"9e0e711658e8de62070ed15be111c4d5fb995e8e07e66d2ffdfbc219b6aba55d\": {\n \"original\": \"* The values of documen"
},
{
"path": ".translation-cache/Searching/Geo_search.md.json",
"chars": 53419,
"preview": "{\n \"0cf606d4ca85c28d126f4171213d86251caa03a36b5cd8222307205ff9f47b64\": {\n \"original\": \"# Geo search\\n\\nOne of "
},
{
"path": ".translation-cache/Searching/Grouping.md.json",
"chars": 185949,
"preview": "{\n \"9d0581025d6e4717fc60b90c6f63a6a9c766b6c69c2bbdc985e47be6c95fcf1b\": {\n \"original\": \"<!-- example group7 -->"
},
{
"path": ".translation-cache/Searching/Highlighting.md.json",
"chars": 370509,
"preview": "{\n \"1520675530074c38d189c1cf870a12831b96e0a3353910a1a9a0debdf38d47f4\": {\n \"original\": \"Most options are the sa"
},
{
"path": ".translation-cache/Searching/Intro.md.json",
"chars": 6542,
"preview": "{\n \"58c779ce556c5f8a3d1fdfb06b5ba51f3909e74c76f68547decebec4441a8b68\": {\n \"original\": \"# Introduction into sea"
},
{
"path": ".translation-cache/Searching/Joining.md.json",
"chars": 184370,
"preview": "{\n \"8fc084640b280cc9907f63d2a4e273224825e3df812cda05f24e398eaec87b3a\": {\n \"original\": \"This query demonstrates"
},
{
"path": ".translation-cache/Searching/KNN.md.json",
"chars": 296929,
"preview": "{\n \"9ad13e5775d7395c200a2a2d57b5fa6282e0e7088c2913115b3fe309b0a2c8f0\": {\n \"original\": \"**Automatic brute-force"
},
{
"path": ".translation-cache/Searching/Multi-queries.md.json",
"chars": 130188,
"preview": "{\n \"b7a7236af6ab6fbced71cdb02c5d7baba8f9ce843e924bcf9e5cad5334a51007\": {\n \"original\": \"# Multi-queries\\n\\nMult"
},
{
"path": ".translation-cache/Searching/Options.md.json",
"chars": 315777,
"preview": "{\n \"1605614aafa5d2f36701204327fd1e20f80e18d79ceab69bdf7e49c149cec972\": {\n \"original\": \"You can also enforce a "
},
{
"path": ".translation-cache/Searching/Pagination.md.json",
"chars": 76739,
"preview": "{\n \"bddce38f65c9435e7de05d5bf398eaa66cdfb438baa539da8c74231dffc375d4\": {\n \"original\": \"# Pagination of search "
},
{
"path": ".translation-cache/Searching/Percolate_query.md.json",
"chars": 267152,
"preview": "{\n \"6341d990473a73a50895c5a12e23da471b4a339ee8d5efb9615c45e5b14f43e1\": {\n \"original\": \"CODE_BLOCK_23\\n<!-- int"
},
{
"path": ".translation-cache/Searching/Query_cache.md.json",
"chars": 26962,
"preview": "{\n \"7b9c73363ea4807a652bbda1b51c2770d0976c1a7ef9336c81f84667b4665803\": {\n \"original\": \"# Query cache\\n\\nQuery "
},
{
"path": ".translation-cache/Searching/Search_results.md.json",
"chars": 42311,
"preview": "{\n \"d8bf7549ea62aa14ea417020b48bc9710d75f21991db8b84e8a8a8bd500c48ae\": {\n \"original\": \"# Search results\\n\\n## "
},
{
"path": ".translation-cache/Searching/Sorting_and_ranking.md.json",
"chars": 287682,
"preview": "{\n \"8bedbcbb905cda6be68b0e4cd11f2cad3f511e610165f4192a4ed3745024e10f\": {\n \"original\": \"Ranking (also known as "
},
{
"path": ".translation-cache/Searching/Spell_correction.md.json",
"chars": 226647,
"preview": "{\n \"c2c82bd97fd0ade0adc84bffd0c24e479e130fbd55c1c760a9379bdb6215bdda\": {\n \"original\": \"* <a href=\\\"https://git"
},
{
"path": ".translation-cache/Searching/Sub-selects.md.json",
"chars": 14473,
"preview": "{\n \"d1f0a8bedc0db44ab6a61e3ca31f30c1e22872100783bbf19f4606ec5bcdf6c0\": {\n \"original\": \"# Sub-selects\\n\\nMantic"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Backup_and_restore.md.json",
"chars": 217879,
"preview": "{\n \"9bee27530968dd923432631728a138dd2f9653dc35f3f5bb3d3bec5bedb81da4\": {\n \"original\": \"To start a restore job,"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Compacting_a_table.md.json",
"chars": 66224,
"preview": "{\n \"4ddb6ab23dc922ad2dea2927cd0618fcfe4df2f13d8052ef0790404fa164bd94\": {\n \"original\": \"# Compacting a Table\\n\\"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Flushing_RAM_chunk_to_a_new_disk_chunk.md.json",
"chars": 5005,
"preview": "{\n \"ffa60196fb7f4a1d3020e12c9a40dc295b0ceef5e0eccf21fb52d4b5be2e9b58\": {\n \"original\": \"# Flushing RAM chunk to"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Flushing_RAM_chunk_to_disk.md.json",
"chars": 5150,
"preview": "{\n \"609140d558fcd3daa50b1e4b21eca06feb23dace5377615a07d8159702362ff0\": {\n \"original\": \"# Flushing RAM chunk to"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Flushing_attributes.md.json",
"chars": 3426,
"preview": "{\n \"8efd3ce1cddc11fe783219b17da2d9376ddbdc096091fc02f59325ab3c2c2d92\": {\n \"original\": \"# FLUSH ATTRIBUTES\\n\\nC"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Flushing_hostnames.md.json",
"chars": 2757,
"preview": "{\n \"9edc16d44ede32bd55892b8df4ee45b863c13923d420b7c166ba38a7635b58cc\": {\n \"original\": \"# FLUSH HOSTNAMES\\n\\nCO"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Freezing_and_locking_a_table.md.json",
"chars": 67671,
"preview": "{\n \"bdc89c6d2aed520485bf22b014bf74f987c3f6686081f635705988262c4f06dc\": {\n \"original\": \"When a session requests"
},
{
"path": ".translation-cache/Securing_and_compacting_a_table/Isolation_during_flushing_and_merging.md.json",
"chars": 12255,
"preview": "{\n \"9887e2bb59bf2f0c45586a2e2938b249467c7e8cf0c863d12767b774a187508a\": {\n \"original\": \"# Isolation during flus"
}
]
// ... and 3031 more files (download for full content)
About this extraction
This page contains the full source code of the manticoresoftware/manticoresearch GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3231 files (46.3 MB), approximately 12.3M tokens, and a symbol index with 10991 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.