A query and indexing engine for Redis, providing secondary indexing, full-text search, vector similarity search and aggregations.
This report presents the forensic synthetic code analysis of RediSearch/RediSearch, a Rust project with 6,172 GitHub stars. SynthScan v2.0 examined 503,589 lines of code across 1887 source files, recording 3607 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 10.1 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3607 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 41 | COMMENT | |
| LOW | build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | build.sh | 481 | # This can cause issues on older Linux distributions: if we're not careful, | COMMENT |
| LOW | .install/apt_get_cmd.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .install/install_llvm.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .install/install_llvm.sh | 61 | # Fresh-shell usability for the tarball install: export_path_gha only covers | COMMENT |
| LOW | .install/install_rust.sh | 61 | # exact version is already present, since it's a fixed version, not a channel). | COMMENT |
| LOW | .install/alpine_linux_3.sh | 21 | # source, since it only started providing wheels for musl | COMMENT |
| LOW | .install/test_deps/install_rust_deps.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .install/test_deps/install_rust_deps.sh | 41 | # issues on older systems). Empty on other platforms. | COMMENT |
| LOW | .install/test_deps/install_rust_deps.sh | 81 | # it guards against falling back to a (glibc-linked) host prebuilt | COMMENT |
| LOW | .install/test_deps/install_rust_deps.sh | 101 | # thus improving the cacheability of our builds | COMMENT |
| LOW | .install/test_deps/install_python_deps.sh | 21 | # In container: HOME=/root (fixed by workflow step 117-132) | COMMENT |
| LOW | srcutil/lemon.c | 1 | /* | COMMENT |
| LOW | srcutil/lemon.c | 21 | #define ISLOWER(X) islower((unsigned char)(X)) | COMMENT |
| LOW | tests/ctests/test_trie.c | 41 | // void *stepFilter(char b, void *ctx, void *stackCtx) { | COMMENT |
| LOW | tests/ctests/test_trie.c | 641 | COMMENT | |
| LOW | tests/ctests/ext-example/example.h | 21 | #endif | COMMENT |
| LOW | tests/ctests/coord_tests/minunit.h | 41 | #elif defined(__unix__) || defined(__unix) || defined(unix) || \ | COMMENT |
| LOW | tests/ctests/coord_tests/minunit.h | 61 | #if defined(__MACH__) && defined(__APPLE__) | COMMENT |
| LOW | tests/benchmarks/scripts/upload_to_s3.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/cpptests/test_cpp_areq_compile.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/test_cpp_rpdepleter.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/test_cpp_parse_hybrid.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/test_cpp_parse_hybrid.cpp | 21 | #include "rmalloc.h" | COMMENT |
| LOW | tests/cpptests/test_cpp_hybrid_reader_disk.cpp | 21 | #include "util/timeout.h" | COMMENT |
| LOW | tests/cpptests/benchmark_vecsim_hybrid_queries.cpp | 21 | #include "spec.h" | COMMENT |
| LOW | tests/cpptests/test_cpp_index.cpp | 21 | #include "iterators/hybrid_reader.h" | COMMENT |
| LOW | tests/cpptests/test_cpp_index.cpp | 341 | size_t bytes_per_entry = 0; | COMMENT |
| LOW | tests/cpptests/test_cpp_index.cpp | 361 | // 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | COMMENT |
| LOW | tests/cpptests/test_cpp_doc_id_meta.cpp | 561 | // Unlink callback tests | COMMENT |
| LOW | tests/cpptests/test_cpp_forkgc.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/test_cpp_parsed_hybrid_pipeline.cpp | 1 | COMMENT | |
| LOW | tests/cpptests/test_cpp_json_vec.cpp | 101 | // I8 U8 I16 U16 I32 U32 I64 U64 F16 BF16 F32 F64 | COMMENT |
| LOW | tests/cpptests/test_cpp_rdb.cpp | 681 | // | COMMENT |
| LOW | tests/cpptests/test_cpp_query.cpp | 41 | // if (err) { | COMMENT |
| LOW | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/llapi_test_helpers.cpp | 21 | #include "rmutil/rm_assert.h" | COMMENT |
| LOW | tests/cpptests/redismock/redismock.cpp | 21 | #include <cstdarg> | COMMENT |
| LOW | tests/cpptests/scripts/decode_stacktrace.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …/cpptests/coord_tests/test_cpp_hybrid_build_mr_cmd.cpp | 1 | #include "gtest/gtest.h" | COMMENT |
| LOW | tests/cpptests/coord_tests/test_cpp_io_runtime_ctx.cpp | 1 | /* | COMMENT |
| LOW | tests/cpptests/coord_tests/test_cpp_io_runtime_ctx.cpp | 561 | COMMENT | |
| LOW | …s/cpptests/coord_tests/test_cpp_distribute_collect.cpp | 1 | /* | COMMENT |
| LOW | …s/cpptests/coord_tests/test_cpp_distribute_collect.cpp | 21 | // - All other tokens (FIELDS, SORTBY, `FIELDS *`) are forwarded verbatim | COMMENT |
| LOW | tests/pytests/test_expire.py | 181 | # The documents data exists in the index. | COMMENT |
| LOW | tests/pytests/test_expire.py | 781 | # field-expiration predicate (DocTable_CheckFieldExpirationPredicate), | COMMENT |
| LOW | tests/pytests/test_expire.py | 821 | # indexes coexist but only some are affected by an HPEXPIRE notification. | COMMENT |
| LOW | tests/pytests/test_expire.py | 961 | conn = getConnectionByEnv(env) | COMMENT |
| LOW | tests/pytests/test_expire.py | 981 | # - world reader starts with doc:1 | COMMENT |
| LOW | tests/pytests/test_multibyte_char_terms.py | 1641 | env.assertEqual(res, expected_2, message=f'Dialect: {dialect}') | COMMENT |
| LOW | tests/pytests/test_optimizer.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tests/pytests/test_vecsim.py | 881 | env.assertLessEqual(redisearch_memory, redis_memory) | COMMENT |
| LOW | tests/pytests/test_blocked_client_timeout.py | 3941 | before_info = info_modules_to_dict(env) | COMMENT |
| LOW | tests/pytests/test_blocked_client_timeout.py | 4001 | # Suspend the chosen shard now: its Phase 1 reply has | COMMENT |
| LOW | tests/pytests/test_blocked_client_timeout.py | 4421 | # `call_and_store`) so the error reply is asserted in-thread: | COMMENT |
| LOW | tests/pytests/test_timeout.py | 21 | # Before the bug fix, the first doc caused timeout and returned as an empty valid result. Since we reset the timeout | COMMENT |
| LOW | tests/pytests/test_hybrid_profile.py | 221 | # - query, | COMMENT |
| LOW | tests/pytests/test_error_stats.py | 41 | message="SEARCH_ARG_UNRECOGNIZED should appear in errorstats") | COMMENT |
| LOW | tests/pytests/test_cursors.py | 161 | while getCursorStats(env, 'idx1')['index_total']: | COMMENT |
| 1388 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CMakeLists.txt | 119 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 146 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 165 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 319 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 336 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 351 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 369 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 414 | #---------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 5 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 10 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 16 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 18 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 316 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 319 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 329 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 332 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 794 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 797 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 1097 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 1100 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 1116 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | build.sh | 1119 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 62 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 66 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 175 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 178 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 196 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 199 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 369 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 372 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 730 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 733 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 770 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 773 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 841 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 844 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 900 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 903 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 965 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 968 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 1006 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 1009 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 1156 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | build.sh | 1158 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .install/install_llvm.sh | 6 | # ============================================================================= | COMMENT |
| MEDIUM | .install/install_llvm.sh | 20 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .install/install_llvm.sh | 137 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .install/install_llvm.sh | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .install/install_llvm.sh | 147 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .install/install_llvm.sh | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .install/verify_build_deps.sh | 26 | # ============================================ | COMMENT |
| MEDIUM⚡ | .install/verify_build_deps.sh | 28 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 60 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 62 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 113 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 115 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 182 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 184 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 227 | # ============================================ | COMMENT |
| MEDIUM | .install/verify_build_deps.sh | 229 | # ============================================ | COMMENT |
| 244 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | srcutil/gen_command_info.py | 154 | def generate_redis_module_command_info(name, cmd_info, file): | CODE |
| LOW | srcutil/gen_command_info.py | 181 | def generate_command_info_definition(name, info, file): | CODE |
| LOW⚡ | sbin/profile_compare.py | 2151 | def calculate_missing_iterator_size(self, iterator_node): | CODE |
| LOW⚡ | sbin/profile_compare.py | 2396 | def _process_child_iterator_data(self, child_data, parent_node, idx): | CODE |
| LOW | sbin/profile_compare.py | 58 | def detect_redisearch_version(self) -> Optional[str]: | CODE |
| LOW | sbin/profile_compare.py | 83 | def check_slowlog_after_query(self, baseline_length: int) -> None: | CODE |
| LOW | sbin/profile_compare.py | 674 | def create_comparison_html_content(self, parsed_data1, parsed_data2, | CODE |
| LOW | sbin/profile_compare.py | 1041 | def create_comparison_html_content(self, parsed_data1, parsed_data2, | CODE |
| LOW | sbin/profile_compare.py | 2270 | def build_iterator_tree_from_list(self, iterator_list): | CODE |
| LOW | sbin/profile_compare.py | 2520 | def extract_term_from_details(self, details): | CODE |
| LOW | sbin/profile_compare.py | 2532 | def extract_time_from_details(self, details): | CODE |
| LOW | sbin/profile_compare.py | 2552 | def extract_counter_from_details(self, details): | CODE |
| LOW | sbin/profile_compare.py | 2566 | def extract_skip_counter_from_details(self, details): | CODE |
| LOW | sbin/profile_compare.py | 2586 | def extract_size_from_details(self, details): | CODE |
| LOW | sbin/profile_compare.py | 2610 | def generate_leaf_comparison_table(self, graph1_data, graph2_data, index1, index2): | CODE |
| LOW | sbin/profile_compare.py | 2831 | def generate_comparison_flow_diagram(self, parsed_data1, parsed_data2, index1: str, index2: str): | CODE |
| LOW | sbin/profile_compare.py | 2916 | def generate_iterator_subtree(self, iterator_data, tree_class, x_pos, y_pos): | CODE |
| LOW | sbin/profile_compare.py | 2967 | def generate_processor_subtree(self, processors, tree_class, x_pos, y_pos): | CODE |
| LOW | sbin/profile_compare.py | 3043 | def calculate_performance_diff(self, value1, value2, lower_is_better=True): | CODE |
| LOW | sbin/profile_compare.py | 3152 | def generate_comparison_table(self, metrics1, metrics2, index1, index2, result_count1, result_count2): | CODE |
| LOW | sbin/numeric_tree/visualize_numeric_tree.py | 189 | def create_interactive_plotly_tree(G, output_file='interactive_tree.html', spacing_factor=2.0): | CODE |
| LOW | sbin/numeric_tree/generate_numeric_trees.py | 75 | def generate_insertion_sequence(self, config: IndexConfig) -> List[Tuple[int, float, float]]: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 158 | def _generate_multi_field_query(self, range_size: float, use_infinity: bool, | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 171 | def _execute_queries_on_indexes(self, indexes: List[str], queries: List[str], | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 198 | def test_single_range_queries(self, indexes: List[str], iterations: int, range_size: float, | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 231 | def test_intersection_queries(self, indexes: List[str], iterations: int, range_size: float, | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 251 | def organize_results_by_index(self, results: List[QueryResult]) -> Dict[str, List[QueryResult]]: | CODE |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 204 | def generate_setup_commands_from_shards( | CODE |
| LOW | tests/pytests/test_parser.py | 809 | def test_invalid_query_attributes(env): | STRING |
| LOW⚡ | tests/pytests/test_command_info.py | 326 | def test_command_info_availability(): | CODE |
| LOW | tests/pytests/test_command_info.py | 18 | def _load_command_expectations(): | CODE |
| LOW | tests/pytests/test_command_info.py | 55 | def _convert_flags_to_boolean_fields(flags_list): | CODE |
| LOW | tests/pytests/test_command_info.py | 74 | def _normalize_single_argument(arg): | CODE |
| LOW | tests/pytests/test_command_info.py | 104 | def _normalize_arguments_structure(args): | CODE |
| LOW | tests/pytests/test_command_info.py | 141 | def _is_function_to_block_transformation(actual, expected): | CODE |
| LOW | tests/pytests/test_command_info.py | 161 | def _should_skip_field_in_comparison(key, actual, is_function_to_block): | CODE |
| LOW | tests/pytests/test_command_info.py | 397 | def test_command_info_tips_field(): | CODE |
| LOW | tests/pytests/test_command_info.py | 454 | def test_command_info_cacheability_tips_policy(): | CODE |
| LOW | tests/pytests/test_command_info.py | 512 | def test_specific_command_docs_structure(): | CODE |
| LOW | tests/pytests/test_expire.py | 72 | def test_doc_expiration_preserves_field_expiration(env: Env): | CODE |
| LOW | tests/pytests/test_expire.py | 423 | def transform_document_list_to_dict(document_list): | CODE |
| LOW | tests/pytests/test_expire.py | 470 | def build_inverted_index_dict_for_documents(current_documents): | CODE |
| LOW | tests/pytests/test_expire.py | 622 | def _setup_non_matching_indexes(env): | CODE |
| LOW | tests/pytests/test_expire.py | 673 | def _assert_non_matching_indexes_unchanged(env): | CODE |
| LOW | tests/pytests/test_expire.py | 691 | def _run_key_expiration_with_non_matching_indexes(env, expire_cmd, ttl_arg, sleep_secs): | CODE |
| LOW | tests/pytests/test_expire.py | 997 | def test_background_index_no_lazy_expiration(env): | CODE |
| LOW | tests/pytests/test_expire.py | 1019 | def test_background_index_no_lazy_expiration_json(env): | CODE |
| LOW | tests/pytests/test_expire.py | 1040 | def test_ttl_table_collision_chain(): | CODE |
| LOW | tests/pytests/test_expire.py | 1071 | def test_wide_schema_field_expiration(env): | CODE |
| LOW | tests/pytests/test_expire.py | 1134 | def test_expire_past_timestamp_removes_doc(env): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 30 | def _common_cluster_test_scenario(env): | CODE |
| LOW | tests/pytests/test_query_oom.py | 77 | def test_oom_verbosity_standalone(env): | CODE |
| LOW | tests/pytests/test_query_oom.py | 100 | def test_oom_verbosity_cluster_hybrid_profile(env): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 135 | def test_query_oom_coord_fail(self): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 142 | def test_query_oom_shards_fail(self): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 150 | def test_query_oom_shards_return(self): | CODE |
| LOW | tests/pytests/test_query_oom.py | 168 | def test_query_oom_cluster_shards_error_first_reply(env): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 231 | def _common_hybrid_test_scenario(env): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 243 | def _common_hybrid_cluster_test_scenario(env): | CODE |
| LOW⚡ | tests/pytests/test_query_oom.py | 309 | def test_hybrid_oom_coord_fail(self): | CODE |
| 838 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .install/test_deps/install_python_deps.sh | 54 | # Create a virtual environment for Python tests, with `pip` pre-installed (--seed). | COMMENT |
| MEDIUM | sbin/profile_compare.py | 2080 | # Create main iterator node with type for coloring | COMMENT |
| MEDIUM | sbin/numeric_tree/visualize_numeric_tree.py | 274 | # Create the plot | COMMENT |
| MEDIUM | tests/pytests/test_expire.py | 354 | # Create a unique vector for each document | COMMENT |
| MEDIUM⚡ | tests/pytests/test_query_oom.py | 23 | # Create an index | COMMENT |
| MEDIUM⚡ | tests/pytests/test_query_oom.py | 32 | # Create an index | COMMENT |
| MEDIUM⚡ | tests/pytests/test_query_oom.py | 233 | # Create an index with text and vector fields | COMMENT |
| MEDIUM⚡ | tests/pytests/test_query_oom.py | 246 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_vecsim.py | 2565 | # Create an index and insert vectors synchronously. | COMMENT |
| MEDIUM⚡ | tests/pytests/test_debug_commands.py | 1137 | # Create an index | COMMENT |
| MEDIUM⚡ | tests/pytests/test_debug_commands.py | 1163 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 491 | # Create a baseline index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 511 | # Create a new index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 520 | # Create a new index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 533 | # Create a baseline index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 583 | # Create a baseline index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 663 | # Create an index and expect OOM pause | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 1686 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_debug_commands.py | 1723 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 338 | # Create an index with prefix filter | COMMENT |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 341 | # Create an index with vector field for FT.HYBRID tests (different prefix) | COMMENT |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 5295 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 5707 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 5710 | # Create an index with vector field for FT.HYBRID tests (different prefix) | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 403 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 828 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 894 | # Create an index | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 946 | # Create an index with a TEXT field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1001 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1033 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1065 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1097 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1130 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1163 | # Create an index with a text field | COMMENT |
| MEDIUM | tests/pytests/test_scorers.py | 1189 | # Create an index with a text field | COMMENT |
| MEDIUM⚡ | tests/pytests/test_groupby_collect_limits.py | 66 | # Create a single doc with all fields set. | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 43 | # Create an index with a TAG, TEXT and a NUMERIC field, which don't index | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 73 | # Create an index with TAG and TEXT fields that index empty fields. | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 93 | # Create an index with TAG and TEXT fields that index missing values, i.e., | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 367 | # Create an index with multiple fields types that index missing values, i.e., | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 431 | # Create an index with multiple fields types that index missing values, i.e., | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 505 | # Create an index with a TEXT field that indexes missing values | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 524 | # Create an index with a field that indexes missing values | COMMENT |
| MEDIUM | tests/pytests/test_missing.py | 638 | # Create an index with a TAG field that indexes missing values. | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 196 | # Create an index with a filter that checks field value | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 230 | # Create an index with a filter | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 444 | # Create a document BEFORE the index exists | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 447 | # Create an index with a filter that references fields d1 and d2 | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 459 | # Create a document AFTER the index exists with only d2 field | COMMENT |
| MEDIUM | tests/pytests/test_filter.py | 467 | # Create a document that actually matches the filter | COMMENT |
| MEDIUM | tests/pytests/test_json_error_handling.py | 13 | # Create an index with a GEOSHAPE field | COMMENT |
| MEDIUM | tests/pytests/test_json_error_handling.py | 49 | # Create an index with a NUMERIC field | COMMENT |
| MEDIUM | tests/pytests/test_timeout.py | 13 | # Create the index | COMMENT |
| MEDIUM | tests/pytests/test_timeout.py | 37 | # Create the index | COMMENT |
| MEDIUM | tests/pytests/test_async.py | 46 | # Create an index in which each shard has > 1000 docs. | COMMENT |
| MEDIUM | tests/pytests/test_rdb_load.py | 22 | # Create a clean Redis environment | COMMENT |
| MEDIUM | tests/pytests/test_rdb_load.py | 62 | # Create a new connection in this process | COMMENT |
| MEDIUM | tests/pytests/test_existing.py | 10 | # Create an index with a bad option for the 'existing' keyword | COMMENT |
| MEDIUM | tests/pytests/test_existing.py | 152 | # Create an index with INDEXALL so wildcard queries use existingDocs. | COMMENT |
| MEDIUM | tests/pytests/test_coordinator.py | 190 | # Create an index on all shards | COMMENT |
| 122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | sbin/profile_compare.py | 1566 | .attr('x', d => d.children || d._children ? -13 : 13) | CODE |
| HIGH⚡ | sbin/profile_compare.py | 1567 | .style('text-anchor', d => d.children || d._children ? 'end' : 'start') | CODE |
| HIGH⚡ | sbin/profile_compare.py | 1574 | .text(d => d.data.details || d.data.name); | CODE |
| HIGH | sbin/profile_compare.py | 606 | if (toggle.nextElementSibling && toggle.nextElementSibling.querySelector('.tree-children')) {{ | CODE |
| HIGH | sbin/profile_compare.py | 618 | if (toggle.nextElementSibling && toggle.nextElementSibling.querySelector('.tree-children')) {{ | CODE |
| HIGH | sbin/profile_compare.py | 988 | if (toggle.nextElementSibling && toggle.nextElementSibling.querySelector('.tree-children')) {{ | CODE |
| HIGH | sbin/profile_compare.py | 1003 | if (toggle.nextElementSibling && toggle.nextElementSibling.querySelector('.tree-children')) {{ | CODE |
| HIGH | sbin/profile_compare.py | 1522 | d.children = null; | CODE |
| HIGH | sbin/profile_compare.py | 1539 | .attr('transform', d => `translate(${{source.y0 || 0}},${{source.x0 || 0}})`) | CODE |
| HIGH | sbin/profile_compare.py | 1618 | const o = {{x: source.x0 || 0, y: source.y0 || 0}}; | CODE |
| HIGH | sbin/profile_compare.py | 1646 | d.children = null; | CODE |
| HIGH | sbin/profile_compare.py | 1649 | d._children = null; | CODE |
| HIGH | sbin/profile_compare.py | 1675 | d._children = null; | CODE |
| HIGH | sbin/profile_compare.py | 1686 | if (d.children && d.depth > 0) {{ | CODE |
| HIGH | sbin/profile_compare.py | 1688 | d.children = null; | CODE |
| HIGH | sbin/profile_compare.py | 1726 | if (nodeData && nodeData.details) {{ | CODE |
| HIGH | sbin/profile_compare.py | 1753 | const shouldHide = nodeTime > 0 && nodeTime <= threshold; | CODE |
| HIGH | sbin/numeric_tree/benchmark_numeric_tree.py | 513 | Fish: bash -c 'source /opt/intel/oneapi/vtune/latest/env/vars.sh && exec fish' | CODE |
| HIGH | sbin/numeric_tree/benchmark_numeric_tree.py | 603 | print(" Fish: bash -c 'source /opt/intel/oneapi/vtune/latest/env/vars.sh && exec fish'") | CODE |
| HIGH | tests/pytests/test_json_multi_tag.py | 162 | test multiple TAG values which include some non-text values at root level (null, number, bool, array, object) | STRING |
| HIGH | tests/pytests/test_json_multi_tag.py | 172 | # JSON.SET doc:1: $ '["first", "second", null, "third", null, "null", null]' | COMMENT |
| HIGH | tests/pytests/test_json_multi_tag.py | 191 | test multiple TAG values which include some non-text values at inner level (null, number, bool, array, object) | STRING |
| HIGH | tests/pytests/test_filter.py | 620 | # Document should NOT be indexed because 'hello' > 100 should fail/return false | COMMENT |
| HIGH | tests/pytests/test_json_multi_text.py | 236 | test multiple TEXT values which include some non-text values at root level (null, number, bool, array, object) | STRING |
| HIGH | tests/pytests/test_json_multi_text.py | 246 | # JSON.SET doc:1: $ '["first", "second", null, "third", null, "null", null]' | COMMENT |
| HIGH | tests/pytests/test_json_multi_text.py | 265 | test multiple TEXT values which include some non-text values at inner level (null, number, bool, array, object) | STRING |
| HIGH | tests/pytests/test_resp3.py | 963 | {'id': 'doc2', 'extra_attributes': {'$.arr[?(@>2)]': '[3,4]', 'str': '["bar"]', 'multi': '[3,4,null,40,50,66.66]', | CODE |
| HIGH | tests/pytests/test_resp3.py | 974 | {'id': 'doc2', 'extra_attributes': {'$.arr[?(@>2)]': '3', 'str': 'bar', 'multi': '3', "arr": '[3,4,null]'}, 'value | CODE |
| HIGH | tests/pytests/test.py | 3289 | env.expect('ft.aggregate', 'idx', 'foo', 'LOAD', '1', '@test', 'APPLY', 'upper(1)', 'as', 'b', 'APPLY', 'format("%s" | STRING |
| HIGH | tests/pytests/test_case.py | 416 | # Using case to check if the value is null, NULL is treated as false | COMMENT |
| HIGH⚡ | tests/pytests/test_info_modules.py | 2546 | env.expect('JSON.SET', 'doc:1', '$', '{"tag1":null,"tag2":null,"num":null,"geo":null,"vec":null}').ok() | CODE |
| HIGH⚡ | tests/pytests/test_info_modules.py | 2554 | env.expect('JSON.SET', 'doc:2', '$', '{"tag1":null,"tag2":"mytag"}').ok() | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 82 | "attr1": [2, -7, null, 131.42, null , 0, null], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 84 | "attr3": [null, null], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 86 | "attr5": null, | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 87 | "attr6": [1, 2, null, 131.42, null, "yikes" ], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 88 | "attr7": [1, 2, null, 131.42, null, false ], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 89 | "attr8": [1, 2, null, 131.42, null, {"obj": "etc"} ], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 90 | "attr9": [1, 2, null, 131.42, null, ["no", "none"] ], | CODE |
| HIGH⚡ | tests/pytests/test_json_multi_numeric.py | 91 | "attr10": [1, 2, null, 131.42, null, [7007] ] | CODE |
| HIGH | tests/pytests/test_json_multi_numeric.py | 139 | test multiple NUMERIC values which include some non-numeric values at root level (null, text, bool, array, object) | STRING |
| HIGH | tests/pytests/test_json_multi_numeric.py | 149 | # JSON.SET doc:1: $ '[2, -7, null, 131.42, null , 0, null]' | STRING |
| HIGH | tests/pytests/test_json_multi_numeric.py | 168 | test multiple NUMERIC values which include some non-numeric values at inner level (null, text, bool, array, object) | STRING |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 113 | "attr1": ["first", "second", null, "third", null , "null", null], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 115 | "attr3": [null, null], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 117 | "attr5": null, | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 118 | "attr6": ["first", "second", null, "third", null, 2.04 ], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 119 | "attr7": ["first", "second", null, "third", null, false ], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 120 | "attr8": ["first", "second", null, "third", null, {"obj": "ection"} ], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 121 | "attr9": ["first", "second", null, "third", null, ["recursi", "on"] ], | CODE |
| HIGH⚡ | tests/pytests/json_multi_text_content.py | 122 | "attr10": ["first", "second", null, "third", null, ["recursi", 50071] ] | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 15 | "null": null, | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 21 | "obj": {"int": 1, "string": "gotcha6","c": null}, | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 22 | "complex_arr": [42, null, -1.2, false, {"nested_array":["sub", "array", "gotcha2"]}, {"nested_obj": "got | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 23 | "scalar_arr": [42, null, -1.2, false, "gotcha5"], | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 947 | expected = [5, 'doc1', ['sort', '1', '$', '{"sort":1,"num":null,"txt":"hello","tag":"world","geo":"1.23,4.56","vec": | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 948 | 'doc2', ['sort', '2', '$', '{"sort":2,"num":0.8,"txt":null,"tag":"world","geo":"1.23,4.56","vec":[0, | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 949 | 'doc3', ['sort', '3', '$', '{"sort":3,"num":0.8,"txt":"hello","tag":null,"geo":"1.23,4.56","vec":[0, | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 950 | 'doc4', ['sort', '4', '$', '{"sort":4,"num":0.8,"txt":"hello","tag":"world","geo":null,"vec":[0,1]}' | CODE |
| HIGH⚡ | tests/pytests/test_json.py | 951 | 'doc5', ['sort', '5', '$', '{"sort":5,"num":0.8,"txt":"hello","tag":"world","geo":"1.23,4.56","vec": | CODE |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sbin/code_style.py | 6 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 33 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 34 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 35 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 40 | CODE | |
| LOW | tests/pytests/test_parser.py | 1 | CODE | |
| LOW | tests/pytests/test_parser.py | 2 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 1 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 2 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 3 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 4 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 5 | CODE | |
| LOW | tests/pytests/test_conditional_updates.py | 6 | CODE | |
| LOW | tests/pytests/test_command_info.py | 1 | CODE | |
| LOW | tests/pytests/test_query_while_flush.py | 3 | CODE | |
| LOW | tests/pytests/test_expire.py | 2 | CODE | |
| LOW | tests/pytests/test_expire.py | 6 | CODE | |
| LOW | tests/pytests/test_query_oom.py | 1 | CODE | |
| LOW | tests/pytests/test_query_oom.py | 5 | CODE | |
| LOW | tests/pytests/test_multibyte_char_terms.py | 3 | CODE | |
| LOW | tests/pytests/test_multibyte_char_terms.py | 4 | CODE | |
| LOW | tests/pytests/test_optimizer.py | 4 | CODE | |
| LOW | tests/pytests/test_optimizer.py | 5 | CODE | |
| LOW | tests/pytests/test_synonyms.py | 1 | CODE | |
| LOW | tests/pytests/test_hybrid_filter.py | 3 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 6 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 7 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 10 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 11 | CODE | |
| LOW | tests/pytests/test_aggregate_params.py | 7 | CODE | |
| LOW | tests/pytests/test_aggregate_params.py | 8 | CODE | |
| LOW | tests/pytests/test_hybrid_search.py | 2 | CODE | |
| LOW | tests/pytests/test_hybrid_search.py | 3 | CODE | |
| LOW | tests/pytests/test_suggest.py | 3 | CODE | |
| LOW | tests/pytests/test_suggest.py | 4 | CODE | |
| LOW | tests/pytests/test_suggest.py | 5 | CODE | |
| LOW | tests/pytests/test_iterators.py | 1 | CODE | |
| LOW | tests/pytests/test_hybrid_response_format.py | 3 | CODE | |
| LOW | tests/pytests/test_hybrid_response_format.py | 4 | CODE | |
| LOW | tests/pytests/test_rdb_compatibility.py | 2 | CODE | |
| LOW | tests/pytests/test_rdb_compatibility.py | 3 | CODE | |
| LOW | tests/pytests/test_rdb_compatibility.py | 4 | CODE | |
| LOW | tests/pytests/test_common.py | 1 | CODE | |
| LOW | tests/pytests/test_gc.py | 2 | CODE | |
| LOW | tests/pytests/test_stats.py | 2 | CODE | |
| LOW | tests/pytests/test_stats.py | 4 | CODE | |
| LOW | tests/pytests/test_stats.py | 5 | CODE | |
| LOW | tests/pytests/test_stats.py | 6 | CODE | |
| LOW | tests/pytests/test_stats.py | 7 | CODE | |
| LOW | tests/pytests/test_debug_commands.py | 1 | CODE | |
| LOW | tests/pytests/test_json_multi_tag.py | 1 | CODE | |
| LOW | tests/pytests/test_json_multi_tag.py | 4 | CODE | |
| LOW | tests/pytests/test_geometry_sphere.py | 1 | CODE | |
| LOW | tests/pytests/test_geometry_sphere.py | 2 | CODE | |
| LOW | tests/pytests/test_aux_save2.py | 1 | CODE | |
| LOW | tests/pytests/test_aux_save2.py | 2 | CODE | |
| LOW | tests/pytests/test_blocked_client_timeout.py | 1 | CODE | |
| LOW | tests/pytests/test_tracing.py | 1 | CODE | |
| LOW | tests/pytests/test_tracing.py | 2 | CODE | |
| LOW | tests/pytests/test_scorers.py | 2 | CODE | |
| 181 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sbin/profile_compare.py | 68 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 79 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 110 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 158 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 267 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 317 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 354 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 375 | except Exception as fallback_error: | CODE |
| LOW | sbin/profile_compare.py | 397 | except Exception as e: | CODE |
| LOW | sbin/profile_compare.py | 428 | except Exception as e: | CODE |
| LOW⚡ | sbin/numeric_tree/visualize_numeric_tree.py | 422 | except Exception as e: | CODE |
| MEDIUM⚡ | sbin/numeric_tree/visualize_numeric_tree.py | 423 | print(f"Error loading tree: {e}") | CODE |
| LOW | sbin/numeric_tree/visualize_numeric_tree.py | 443 | except Exception as e: | CODE |
| MEDIUM | sbin/numeric_tree/visualize_numeric_tree.py | 445 | print(f"Error creating interactive visualization: {e}") | CODE |
| LOW | sbin/numeric_tree/parse_numeric_tree.py | 261 | except Exception as e: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 341 | except Exception as e: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 383 | except Exception as e: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 403 | except Exception as e: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 431 | except Exception as e: | CODE |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 475 | except Exception: | CODE |
| MEDIUM | sbin/numeric_tree/benchmark_numeric_tree.py | 572 | print("Error: Infinity ratio must be between 0.0 and 1.0") | CODE |
| MEDIUM | sbin/numeric_tree/benchmark_numeric_tree.py | 616 | print(f"Error: VTune index '{args.vtune}' not found in available indexes.") | CODE |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 180 | except Exception: | CODE |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 200 | except Exception: | CODE |
| LOW⚡ | tests/pytests/test_command_info.py | 332 | except Exception as e: | CODE |
| LOW | tests/pytests/test_command_info.py | 26 | except Exception as e: | CODE |
| LOW | tests/pytests/test_command_info.py | 377 | except Exception as e: | CODE |
| LOW | tests/pytests/test_command_info.py | 402 | except Exception as e: | CODE |
| LOW | tests/pytests/test_command_info.py | 440 | except Exception as e: | CODE |
| LOW | tests/pytests/test_command_info.py | 458 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_query_while_flush.py | 68 | except Exception as e: | CODE |
| LOW | tests/pytests/test_expire.py | 41 | except Exception as e: | CODE |
| LOW | tests/pytests/test_vecsim.py | 1982 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 74 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 79 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 84 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 89 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 94 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 103 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 108 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 263 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 269 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 275 | except Exception as e: | CODE |
| LOW⚡ | tests/pytests/test_suggest.py | 281 | except Exception as e: | CODE |
| LOW | tests/pytests/test_suggest.py | 362 | except Exception as e: | CODE |
| LOW | tests/pytests/test_gc.py | 444 | except Exception as e: | CODE |
| LOW | tests/pytests/test_gc.py | 484 | except Exception as e: | CODE |
| LOW | tests/pytests/test_gc.py | 490 | except Exception as e: | CODE |
| LOW | tests/pytests/test_gc.py | 517 | except Exception as e: | CODE |
| MEDIUM | tests/pytests/test_debug_commands.py | 1793 | def _run_sync_point_query(conn, result_holder, error_holder, *query): | CODE |
| LOW | tests/pytests/test_debug_commands.py | 1796 | except Exception as e: | CODE |
| LOW | tests/pytests/test_aux_save2.py | 48 | except Exception as e: | CODE |
| LOW | tests/pytests/test_aux_save2.py | 103 | except Exception as e: | CODE |
| LOW | tests/pytests/test_aux_save2.py | 210 | except Exception as e: | CODE |
| MEDIUM | tests/pytests/test_blocked_client_timeout.py | 1345 | def read_vsim_cursor(): | CODE |
| LOW⚡ | tests/pytests/test_blocked_client_timeout.py | 2378 | except Exception: | CODE |
| LOW⚡ | tests/pytests/test_blocked_client_timeout.py | 2383 | except Exception: | CODE |
| LOW⚡ | tests/pytests/test_blocked_client_timeout.py | 2837 | except Exception: | CODE |
| LOW⚡ | tests/pytests/test_blocked_client_timeout.py | 2842 | except Exception: | CODE |
| LOW⚡ | tests/pytests/test_blocked_client_timeout.py | 4069 | except Exception: | CODE |
| 106 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 100 | // Step 1: Create index spec | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 106 | // Step 2: Insert document (so iterator won't be empty) | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 113 | // Step 3: Create search context and hybrid request | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 120 | // Step 4: Parse the hybrid command | COMMENT |
| LOW | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 139 | // Step 5: Create iterator from vector request | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 315 | # Step 1: Normalize actual | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 318 | # Step 2: Strip fields from both | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 322 | # Step 3: Compare using recursive inclusion | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1137 | # Step 3: Update ALL remaining docs on shard1 to remove "shoes" from their text. | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1144 | # Step 4: Wait for trimming, then force GC to free the now-empty "shoes" inverted index | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1155 | # Step 5: Write new documents with different text to force memory reuse | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1160 | # Step 6: Read ALL results from the cursor on shard1. | COMMENT |
| LOW | tests/pytests/test_asm.py | 1103 | # Step 1: Create hybrid cursor on shard1. With WORKERS=0, the iterators | COMMENT |
| LOW | tests/pytests/test_asm.py | 1122 | # Step 2: Add a new shard and migrate a middle slot range from shard1 to new shard | COMMENT |
| LOW⚡ | deps/libnu/regen/tools/mph.py | 54 | # Step 1: Place all of the keys into buckets | COMMENT |
| LOW⚡ | deps/libnu/regen/tools/mph.py | 62 | # Step 2: Sort the buckets and process the ones with the most items first. | COMMENT |
| LOW | .skills/improve-flow-coverage/SKILL.md | 32 | ### Step 1: Get the coverage report | COMMENT |
| LOW | .skills/improve-flow-coverage/SKILL.md | 38 | ### Step 2: Triage the gaps | COMMENT |
| LOW | .skills/improve-flow-coverage/SKILL.md | 58 | ### Step 3: Replace unreachable defensive code with assertions | COMMENT |
| LOW | .skills/improve-flow-coverage/SKILL.md | 133 | ### Step 4: Write or extend tests | COMMENT |
| LOW | .skills/improve-flow-coverage/SKILL.md | 141 | ### Step 5: Verify coverage improvement | COMMENT |
| LOW | .skills/check-flow-coverage/SKILL.md | 33 | ### Step 1: Ensure a coverage build exists | COMMENT |
| LOW | .skills/check-flow-coverage/SKILL.md | 70 | ### Step 2: Run Python tests with coverage | COMMENT |
| LOW | .skills/check-flow-coverage/SKILL.md | 110 | ### Step 3: Extract uncovered lines for target files | COMMENT |
| LOW | .skills/check-flow-coverage/SKILL.md | 191 | ### Step 4: Read the uncovered lines | COMMENT |
| LOW | .skills/check-flow-coverage/SKILL.md | 200 | ### Step 5: Classify and report coverage gaps | COMMENT |
| LOW⚡ | src/result_processor.c | 364 | // Step 1: Refill IndexResult buffer if needed (cheap iterator reads) | COMMENT |
| LOW⚡ | src/result_processor.c | 373 | // Step 2: Try to serve a ready result if we have one | COMMENT |
| LOW⚡ | src/result_processor.c | 390 | // Step 3: No ready results - poll for more | COMMENT |
| LOW⚡ | src/result_processor.c | 394 | // Step 4: Check if we're completely done | COMMENT |
| LOW | src/coord/dist_plan.cpp | 517 | // Step 1: parse the filter expression and extract the required keys | COMMENT |
| LOW | src/coord/dist_plan.cpp | 531 | // Step 2: generate a LOAD step for the keys. If the keys are already loaded (or sortable), | COMMENT |
| LOW | src/coord/dist_plan.cpp | 553 | // Step 3: cleanup | COMMENT |
| LOW⚡ | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 369 | // Step 1: Build FFI function dictionary from bindings.rs. | COMMENT |
| LOW⚡ | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 373 | // Step 2: Enumerate crates to scan. | COMMENT |
| LOW | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 416 | // Step 3: Parse and scan source files. | COMMENT |
| LOW | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 434 | // Step 4: Generate report. | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 21 | // Step 1: Write 4 bytes | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 42 | // Step 2: Do a vectored write of 6 bytes total (two 3-byte slices) after end of capacity | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 74 | // Step 3: Verify the contents | COMMENT |
| LOW | …_rs/rqe_iterators_bencher/src/benchers/intersection.rs | 126 | /// NOTE: This function exists because intersection logic when using `max_slop` and `in_order` | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 241 | // Step 1: Revalidate wcii. If it aborts or is at EOF, we can return immediately. | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 258 | // Step 2: Revalidate child. If it aborts, replace with an empty iterator. | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 269 | // Step 3: Determine the outcome based on wcii's and child's status. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | build.sh | 804 | # Check if we're already in the build directory | COMMENT |
| LOW⚡ | build.sh | 1126 | # Check if micro-benchmarks directory exists | COMMENT |
| LOW | build.sh | 818 | # Check if extension was already built by a previous run | COMMENT |
| LOW⚡ | .install/verify_build_deps.sh | 30 | # Check if the OS is macOS (Darwin) | COMMENT |
| LOW | .install/macos_update_profile.sh | 12 | # Check if the profile exists | COMMENT |
| LOW⚡ | sbin/profile_compare.py | 2157 | # Check if this node needs Size calculation | COMMENT |
| LOW⚡ | sbin/profile_compare.py | 2162 | # Check if Size is already present and valid | COMMENT |
| LOW⚡ | sbin/profile_compare.py | 2402 | # Check if this is a list of iterator lists | COMMENT |
| LOW⚡ | sbin/profile_compare.py | 2410 | # Check if this is a direct iterator (starts with 'Type') | COMMENT |
| LOW⚡ | sbin/profile_compare.py | 2420 | # Check if this contains mixed data (key-value pairs + nested lists) | COMMENT |
| LOW | sbin/profile_compare.py | 301 | # Display result processors if available | COMMENT |
| LOW | sbin/profile_compare.py | 1892 | # Check if this is a sharded/distributed setup | COMMENT |
| LOW | sbin/profile_compare.py | 2295 | # Check if next item is a simple value (not a list/dict) | COMMENT |
| LOW | sbin/profile_compare.py | 2318 | # Check if this list contains iterator data (starts with 'Type' or contains nested lists) | COMMENT |
| LOW | sbin/numeric_tree/visualize_numeric_tree.py | 80 | # Check if this is a leaf node with document values | COMMENT |
| LOW⚡ | sbin/numeric_tree/visualize_numeric_tree.py | 426 | # Check if user wants info only | COMMENT |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 452 | # Check if vtune binary exists | COMMENT |
| LOW | tests/cpptests/scripts/decode_stacktrace.sh | 46 | # Check if gdb found useful info | COMMENT |
| LOW | tests/deps/setup_rejson.sh | 35 | # Check if REJSON_PATH is set externally | COMMENT |
| LOW | tests/pytests/test_command_info.py | 432 | # Check if tips field exists and matches | COMMENT |
| LOW⚡ | tests/pytests/test_query_while_flush.py | 62 | # Check if flush has completed | COMMENT |
| LOW⚡ | tests/pytests/test_query_while_flush.py | 69 | # Check if flush has completed | COMMENT |
| LOW | tests/pytests/test_gc.py | 568 | # Set FORK_GC_CLEAN_THRESHOLD to 0 via module args since FT.CONFIG SET | COMMENT |
| LOW⚡ | tests/pytests/test_debug_commands.py | 1140 | # Check if the scan is finished | COMMENT |
| LOW | tests/pytests/test_debug_commands.py | 1211 | # Set workers to 2 to make sure the query can be paused | COMMENT |
| LOW | tests/pytests/test_debug_commands.py | 1271 | # Set workers to 1 to make sure the query can be paused | COMMENT |
| LOW | tests/pytests/test_debug_commands.py | 1352 | # Set workers to 1 on all shards to make sure queries can be paused | COMMENT |
| LOW | tests/pytests/test_highlight.py | 16 | # Check if there are any broken highlights (e.g., "<b>d</b>" instead of full word) | COMMENT |
| LOW | tests/pytests/test_early_bailout.py | 15 | # Check if key contains any phrase (case-insensitive) | COMMENT |
| LOW | tests/pytests/test_info_modules.py | 1304 | # Set maxmemory to 1 to trigger OOM | COMMENT |
| LOW | tests/pytests/test_info_modules.py | 1345 | # Set policy to return | COMMENT |
| LOW | tests/pytests/test_info_modules.py | 1394 | # Set maxmemory to 1 to trigger OOM | COMMENT |
| LOW | tests/pytests/test_info_modules.py | 1442 | # Set policy to return | COMMENT |
| LOW | tests/pytests/test_issues.py | 1082 | # Set topology to an invalid one (assuming port 9 is not open) | COMMENT |
| LOW | tests/pytests/test_issues.py | 1921 | # Set topology to an invalid one (assuming port 9 is not open) | COMMENT |
| LOW | tests/pytests/common.py | 1346 | # Check if equals 1 for RESP3 support | COMMENT |
| LOW | tests/pytests/common.py | 1406 | # Check if equals 1 for RESP3 support | COMMENT |
| LOW | tests/pytests/test_asm.py | 432 | # Check if this is a timeout exception from TimeLimit | COMMENT |
| LOW⚡ | tests/pytests/test_index_oom.py | 957 | # Set maxmemory to be equal to used memory | COMMENT |
| LOW | tests/pytests/test_index_oom.py | 219 | # Set delta to 100 | COMMENT |
| LOW | tests/pytests/test_multithread.py | 527 | # Set it to 0 | COMMENT |
| LOW | tests/pytests/utils/hybrid.py | 234 | # Check if they match | COMMENT |
| LOW | scripts/collect_nightly_results.py | 378 | # Check if this line matches an exit status pattern | COMMENT |
| LOW | scripts/collect_nightly_results.py | 502 | # Check if we have annotations for this job | COMMENT |
| LOW | scripts/collect_nightly_results.py | 876 | # Check if file already exists | STRING |
| LOW | scripts/check_links.py | 48 | # Check if any parent directory is in the excluded set | COMMENT |
| LOW | .github/workflows/generate-matrix.yml | 153 | # Check if matrix has any jobs | COMMENT |
| LOW | .github/workflows/generate-basic-matrix.yml | 73 | # Check if matrix is empty | COMMENT |
| LOW | .github/workflows/task-release-notes-check.yml | 28 | # Check if checkboxes exist | COMMENT |
| LOW | deps/cndict/bundle_friso.py | 156 | # Write the file header | STRING |
| LOW | src/redisearch_rs/varint/src/vector_writer.rs | 99 | /// # Return value | COMMENT |
| LOW | …search_rs/c_entrypoint/varint_ffi/src/vector_writer.rs | 23 | /// # Return value | COMMENT |
| LOW | src/redisearch_rs/headers/varint_ffi.h | 70 | * # Return value | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | srcutil/gen_command_info.py | 124 | CODE | |
| LOW | srcutil/gen_command_info.py | 154 | CODE | |
| LOW | sbin/profile_compare.py | 3212 | CODE | |
| LOW | sbin/profile_compare.py | 113 | CODE | |
| LOW | sbin/profile_compare.py | 214 | CODE | |
| LOW | sbin/profile_compare.py | 247 | CODE | |
| LOW | sbin/profile_compare.py | 271 | CODE | |
| LOW | sbin/profile_compare.py | 320 | CODE | |
| LOW | sbin/profile_compare.py | 1881 | CODE | |
| LOW | sbin/profile_compare.py | 2043 | CODE | |
| LOW | sbin/profile_compare.py | 2151 | CODE | |
| LOW | sbin/profile_compare.py | 2223 | CODE | |
| LOW | sbin/profile_compare.py | 2270 | CODE | |
| LOW | sbin/profile_compare.py | 2396 | CODE | |
| LOW | sbin/profile_compare.py | 2532 | CODE | |
| LOW | sbin/profile_compare.py | 2552 | CODE | |
| LOW | sbin/profile_compare.py | 2566 | CODE | |
| LOW | sbin/profile_compare.py | 2586 | CODE | |
| LOW | sbin/profile_compare.py | 2747 | CODE | |
| LOW | sbin/profile_compare.py | 2818 | CODE | |
| LOW | sbin/profile_compare.py | 2997 | CODE | |
| LOW | sbin/numeric_tree/visualize_numeric_tree.py | 189 | CODE | |
| LOW | sbin/numeric_tree/visualize_numeric_tree.py | 342 | CODE | |
| LOW | sbin/numeric_tree/generate_numeric_trees.py | 75 | CODE | |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 345 | CODE | |
| LOW | sbin/numeric_tree/benchmark_numeric_tree.py | 387 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 161 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 184 | CODE | |
| LOW | tests/benchmarks/scripts/generate_msmarco_dataset.py | 204 | CODE | |
| LOW | …benchmarks/scripts/generate_groupby_collect_dataset.py | 195 | CODE | |
| LOW | tests/pytests/test_command_info.py | 326 | CODE | |
| LOW | tests/pytests/test_command_info.py | 397 | CODE | |
| LOW | tests/pytests/test_query_while_flush.py | 5 | CODE | |
| LOW | tests/pytests/test_query_while_flush.py | 52 | CODE | |
| LOW | tests/pytests/test_multibyte_char_terms.py | 1693 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 65 | CODE | |
| LOW | tests/pytests/test_vecsim.py | 141 | CODE | |
| LOW | tests/pytests/test_hybrid_response_format.py | 69 | CODE | |
| LOW | tests/pytests/test_gc.py | 388 | CODE | |
| LOW | tests/pytests/test_gc.py | 434 | CODE | |
| LOW | tests/pytests/test_blocked_client_timeout.py | 158 | CODE | |
| LOW | tests/pytests/test_blocked_client_timeout.py | 297 | CODE | |
| LOW | tests/pytests/test_blocked_client_timeout.py | 7800 | CODE | |
| LOW | tests/pytests/test_missing.py | 125 | CODE | |
| LOW | tests/pytests/test_rof.py | 3 | CODE | |
| LOW | tests/pytests/test_hybrid_profile.py | 680 | CODE | |
| LOW | tests/pytests/test_hybrid_profile.py | 728 | CODE | |
| LOW | tests/pytests/test_profile.py | 1053 | CODE | |
| LOW | tests/pytests/test_cursors.py | 347 | CODE | |
| LOW | tests/pytests/test_highlight.py | 6 | CODE | |
| LOW | tests/pytests/test_hybrid_explainscore.py | 58 | CODE | |
| LOW | tests/pytests/common.py | 57 | CODE | |
| LOW | tests/pytests/common.py | 690 | CODE | |
| LOW | tests/pytests/common.py | 905 | CODE | |
| LOW | tests/pytests/common.py | 962 | CODE | |
| LOW | tests/pytests/test_crash.py | 24 | CODE | |
| LOW | tests/pytests/test_config.py | 504 | CODE | |
| LOW | tests/pytests/test_config.py | 2010 | CODE | |
| LOW | tests/pytests/vecsim_utils.py | 94 | CODE | |
| LOW | tests/pytests/test_hybrid_vector_normalizer.py | 162 | CODE | |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 100 | // Step 1: Create index spec | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 106 | // Step 2: Insert document (so iterator won't be empty) | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 113 | // Step 3: Create search context and hybrid request | COMMENT |
| LOW⚡ | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 120 | // Step 4: Parse the hybrid command | COMMENT |
| LOW | tests/cpptests/test_cpp_parse_hybrid_iterators.cpp | 139 | // Step 5: Create iterator from vector request | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 315 | # Step 1: Normalize actual | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 318 | # Step 2: Strip fields from both | COMMENT |
| LOW⚡ | tests/pytests/test_command_info.py | 322 | # Step 3: Compare using recursive inclusion | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1137 | # Step 3: Update ALL remaining docs on shard1 to remove "shoes" from their text. | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1144 | # Step 4: Wait for trimming, then force GC to free the now-empty "shoes" inverted index | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1155 | # Step 5: Write new documents with different text to force memory reuse | COMMENT |
| LOW⚡ | tests/pytests/test_asm.py | 1160 | # Step 6: Read ALL results from the cursor on shard1. | COMMENT |
| LOW | tests/pytests/test_asm.py | 1103 | # Step 1: Create hybrid cursor on shard1. With WORKERS=0, the iterators | COMMENT |
| LOW | tests/pytests/test_asm.py | 1122 | # Step 2: Add a new shard and migrate a middle slot range from shard1 to new shard | COMMENT |
| LOW⚡ | deps/libnu/regen/tools/mph.py | 54 | # Step 1: Place all of the keys into buckets | COMMENT |
| LOW⚡ | deps/libnu/regen/tools/mph.py | 62 | # Step 2: Sort the buckets and process the ones with the most items first. | COMMENT |
| LOW | src/vector_index.c | 420 | // If quantBits is not NONE, We need to check if we are running on intel machine, and if not, we | COMMENT |
| LOW⚡ | src/result_processor.c | 364 | // Step 1: Refill IndexResult buffer if needed (cheap iterator reads) | COMMENT |
| LOW⚡ | src/result_processor.c | 373 | // Step 2: Try to serve a ready result if we have one | COMMENT |
| LOW⚡ | src/result_processor.c | 390 | // Step 3: No ready results - poll for more | COMMENT |
| LOW⚡ | src/result_processor.c | 394 | // Step 4: Check if we're completely done | COMMENT |
| LOW | src/coord/dist_plan.cpp | 517 | // Step 1: parse the filter expression and extract the required keys | COMMENT |
| LOW | src/coord/dist_plan.cpp | 531 | // Step 2: generate a LOAD step for the keys. If the keys are already loaded (or sortable), | COMMENT |
| LOW | src/coord/dist_plan.cpp | 553 | // Step 3: cleanup | COMMENT |
| LOW⚡ | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 369 | // Step 1: Build FFI function dictionary from bindings.rs. | COMMENT |
| LOW⚡ | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 373 | // Step 2: Enumerate crates to scan. | COMMENT |
| LOW | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 416 | // Step 3: Parse and scan source files. | COMMENT |
| LOW | src/redisearch_rs/tools/ffi_geiger/src/main.rs | 434 | // Step 4: Generate report. | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 21 | // Step 1: Write 4 bytes | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 42 | // Step 2: Do a vectored write of 6 bytes total (two 3-byte slices) after end of capacity | COMMENT |
| LOW | …/inverted_index/tests/integration/controlled_cursor.rs | 74 | // Step 3: Verify the contents | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 241 | // Step 1: Revalidate wcii. If it aborts or is at EOF, we can return immediately. | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 258 | // Step 2: Revalidate child. If it aborts, replace with an empty iterator. | COMMENT |
| LOW | …/redisearch_rs/rqe_iterators/src/optional_optimized.rs | 269 | // Step 3: Determine the outcome based on wcii's and child's status. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .install/test_deps/install_python_deps.sh | 45 | # harness runs `uv run python3 -m RLTest`, and `uv run` re-provisions the | COMMENT |
| MEDIUM | sbin/profile_compare.py | 326 | # Create comprehensive profile output | COMMENT |
| MEDIUM | sbin/numeric_tree/benchmark_numeric_tree.py | 275 | """Print comprehensive performance statistics in table format""" | STRING |
| MEDIUM | tests/pytests/test_shard_window_ratio.py | 83 | """Test comprehensive scenarios for shard window ratio validation.""" | STRING |
| MEDIUM | tests/pytests/test_resp3.py | 645 | # Normalize to a set for robust comparison. | COMMENT |
| MEDIUM | tests/pytests/test_hybrid_timeout.py | 486 | # trip the harness test timeout). | COMMENT |
| MEDIUM⚡ | tests/pytests/test_hybrid_explainscore.py | 309 | # while staying robust against scorer-internal value drift. The template is a | COMMENT |
| MEDIUM | tests/pytests/test_max_timeout_limit.py | 9 | # knob explicitly because the pytest harness ships it as | COMMENT |
| LOW | tests/pytests/test_config.py | 1465 | pass # Do nothing, just create the file | CODE |
| LOW | tests/pytests/test_config.py | 1501 | pass # Do nothing, just create the file | CODE |
| MEDIUM | tests/pytests/test_hybrid_mod_11610.py | 226 | # Should have 2 docs: bike:2 (light mountain) and bike:17 (robust mountain) | COMMENT |
| MEDIUM⚡ | tests/pytests/test_multithread.py | 950 | # advertised count matches the rows actually returned. This shared harness is used | COMMENT |
| MEDIUM | .github/workflows/task-get-latest-tag.yml | 24 | get-tag: # Following best practices: https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28 | CODE |
| MEDIUM | deps/thpool/thpool.c | 635 | volatile bool *started; // Signal the start of the thread to the initializer, so it can wait for all threads to start. | CODE |
| MEDIUM | src/redisearch_rs/numeric_range_tree/src/tree/gc.rs | 84 | // logical index instead of pointer equality is robust to future changes that | COMMENT |
| MEDIUM | src/redisearch_rs/c_entrypoint/iterators_ffi/Cargo.toml | 17 | # We sidestep the issue by disabling the unit test harness explicitly. | COMMENT |
| MEDIUM | src/redisearch_rs/c_entrypoint/redisearch_rs/Cargo.toml | 18 | # We sidestep the issue by disabling the unit test harness explicitly. | COMMENT |
| MEDIUM | src/redisearch_rs/rqe_iterators/src/c2rust.rs | 9 | // TODO: remove once we have compound iterators written in Rust that leverage | COMMENT |
| MEDIUM | src/redisearch_rs/result_processor/Cargo.toml | 26 | # Exposes `test_utils` (the `Chain` harness) as a public module so downstream crates | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/pytests/test_hybrid_response_format.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| HIGH | tests/pytests/test_hybrid_apply_filter.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| HIGH | tests/pytests/test_hybrid_distance.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| HIGH | tests/pytests/test_hybrid_yield.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| HIGH | tests/pytests/test_hybrid_linear.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| HIGH | tests/pytests/test_hybrid_vector.py | 0 | vector space layout: ==================== the test data creates a 2d vector space with 4 documents positioned as follows | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | build.sh | 1104 | # Run each test type as requested | COMMENT |
| HIGH | .github/workflows/event-pr-validation-triage.yml | 3 | # Posts an AI-generated triage comment on PRs whose `Pull Request Flow` run | COMMENT |
| HIGH | src/redisearch_rs/c_wrappers/vecsim/src/reply.rs | 34 | /// The Order the reply's results are sorted in, as requested when the query | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/cpptests/test_cpp_rdb.cpp | 726 | char dummy_data = 'X'; // Non-NULL pointer to trigger the overflow check | CODE |
| LOW | tests/cpptests/test_cpp_rdb.cpp | 728 | .data = &dummy_data, | CODE |
| LOW | tests/cpptests/test_cpp_rdb.cpp | 741 | char dummy_data = 'Y'; | CODE |
| LOW | tests/cpptests/test_cpp_rdb.cpp | 743 | .data = &dummy_data, | CODE |
| LOW | tests/pytests/test_scorers.py | 40 | conn.execute_command('HSET', 'doc%d' % n, '__score', sc, 'title', 'hello world '*n, 'body', 'lorem ipsum '*n) | CODE |
| LOW⚡ | tests/pytests/test_highlight.py | 282 | body = ('lorem ipsum dolor sit amet ' * 4 + | CODE |
| LOW⚡ | tests/pytests/test_highlight.py | 282 | body = ('lorem ipsum dolor sit amet ' * 4 + | CODE |
| LOW⚡ | tests/pytests/test_highlight.py | 284 | 'lorem ipsum dolor sit amet ' * 4) | CODE |
| LOW⚡ | tests/pytests/test_highlight.py | 284 | 'lorem ipsum dolor sit amet ' * 4) | CODE |
| LOW | tests/pytests/test.py | 830 | 'foo', 'hello world', 'num', 1, 'extra', 'hello lorem ipsum')) | CODE |
| LOW | tests/pytests/test.py | 835 | 'ft.search', 'idx', 'lorem ipsum', 'nocontent') | CODE |
| LOW | tests/pytests/test.py | 855 | 'foo', 'hello world', 'num', 1, 'extra', 'lorem ipsum')) | CODE |
| LOW | tests/pytests/test.py | 1442 | 'title', 'hello world', 'body', 'lorem ipsum')) | CODE |
| LOW | tests/pytests/test.py | 1445 | 'title', 'hello world lorem ipsum', 'body', 'hello world')) | CODE |
| LOW | tests/pytests/test.py | 1474 | 'ft.search', 'idx', '\"lorem ipsum\"', 'verbatim', "infields", 1, "body", "nocontent") | CODE |
| LOW | tests/pytests/test.py | 1480 | 'ft.search', 'idx', 'lorem ipsum', "infields", 2, "body", "title", "nocontent") | CODE |
| LOW | tests/pytests/test.py | 2481 | # >FT.ADD myIdx doc1 1.0 FIELDS title "hello world" body "lorem ipsum" url "www.google.com" | STRING |
| LOW | tests/pytests/test.py | 2492 | con.execute_command('ft.add', 'myIdx', 'doc1', '1.0', 'FIELDS', 'title', 'hello world', 'bod', 'lorem ipsum', 'url', | STRING |
| LOW | tests/pytests/test.py | 2500 | con.execute_command('ft.add', 'myIdx', 'doc1', '1.0', 'fields', 'title', 'hello world', 'body', 'lorem ipsum', 'url' | STRING |
| LOW | tests/pytests/test_hybrid_multithread.py | 22 | 'lorem ipsum dolor sit amet', | CODE |
| LOW | tests/pytests/test_hybrid_multithread.py | 22 | 'lorem ipsum dolor sit amet', | CODE |
| LOW | src/rlookup_load_document.c | 227 | case DocumentType_Unsupported: RS_LOG_ASSERT(1, "placeholder"); | CODE |
| LOW | src/redisearch_rs/trie_rs/src/trie_map/node/mod.rs | 244 | // This forces us to provide a "placeholder" node, since `self` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/pytests/test_issues.py | 312 | # In this example we get both `a` and `subj1` since | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.sh | 487 | # This requires us to combine a few different flags and guardrails: | COMMENT |
| MEDIUM | docs/CONTRIBUTING-specs.md | 93 | - [OpenSpec](https://github.com/Fission-AI/OpenSpec) — the tool this repo's `openspec/` layout matches; its CLI can sc | CODE |
| MEDIUM | .github/workflows/task-backport_pr-agent.yml | 214 | # - the prompt's guardrails (do not force-push, do not skip targets | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .install/install_llvm.sh | 9 | # Usage: | COMMENT |
| LOW | tests/benchmarks/scripts/upload_to_s3.sh | 5 | # Usage: | COMMENT |
| LOW | tests/cpptests/scripts/decode_stacktrace.sh | 8 | # Usage: | COMMENT |
| LOW | tests/pytests/utils/rrf.py | 356 | # Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/pytests/test_hybrid.py | 111 | CODE | |
| MEDIUM | tests/pytests/test_hybrid.py | 117 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/pytests/test_sortby.py | 282 | # and we must make sure to not crash because of it | COMMENT |
| LOW | src/coord/debug_commands.c | 69 | // Make sure the two arrays are of the same size (don't forget to update `debug_command_names.h`) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/pytests/common.py | 203 | CODE | |
| LOW | tests/pytests/common.py | 552 | CODE | |
| LOW | tests/pytests/vecsim_utils.py | 23 | CODE | |
| LOW | tests/benchmark.legacy/common.py | 43 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/result_processor.c | 1192 | // TODO: implement `GetNextResult` that gets the current block to save calculation time. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/auto_backport/common.py | 37 | def set_output(name: str, value: str) -> None: | CODE |