Skip to content

Add InMemoryCatalog example implementation#29

Merged
rustyconover merged 2 commits into
mainfrom
feature/in-memory-catalog-example
Jan 6, 2026
Merged

Add InMemoryCatalog example implementation#29
rustyconover merged 2 commits into
mainfrom
feature/in-memory-catalog-example

Conversation

@rustyconover

Copy link
Copy Markdown
Contributor

Summary

  • Create InMemoryCatalog class implementing CatalogInterface for testing and as a reference implementation
  • Add InMemoryCatalogWorker class that uses the catalog interface
  • Add vgi-example-catalog-worker entry point

Implementation Details

  • In-memory storage using Python dictionaries for catalogs, schemas, tables, views
  • UUID-based attach_id generation via uuid.uuid4().bytes
  • Default "memory" catalog with "main" schema created on initialization
  • Supports DDL operations:
    • Catalog: create, drop
    • Schema: create, drop (with cascade support)
    • Table: create, drop, rename, set comment
    • View: create, drop, rename, set comment
  • Catalog versioning incremented on each modification
  • Does not support transactions (returns None for transaction methods)

Test plan

  • All 661 tests pass
  • mypy passes with no issues
  • ruff check and format pass

🤖 Generated with Claude Code

rustyconover and others added 2 commits January 5, 2026 20:01
Create an in-memory catalog implementation for testing and as a reference:

- InMemoryCatalog class implementing CatalogInterface
- In-memory storage using Python dictionaries for catalogs, schemas, tables, views
- UUID-based attach_id generation
- Supports DDL operations: catalog/schema/table/view create/drop/rename
- Does not support transactions (returns None)
- Catalog versioning for change tracking

Also adds:
- InMemoryCatalogWorker class with catalog_interface set
- Entry point: vgi-example-catalog-worker

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rustyconover rustyconover merged commit 7522f66 into main Jan 6, 2026
0 of 16 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.

1 participant