Description
CaseInsensitiveStringMap is Spark's wrapper that lowercases all config keys. In BaseLanceNamespaceSparkCatalog.initialize(), there are two places extracting options from it:
| Line |
Code |
Result |
| 225 |
new HashMap<>(options.asCaseSensitiveMap()) |
✅ Keys preserve original case |
| 254 |
new HashMap<>(options) |
❌ Keys are lowercased |
Line 254 produces namespaceOptions with all-lowercase keys, which is then passed to LanceNamespace.connect() and eventually to the storage backend. Any backend that expects case-sensitive config keys will fail to find them.
Fix
One-line change at line 254:
- Map<String, String> namespaceOptions = new HashMap<>(options);
+ Map<String, String> namespaceOptions = new HashMap<>(options.asCaseSensitiveMap());
Other paths (LanceDataset, LanceDataSource) already correctly use asCaseSensitiveMap().
Description
CaseInsensitiveStringMapis Spark's wrapper that lowercases all config keys. InBaseLanceNamespaceSparkCatalog.initialize(), there are two places extracting options from it:new HashMap<>(options.asCaseSensitiveMap())new HashMap<>(options)Line 254 produces
namespaceOptionswith all-lowercase keys, which is then passed toLanceNamespace.connect()and eventually to the storage backend. Any backend that expects case-sensitive config keys will fail to find them.Fix
One-line change at line 254:
Other paths (
LanceDataset,LanceDataSource) already correctly useasCaseSensitiveMap().