Skip to content

SODA: indexing + data guide (#203)#210

Merged
lemenkov merged 1 commit into
masterfrom
soda-5-indexing-203
Jun 25, 2026
Merged

SODA: indexing + data guide (#203)#210
lemenkov merged 1 commit into
masterfrom
soda-5-indexing-203

Conversation

@lemenkov

Copy link
Copy Markdown
Owner

Final step of the #163 SODA umbrella.

API (sync + async)

  • collection.createIndex(spec) — create an index from a dict / JSON spec (functional, search/data-guide, …)
  • collection.dropIndex(name) → bool (True if one was dropped)
  • collection.getDataGuide() → a SodaDocument with the collection's data-guide JSON, or None when there's no data-guide-enabled search index

RE notes

  • create_index/drop_index are functions (1 = created/dropped); get_data_guide returns a CLOB.
  • With no data-guide index, get_data_guide raises ORA-40582 — mapped to None to match oracledb.
  • The JSON search index needs Oracle Text, absent on 21c XE (ORA-29833), so that part of the test skips there; functional indexing works on 18c+.

Tests: live createIndex/dropIndex (present/absent), getDataGuide (none → None, and the parsed structure where Text is available) — sync + async, 23ai full, 21c functional, 11g/9i gated. Offline suite green. Data-guide read keeps the 32767-byte inline limit.

Closes #203

🤖 Generated with Claude Code

Final step of the #163 SODA umbrella:

- SodaCollection.createIndex(spec) — create an index from a dict / JSON spec
  (functional, search/data-guide, etc.).
- SodaCollection.dropIndex(name) -> bool (True if one was dropped).
- SodaCollection.getDataGuide() -> a SodaDocument with the collection's
  data-guide JSON, or None when there is no data-guide-enabled search index.

RE notes: create_index / drop_index are functions (1 = created / dropped),
get_data_guide returns a CLOB. With no data-guide index get_data_guide
raises ORA-40582 — mapped to None to match oracledb. The JSON search index
needs Oracle Text, which 21c XE lacks (ORA-29833), so that part of the test
skips there; functional indexing works on 18c+.

Sync + async; 23ai full, 21c functional index (data guide skipped), 11g/9i
gated. Data-guide read keeps the 32767-byte inline limit.

Closes #203

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
@lemenkov lemenkov added this to the 1.10.0 milestone Jun 25, 2026
@lemenkov lemenkov merged commit 53fd872 into master Jun 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SODA: indexing + data guide

1 participant