Goal
Introduce a decoupled SQL generation and schema introspection layer inside BerlinDB to support database engine agnosticism (MySQL, SQLite, PostgreSQL).
Key Architectural Concepts
- Double-Hop Access: Expose platform-specific generator and inspector helpers under a unified gateway:
$this->db()->sql()->generator() and $this->db()->sql()->inspector().
- Centralized Introspection: Deprecate
from_mysql() methods in Column and Index domain objects, moving introspection results parsing to driver-specific Inspector implementations.
- AST Node Refactoring: Relocate query AST classes (
Clauses, Operands, Operators) under Sql\ namespace and delegate DDL/DML rendering to the platform generator.
- Operations & Fluent Builder: Extract SELECT query logic into
Operations\Select, and introduce a fluent query builder under $this->db()->sql()->select().
Ref: #220, #232, #39
Goal
Introduce a decoupled SQL generation and schema introspection layer inside BerlinDB to support database engine agnosticism (MySQL, SQLite, PostgreSQL).
Key Architectural Concepts
$this->db()->sql()->generator()and$this->db()->sql()->inspector().from_mysql()methods inColumnandIndexdomain objects, moving introspection results parsing to driver-specificInspectorimplementations.Clauses,Operands,Operators) underSql\namespace and delegate DDL/DML rendering to the platform generator.Operations\Select, and introduce a fluent query builder under$this->db()->sql()->select().Ref: #220, #232, #39