From e7ed3d5dab40b81839d8fcef22869589a886d8ae Mon Sep 17 00:00:00 2001 From: Jack Ye Date: Sat, 11 Apr 2026 22:15:28 -0700 Subject: [PATCH] fix: merge user storage_options in server-side create_table _create_table_server_side was only passing self.storage_options (connection-level) to CreateTableRequest, ignoring the user-provided storage_options parameter. This caused per-table options like new_table_data_storage_version to be silently dropped. Fix both sync and async paths to merge user options on top of connection options. Co-Authored-By: Claude Opus 4.6 (1M context) --- python/python/lancedb/namespace.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/python/python/lancedb/namespace.py b/python/python/lancedb/namespace.py index 7b53ff5d9..0cc83af31 100644 --- a/python/python/lancedb/namespace.py +++ b/python/python/lancedb/namespace.py @@ -607,10 +607,13 @@ class LanceNamespaceDBConnection(DBConnection): fill_value=fill_value, ) + merged = dict(self.storage_options or {}) + if storage_options: + merged.update(storage_options) request = CreateTableRequest( id=table_id, mode=_normalize_create_table_mode(mode), - properties=self.storage_options if self.storage_options else None, + properties=merged or None, ) try: @@ -1147,10 +1150,13 @@ class AsyncLanceNamespaceDBConnection: fill_value=fill_value, ) + merged = dict(self.storage_options or {}) + if storage_options: + merged.update(storage_options) request = CreateTableRequest( id=table_id, mode=_normalize_create_table_mode(mode), - properties=self.storage_options if self.storage_options else None, + properties=merged or None, ) self._namespace_client.create_table(request, arrow_ipc_bytes)