)]}'
{
  "commit": "300e321403524a7c61b7387a572f2c8b132e5c1e",
  "tree": "26c3ae03752c2839be2f52d985dc9310a5e1ca82",
  "parents": [
    "fa647c03cb47e442e1183ac2f34716e61b3aa138"
  ],
  "author": {
    "name": "Tim Saucer",
    "email": "timsaucer@gmail.com",
    "time": "Wed Sep 16 12:29:23 2026 -0400"
  },
  "committer": {
    "name": "Tim Saucer",
    "email": "timsaucer@gmail.com",
    "time": "Wed Sep 16 13:54:30 2026 -0400"
  },
  "message": "docs: correct the table duplicate rule and point at the binding section\n\nFour review nits, all documentation.\n\nThe no-shadowing rule was credited to DataFusion. It is not DataFusion\u0027s:\na `SchemaProvider` decides for itself whether a duplicate replaces or\nrefuses, and only the in-memory one a session starts with refuses.\n`with_extensions` does not ask — it settles the question during resolve,\nwhich is what buys one rule for every destination and a refusal while a\nfailure is still free, and which makes a bundle stricter than\n`register_table` against a provider that would have replaced. Said once\nin the collisions section and pointed at from the field docstring, the\nRust resolver and the test that pins it.\n\n`udtfs` pointed at the two-phase section for a claim whose canonical home\nis the binding section this PR added; `functions.md` and\n`table-providers.md` already point there.\n\nThe `Raises:` entry for a declared table did not mention two declarations\nresolving to one, and a rewrap had left \"registering a\" alone on a line.\n\nThe user guide now says what a caller meets: a bundle cannot take a table\nname they already used.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5065a6575bf2820e5dc51390396a02ad0e25e6f4",
      "old_mode": 33188,
      "old_path": "crates/core/src/context.rs",
      "new_id": "9a92c6055c202edb4c61b009d89d4c4228d05463",
      "new_mode": 33188,
      "new_path": "crates/core/src/context.rs"
    },
    {
      "type": "modify",
      "old_id": "6922acb2a2fd1fae6e69bca81dab73bb2eda2029",
      "old_mode": 33188,
      "old_path": "docs/source/extension-guide/bundles.md",
      "new_id": "11dc278c7a2079ac8beff059298484b45a46846f",
      "new_mode": 33188,
      "new_path": "docs/source/extension-guide/bundles.md"
    },
    {
      "type": "modify",
      "old_id": "e758bd5258a9496d550c5eaaeccc24985bb08eb3",
      "old_mode": 33188,
      "old_path": "docs/source/user-guide/extensions.md",
      "new_id": "7b75b64901c65e8523aedd86056ae4de2c9cfcac",
      "new_mode": 33188,
      "new_path": "docs/source/user-guide/extensions.md"
    },
    {
      "type": "modify",
      "old_id": "e7c446ed2ec6159b125578a10f65537225c4741c",
      "old_mode": 33188,
      "old_path": "python/datafusion/context.py",
      "new_id": "f46deb11e3fa276b59789edf42c7e2c78d367587",
      "new_mode": 33188,
      "new_path": "python/datafusion/context.py"
    },
    {
      "type": "modify",
      "old_id": "0181d0d1008e6706c95174250ea29bbb435f3b31",
      "old_mode": 33188,
      "old_path": "python/datafusion/extensions.py",
      "new_id": "8e89c5c43920e2c29be7b0a9f7c5cc42a3b0e283",
      "new_mode": 33188,
      "new_path": "python/datafusion/extensions.py"
    },
    {
      "type": "modify",
      "old_id": "99e6902afe8e6662da15e4a2ebb7cf291a2c1c22",
      "old_mode": 33188,
      "old_path": "python/tests/test_context.py",
      "new_id": "b160b5cae33b1ffaf2737d3123d7f61943bbe349",
      "new_mode": 33188,
      "new_path": "python/tests/test_context.py"
    }
  ]
}
