You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: backend-agnostic abstractions for multi-backend support
Centralize patterns that were duplicated or hardcoded for MySQL:
- Add make_full_table_name() to adapter ABC — consolidates quoted
name construction from 7 call sites into one overridable method.
Backends with additional namespace levels can override.
- Add foreign_key_action_clause property to adapter ABC — FK
referential actions via adapter instead of hardcoded in declare.py.
Backends without referential action support can override.
- Use adapter.split_full_table_name() in declare() — replaces
fragile manual quote-char detection.
- Guard transaction methods against empty SQL — supports backends
without multi-table transaction semantics.
- Add "bytes"/"binary" to blob type detection — supports backends
that use BINARY instead of longblob.
- Route lineage table check through adapter.get_table_info_sql() —
replaces hardcoded information_schema query.
Co-Authored-By: Kushal Bakshi <kushal.bakshi@datajoint.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments