)]}'
{
  "commit": "4e223ff09a70c0d54d7f658bc35cf66eb0b724df",
  "tree": "ee45a9eb454eda7c70db69a79fc29af8b2265a78",
  "parents": [
    "5b7ad645bde69f380bb5387100fde5f72804fded"
  ],
  "author": {
    "name": "kosiew",
    "email": "kosiew@gmail.com",
    "time": "Mon Jun 22 16:02:34 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 22 16:02:34 2026 +0800"
  },
  "message": "Add deprecation warnings for Expr passed to confirmed literal-only function arguments (#1605)\n\n* feat: add deprecation warning for Expr passed to literal-only args\n\n- Introduced shared `_warn_if_expr_for_literal_arg` in `functions/__init__.py`\n- Added `DeprecationWarning` for the following methods when `Expr` is passed as argument:\n- `encode(..., encoding\u003dExpr)`\n- `decode(..., encoding\u003dExpr)`\n- `digest(..., method\u003dExpr)`\n- `arrow_cast(..., data_type\u003dExpr)`\n- `arrow_try_cast(..., data_type\u003dExpr)`\n- `arrow_metadata(..., key\u003dExpr)`\n\ntest: update tests to check for warnings\n\n- Implemented tests in `test_functions.py` to ensure:\n- Warning is raised for `Expr` form\n- No warning for native literal form\n\n* fix(tests): resolve E501 line length issue in test_functions.py\n\n* feat: consolidate warning helpers and update temporal function calls\n\n- Collapsed warning helpers into a single function `_warn_if_expr_for_literal_arg` in `python/datafusion/functions/__init__.py`.\n- Updated callers of temporal functions `_date_part` and `_date_trunc` in `python/datafusion/functions/__init__.py`.\n- Modified the digest behavior test in `python/tests/test_functions.py` to use native method strings.\n- Updated the encode/decode behavior test to use native \"base64\" in `python/tests/test_functions.py`.\n\n* docs: update function examples in common-operations user guide\n\n- Replaced `string_literal(\"Float64\")` with `\"Float64\"` in examples.\n- Replaced `str_lit(\"Int32\")` with `\"Int32\"` in examples.\n- Removed unused `string_literal` and `str_lit` imports.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "50411825d7312af0466d1010418dece72a2f61d0",
      "old_mode": 33188,
      "old_path": "docs/source/user-guide/common-operations/functions.md",
      "new_id": "9939e2f0007c90f04fd6b57d07307ca6981cfad9",
      "new_mode": 33188,
      "new_path": "docs/source/user-guide/common-operations/functions.md"
    },
    {
      "type": "modify",
      "old_id": "54783f086dd268fc8512d1e1142542adc1839f42",
      "old_mode": 33188,
      "old_path": "python/datafusion/functions/__init__.py",
      "new_id": "9fb20dc159b443fea7365861fc6ba96c2c44f167",
      "new_mode": 33188,
      "new_path": "python/datafusion/functions/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "43dd706607b480468e55c9ee476189d864f6c984",
      "old_mode": 33188,
      "old_path": "python/tests/test_functions.py",
      "new_id": "894d81fcfd3449273157721d5ebda3f6c9037aac",
      "new_mode": 33188,
      "new_path": "python/tests/test_functions.py"
    }
  ]
}
