BaseLanceNamespaceSparkCatalog passes lowercased option keys to LanceNamespace.connect()
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 88/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- java, spark
- Domain
- data-engineering
Research direction
Start in BaseLanceNamespaceSparkCatalog.initialize() at line 254 and compare its option extraction with the case-preserving path at line 225. Update the namespace options path so original-case keys reach LanceNamespace.connect(), then verify that backend configuration keys are preserved.
Written by the indexing model from the issue text.
Description
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().
- Dominant language
- Java
- Stars
- 66
- Forks
- 85
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 30
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from lance-format/lance-spark
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
lance-format/lance-spark#768 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
lance-format/lance-spark#737 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
lance-format/lance-spark#127 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
lance-format/lance-spark#829 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 45/100
lance-format/lance-spark#816 ·
All issues in lance-format/lance-spark
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100