)]}'
{
  "commit": "5ac69f38fe0500d68d603167fce67acde5e3f261",
  "tree": "9367e10d26e4024915de0471fb7452ebd5a6d1bd",
  "parents": [
    "4292426a86010a6f5b04b9618ff5f8ce50c736a5"
  ],
  "author": {
    "name": "Nicoleta Lazar",
    "email": "nicoleta.lazar@fresha.com",
    "time": "Fri Jul 03 15:56:02 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 03 13:56:02 2026 +0100"
  },
  "message": "[elixir] feat: Support full table descriptor options in create_table (#647)\n\nThis commit brings the Elixir\u0027s create_table descriptor to full parity\nwith the native builder by also supporting :bucket_keys,\n:partition_keys, :custom_properties \u0026 comment.\n\nThe optional fields are bundled into a Fluss.TableDescriptor.Options struct\ndecoded across the NIF boundary as a NifStruct (NifTableOptions), rather than\ngrowing table_descriptor_new to seven positional arguments. This mirrors the\nexisting NifDatabaseDescriptor pattern and the Python binding, which builds the\ncore descriptor with unconditional .properties / .custom_properties /\n.partitioned_by / .distributed_by calls.\n\n:properties is now a map (was a list of {k, v} tuples), fixing a write/read\nasymmetry — get_table_info already reports properties as a map — and matching\n:custom_properties.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6de93683b5b925ecc4d1e37bf4aaefacca48e6f3",
      "old_mode": 33188,
      "old_path": "bindings/elixir/lib/fluss/native.ex",
      "new_id": "3713e72044353e64e89bbd2f48e70587e6a452cb",
      "new_mode": 33188,
      "new_path": "bindings/elixir/lib/fluss/native.ex"
    },
    {
      "type": "modify",
      "old_id": "b95b5a503bb1d8a39601153c67a39593418d6587",
      "old_mode": 33188,
      "old_path": "bindings/elixir/lib/fluss/table_descriptor.ex",
      "new_id": "9bd8485fddcc8f4da7ece7e745df79f54794b46a",
      "new_mode": 33188,
      "new_path": "bindings/elixir/lib/fluss/table_descriptor.ex"
    },
    {
      "type": "modify",
      "old_id": "410334fc0c193d468eb562c72031ec8e3591493f",
      "old_mode": 33188,
      "old_path": "bindings/elixir/native/fluss_nif/src/schema.rs",
      "new_id": "95b31bf203705b12a14cfcff0d16e5a6fdd894e1",
      "new_mode": 33188,
      "new_path": "bindings/elixir/native/fluss_nif/src/schema.rs"
    },
    {
      "type": "modify",
      "old_id": "8c34187a55674c18a1fbd1553f44e7e96db06a19",
      "old_mode": 33188,
      "old_path": "bindings/elixir/test/integration/admin_test.exs",
      "new_id": "1de7a1e74a8233764af1a25a5bc1416755cfe1f5",
      "new_mode": 33188,
      "new_path": "bindings/elixir/test/integration/admin_test.exs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c391319870fa50d32256966ec47060e7d5f1c92",
      "new_mode": 33188,
      "new_path": "bindings/elixir/test/table_descriptor_test.exs"
    }
  ]
}
