apache / apache/fluss-rust

[elixir] Allow setting custom properties when creating a table

Open
#641 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
58
Forks
50
PR merge metrics
No merged PRs in 30d

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/fluss-rust/issues) and found nothing similar.

### Description

Similarly to https://github.com/apache/fluss-rust/issues/587, it is not currently possible to set custom properties on a table from the elixir bindings.

The existing `:properties` option routes to the core `.property()` builder, which validates against known Fluss table properties and rejects arbitrary keys. For example, `properties: [{"k", "v"}]` fails with:

> `invalid_config_exception` (code 39): `'k' is not a Fluss table property.
> Please use '.customProperty(..)' to set custom properties.`

The upstream Rust `TableDescriptor` builder already supports this — `.comment(...)`, `.custom_property(...)`, and `.custom_properties(...)` in `crates/fluss/src/metadata/table.rs`. The Elixir layer simply doesn't expose them.

### Willingness to contribute

- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the Elixir table-creation binding and compare its options with the Rust TableDescriptor builder in crates/fluss/src/metadata/table.rs, especially comment, custom_property, and custom_properties. Add the missing Elixir exposure and verify that properties such as {"k", "v"} can be supplied without the invalid_config_exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir, rust
Domain
api, backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.