A native Rust library for Delta Lake, with bindings into Python
This report presents the forensic synthetic code analysis of delta-io/delta-rs, a Rust project with 3,277 GitHub stars. SynthScan v2.0 examined 170,512 lines of code across 847 source files, recording 749 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 5.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).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
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 749 distinct pattern matches across 20 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 | python/deltalake/transaction.py | 79 | def create_table_with_add_actions( | CODE |
| LOW | python/deltalake/__init__.py | 88 | def enable_nanosecond_timestamps() -> None: | CODE |
| LOW | python/deltalake/__init__.py | 116 | def _disable_nanosecond_timestamps() -> None: | CODE |
| LOW | python/deltalake/__init__.py | 133 | def _nanosecond_timestamps_enabled() -> bool: | CODE |
| LOW | python/deltalake/_util.py | 24 | def deprecate_positional_commit_args( | CODE |
| LOW | python/deltalake/table.py | 1168 | def _stringify_partition_values( | CODE |
| LOW | python/deltalake/table.py | 1377 | def __datafusion_table_provider__(self, session: Any | None = None) -> Any: | CODE |
| LOW | python/deltalake/table.py | 1688 | def when_not_matched_insert_all( | CODE |
| LOW | python/deltalake/table.py | 1786 | def when_not_matched_by_source_update( | CODE |
| LOW | python/deltalake/table.py | 1836 | def when_not_matched_by_source_delete( | CODE |
| LOW | python/deltalake/writer/_utils.py | 12 | def try_get_table_and_table_uri( | CODE |
| LOW | python/tests/test_datafusion.py | 10 | def _datafusion_major_version() -> int | None: | CODE |
| LOW | python/tests/test_datafusion.py | 17 | def test_datafusion_table_provider_incompatible_version_errors(tmp_path, monkeypatch): | CODE |
| LOW | python/tests/test_datafusion.py | 48 | def test_datafusion_table_provider_not_installed_errors(tmp_path, monkeypatch): | CODE |
| LOW | python/tests/test_datafusion.py | 69 | def test_datafusion_table_provider_accepts_session_keyword_argument( | CODE |
| LOW | python/tests/test_datafusion.py | 89 | def test_datafusion_table_provider_invalid_task_ctx_capsule_name_errors( | CODE |
| LOW | python/tests/test_datafusion.py | 105 | def __datafusion_task_context_provider__(self): | CODE |
| LOW | python/tests/test_datafusion.py | 121 | def test_datafusion_table_provider(tmp_path): | CODE |
| LOW | python/tests/conftest.py | 30 | def pytest_collection_modifyitems( | CODE |
| LOW | python/tests/conftest.py | 44 | def wait_till_host_is_available(host: str, timeout_sec: int = 0.5): | CODE |
| LOW | python/tests/conftest.py | 337 | def sample_table_with_spaces_numbers() -> Table: | CODE |
| LOW | python/tests/conftest.py | 404 | def nanosecond_timestamps_enabled(): | CODE |
| LOW | python/tests/test_stats.py | 77 | def test_microsecond_truncation_parquet_stats(tmp_path, use_stats_struct): | CODE |
| LOW⚡ | python/tests/test_alter.py | 62 | def test_add_constraint_roundtrip_metadata(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW⚡ | python/tests/test_alter.py | 133 | def test_set_table_properties_min_writer_version( | CODE |
| LOW⚡ | python/tests/test_alter.py | 411 | def test_add_timestamp_ntz_column(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW⚡ | python/tests/test_alter.py | 416 | def test_add_timestamp_nanos_column(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW⚡ | python/tests/test_alter.py | 423 | def test_add_timestamp_nanos_ntz_column(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW⚡ | python/tests/test_alter.py | 576 | def test_drop_column_not_null_roundtrip_metadata(tmp_path: pathlib.Path): | CODE |
| LOW⚡ | python/tests/test_alter.py | 587 | def test_drop_column_not_null_unknown_column(tmp_path: pathlib.Path): | CODE |
| LOW⚡ | python/tests/test_alter.py | 596 | def test_drop_column_not_null_already_nullable(tmp_path: pathlib.Path): | CODE |
| LOW | python/tests/test_alter.py | 90 | def test_drop_constraint_invalid(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 105 | def test_drop_constraint_invalid_ignore(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 114 | def test_drop_constraint_roundtrip_metadata( | CODE |
| LOW | python/tests/test_alter.py | 155 | def test_set_table_properties_invalid_min_writer_version( | CODE |
| LOW | python/tests/test_alter.py | 174 | def test_set_table_properties_min_reader_version( | CODE |
| LOW | python/tests/test_alter.py | 197 | def test_set_table_properties_invalid_min_reader_version( | CODE |
| LOW | python/tests/test_alter.py | 215 | def test_set_table_properties_enable_cdf(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 230 | def test_set_table_properties_enable_cdf_invalid( | CODE |
| LOW | python/tests/test_alter.py | 248 | def test_set_table_properties_enable_cdf_value_false( | CODE |
| LOW | python/tests/test_alter.py | 265 | def test_set_table_properties_enable_cdf_with_writer_version_bumped( | CODE |
| LOW | python/tests/test_alter.py | 288 | def test_set_table_properties_enable_cdf_and_deletion_vectors( | CODE |
| LOW | python/tests/test_alter.py | 348 | def test_set_table_properties_enable_dv(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 369 | def test_add_column_primitive(existing_sample_table: DeltaTable): | CODE |
| LOW | python/tests/test_alter.py | 386 | def test_add_field_in_struct_column(existing_table: DeltaTable): | CODE |
| LOW | python/tests/test_alter.py | 485 | def test_add_feature_variations(existing_table: DeltaTable, feature): | CODE |
| LOW | python/tests/test_alter.py | 496 | def test_add_features_disallowed_protocol_increase(existing_sample_table: DeltaTable): | CODE |
| LOW | python/tests/test_alter.py | 559 | def test_drop_column_not_null(tmp_path: pathlib.Path): | CODE |
| LOW | python/tests/test_alter.py | 639 | def test_set_table_description(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 657 | def test_set_table_metadata_with_post_commithook_properties( | CODE |
| LOW | python/tests/test_alter.py | 683 | def test_set_table_name_overwrite(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 695 | def test_set_table_description_overwrite(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 709 | def test_set_table_name_character_limit(tmp_path: pathlib.Path, sample_table: Table): | CODE |
| LOW | python/tests/test_alter.py | 725 | def test_set_table_description_character_limit( | CODE |
| LOW | python/tests/test_alter.py | 743 | def test_set_table_metadata_name_none_should_raise_error( | CODE |
| LOW | python/tests/test_generated_columns.py | 88 | def test_create_table_with_generated_columns(tmp_path, gc_schema: DeltaSchema): | CODE |
| LOW | python/tests/test_generated_columns.py | 121 | def test_write_with_gc_higher_writer_version(tmp_path, valid_gc_data): | CODE |
| LOW⚡ | python/tests/test_generated_columns.py | 139 | def test_write_with_invalid_gc(tmp_path, invalid_gc_data): | CODE |
| LOW⚡ | python/tests/test_generated_columns.py | 149 | def test_write_with_invalid_gc_to_table(table_with_gc, invalid_gc_data): | CODE |
| LOW⚡ | python/tests/test_generated_columns.py | 159 | def test_write_to_table_generating_data(table_with_gc: DeltaTable): | CODE |
| 324 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 101 | tpe = "tpe" | COMMENT |
| LOW | rust-toolchain.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | crates/opendal/tests/integration_s3.rs | 1 | //! End-to-end test of the generic OpenDAL backend over the `s3` service. | COMMENT |
| LOW | crates/opendal/src/lib.rs | 41 | /// | COMMENT |
| LOW | …tes/core/tests/it_datafusion/integration_datafusion.rs | 761 | // In particular 'new_column' contains statistics for when it | COMMENT |
| LOW | …tes/core/tests/it_datafusion/integration_datafusion.rs | 781 | COMMENT | |
| LOW | …tes/core/tests/it_datafusion/integration_datafusion.rs | 801 | // .get(schema.index_of("timestamp").unwrap()) | COMMENT |
| LOW | …tes/core/tests/it_datafusion/integration_datafusion.rs | 1141 | // let batch = create_all_types_batch(1, 0, 0); | COMMENT |
| LOW | crates/core/src/lib.rs | 1 | //! Native Delta Lake implementation in Rust | COMMENT |
| LOW | crates/core/src/lib.rs | 21 | //! let table_url = Url::from_directory_path("/abs/test/tests/data/simple_table").unwrap(); | COMMENT |
| LOW | crates/core/src/lib.rs | 41 | //! let version = table.version(); | COMMENT |
| LOW | crates/core/src/lib.rs | 61 | //! # #[cfg(feature="datafusion")] | COMMENT |
| LOW | crates/core/src/lib.rs | 181 | Ok(table) | COMMENT |
| LOW | crates/core/src/lib.rs | 241 | ); | COMMENT |
| LOW | crates/core/src/errors.rs | 101 | /// Error returned when attempting to write bad data to the table | COMMENT |
| LOW | crates/core/src/data_catalog/storage/mod.rs | 21 | /// A `SchemaProvider` that scans an `ObjectStore` to automatically discover delta tables. | COMMENT |
| LOW | crates/core/src/logstore/factories.rs | 101 | /// Trait for generating [LogStore] implementations | COMMENT |
| LOW | crates/core/src/logstore/config.rs | 1 | //! Configuration for the Delta Log Store. | COMMENT |
| LOW | crates/core/src/logstore/config.rs | 21 | /// input or the environment can be applied generically by key name. | COMMENT |
| LOW | crates/core/src/logstore/config.rs | 101 | /// Runtime configuration. | COMMENT |
| LOW | crates/core/src/logstore/config.rs | 121 | pub certificate: Option<CertificateConfig>, | COMMENT |
| LOW | crates/core/src/logstore/config.rs | 321 | /// Parse a configuration value as a plain string (an infallible identity conversion). | COMMENT |
| LOW | crates/core/src/logstore/mod.rs | 1 | //! # DeltaLake storage system | COMMENT |
| LOW | crates/core/src/logstore/mod.rs | 21 | //! on the atomicity and durability guarantees of the implementation of this interface. | COMMENT |
| LOW | crates/core/src/logstore/mod.rs | 161 | pub(crate) static DELTA_LOG_REGEX: LazyLock<Regex> = | COMMENT |
| LOW | crates/core/src/logstore/mod.rs | 361 | /// the implementation of this interface. Specifically, | COMMENT |
| LOW | crates/core/src/logstore/storage/retry_ext.rs | 1 | //! Retry extension for [`ObjectStore`] | COMMENT |
| LOW | crates/core/src/logstore/storage/retry_ext.rs | 21 | /// This trait provides additional methods for working with [`ObjectStore`] that automatically retry | COMMENT |
| LOW | crates/core/src/protocol/checkpoints.rs | 101 | /// - strictly less than the provided `until_version`. | COMMENT |
| LOW | crates/core/src/protocol/mod.rs | 221 | pub action_type: String, | COMMENT |
| LOW | crates/core/src/protocol/mod.rs | 241 | /// Would usually only create the table, if also data is written, | COMMENT |
| LOW | crates/core/src/protocol/mod.rs | 801 | ), | COMMENT |
| LOW | crates/core/src/operations/vacuum.rs | 1 | //! Vacuum a Delta table | COMMENT |
| LOW | crates/core/src/operations/vacuum.rs | 81 | #[derive(Debug, Default, Clone, PartialEq)] | COMMENT |
| LOW | crates/core/src/operations/generate.rs | 1 | //! | COMMENT |
| LOW | crates/core/src/operations/generate.rs | 21 | //! ├── part-00006-d0ec7722-b30c-4e1c-92cd-b4fe8d3bb954-c000.snappy.parquet | COMMENT |
| LOW | crates/core/src/operations/generate.rs | 41 | //! │ │ │ └── manifest | COMMENT |
| LOW | crates/core/src/operations/generate.rs | 61 | //! │ └── part-00000-89cdd4c8-2af7-4add-8ea3-3990b2f027b5.c000.snappy.parquet | COMMENT |
| LOW | crates/core/src/operations/optimize.rs | 1 | //! Optimize a Delta Table | COMMENT |
| LOW | crates/core/src/operations/delete.rs | 1 | //! Delete records from a Delta Table that satisfy a predicate | COMMENT |
| LOW | crates/core/src/operations/delete.rs | 21 | //! # let schema = StructType::try_new(vec![ | COMMENT |
| LOW | crates/core/src/operations/delete.rs | 121 | } | COMMENT |
| LOW | crates/core/src/operations/update.rs | 1 | //! Update records from a Delta Table for records satisfy a predicate | COMMENT |
| LOW | crates/core/src/operations/filesystem_check.rs | 1 | //! Audit the Delta Table for active files that do not exist in the underlying filesystem and remove them. | COMMENT |
| LOW | crates/core/src/operations/cdc.rs | 61 | /// | COMMENT |
| LOW | crates/core/src/operations/restore.rs | 1 | //! Perform restore of delta table to a specified version or datetime | COMMENT |
| LOW | crates/core/src/operations/mod.rs | 1 | //! High level operations API to interact with Delta tables | COMMENT |
| LOW | crates/core/src/operations/mod.rs | 81 | impl DeltaTable { | COMMENT |
| LOW | crates/core/src/operations/mod.rs | 321 | COMMENT | |
| LOW | crates/core/src/operations/mod.rs | 361 | /// Create a new [`DeltaOps`] instance, backed by an un-initialized in memory table | COMMENT |
| LOW | crates/core/src/operations/mod.rs | 381 | /// Create a new Delta table | COMMENT |
| LOW | crates/core/src/operations/load_cdf.rs | 1 | //! Module for reading the change datafeed of delta tables | COMMENT |
| LOW | crates/core/src/operations/load_cdf.rs | 381 | #[inline] | COMMENT |
| LOW | crates/core/src/operations/write/mod.rs | 1 | //! | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 1 | //! Merge data from a source dataset with the target Delta Table based on a join | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 221 | custom_execute_handler: None, | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 241 | /// .when_matched_update(|update| { | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 261 | self.match_operations.push(op); | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 301 | /// evaluated to determine if the corresponding operation are performed. | COMMENT |
| LOW | crates/core/src/operations/merge/mod.rs | 321 | where | COMMENT |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | Cargo.toml | 103 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | Cargo.toml | 105 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | Cargo.toml | 114 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 17 | //! ┌─────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 23 | //! └─────────────┬───────────────┘ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 25 | //! ─────────────────────┼──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 28 | //! ┌─────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 33 | //! └─────────────┬───────────────┘ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 36 | //! ┌───────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 38 | //! │ ┌───────────────────────────────┐ │ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 44 | //! │ └──────────────┬────────────────┘ │ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 47 | //! │ ┌───────────────────────────────┐ │ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 54 | //! │ └───────────────────────────────┘ │ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 56 | //! └────────────────┬──────────────────┘ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 59 | //! ┌───────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 65 | //! └──────────────┬────────────────┘ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 68 | //! ┌───────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | crates/core/src/kernel/transaction/mod.rs | 74 | //! └───────────────────────────────┘ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/core/src/operations/write/mod.rs | 2584 | Arc::new(StringArray::from(vec![Some("555-4242")])), | CODE |
| LOW | crates/core/src/kernel/transaction/mod.rs | 1291 | ("userName".to_owned(), json!("Jane Doe")), | CODE |
| LOW | crates/core/src/kernel/transaction/mod.rs | 1306 | assert_eq!(info.user_name.as_deref(), Some("Jane Doe")); | CODE |
| LOW⚡ | python/tests/test_alter.py | 67 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_alter.py | 72 | assert dt.history(1)[0]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_alter.py | 126 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_alter.py | 129 | assert dt.history(1)[0]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_alter.py | 581 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_alter.py | 584 | assert dt.history(1)[0]["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_writer.py | 2776 | "details": {"address": "123 Main St", "email": "charlie@example.com"}, | CODE |
| LOW | python/tests/test_optimize.py | 134 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_optimize.py | 145 | assert last_action["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_optimize.py | 173 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_optimize.py | 177 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_optimize.py | 445 | "details": {"address": "123 Main St", "email": "charlie@example.com"}, | CODE |
| LOW⚡ | python/tests/test_delete.py | 31 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_delete.py | 37 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_update.py | 70 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_update.py | 81 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_repair.py | 26 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_repair.py | 33 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_merge.py | 37 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_merge.py | 79 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_merge.py | 2586 | {"street": "123 Main St", "city": "Anytown", "state": "CA"}, | CODE |
| LOW | python/tests/test_create.py | 36 | commit_properties=CommitProperties(custom_metadata={"userName": "John Doe"}), | CODE |
| LOW | python/tests/test_create.py | 47 | assert dt.history()[0]["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_create.py | 112 | commit_properties=CommitProperties(custom_metadata={"userName": "John Doe"}), | CODE |
| LOW | python/tests/test_create.py | 127 | assert dt.history()[0]["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_create.py | 149 | commit_properties=CommitProperties(custom_metadata={"userName": "John Doe"}), | CODE |
| LOW | python/tests/test_create.py | 163 | assert dt.history()[0]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_create.py | 189 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_create.py | 212 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_create.py | 227 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_create.py | 258 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_restore.py | 35 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_restore.py | 39 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_convert_to_delta.py | 35 | commit_properties=CommitProperties(custom_metadata={"userName": "John Doe"}), | CODE |
| LOW | python/tests/test_convert_to_delta.py | 47 | assert dt.history()[0]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_lakefs.py | 115 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_lakefs.py | 123 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_lakefs.py | 238 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_lakefs.py | 245 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_lakefs.py | 374 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_lakefs.py | 415 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_lakefs.py | 447 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_lakefs.py | 451 | assert last_action["userName"] == "John Doe" | CODE |
| LOW | python/tests/test_lakefs.py | 547 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_lakefs.py | 558 | assert last_action["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_commit_properties.py | 219 | custom_metadata={"userName": "Jane Doe", "userId": "jane"} | CODE |
| LOW⚡ | python/tests/test_commit_properties.py | 224 | assert history["userName"] == "Jane Doe" | CODE |
| LOW⚡ | python/tests/test_commit_properties.py | 228 | assert raw_commit_info["userName"] == "Jane Doe" | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 103 | assert history[0]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 104 | assert history[1]["userName"] == "John Doe" | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 362 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 378 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 387 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 399 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW⚡ | python/tests/test_vacuum.py | 411 | commit = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | python/tests/test_vacuum.py | 82 | commit_properties = CommitProperties(custom_metadata={"userName": "John Doe"}) | CODE |
| LOW | …hon/tests/pyspark_integration/test_write_to_pyspark.py | 222 | "details": {"address": "123 Main St", "email": "charlie@example.com"}, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/deltalake/query.py | 1 | CODE | |
| LOW | python/deltalake/transaction.py | 1 | CODE | |
| LOW | python/deltalake/__init__.py | 8 | CODE | |
| LOW | python/deltalake/__init__.py | 8 | CODE | |
| LOW | python/deltalake/__init__.py | 8 | CODE | |
| LOW | python/deltalake/__init__.py | 8 | CODE | |
| LOW | python/deltalake/__init__.py | 20 | CODE | |
| LOW | python/deltalake/__init__.py | 21 | CODE | |
| LOW | python/deltalake/__init__.py | 21 | CODE | |
| LOW | python/deltalake/__init__.py | 21 | CODE | |
| LOW | python/deltalake/__init__.py | 21 | CODE | |
| LOW | python/deltalake/__init__.py | 22 | CODE | |
| LOW | python/deltalake/__init__.py | 22 | CODE | |
| LOW | python/deltalake/__init__.py | 23 | CODE | |
| LOW | python/deltalake/__init__.py | 23 | CODE | |
| LOW | python/deltalake/__init__.py | 24 | CODE | |
| LOW | python/deltalake/__init__.py | 24 | CODE | |
| LOW | python/deltalake/__init__.py | 24 | CODE | |
| LOW | python/deltalake/__init__.py | 24 | CODE | |
| LOW | python/deltalake/__init__.py | 24 | CODE | |
| LOW | python/deltalake/exceptions.py | 1 | CODE | |
| LOW | python/deltalake/exceptions.py | 1 | CODE | |
| LOW | python/deltalake/exceptions.py | 1 | CODE | |
| LOW | python/deltalake/exceptions.py | 1 | CODE | |
| LOW | python/deltalake/exceptions.py | 1 | CODE | |
| LOW | python/deltalake/table.py | 1 | CODE | |
| LOW | python/deltalake/table.py | 42 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/schema.py | 3 | CODE | |
| LOW | python/deltalake/writer/_conversion.py | 1 | CODE | |
| LOW | python/deltalake/writer/properties.py | 1 | CODE | |
| LOW | python/deltalake/writer/__init__.py | 1 | CODE | |
| LOW | python/deltalake/writer/__init__.py | 2 | CODE | |
| LOW | python/deltalake/writer/__init__.py | 2 | CODE | |
| LOW | python/deltalake/writer/__init__.py | 2 | CODE | |
| LOW | python/deltalake/writer/__init__.py | 7 | CODE | |
| LOW | python/deltalake/writer/writer.py | 1 | CODE | |
| LOW | python/deltalake/writer/_utils.py | 1 | CODE | |
| LOW | python/deltalake/writer/convert_to.py | 1 | CODE | |
| LOW | python/deltalake/fs/_base_handler.py | 1 | CODE | |
| LOW | python/deltalake/fs/_base_handler.py | 10 | CODE | |
| LOW | python/deltalake/fs/_base_handler.py | 11 | CODE | |
| LOW | python/deltalake/fs/_base_handler.py | 11 | CODE | |
| LOW | python/deltalake/fs/fs_handler.py | 1 | CODE | |
| LOW | python/deltalake/fs/__init__.py | 1 | CODE | |
| LOW | python/tests/conftest.py | 1 | CODE | |
| LOW | python/tests/test_threaded.py | 20 | CODE | |
| LOW | python/tests/test_benchmark.py | 1 | CODE | |
| LOW | python/tests/test_convert_to_delta.py | 12 | CODE | |
| LOW | python/tests/test_history.py | 9 | CODE | |
| LOW | python/tests/test_commit_properties.py | 1 | CODE | |
| LOW | python/tests/pyspark_integration/utils.py | 4 | CODE | |
| LOW | python/tests/data_acceptance/test_reader.py | 1 | CODE | |
| LOW | docs/_build/macro.py | 3 | CODE | |
| LOW | docs/_build/macro.py | 5 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/deltalake/writer/_conversion.py | 36 | # Prevent infinite recursion: if existing field is also null, keep as null | COMMENT |
| HIGH | python/deltalake/fs/_base_handler.py | 66 | return self._handler.equals(other) | CODE |
| HIGH | python/tests/test_delete.py | 67 | assert table.equals(expected_table) | CODE |
| HIGH | python/tests/test_delete.py | 140 | assert table.equals(expected_table) | CODE |
| HIGH | python/tests/test_merge.py | 3401 | assert result.equals(expected) | CODE |
| HIGH | python/tests/test_file_system_handler.py | 153 | assert table.equals(arrow_table) | CODE |
| HIGH | python/tests/test_file_system_handler.py | 172 | assert table.equals(ds_table) | CODE |
| HIGH | python/tests/test_file_system_handler.py | 191 | assert table.equals(ds_table) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 11 | ## Using AI-generated code | COMMENT |
| HIGH | CONTRIBUTING.md | 17 | generated by AI with little to no engagement from the author may be closed | CODE |
| HIGH | CONTRIBUTING.md | 44 | Foundation's](https://apache.org) [guidance on AI-generated | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/deltalake/transaction.py | 79 | CODE | |
| LOW | python/deltalake/table.py | 222 | CODE | |
| LOW | python/deltalake/table.py | 823 | CODE | |
| LOW | python/deltalake/table.py | 2233 | CODE | |
| LOW | python/deltalake/table.py | 2319 | CODE | |
| LOW | python/deltalake/writer/properties.py | 160 | CODE | |
| LOW | python/deltalake/writer/writer.py | 27 | CODE | |
| LOW | python/deltalake/writer/writer.py | 46 | CODE | |
| LOW | python/deltalake/writer/writer.py | 65 | CODE | |
| LOW | python/deltalake/writer/convert_to.py | 23 | CODE | |
| LOW | python/tests/test_generated_columns.py | 57 | CODE | |
| LOW | python/tests/test_generated_columns.py | 64 | CODE | |
| LOW | python/tests/test_generated_columns.py | 76 | CODE | |
| LOW | python/tests/test_cleanup.py | 39 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/conftest.py | 53 | except Exception: | CODE |
| LOW | python/tests/test_tracing.py | 130 | except Exception as e: | CODE |
| LOW | python/tests/test_threaded.py | 38 | except Exception as e: | CODE |
| LOW | python/tests/test_threaded.py | 155 | except Exception as err: | CODE |
| LOW | python/tests/test_threaded.py | 171 | except Exception as err: | CODE |
| MEDIUM | python/tests/test_threaded.py | 146 | def run_update(): | CODE |
| LOW | python/tests/test_cleanup.py | 18 | except Exception as e: | CODE |
| MEDIUM | python/tests/test_cleanup.py | 19 | print(f"Error deleting directory {data_path}: {e}") | CODE |
| LOW | python/tests/test_benchmark.py | 200 | except Exception: | CODE |
| LOW | python/tests/test_delete_writer_properties.py | 111 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | python/tests/test_optimize.py | 432 | # Define the data for the first write | COMMENT |
| MEDIUM | python/tests/test_delete_writer_properties.py | 41 | # Create a Delta table - use write_deltalake like other tests | COMMENT |
| MEDIUM | python/tests/test_delete_writer_properties.py | 137 | # Create a Delta table | COMMENT |
| MEDIUM | .github/labeler.yml | 2 | # This file contains the defined labels for <https://github.com/actions/labeler> | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/README.md | 56 | # For authentication, set OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=your-api-key" | COMMENT |
| HIGH | python/deltalake/__init__.py | 75 | os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = "x-honeycomb-team=your-api-key" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/core/src/protocol/checkpoints.rs | 134 | // Step 1: Find min_retention_version among DELTA_LOG files with ts >= cutoff_timestamp | COMMENT |
| LOW⚡ | crates/core/src/protocol/checkpoints.rs | 152 | // Step 2: Move keep_version down to the minimum version inside the retention period to make sure | COMMENT |
| LOW⚡ | crates/core/src/protocol/checkpoints.rs | 156 | // Step 3: Find safe checkpoint with checkpoint_version <= keep_version (no ts restriction) | COMMENT |
| LOW | crates/core/src/protocol/checkpoints.rs | 181 | // Step 4: Delete DELTA_LOG files where log_ver < safe_checkpoint_version && ts <= cutoff_timestamp | COMMENT |
| LOW | crates/core/src/kernel/transaction/conflict_checker.rs | 493 | // Here we need to check if the current transaction would have read the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/core/src/protocol/checkpoints.rs | 134 | // Step 1: Find min_retention_version among DELTA_LOG files with ts >= cutoff_timestamp | COMMENT |
| LOW⚡ | crates/core/src/protocol/checkpoints.rs | 152 | // Step 2: Move keep_version down to the minimum version inside the retention period to make sure | COMMENT |
| LOW⚡ | crates/core/src/protocol/checkpoints.rs | 156 | // Step 3: Find safe checkpoint with checkpoint_version <= keep_version (no ts restriction) | COMMENT |
| LOW | crates/core/src/protocol/checkpoints.rs | 181 | // Step 4: Delete DELTA_LOG files where log_ver < safe_checkpoint_version && ts <= cutoff_timestamp | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/deltalake/query.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | python/deltalake/__init__.py | 140 | __all__ = [ | CODE |
| LOW | python/deltalake/exceptions.py | 9 | __all__ = [ | CODE |
| LOW | python/deltalake/table.py | 1142 | def update_incremental(self) -> None: | CODE |
| LOW | python/deltalake/schema.py | 13 | __all__ = [ | CODE |
| LOW | python/deltalake/writer/__init__.py | 9 | __all__ = [ | CODE |
| LOW | python/deltalake/fs/__init__.py | 3 | __all__ = ["DeltaStorageHandler"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/deltalake/_util.py | 6 | CODE | |
| LOW | python/deltalake/table.py | 687 | CODE | |
| LOW | python/deltalake/writer/_conversion.py | 7 | CODE | |
| LOW | python/deltalake/writer/_conversion.py | 26 | CODE | |
| LOW | python/deltalake/writer/_conversion.py | 77 | CODE | |
| LOW | python/deltalake/writer/properties.py | 160 | CODE | |
| LOW | python/tests/test_writer.py | 1188 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/deltalake/table.py | 458 | Load the Change Data Feed (CDF) from the Delta table as a stream of record batches. Parameters: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/src/delta_datafusion/table_provider/next/scan/plan.rs | 8 | //! leverage predicates as best as possible both when integrating with | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/test_writer.py | 2193 | # Check if it properly takes skippingNumIndexCols from the config in the table | COMMENT |
| LOW | python/tests/test_writer.py | 2293 | # Check if it properly takes skippingNumIndexCols from the config in the table | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/test_benchmark.py | 17 | # NOTE: make sure to run these in release mode with | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dev/release/update_change_log.sh | 9 | # Usage: | COMMENT |