Skip to content

feat: add CreateTable REST storage options and properties and remove CreateEmptyTable#330

Merged
jackye1995 merged 1 commit intolance-format:mainfrom
jackye1995:ent-fixes
Apr 21, 2026
Merged

feat: add CreateTable REST storage options and properties and remove CreateEmptyTable#330
jackye1995 merged 1 commit intolance-format:mainfrom
jackye1995:ent-fixes

Conversation

@jackye1995
Copy link
Copy Markdown
Collaborator

Summary

  • add CreateTableRequest.storage_options and map both properties and storage_options through the REST CreateTable API as JSON-encoded query parameters
  • remove the deprecated CreateEmptyTable REST API, models, and hand-written core interface methods in generated and source docs/code
  • document the CreateTable REST translation more clearly, add 409 Conflict, and fix the Arrow stream content type in the impl spec

@github-actions github-actions Bot added python Python features java Java features rust Rust features labels Apr 21, 2026
@github-actions
Copy link
Copy Markdown
Contributor

ACTION NEEDED
Lance follows the Conventional Commits specification for release automation.

The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification.

For details on the error please inspect the "PR Title Check" action.

@jackye1995 jackye1995 changed the title Update CreateTable REST params and remove CreateEmptyTable feat: add CreateTable REST storage options and properties and remove CreateEmptyTable Apr 21, 2026
@github-actions github-actions Bot added the enhancement New feature or request label Apr 21, 2026
@jackye1995 jackye1995 merged commit 76be132 into lance-format:main Apr 21, 2026
7 of 8 checks passed
@LuciferYang
Copy link
Copy Markdown

Hey @jackye1995 — small heads-up from downstream on this one.

The refactor itself is reasonable, but removing these symbols turned out to affect previously-released Lance wheels via transitive resolution: their lance/namespace.py imports the old names from lance_namespace without a ceiling pin, so v0.7.0 gets pulled in and import lance fails. We noticed when pylance compat tests started failing on every PR right after v0.7.0 hit PyPI.

Concrete failure — lance CI run 24779766919, Compatibility Tests job:

Traceback (most recent call last):
  File ".../venv_2.0.1/site-packages/lance/__init__.py", line 35, in <module>
    from .namespace import (...)
  File ".../venv_2.0.1/site-packages/lance/namespace.py", line 18, in <module>
    from lance_namespace import (...)
ImportError: cannot import name 'CreateEmptyTableRequest' from 'lance_namespace'
  (.../venv_2.0.1/.../lance_namespace/__init__.py). Did you mean: 'CreateTableRequest'?

Worked around on our side in lance-format/lance#6597 (just pinning lance-namespace<0.7 in the compat-test venv). I also opened #331 in case you want to think about deprecation shims or a compat matrix for future bumps — no urgency, posting here mainly so the context sits near the change that introduced it.

Thanks for the refactor!

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

Labels

enhancement New feature or request java Java features python Python features rust Rust features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants