Skip to content

Conversation

@ebyhr
Copy link
Member

@ebyhr ebyhr commented Dec 30, 2025

Description

Change the default column mapping mode in Delta Lake to name so the connector can allow more column operations by default. As a side effect, this change updates the default reader version to 2 and the writer version to 5.

This PR also adds delta.column-mapping-mode config property so users can revert the default value to none if necessary.

All Databricks LTS versions support the name column mapping mode and those reader and writer versions.

Release notes

## Delta Lake
* TBD. ({issue}`issuenumber`)

@cla-bot cla-bot bot added the cla-signed label Dec 30, 2025
@github-actions github-actions bot added docs delta-lake Delta Lake connector labels Dec 30, 2025
@ebyhr ebyhr force-pushed the user/ebi/delta-column-mapping-mode branch from 8cfc2d4 to 55cbe02 Compare December 30, 2025 12:20
@ebyhr ebyhr force-pushed the user/ebi/delta-column-mapping-mode branch 4 times, most recently from 864c934 to 0baa136 Compare December 30, 2025 22:37
@ebyhr ebyhr force-pushed the user/ebi/delta-column-mapping-mode branch from 0baa136 to 15d52f5 Compare December 31, 2025 08:03
@ebyhr ebyhr marked this pull request as ready for review December 31, 2025 08:04
@findepi
Copy link
Member

findepi commented Dec 31, 2025

All Databricks LTS versions support the name column mapping mode and those reader and writer versions.

What is the default column mapping mode used by databricks and latest delta oss?

- `7 DAYS`
* - `delta.column-mapping-mode`
- Column mapping mode. Possible values are: `ID`, `NAME`, and `NONE`.
- `NAME`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why NAME to be the default?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good question. With Iceberg and Delta working out some compatibility frictions, i wonder what the default mode should be (or whether the ideal exists yet).

@ebyhr
Copy link
Member Author

ebyhr commented Jan 1, 2026

What is the default column mapping mode used by databricks and latest delta oss?

Both use none as the default column mapping mode.

Copy link
Member

@findepi findepi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am OK with the change directionally and i believe it's an improvement.
I haven't review the code carefully, so you may want second pair of eyes.

I am concerned about

  • this may be not the last time we change default mapping mode. maybe the ideal iceberg-compact mode doesn't exist yet?
  • DBX still using 'none' as the default. They also want the best for their uses (drop/rename columns working OOB), so maybe we're overlooking something when doing this switch?


@Test
@Override
public void testDropColumn()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

return columnMappingMode;
}

@Config("delta.column-mapping-mode")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delta.default-column-mapping-mode to indicate the value selected here is still overridable during CT

* `NONE`

Defaults to `NONE`.
Defaults to `NAME`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any other documentation pieces to update? Like do we eg say drop/rename column don't work out of the box and now they do?

the [VACUUM](delta-lake-vacuum) procedure. The equivalent catalog session
property is `vacuum_min_retention`.
- `7 DAYS`
* - `delta.column-mapping-mode`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update name here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants