A super fast Graph Database uses GraphBLAS under the hood for its sparse adjacency matrix graph representation. Our goal is to provide the best Knowledge Graph for LLM (GraphRAG).
This report summarizes scanner evidence for FalkorDB/FalkorDB, a Rust project with 8,785 GitHub stars. SynthScan examined 219,381 lines of code across 469 source files, recording 2654 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 24.4 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1356 finding(s).
Are imports declared and package/API names verified? 372 finding(s).
Are wrappers, guards, and repeated structures necessary? 1264 finding(s).
Which changes need focused human review? 2654 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2654 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | graph/src/threadpool.rs | 15 | //! BlockedClient <──────────── result | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 42 | //! ┌─────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 44 | //! └─────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 47 | //! ┌─────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 49 | //! └─────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 52 | //! ┌─────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/lib.rs | 54 | //! └─────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/cow.rs | 18 | //! ┌──────────────────┐ ┌──────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/cow.rs | 21 | //! └──────────────────┘ └──────────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/cow.rs | 24 | //! ┌──────────────────┐ ┌──────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/cow.rs | 27 | //! └──────────────────┘ └──────────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 17 | //! ┌──────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 19 | //! ├──────────────────────────┬───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 22 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 25 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 28 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 32 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 35 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 38 | //! ├──────────────────────────┼───────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | graph/src/graph/graph.rs | 41 | //! └──────────────────────────┴───────────────────────────────────────────┘ | COMMENT |
| MEDIUM | graph/src/graph/graph.rs | 4251 | // ── Constraint management ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 35 | //! ┌────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 38 | //! └───────────┬────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 42 | //! ┌────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 45 | //! └───────────┬────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 49 | //! ┌────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 52 | //! │ ┌─────0─────┬─────1─────┬─────2─────┬─────3─────┐ │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 55 | //! │ └────┬──────┴────┬──────┴───────────┴────┬──────┘ │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 59 | //! │ ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬───────────────┐ │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 61 | //! │ └────┴────┴────┴────┴─┬──┴────┴────┴────┴────┴───────────────┘ │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 67 | //! │ ┌──────────┬──────────┬──────────┐ │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 69 | //! │ └──────────┴──────────┴──────────┘ (holes recycled) │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/attribute_store.rs | 70 | //! └────────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | graph/src/graph/attribute_store.rs | 84 | //! root ──────────── path-copied root_len x 8 B | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 9 | //! ┌──────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 13 | //! └────────────┬──────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 16 | //! ┌──────────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 19 | //! └──┬──────────┬──────────┬──┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 21 | //! ┌────────────┘ │ └────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 23 | //! ┌───────────────┐ ┌────────────────────┐ ┌─────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mod.rs | 29 | //! └───────────────┘ └────────────────────┘ └─────────────────┘ | COMMENT |
| MEDIUM | graph/src/graph/mvcc_graph.rs | 15 | //! ┌─────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | graph/src/graph/mvcc_graph.rs | 18 | //! └─────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mvcc_graph.rs | 36 | //! ┌──────┐ write() ┌──────────┐ commit() ┌───────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mvcc_graph.rs | 37 | //! │ v1 │ ────────────▶│ v2 (wip) │ ──────────▶ │ v2 (live) │ | COMMENT |
| MEDIUM⚡ | graph/src/graph/mvcc_graph.rs | 39 | //! └──────┘ └──────────┘ └───────────┘ | COMMENT |
| MEDIUM⚡ | graph/src/runtime/runtime.rs | 11 | //! ┌──────────┐ ┌──────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/runtime/runtime.rs | 12 | //! │ Return │ ────────► │ ProjectOp │◄── yields Batch<'a> | COMMENT |
| MEDIUM⚡ | graph/src/runtime/runtime.rs | 19 | //! └──────────┘ └──────────────────┘ | COMMENT |
| MEDIUM | graph/src/runtime/batch.rs | 8 | //! ┌────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | graph/src/runtime/batch.rs | 13 | //! └────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | graph/src/runtime/bitset.rs | 9 | //! ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ | COMMENT |
| MEDIUM | graph/src/runtime/bitset.rs | 11 | //! └─────────────────┘ └─────────────────┘ └─────────────────┘ | COMMENT |
| MEDIUM | graph/src/runtime/functions/spatial.rs | 7 | //! ────────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | graph/src/runtime/functions/conversion.rs | 9 | //! ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | graph/src/runtime/functions/list.rs | 8 | //! ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | graph/src/runtime/functions/aggregation.rs | 8 | //! ┌──────────────────────┐ ┌────────────────────┐ | COMMENT |
| MEDIUM⚡ | graph/src/runtime/functions/aggregation.rs | 10 | //! │ acc = fn(val, acc) │──────>│ final Value │ | COMMENT |
| MEDIUM⚡ | graph/src/runtime/functions/aggregation.rs | 11 | //! └──────────────────────┘ └────────────────────┘ | COMMENT |
| MEDIUM | graph/src/runtime/functions/trig.rs | 9 | //! ────────────────────────────────────────────── | COMMENT |
| 565 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 81 | [features] | COMMENT |
| LOW | flow.sh | 41 | # Two execution modes, selected by FALKORDB_TEST_IMAGE: | COMMENT |
| LOW | flow.sh | 61 | MODULE_ARGS=(--module "$TARGET_DIR/$TARGET") | COMMENT |
| LOW | bench/pyproject.toml | 1 | # The benchmark harness is its own uv project rather than part of the repo's | COMMENT |
| LOW | bench/pmc_tool.c | 1 | // PMU counter tool for Apple Silicon using private kperf/kperfdata frameworks. | COMMENT |
| LOW | bench/pmc_tool.c | 21 | // hand before the exec to stay safe. Not exec'ing at all removes that whole | COMMENT |
| LOW | bench/src/falkorbench/metrics.py | 41 | COMMENT | |
| LOW | bench/src/falkorbench/measure.py | 101 | if cal.usable: | COMMENT |
| LOW | bench/src/falkorbench/client.py | 361 | if c_compat and _skip_for_c(cmd): | COMMENT |
| LOW | bench/src/falkorbench/callgrind.py | 81 | TARGET_REL = 0.002 | COMMENT |
| LOW | bench/src/falkorbench/callgrind.py | 281 | # Deterministic counts cannot go down when work is added; if this trips, | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 21 | "UNWIND range(0, 9999) AS i MATCH (a:Person {id: i}) MATCH (b:Person {id: (i + 1) % 10000}) CREATE (a)-[:KNOWS]->(b) | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 121 | # Created here, dropped after DEBUG RELOAD below: covers constraint DROP | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 141 | ["GRAPH.MEMORY", "USAGE", "{graph}", "SAMPLES", "100"], | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 361 | # Aggregate over an *edge* property. Guards the aggregate operator's | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 561 | Q("WCC all types", False, "CALL algo.WCC({}) YIELD node, componentId RETURN count(node)", 200), | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 581 | # Upper-bound-only index ranges (Le on node index, Lt on edge index). | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 621 | Q("expr case filter", False, "MATCH (p:Person) WHERE (CASE WHEN p.age > 40 THEN 1 ELSE 2 END) = 1 RETURN count(p) | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 641 | Q("create 100", True, "UNWIND range(1, 100) AS i CREATE (:Tmp {x: i})", 500), | COMMENT |
| LOW | bench/src/falkorbench/queries.py | 661 | # It DEPENDS on `bulk edges 200k` having run first, which `needs=` declares | COMMENT |
| LOW | native-deps/src/cache.rs | 1 | //! The content-addressed artifact cache. | COMMENT |
| LOW | native-deps/src/util.rs | 281 | pub fn env_opt(name: &str) -> Option<String> { | COMMENT |
| LOW | native-deps/src/lib.rs | 1 | //! Builds and caches FalkorDB's native dependencies. | COMMENT |
| LOW | native-deps/src/lock.rs | 21 | # Regenerate whenever a gitlink under deps/ moves. | COMMENT |
| LOW | native-deps/src/toolchain.rs | 1 | //! Compiler and OpenMP detection, ported from `graphblas.sh`. | COMMENT |
| LOW | native-deps/src/toolchain.rs | 81 | format!("-DOpenMP_omp_LIBRARY={}/lib/libomp.dylib", prefix.display()), | COMMENT |
| LOW | native-deps/src/prejit.rs | 1 | //! `native-deps prejit`: regenerate `build/graphblas/PreJIT/`. | COMMENT |
| LOW | native-deps/src/recipes/graphblas.rs | 1 | //! SuiteSparse:GraphBLAS. | COMMENT |
| LOW | native-deps/src/recipes/redisearch.rs | 1 | //! RediSearch (the FalkorDB fork), embedded as a static library. | COMMENT |
| LOW | native-deps/src/recipes/redisearch.rs | 41 | &ctx.lock.get("redisearch")?.rev, | COMMENT |
| LOW | native-deps/src/recipes/mod.rs | 61 | name: &str, | COMMENT |
| LOW | native-deps/src/recipes/mod.rs | 261 | /// "fatal: not a git repository: <target>" instead of walking past it, which is | COMMENT |
| LOW | graph/build.rs | 41 | let lagraph = deps.get(Dep::LaGraph).expect("lagraph resolved"); | COMMENT |
| LOW | graph/build.rs | 201 | println!("cargo:rustc-link-lib=ssl"); | COMMENT |
| LOW | graph/src/locks.rs | 1 | //! The one thing this crate needs from its host's locks. | COMMENT |
| LOW | graph/src/locks.rs | 21 | //! match phase — and **escalates** on its first mutation: release read, take the | COMMENT |
| LOW | graph/src/threadpool.rs | 1 | //! Thread pool for parallel query execution. | COMMENT |
| LOW | graph/src/threadpool.rs | 21 | //! is idle picks up the next job, so a long-running job on one worker does | COMMENT |
| LOW | graph/src/lib.rs | 1 | #![allow(clippy::arc_with_non_send_sync)] | COMMENT |
| LOW | graph/src/lib.rs | 21 | // Inherent to floating-point comparison in filter/index code. | COMMENT |
| LOW | graph/src/lib.rs | 41 | //! ▼ | COMMENT |
| LOW | graph/src/lib.rs | 61 | //! - [`graph`]: Graph data structures (sparse matrices, vectors, MVCC) | COMMENT |
| LOW | graph/src/identifier_limits.rs | 1 | //! Upper bound on the length of every name the engine accepts. | COMMENT |
| LOW | graph/src/narrow_int.rs | 1 | //! Choosing the fewest bytes that hold an integer. | COMMENT |
| LOW | graph/src/entity_type.rs | 1 | //! Entity type discriminator for graph elements. | COMMENT |
| LOW | graph/src/planner/tree.rs | 1 | //! Tree construction macro for execution plans. | COMMENT |
| LOW | graph/src/planner/mod.rs | 1 | //! Query plan generation from bound AST. | COMMENT |
| LOW | graph/src/planner/mod.rs | 61 | /// | COMMENT |
| LOW | graph/src/planner/mod.rs | 181 | /// `emit_relationship`: when false, anonymous edge optimization applies — | COMMENT |
| LOW | graph/src/planner/mod.rs | 201 | /// variables (edge + destination) bound to NULL. | COMMENT |
| LOW | graph/src/planner/mod.rs | 221 | /// lowered to `false` by the `reduce_var_len_path` optimizer pass. | COMMENT |
| LOW | graph/src/planner/mod.rs | 581 | /// servable by an index, so the query silently drops to a scan. | COMMENT |
| LOW | graph/src/planner/mod.rs | 601 | attrs: &QueryExpr<Variable>, | COMMENT |
| LOW | graph/src/planner/mod.rs | 721 | /// Variable (id, scope_id) pairs that are already bound in the current | COMMENT |
| LOW | graph/src/planner/mod.rs | 741 | loop_vars: Vec<Variable>, | COMMENT |
| LOW | graph/src/planner/mod.rs | 761 | paths: Vec<Arc<QueryPath<Variable>>>, | COMMENT |
| LOW | graph/src/planner/mod.rs | 1681 | /// expression and collected in `extractable`. These are top-level AND | COMMENT |
| LOW | graph/src/planner/mod.rs | 1821 | } | COMMENT |
| LOW | graph/src/planner/mod.rs | 1881 | } else { | COMMENT |
| LOW | graph/src/planner/mod.rs | 2161 | // keep the edge's attrs on their pattern and prune with them. | COMMENT |
| 847 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | bench/src/falkorbench/queries.py | 376 | Q("UDF echo scalars", False, "UNWIND range(0, 99) AS i RETURN count(bench.echo(i) + bench.echo(1.5)), bench.echo( | CODE |
| HIGH⚡ | bench/src/falkorbench/queries.py | 378 | Q("UDF echo list+map", False, "UNWIND range(0, 99) AS i RETURN count(bench.echo([1, 'a', null, 2.5, [i]])[4][0] + | CODE |
| HIGH⚡ | bench/src/falkorbench/queries.py | 384 | Q("equality matrix", False, "UNWIND [[1, 1.0], ['a', 'a'], [[1, 2], [1, 2]], [{a: 1}, {a: 1}], [true, false], [n | CODE |
| HIGH | bench/src/falkorbench/queries.py | 279 | Q("algo.WCC", False, "CALL algo.WCC(null) YIELD node, componentId RETURN count(DISTINCT componentId)", cg | CODE |
| HIGH | bench/src/falkorbench/queries.py | 312 | Q("null handling", False, "RETURN null + 1, null = null, 3 IS NULL, coalesce(null, null, 3), toInteger(null)", | CODE |
| HIGH | bench/src/falkorbench/queries.py | 314 | Q("order by mixed types", False, "UNWIND [1, 'a', 2.5, true, null, [1], {a: 1}] AS x RETURN x ORDER BY x"), | CODE |
| HIGH | bench/src/falkorbench/queries.py | 517 | Q("chained cmp null", False, "RETURN 1 < null < 3, null = null, 1 <= null >= 2"), | CODE |
| HIGH | bench/src/falkorbench/queries.py | 519 | Q("list null subscript", False, "RETURN [1, 2, 3][null]"), | CODE |
| HIGH | bench/src/falkorbench/queries.py | 702 | ("merge null prop", "GRAPH.QUERY", "MERGE (n:Person {id: null}) RETURN n"), | CODE |
| HIGH⚡ | tests/test_functions.py | 76 | query = f"RETURN {func}(null)" | CODE |
| HIGH⚡ | tests/test_e2e.py | 641 | res = query("RETURN [null] = [null] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 644 | res = query("RETURN [1] = [1, null] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 647 | res = query("RETURN [1, 2] = [null, 'foo'] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 650 | res = query("RETURN [1, 2] = [null, 2] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 653 | res = query("RETURN [[1]] = [[1], [null]] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 656 | res = query("RETURN [[1, 2], [1, 3]] = [[1, 2], [null, 'foo']] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 659 | res = query("RETURN [[1, 2], ['foo', 'bar']] = [[1, 2], [null, 'bar']] AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1002 | res = query("RETURN string.matchRegEx(null, null) AS name") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1005 | res = query("RETURN string.matchRegEx('foo bar', null) AS name") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1008 | res = query("RETURN string.matchRegEx(null, '.*') AS name") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1622 | res = query("RETURN any(x IN [1, 2, 3] WHERE null) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1625 | res = query("RETURN none(x IN [1, 2, 3] WHERE null) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1628 | res = query("RETURN single(x IN [1, 2, 3] WHERE null) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1632 | res = query("RETURN all(x IN [true, null] WHERE x) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1635 | res = query("RETURN any(x IN [false, null] WHERE x) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1638 | res = query("RETURN none(x IN [false, null] WHERE x) AS res") | CODE |
| HIGH⚡ | tests/test_e2e.py | 1641 | res = query("RETURN single(x IN [true, null] WHERE x) AS res") | CODE |
| HIGH | tests/test_e2e.py | 508 | res = query("RETURN [1, 2, 3][1..null] AS r") | CODE |
| HIGH | tests/test_e2e.py | 1086 | res = query("RETURN exp(null) AS name") | CODE |
| HIGH | tests/test_e2e.py | 1109 | res = query("RETURN log(null) AS name") | CODE |
| HIGH | tests/test_e2e.py | 1126 | res = query("RETURN log10(null) AS name") | CODE |
| HIGH | tests/test_e2e.py | 1158 | res = query("RETURN pow(null, 3) AS name") | CODE |
| HIGH | tests/test_e2e.py | 1161 | res = query("RETURN pow(3, null) AS name") | CODE |
| HIGH | tests/test_e2e.py | 1235 | res = query("RETURN sqrt(null) AS result") | CODE |
| HIGH | tests/test_e2e.py | 1530 | q = "UNWIND [1, 2, 3, 4, 5] AS x RETURN percentileDisc(x, null) AS result" | CODE |
| HIGH | tests/flow/test_multi_label.py | 369 | # fallback: an unmatched OPTIONAL MATCH leaves a null, not a node column | COMMENT |
| HIGH | tests/flow/test_procedures.py | 283 | query = """CALL db.idx.fulltext.queryNodes('fruit', 'Orange || Apple') YIELD node RETURN node""" | CODE |
| HIGH⚡ | tests/flow/test_function_calls.py | 1559 | # atan2(1,null) | COMMENT |
| HIGH⚡ | tests/flow/test_function_calls.py | 1564 | # atan2(null,2) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 519 | # startNode(null) and endNode(null) must return null per Cypher specification | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 866 | # all other toBoolean cases (boolean, strings, null, errors) are covered in TCK | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1336 | # sin(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1365 | # cos(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1394 | # tan(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1423 | # cot(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1462 | # asin(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1501 | # acos(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1530 | # atan(null) | COMMENT |
| HIGH⚡ | tests/flow/test_function_calls.py | 1560 | query = """RETURN atan2(1,null)""" | CODE |
| HIGH⚡ | tests/flow/test_function_calls.py | 1565 | query = """RETURN atan2(null,2)""" | CODE |
| HIGH | tests/flow/test_function_calls.py | 1598 | # degrees(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1627 | # radians(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1667 | # haversin(null) | COMMENT |
| HIGH | tests/flow/test_function_calls.py | 1926 | # a simple CASE compares with `=`, and `null = null` is null, so a | COMMENT |
| HIGH⚡ | tests/flow/test_function_calls.py | 2700 | query = """WITH NULL as string RETURN string.replaceRegEx(null, "bla")""" | CODE |
| HIGH⚡ | tests/flow/test_function_calls.py | 2706 | query = """WITH NULL as string RETURN string.replaceRegEx("bla", null)""" | CODE |
| HIGH⚡ | tests/flow/test_function_calls.py | 2712 | query = """WITH NULL as string RETURN string.replaceRegEx("bla", "bla", null)""" | CODE |
| HIGH | tests/flow/test_function_calls.py | 125 | query = "RETURN EXISTS(null)" | CODE |
| HIGH | tests/flow/test_function_calls.py | 524 | query = """RETURN startNode(null) AS s, endNode(null) AS e""" | CODE |
| HIGH | tests/flow/test_function_calls.py | 857 | query = """RETURN sqrt(null)""" | CODE |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_concurrency.py | 178 | except Exception: | CODE |
| HIGH | tests/test_mvcc.py | 118 | except: | CODE |
| HIGH | tests/record.py | 74 | except: | CODE |
| HIGH | tests/record.py | 91 | except: | CODE |
| HIGH | tests/tck/falkor_utils/graphs.py | 23 | except: | CODE |
| HIGH | tests/tck/falkor_utils/graphs.py | 43 | except: | CODE |
| HIGH | tests/tck/falkor_utils/graphs.py | 86 | except: | CODE |
| HIGH | tests/flow/test_parser.py | 324 | except: | CODE |
| HIGH | tests/flow/test_parser.py | 334 | except: | CODE |
| HIGH | tests/flow/test_maxflow.py | 143 | except Exception: | CODE |
| HIGH | tests/flow/test_procedures.py | 100 | except redis.ResponseError as e: | CODE |
| HIGH | tests/flow/test_procedures.py | 110 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_procedures.py | 119 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_procedures.py | 132 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_procedures.py | 286 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_procedures.py | 302 | except redis.ResponseError as e: | CODE |
| HIGH | tests/flow/test_vecsim.py | 336 | except ResponseError: | CODE |
| HIGH | tests/flow/test_udf_cluster.py | 69 | except Exception: | CODE |
| HIGH | tests/flow/test_list.py | 136 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_maintain_record_order.py | 15 | except: | CODE |
| HIGH | tests/flow/test_effects_topology.py | 131 | except ResponseError: | CODE |
| HIGH | tests/flow/test_comprehension_functions.py | 532 | except: | CODE |
| HIGH | tests/flow/test_comprehension_functions.py | 606 | except: | CODE |
| HIGH | tests/flow/test_comprehension_functions.py | 677 | except: | CODE |
| HIGH | tests/flow/constraint_utils.py | 93 | except: | CODE |
| HIGH | tests/flow/constraint_utils.py | 104 | except: | CODE |
| HIGH | tests/flow/test_wcc.py | 54 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 91 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 100 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 109 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 121 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 130 | except: | CODE |
| HIGH | tests/flow/test_memory_usage.py | 154 | except: | CODE |
| HIGH | tests/flow/test_load_csv.py | 187 | except Exception as e: | CODE |
| HIGH | tests/flow/test_load_csv.py | 243 | except Exception: | CODE |
| HIGH | tests/flow/test_load_csv.py | 346 | except: | CODE |
| HIGH | tests/flow/test_load_csv.py | 199 | except Exception as e: | CODE |
| HIGH | tests/flow/test_load_csv.py | 211 | except Exception as e: | CODE |
| HIGH | tests/flow/test_load_csv.py | 466 | except Exception: | CODE |
| HIGH | tests/flow/test_harmonic_centrality.py | 60 | except ResponseError: | CODE |
| HIGH | tests/flow/test_graph_copy.py | 64 | except Exception: | CODE |
| HIGH | tests/flow/test_graph_copy.py | 70 | except Exception: | CODE |
| HIGH | tests/flow/test_graph_copy.py | 77 | except Exception: | CODE |
| HIGH | tests/flow/test_graph_copy.py | 86 | except Exception: | CODE |
| HIGH | tests/flow/test_defrag.py | 354 | except ResponseError: | CODE |
| HIGH | tests/flow/test_defrag.py | 380 | except ResponseError: | CODE |
| HIGH | tests/flow/test_defrag.py | 296 | except Exception: | CODE |
| HIGH | tests/flow/test_defrag.py | 426 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_defrag.py | 453 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_defrag.py | 496 | except Exception: # noqa: BLE001 | CODE |
| HIGH | tests/flow/test_temporal.py | 577 | except Exception: | CODE |
| HIGH | tests/flow/test_temporal.py | 612 | except Exception: | CODE |
| HIGH | tests/flow/test_temporal.py | 647 | except Exception: | CODE |
| HIGH | tests/flow/effects_common.py | 343 | except Exception: | CODE |
| HIGH | tests/flow/test_cdlp.py | 70 | except: | CODE |
| HIGH | tests/flow/test_aof.py | 16 | except Exception: | CODE |
| HIGH | tests/flow/test_star_projections.py | 87 | except redis.ResponseError: | CODE |
| HIGH | tests/flow/test_nul_bytes.py | 134 | except ResponseError: | CODE |
| HIGH | tests/flow/test_effects_commit.py | 135 | except Exception: | CODE |
| HIGH | tests/flow/test_union.py | 54 | except redis.ResponseError: | CODE |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/tests/test_coverage.py | 23 | def test_only_the_requested_prefix_is_counted(self): | STRING |
| LOW | bench/tests/test_coverage.py | 31 | def test_totals_come_from_the_lines_columns_not_regions(self): | STRING |
| LOW⚡ | bench/tests/test_coverage.py | 43 | def test_total_row_is_excluded(self): | CODE |
| LOW⚡ | bench/tests/test_coverage.py | 48 | def test_wrapped_path_rows_are_skipped(self): | CODE |
| LOW⚡ | bench/tests/test_coverage.py | 55 | def test_non_numeric_columns_do_not_raise(self): | CODE |
| LOW⚡ | bench/tests/test_coverage.py | 58 | def test_empty_report_is_zero_not_a_crash(self): | CODE |
| LOW⚡ | bench/tests/test_coverage.py | 66 | def test_small_files_are_excluded_and_order_is_worst_first(self): | CODE |
| LOW | bench/tests/test_coverage.py | 81 | def test_instrumentation_is_always_requested(self): | CODE |
| LOW | bench/tests/test_coverage.py | 85 | def test_linux_adds_the_duplicate_symbol_workaround_and_a_cxx(self): | CODE |
| LOW | bench/tests/test_coverage.py | 100 | def test_the_toolchain_copy_wins_over_a_system_one(self, tmp_path, monkeypatch): | CODE |
| LOW | bench/tests/test_coverage.py | 123 | def test_path_is_used_when_the_toolchain_has_none(self, tmp_path, monkeypatch): | CODE |
| LOW | bench/tests/test_coverage.py | 135 | def test_missing_everywhere_names_the_remedy(self, tmp_path, monkeypatch): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 44 | def test_separated_row_reads_its_counters(): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 53 | def test_fused_rate_column_does_not_corrupt_nmalloc(): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 69 | def test_ndalloc_never_exceeds_nmalloc_on_a_fused_row(): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 80 | def test_large_table_has_its_own_column_layout(): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 91 | def test_non_data_lines_are_rejected(): | CODE |
| LOW | bench/tests/test_jemalloc_stats.py | 102 | def test_missing_counter_column_yields_no_row(): | CODE |
| LOW | bench/tests/test_metrics.py | 19 | def test_empty_cell_is_none_not_zero(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 31 | def test_zero_is_preserved_as_a_measurement(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 35 | def test_garbage_is_none_rather_than_an_exception(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 40 | def test_rows_without_a_query_name_are_dropped(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 51 | def test_a_failed_shard_costs_only_its_own_rows(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 56 | def test_missing_pattern_is_empty_not_an_error(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 65 | def test_non_positive_baseline_is_uncomparable(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 72 | def test_absent_either_side_is_uncomparable(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 76 | def test_missing_key_is_uncomparable(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 81 | def test_false_when_every_row_lacks_the_metric(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 87 | def test_true_when_any_row_has_it(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 92 | def test_is_geometric_not_arithmetic(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 99 | def test_non_positive_values_are_excluded(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 104 | def test_offset_comes_from_the_control_row(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 111 | def test_none_without_a_control_row_on_either_side(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 117 | def test_none_when_the_control_row_has_no_timing(self): | CODE |
| LOW⚡ | bench/tests/test_metrics.py | 122 | def test_none_on_a_non_positive_control(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 26 | def test_missing_pr_side_is_fatal(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 33 | def test_missing_base_side_is_fatal(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 37 | def test_missing_c_side_costs_only_its_column(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 49 | def test_ranks_on_instructions_when_available(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 55 | def test_falls_back_to_allocated_bytes_never_wall_clock(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 63 | def test_rows_below_the_alloc_floor_are_measured_but_not_ranked(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 71 | def test_no_movers_says_so_explicitly(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 127 | def test_movers_table_lists_only_what_moved(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 133 | def test_missing_callgrind_output_is_fatal(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 139 | def test_c_column_absent_says_why(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 146 | def test_single_c_pass_is_n_a_not_a_number(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 212 | def test_missing_files_are_silently_skipped(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 220 | def test_marker_is_always_last(self): | CODE |
| LOW⚡ | bench/tests/test_report.py | 226 | def test_each_required_measure_side_is_individually_fatal(side): | CODE |
| LOW | bench/tests/test_report.py | 86 | def test_control_row_normalisation_cancels_the_host_offset(self): | CODE |
| LOW | bench/tests/test_report.py | 100 | def test_a_genuine_outlier_survives_normalisation(self): | CODE |
| LOW | bench/tests/test_report.py | 111 | def test_no_wall_clock_section_without_a_control_row(self): | CODE |
| LOW | bench/tests/test_report.py | 158 | def test_c_error_replies_are_suppressed(self): | CODE |
| LOW | bench/tests/test_report.py | 171 | def test_disagreeing_c_passes_show_a_range(self): | CODE |
| LOW | bench/tests/test_report.py | 181 | def test_agreeing_c_passes_show_a_midpoint(self): | CODE |
| LOW | bench/tests/test_report.py | 193 | def test_provenance_table_and_metadata_key_handling(self, tmp_path): | CODE |
| LOW⚡ | bench/tests/test_queries.py | 19 | def test_command_follows_the_write_flag(self): | CODE |
| LOW⚡ | bench/tests/test_queries.py | 23 | def test_every_query_has_text(self): | CODE |
| LOW⚡ | bench/tests/test_queries.py | 27 | def test_graph_inflating_queries_stay_last(self): | CODE |
| LOW | bench/tests/test_queries.py | 51 | def test_sized_write_queries_ascend_in_magnitude(self): | CODE |
| 274 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/src/falkorbench/counters.py | 22 | CODE | |
| LOW | bench/src/falkorbench/metrics.py | 15 | CODE | |
| LOW | bench/src/falkorbench/measure.py | 12 | CODE | |
| LOW | bench/src/falkorbench/client.py | 15 | CODE | |
| LOW | bench/src/falkorbench/profile.py | 20 | CODE | |
| LOW | bench/src/falkorbench/flow.py | 14 | CODE | |
| LOW | bench/src/falkorbench/coverage.py | 17 | CODE | |
| LOW | bench/src/falkorbench/callgrind.py | 60 | CODE | |
| LOW | bench/src/falkorbench/cli.py | 8 | CODE | |
| LOW | bench/src/falkorbench/compare.py | 20 | CODE | |
| LOW | bench/src/falkorbench/report.py | 17 | CODE | |
| LOW | tests/test_concurrency.py | 3 | CODE | |
| LOW | tests/test_mvcc.py | 2 | CODE | |
| LOW | tests/test_e2e.py | 5 | CODE | |
| LOW | tests/test_e2e.py | 8 | CODE | |
| LOW | tests/tck/falkor_utils/assertions.py | 4 | CODE | |
| LOW | tests/tck/features/steps/Steps.py | 3 | CODE | |
| LOW | tests/flow/test_parser.py | 1 | CODE | |
| LOW | tests/flow/test_divergence_report.py | 3 | CODE | |
| LOW | tests/flow/test_multi_pattern.py | 1 | CODE | |
| LOW | tests/flow/test_graph_versioning.py | 1 | CODE | |
| LOW | tests/flow/test_point.py | 1 | CODE | |
| LOW | tests/flow/test_point.py | 2 | CODE | |
| LOW | tests/flow/test_maxflow.py | 1 | CODE | |
| LOW | tests/flow/test_slowlog.py | 1 | CODE | |
| LOW | tests/flow/test_multi_label.py | 1 | CODE | |
| LOW | tests/flow/test_multi_label.py | 2 | CODE | |
| LOW | tests/flow/test_procedures.py | 1 | CODE | |
| LOW | tests/flow/test_vecsim.py | 1 | CODE | |
| LOW | tests/flow/test_vecsim.py | 2 | CODE | |
| LOW | tests/flow/test_traversal_construction.py | 1 | CODE | |
| LOW | tests/flow/test_traversal_construction.py | 2 | CODE | |
| LOW | tests/flow/test_udf_cluster.py | 1 | CODE | |
| LOW | tests/flow/test_function_calls.py | 2 | CODE | |
| LOW | tests/flow/test_expiry.py | 1 | CODE | |
| LOW | tests/flow/test_list.py | 1 | CODE | |
| LOW | tests/flow/test_attr_id_space.py | 3 | CODE | |
| LOW | tests/flow/test_query_mem_limit.py | 1 | CODE | |
| LOW | tests/flow/test_results.py | 1 | CODE | |
| LOW | tests/flow/test_effects_ddl.py | 10 | CODE | |
| LOW | tests/flow/test_multiple_edges.py | 1 | CODE | |
| LOW | tests/flow/test_graph_create.py | 1 | CODE | |
| LOW | tests/flow/test_maintain_record_order.py | 1 | CODE | |
| LOW | tests/flow/test_all_shortest_paths.py | 1 | CODE | |
| LOW | tests/flow/test_index_scans.py | 1 | CODE | |
| LOW | tests/flow/test_index_scans.py | 2 | CODE | |
| LOW | tests/flow/test_effects_topology.py | 12 | CODE | |
| LOW | tests/flow/test_effects_topology.py | 13 | CODE | |
| LOW | tests/flow/test_comprehension_functions.py | 1 | CODE | |
| LOW | tests/flow/test_index_updates.py | 3 | CODE | |
| LOW | tests/flow/test_index_updates.py | 4 | CODE | |
| LOW | tests/flow/test_effects_values.py | 11 | CODE | |
| LOW | tests/flow/test_inline_pattern_attributes.py | 1 | CODE | |
| LOW | tests/flow/test_inline_pattern_attributes.py | 2 | CODE | |
| LOW | tests/flow/constraint_utils.py | 2 | CODE | |
| LOW | tests/flow/test_effects_shapes.py | 12 | CODE | |
| LOW | tests/flow/test_effects_shapes.py | 15 | CODE | |
| LOW | tests/flow/test_effects_shapes.py | 15 | CODE | |
| LOW | tests/flow/test_entity_update.py | 1 | CODE | |
| LOW | tests/flow/test_entity_update.py | 2 | CODE | |
| 153 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_e2e.py | 756 | # Define the possible values | COMMENT |
| MEDIUM | tests/flow/test_maxflow.py | 1320 | # Create a PIPE edge (registers the rel-type in the schema) between | COMMENT |
| MEDIUM | tests/flow/test_traversal_construction.py | 12 | # Create the graph | COMMENT |
| MEDIUM | tests/flow/test_index_scans.py | 209 | # Create a single node with a long string property, introduce a comma as part of the string. | COMMENT |
| MEDIUM | tests/flow/test_effects_topology.py | 198 | # Create the constraint and cut the link as soon as the replica has the | COMMENT |
| MEDIUM | tests/flow/test_comprehension_functions.py | 452 | # Create a single relationship | COMMENT |
| MEDIUM | tests/flow/test_index_updates.py | 149 | # Create a new node with a single indexed property | COMMENT |
| MEDIUM | tests/flow/test_wcc.py | 70 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_wcc.py | 116 | # Create an unlabeled graph with two relationship types | COMMENT |
| MEDIUM | tests/flow/test_wcc.py | 214 | # Create a graph with multiple labeled and unlabeled nodes | COMMENT |
| MEDIUM | tests/flow/test_wcc.py | 274 | # Create a complex graph with: | COMMENT |
| MEDIUM⚡ | tests/flow/test_wcc.py | 360 | # Create a random graph | COMMENT |
| MEDIUM | tests/flow/test_rdb_load.py | 35 | # Create a graph with 30 nodes so virtual keys are generated | COMMENT |
| MEDIUM | tests/flow/test_cdlp.py | 89 | # Create a simple graph with three completely separate communities | COMMENT |
| MEDIUM | tests/flow/test_cdlp.py | 181 | # Create a graph with separate communities for each node label | COMMENT |
| MEDIUM | tests/flow/test_cdlp.py | 326 | # Create a graph with communities connected by different relationship types | COMMENT |
| MEDIUM | tests/flow/test_aggregation.py | 184 | # Create a few nodes | COMMENT |
| MEDIUM | tests/flow/test_encode_decode.py | 173 | # Create a multi-key graph. | COMMENT |
| MEDIUM | tests/flow/test_encode_decode.py | 178 | # Create a single-key graph. | COMMENT |
| MEDIUM | tests/flow/test_persistency.py | 631 | # Create a graph under a non-UTF-8 key name (raw command; the client's | COMMENT |
| MEDIUM | tests/flow/test_ro_query.py | 43 | # Create the graph | COMMENT |
| MEDIUM⚡ | tests/flow/test_udf.py | 621 | # Define a helper function to check for query failure (expected behavior for miss-use) | STRING |
| MEDIUM | tests/flow/test_null_handling.py | 12 | # Create a single node. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 12 | # Create a single node without any labels or properties. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 28 | # Create a single node with two properties and no labels. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 44 | # Create a single node with both label and property. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 60 | # Create a single edge and additional two nodes. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 106 | # Create a single edge and additional two nodes. | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 231 | # Create a new pattern | COMMENT |
| MEDIUM | tests/flow/test_graph_merge.py | 325 | # Create a new pattern with non-unique entities. | COMMENT |
| MEDIUM | tests/flow/test_query_validation.py | 15 | # Create a single graph. | COMMENT |
| MEDIUM⚡ | tests/flow/test_pagerank.py | 43 | # Create a simple directed graph using a Cypher query | COMMENT |
| MEDIUM | tests/flow/test_pagerank.py | 79 | # Create a dictionary of node labels to scores | STRING |
| MEDIUM | tests/flow/test_pagerank.py | 110 | # Create a graph with both regular and special nodes | COMMENT |
| MEDIUM | tests/flow/test_relation_patterns.py | 257 | # Create a new graph of the form: | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 122 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 166 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 211 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 253 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 284 | # Create an unlabeled graph with multiple connected components | COMMENT |
| MEDIUM | tests/flow/test_msf.py | 315 | # Create an unlabeled graph with two relationship types | COMMENT |
| MEDIUM | tests/flow/test_bulk_insertion.py | 524 | # Create the social graph with multi-labeled nodes | COMMENT |
| MEDIUM | tests/flow/test_bound_variables.py | 53 | # Create a full-text index. | COMMENT |
| MEDIUM | tests/flow/test_commands_registration.py | 5 | # Define the Lua script | COMMENT |
| MEDIUM | tests/flow/test_edge_index_updates.py | 186 | # Create a new edge with a single indexed property | COMMENT |
| MEDIUM | tests/flow/test_betweenness.py | 89 | # Create a small graph where we can reason about the betweenness centrality | COMMENT |
| MEDIUM | tests/flow/test_betweenness.py | 100 | # Create the entire graph with a single Cypher query | COMMENT |
| MEDIUM | tests/flow/test_betweenness.py | 149 | # Create a graph with multiple node labels | COMMENT |
| MEDIUM | tests/flow/test_betweenness.py | 211 | # Create a graph with multiple relationship types | COMMENT |
| MEDIUM | tests/flow/test_betweenness.py | 278 | # Create a complex graph with multiple node labels and relationship types | COMMENT |
| MEDIUM | tests/flow/test_path_filter.py | 210 | # Create a graph of the form: | COMMENT |
| MEDIUM | .github/workflows/release-tag.yml | 112 | # Create the Release up front: release-artifacts.yml uploads assets to it, and | COMMENT |
| MEDIUM | .github/workflows/agentics-maintenance.yml | 24 | # This file defines the generated agentic maintenance workflow for this repository. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/src/falkorbench/measure.py | 243 | except Exception as e: # any other failure is still a failure | CODE |
| LOW | tests/test_concurrency.py | 124 | except Exception: | CODE |
| LOW | tests/test_concurrency.py | 148 | except Exception as e: # noqa: BLE001 - narrow check below | CODE |
| LOW | tests/test_concurrency.py | 178 | except Exception: | CODE |
| LOW | tests/common.py | 43 | except Exception as e: | CODE |
| LOW | tests/common.py | 62 | except Exception: | CODE |
| LOW⚡ | tests/test_functions.py | 73 | except Exception as e: | CODE |
| LOW⚡ | tests/test_functions.py | 80 | except Exception as e: | CODE |
| LOW | tests/test_functions.py | 99 | except Exception as e: | CODE |
| LOW | tests/test_functions.py | 111 | except Exception as e: | CODE |
| LOW | tests/test_functions.py | 119 | except Exception as e: | CODE |
| LOW | tests/tck/features/steps/Steps.py | 66 | except Exception as error: | CODE |
| LOW⚡ | tests/flow/test_point.py | 45 | except Exception as e: | CODE |
| LOW⚡ | tests/flow/test_point.py | 54 | except Exception as e: | CODE |
| LOW⚡ | tests/flow/test_point.py | 63 | except Exception as e: | CODE |
| LOW⚡ | tests/flow/test_point.py | 72 | except Exception as e: | CODE |
| MEDIUM | tests/flow/test_point.py | 39 | def test_point_values(self): | CODE |
| LOW | tests/flow/test_maxflow.py | 143 | except Exception: | CODE |
| LOW | tests/flow/test_maxflow.py | 167 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 198 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 222 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 874 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 904 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 931 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 958 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 998 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 1164 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 1188 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 1212 | except Exception as e: | STRING |
| LOW | tests/flow/test_maxflow.py | 1240 | except Exception as e: | STRING |
| LOW | tests/flow/test_vecsim.py | 86 | except Exception as e: | CODE |
| LOW | tests/flow/test_vecsim.py | 96 | except Exception as e: | CODE |
| LOW | tests/flow/test_vecsim.py | 194 | except Exception as e: | CODE |
| LOW | tests/flow/test_vecsim.py | 202 | except Exception as e: | CODE |
| LOW | tests/flow/test_vecsim.py | 215 | except Exception as e: | CODE |
| LOW | tests/flow/test_vecsim.py | 222 | except Exception as e: | CODE |
| LOW | tests/flow/test_udf_cluster.py | 69 | except Exception: | STRING |
| MEDIUM | tests/flow/test_function_calls.py | 44 | def expect_error(self, query, expected_err_msg): | CODE |
| LOW | tests/flow/test_function_calls.py | 2928 | except Exception as e: | CODE |
| LOW | tests/flow/test_effects_ddl.py | 516 | except Exception as e: | CODE |
| LOW | tests/flow/test_effects_shapes.py | 603 | except Exception as e: | STRING |
| LOW | tests/flow/test_load_csv.py | 179 | except Exception as e: | CODE |
| LOW | tests/flow/test_load_csv.py | 187 | except Exception as e: | CODE |
| LOW | tests/flow/test_load_csv.py | 199 | except Exception as e: | CODE |
| LOW | tests/flow/test_load_csv.py | 211 | except Exception as e: | CODE |
| LOW | tests/flow/test_load_csv.py | 243 | except Exception: | CODE |
| LOW | tests/flow/test_load_csv.py | 403 | except Exception as e: | CODE |
| LOW | tests/flow/test_load_csv.py | 466 | except Exception: | CODE |
| LOW⚡ | tests/flow/test_access_del_entity.py | 173 | except Exception as e: | CODE |
| LOW⚡ | tests/flow/test_access_del_entity.py | 186 | except Exception as e: | CODE |
| LOW⚡ | tests/flow/test_graph_copy.py | 64 | except Exception: | CODE |
| LOW⚡ | tests/flow/test_graph_copy.py | 70 | except Exception: | CODE |
| LOW⚡ | tests/flow/test_graph_copy.py | 77 | except Exception: | CODE |
| LOW⚡ | tests/flow/test_graph_copy.py | 86 | except Exception: | CODE |
| MEDIUM | tests/flow/test_defrag.py | 566 | def loader(): | CODE |
| LOW⚡ | tests/flow/test_defrag.py | 296 | except Exception: | CODE |
| LOW⚡ | tests/flow/test_defrag.py | 471 | except Exception: # noqa: BLE001 | CODE |
| LOW | tests/flow/test_defrag.py | 239 | except Exception as e: | CODE |
| LOW | tests/flow/test_defrag.py | 248 | except Exception as e: | CODE |
| LOW | tests/flow/test_defrag.py | 428 | except Exception as e: # noqa: BLE001 | CODE |
| 63 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | bench/pyproject.toml | 1 | # The benchmark harness is its own uv project rather than part of the repo's | COMMENT |
| MEDIUM | bench/pyproject.toml | 63 | # The harness prints aligned tables; f-strings in the print calls are the | COMMENT |
| MEDIUM | bench/src/falkorbench/metrics.py | 44 | # Wall-clock is never the gate — the harness says so everywhere else, and then | COMMENT |
| MEDIUM | bench/src/falkorbench/measure.py | 117 | # harness: `RETURN 1` came out at 0.3476 ms on the first run and 0.0636 ms on | COMMENT |
| MEDIUM | bench/src/falkorbench/client.py | 378 | # error replies to stderr and the pre-refactor harness inspected only | COMMENT |
| MEDIUM | bench/src/falkorbench/cli.py | 100 | # not build the graph", or the harness measures an empty database and reports | COMMENT |
| MEDIUM | bench/src/falkorbench/cli.py | 218 | # that changes what gets measured is the failure mode this harness exists | COMMENT |
| MEDIUM | bench/src/falkorbench/queries.py | 97 | # replaced with the graph key by the harness. | COMMENT |
| MEDIUM | bench/src/falkorbench/queries.py | 152 | # stderr and the old harness inspected only stdout, making its | COMMENT |
| MEDIUM | bench/src/falkorbench/queries.py | 162 | # CSV files the harness writes into IMPORT_DIR before starting the server | COMMENT |
| MEDIUM | bench/src/falkorbench/queries.py | 674 | # Each row is (name, redis command, query); the harness passes iff the reply | COMMENT |
| MEDIUM | bench/src/falkorbench/report.py | 351 | # the harness lockfile, so it identifies the exact toolchain behind the | COMMENT |
| MEDIUM⚡ | tests/flow/test_index_scans.py | 388 | # Querying indexed properties using IN a constant array should utilize indexes. | COMMENT |
| MEDIUM⚡ | tests/flow/test_index_scans.py | 398 | # Querying indexed properties using IN a generated array should utilize indexes. | COMMENT |
| MEDIUM⚡ | tests/flow/test_index_scans.py | 408 | # Querying indexed properties using IN a non-constant array should not utilize indexes. | COMMENT |
| MEDIUM⚡ | tests/flow/test_index_scans.py | 958 | # other types e.g. points within arrays won't utilize the index | COMMENT |
| MEDIUM | tests/flow/test_index_scans.py | 575 | # utilize, producing every entity which was indexed with a none indexable value | COMMENT |
| MEDIUM | tests/flow/test_index_scans.py | 752 | # issue query which has to potential to utilize an index | COMMENT |
| MEDIUM | tests/flow/test_index_scans.py | 775 | # issue query which not utilize an index | COMMENT |
| MEDIUM | tests/flow/test_udf.py | 1217 | # restart server (test harness utility) | STRING |
| MEDIUM | tests/flow/test_call_subquery.py | 1366 | # assert that we indeed utilize the index to find the node | STRING |
| MEDIUM | tests/flow/test_index_delete.py | 247 | # utilize the index for a scan, followed by a deletion of the indexed | COMMENT |
| MEDIUM | .github/dependabot.yml | 75 | # The benchmark harness is a separate uv project (bench/pyproject.toml + | COMMENT |
| MEDIUM | .github/workflows/benchmark-cov.yml | 3 | # Runs `bench/` — the per-query harness (317 queries) — for this PR, its base and | COMMENT |
| MEDIUM | .github/workflows/benchmark-cov.yml | 517 | # the harness to expand over the shards, not the shell. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/flow/test_traversal_construction.py | 238 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 240 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 241 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 242 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 243 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 244 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 246 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 247 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 248 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 249 | CODE | |
| MEDIUM | tests/flow/test_traversal_construction.py | 250 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 581 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 588 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 589 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 591 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 592 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 595 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 596 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 598 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 599 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 602 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 603 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 604 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 607 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 615 | CODE | |
| MEDIUM | tests/flow/test_persistency.py | 618 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/src/falkorbench/metrics.py | 106 | CODE | |
| LOW | bench/src/falkorbench/measure.py | 211 | CODE | |
| LOW | bench/src/falkorbench/client.py | 200 | CODE | |
| LOW | bench/src/falkorbench/callgrind.py | 132 | CODE | |
| LOW | bench/src/falkorbench/compare.py | 54 | CODE | |
| LOW | tests/test_functions.py | 45 | CODE | |
| LOW | tests/test_functions.py | 67 | CODE | |
| LOW | tests/record.py | 79 | CODE | |
| LOW | tests/record.py | 112 | CODE | |
| LOW | tests/test_e2e.py | 46 | CODE | |
| LOW | tests/test_e2e.py | 245 | CODE | |
| LOW | tests/test_e2e.py | 954 | CODE | |
| LOW | tests/tck/falkor_utils/assertions.py | 74 | CODE | |
| LOW | tests/tck/falkor_utils/assertions.py | 128 | CODE | |
| LOW | tests/flow/test_stress.py | 118 | CODE | |
| LOW | tests/flow/test_stress.py | 141 | CODE | |
| LOW | tests/flow/test_defrag.py | 166 | CODE | |
| LOW | tests/flow/test_defrag.py | 335 | CODE | |
| LOW | tests/flow/test_defrag.py | 219 | CODE | |
| LOW | tests/flow/test_defrag.py | 407 | CODE | |
| LOW | tests/flow/effects_common.py | 336 | CODE | |
| LOW | tests/flow/graph_utils.py | 10 | CODE | |
| LOW | tests/flow/test_persistency.py | 109 | CODE | |
| LOW | tests/flow/test_matrix_split.py | 85 | CODE | |
| LOW | tests/flow/common.py | 390 | CODE | |
| LOW | tests/flow/test_create_clause.py | 228 | CODE | |
| LOW | tests/flow/test_path_algorithms.py | 895 | CODE | |
| LOW | tests/flow/test_filters.py | 43 | CODE | |
| LOW | tests/flow/test_constraint.py | 1237 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/flow/common.py | 56 | # ──── Private container orchestration (CI path) ───────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/agentics-maintenance.yml | 24 | # This file defines the generated agentic maintenance workflow for this repository. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tck/falkor_utils/assertions.py | 22 | CODE | |
| LOW | tests/tck/falkor_utils/assertions.py | 37 | CODE | |
| LOW | tests/flow/constraint_utils.py | 118 | CODE | |
| LOW | tests/flow/test_pending_queries_limit.py | 54 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/flow/test_graph_copy.py | 341 | dummy_id = "dummy" | CODE |
| LOW | tests/flow/test_graph_copy.py | 345 | dummy_graph = self.db.select_graph(dummy_id) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | graph/src/runtime/ops/limit.rs | 47 | // TODO: implement size_hint for all operators | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/flow/test_udf.py | 565 | # make sure to include the 'KNOWS' relationship type | COMMENT |