Skip to content

Latest commit

 

History

History
21 lines (17 loc) · 1.31 KB

File metadata and controls

21 lines (17 loc) · 1.31 KB

Schema module

src/firebird/lib/schema.py reads Firebird RDB$ system tables and exposes them through Schema and SchemaItem subclasses. Callers can bind a standalone Schema to a driver connection or access the driver-managed Connection.schema. The embedded instance is owned by the connection; its public bind() and close() operations reject direct use.

Metadata collections load on first access and remain cached. clear() drops cached collections; reload() can target selected Category values. Schema.bind() prepares the internal read-only cursor, reads ODS-dependent metadata, and initializes code maps. When adding a metadata category, account for its cache initialization, clear/reload path, query, collection type, and version availability together.

Object classes provide related-object links, DDL generation through get_sql_for(), and visitor dispatch. Schema.get_metadata_ddl() orders a full metadata script by Section. Changes to SQL generation should preserve identifier quoting options, object dependencies, and the distinctions between user and system objects. Version-specific SQL must be tested against the corresponding fixture database.

The integration tests are in tests/test_schema.py; public usage and API details are in docs/docs/ref-schema.md and docs/docs/usage-guide/schema.md.