)]}'
{
  "commit": "5b7ad645bde69f380bb5387100fde5f72804fded",
  "tree": "62d5ef79ff5b3cd3c0db8fe1bd510987f6c283ef",
  "parents": [
    "ac436976c818af890b675b6497ecd725a3609eda"
  ],
  "author": {
    "name": "Tim Saucer",
    "email": "timsaucer@gmail.com",
    "time": "Wed Jun 17 18:21:53 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 17 18:21:53 2026 -0400"
  },
  "message": "feat: accept native Python literals on date/time functions (#1563)\n\nWiden date/time scalar function signatures to accept native Python\n``str``/``int`` literals alongside ``Expr``:\n\n- ``date_bin``: ``stride``, ``source``, ``origin`` accept ``Expr | str``.\n- ``make_date``, ``make_time``: components accept ``Expr | int``.\n- ``to_date``, ``to_time``, ``to_timestamp``, ``to_timestamp_{millis,\n  micros,nanos,seconds}``, ``to_unixtime``: ``*formatters`` accept\n  ``Expr | str``.\n\nAdd ``coerce_to_expr_list`` public helper in ``datafusion.expr`` mirroring\n``coerce_to_expr`` / ``ensure_expr_list`` for variadic call sites.\n``date_bin`` uses ``Expr.string_literal`` directly because its planner\ncoerces ``Utf8`` (not ``Utf8View``) literals to ``Interval``/``Timestamp``.\n\nCo-authored-by: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "be3a141232affa77347706a70e4c158d55c10169",
      "old_mode": 33188,
      "old_path": "python/datafusion/expr.py",
      "new_id": "d2560fbc4d9e6e74334c2f5957f7d3ab64624577",
      "new_mode": 33188,
      "new_path": "python/datafusion/expr.py"
    },
    {
      "type": "modify",
      "old_id": "9bffa3590cac910d5c4ac8d209ca735da62aff02",
      "old_mode": 33188,
      "old_path": "python/datafusion/functions/__init__.py",
      "new_id": "54783f086dd268fc8512d1e1142542adc1839f42",
      "new_mode": 33188,
      "new_path": "python/datafusion/functions/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "05f91acca269a086085e49947e6c9b942de42710",
      "old_mode": 33188,
      "old_path": "python/tests/test_expr.py",
      "new_id": "606c6a98478b8ab4f34f26c5025b828a8fa194b3",
      "new_mode": 33188,
      "new_path": "python/tests/test_expr.py"
    },
    {
      "type": "modify",
      "old_id": "73a7ad727a87564a516bebb92b456b58df436a4c",
      "old_mode": 33188,
      "old_path": "python/tests/test_functions.py",
      "new_id": "43dd706607b480468e55c9ee476189d864f6c984",
      "new_mode": 33188,
      "new_path": "python/tests/test_functions.py"
    }
  ]
}
