Skip to content

Abstract away "database" implementations and remove strong coupling of DB implementation with APIs#46

Open
smukil wants to merge 3 commits intocloudspannerecosystem:mainfrom
smukil:new_make_db_abstract
Open

Abstract away "database" implementations and remove strong coupling of DB implementation with APIs#46
smukil wants to merge 3 commits intocloudspannerecosystem:mainfrom
smukil:new_make_db_abstract

Conversation

@smukil
Copy link
Collaborator

@smukil smukil commented Jun 9, 2025

Commit 1:- Standardize return type for execute_query() functions

Commit 2:-

  1. Abstracts SpannerDatabase with clear APIs
  2. Introduces CloudSpannerDatabase as an implementation of SpannerDatabase
  3. Removes further tight coupling with the cloud spanner client by adding a
    SpannerFieldInfo dataclass to replace usage of StructType.Field

- Also removes cloud-spanner specific fields from the return type.
  Specifically `StructType.Field` is removed from the return type.
  Removing this tightly coupled logic is required to allow new DB
  implementations.
@smukil smukil force-pushed the new_make_db_abstract branch from ac38a61 to e7383eb Compare June 9, 2025 23:48
…f DB implementation with APIs

1. Abstracts SpannerDatabase with clear APIs
2. Introduces CloudSpannerDatabase as an implementation of SpannerDatabase
3. Removes further tight coupling with the cloud spanner client by adding a
   SpannerFieldInfo dataclass to replace usage of StructType.Field
@smukil smukil force-pushed the new_make_db_abstract branch 2 times, most recently from f4b7635 to e0068d8 Compare June 11, 2025 21:25
1. The global database_instances is moved to exec_env.py to avoid
   circular imports.

2. SpannerFiledInfo.typename populated with the correct name now

3. Remove all cloud spanner refs from database.py
@smukil smukil force-pushed the new_make_db_abstract branch from e0068d8 to 652a073 Compare June 11, 2025 21:33
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