{"record":{"id":"e84be112cb34686f","repo":"pola-rs/polars","slug":"you-need-to-pass-delta-merge-options-with-at-least","errorCode":null,"errorMessage":"you need to pass delta_merge_options with at least a given predicate for `MERGE` to work.","messagePattern":"you need to pass delta_merge_options with at least a given predicate for `MERGE` to work\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/dataframe/frame.py","lineNumber":5046,"sourceCode":"        if credential_provider_builder and (\n            provider := credential_provider_builder.build_credential_provider()\n        ):\n            credential_provider_creds = (\n                _get_credentials_from_provider_expiry_aware(provider) or {}\n            )\n\n        # We aren't calling into polars-native write functions so we just update\n        # the storage_options here.\n        storage_options = (\n            {**(storage_options or {}), **credential_provider_creds}\n            if storage_options is not None or credential_provider_builder is not None\n            else None\n        )\n\n        if mode == \"merge\":\n            if delta_merge_options is None:\n                msg = \"you need to pass delta_merge_options with at least a given predicate for `MERGE` to work.\"\n                raise ValueError(msg)\n            if isinstance(target, str):\n                dt = DeltaTable(table_uri=target, storage_options=storage_options)\n            else:\n                dt = target\n\n            return dt.merge(self, **delta_merge_options)\n\n        else:\n            if delta_write_options is None:\n                delta_write_options = {}\n\n            if overwrite_schema:\n                delta_write_options[\"schema_mode\"] = \"overwrite\"\n\n            write_deltalake(\n                table_or_uri=target,\n                data=self,\n                mode=mode,","sourceCodeStart":5028,"sourceCodeEnd":5064,"githubUrl":"https://github.com/pola-rs/polars/blob/df599052daf96e7a9cc30a3b0c6bd25d6947e3c0/py-polars/src/polars/dataframe/frame.py#L5028-L5064","documentation":"Error \"you need to pass delta_merge_options with at least a given predicate for `MERGE` to work.\" thrown in pola-rs/polars.","triggerScenarios":"Thrown at py-polars/src/polars/dataframe/frame.py:5046 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"df599052daf96e7a9cc30a3b0c6bd25d6947e3c0","analyzedAt":"2026-08-16T12:10:03.978Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}