lsst.dax.apdb gcb20ee0ffd+ca32603c0c
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema Class Reference
Inheritance diagram for lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema:
lsst.dax.apdb.apdbSchema.ApdbSchema

Public Member Functions

 __init__ (self, sqlalchemy.engine.Engine engine, str dia_object_index, str htm_index_column, str schema_file, str schema_name="ApdbSchema", str prefix="", str|None namespace=None, bool use_insert_id=False)
 
None makeSchema (self, bool drop=False)
 
Table get_table (self, ApdbTables|ExtraTables table_enum)
 
list[Column] get_apdb_columns (self, ApdbTables|ExtraTables table_enum)
 
bool has_insert_id (self)
 
- Public Member Functions inherited from lsst.dax.apdb.apdbSchema.ApdbSchema
type|str column_dtype (self, type[felis.types.FelisType] felis_type)
 

Static Public Attributes

tuple pixel_id_tables = (ApdbTables.DiaObject, ApdbTables.DiaObjectLast, ApdbTables.DiaSource)
 

Protected Member Functions

bool _check_insert_id (self)
 
Mapping[ApdbTables, Table] _make_apdb_tables (self, str mysql_engine="InnoDB")
 
Mapping[ExtraTables, Table] _make_extra_tables (self, Mapping[ApdbTables, Table] apdb_tables, str mysql_engine="InnoDB")
 
list[Column] _tableColumns (self, ApdbTables table_name)
 
list[sqlalchemy.schema.SchemaItem] _tableIndices (self, ApdbTables table_name)
 
list[Column] _insertIdColumns (self, ExtraTables table_enum)
 
list[Column] _tablePkColumns (self, ApdbTables table_enum)
 
list[sqlalchemy.schema.SchemaItem] _insertIdIndices (self, ExtraTables table_enum, sqlalchemy.schema.Table apdb_table, sqlalchemy.schema.Table parent_table)
 
type|sqlalchemy.types.TypeEngine _getDoubleType (cls, sqlalchemy.engine.Engine engine)
 
- Protected Member Functions inherited from lsst.dax.apdb.apdbSchema.ApdbSchema
Mapping[ApdbTables, Table] _buildSchemas (self, str schema_file, str schema_name="ApdbSchema")
 

Protected Attributes

 _engine
 
 _dia_object_index
 
 _htm_index_column
 
 _prefix
 
 _use_insert_id
 
 _metadata
 
 _type_map
 
 _apdb_tables
 
 _extra_tables
 
 _has_insert_id
 

Additional Inherited Members

- Public Attributes inherited from lsst.dax.apdb.apdbSchema.ApdbSchema
 tableSchemas
 

Detailed Description

Class for management of APDB schema.

Attributes
----------
objects : `sqlalchemy.Table`
    DiaObject table instance
objects_last : `sqlalchemy.Table`
    DiaObjectLast table instance, may be None
sources : `sqlalchemy.Table`
    DiaSource table instance
forcedSources : `sqlalchemy.Table`
    DiaForcedSource table instance
has_insert_id : `bool`
    If true then schema has tables for insert ID tracking.

Parameters
----------
engine : `sqlalchemy.engine.Engine`
    SQLAlchemy engine instance
dia_object_index : `str`
    Indexing mode for DiaObject table, see `ApdbSqlConfig.dia_object_index`
    for details.
htm_index_column : `str`
    Name of a HTM index column for DiaObject and DiaSource tables.
schema_file : `str`
    Name of the YAML schema file.
schema_name : `str`, optional
    Name of the schema in YAML files.
prefix : `str`, optional
    Prefix to add to all schema elements.
namespace : `str`, optional
    Namespace (or schema name) to use for all APDB tables.
use_insert_id : `bool`, optional

Constructor & Destructor Documentation

◆ __init__()

lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.__init__ (   self,
sqlalchemy.engine.Engine  engine,
str  dia_object_index,
str  htm_index_column,
str  schema_file,
str   schema_name = "ApdbSchema",
str   prefix = "",
str | None   namespace = None,
bool   use_insert_id = False 
)

Member Function Documentation

◆ _check_insert_id()

bool lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._check_insert_id (   self)
protected
Check whether database has tables for tracking insert IDs.

◆ _getDoubleType()

type | sqlalchemy.types.TypeEngine lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._getDoubleType (   cls,
sqlalchemy.engine.Engine  engine 
)
protected
DOUBLE type is database-specific, select one based on dialect.

Parameters
----------
engine : `sqlalchemy.engine.Engine`
    Database engine.

Returns
-------
type_object : `object`
    Database-specific type definition.

◆ _insertIdColumns()

list[Column] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._insertIdColumns (   self,
ExtraTables  table_enum 
)
protected
Return list of columns for insert ID tables.

◆ _insertIdIndices()

list[sqlalchemy.schema.SchemaItem] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._insertIdIndices (   self,
ExtraTables  table_enum,
sqlalchemy.schema.Table  apdb_table,
sqlalchemy.schema.Table  parent_table 
)
protected
Return set of constraints/indices for insert ID tables.

◆ _make_apdb_tables()

Mapping[ApdbTables, Table] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._make_apdb_tables (   self,
str   mysql_engine = "InnoDB" 
)
protected
Generate schema for regular tables.

Parameters
----------
mysql_engine : `str`, optional
    MySQL engine type to use for new tables.

◆ _make_extra_tables()

Mapping[ExtraTables, Table] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._make_extra_tables (   self,
Mapping[ApdbTables, Table]  apdb_tables,
str   mysql_engine = "InnoDB" 
)
protected
Generate schema for insert ID tables.

◆ _tableColumns()

list[Column] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._tableColumns (   self,
ApdbTables  table_name 
)
protected
Return set of columns in a table

Parameters
----------
table_name : `ApdbTables`
    Name of the table.

Returns
-------
column_defs : `list`
    List of `Column` objects.

◆ _tableIndices()

list[sqlalchemy.schema.SchemaItem] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._tableIndices (   self,
ApdbTables  table_name 
)
protected
Return set of constraints/indices in a table

Parameters
----------
table_name : `ApdbTables`
    Name of the table.
info : `dict`
    Additional options passed to SQLAlchemy index constructor.

Returns
-------
index_defs : `list`
    List of SQLAlchemy index/constraint objects.

◆ _tablePkColumns()

list[Column] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema._tablePkColumns (   self,
ApdbTables  table_enum 
)
protected
Return a list of columns for table PK.

◆ get_apdb_columns()

list[Column] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.get_apdb_columns (   self,
ApdbTables | ExtraTables  table_enum 
)
Return list of columns defined for a table in APDB schema.

Returned list excludes columns that are implementation-specific, e.g.
``pixelId`` column is not include in the returned list.

Parameters
----------
table_enum : `ApdbTables` or `ExtraTables`
    Type of table.

Returns
-------
table : `list` [`sqlalchemy.schema.Column`]
    Table instance.

Raises
------
ValueError
    Raised if ``table_enum`` is not valid for this database.

◆ get_table()

Table lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.get_table (   self,
ApdbTables | ExtraTables  table_enum 
)
Return SQLAlchemy table instance for a specified table type/enum.

Parameters
----------
table_enum : `ApdbTables` or `ExtraTables`
    Type of table to return.

Returns
-------
table : `sqlalchemy.schema.Table`
    Table instance.

Raises
------
ValueError
    Raised if ``table_enum`` is not valid for this database.

◆ has_insert_id()

bool lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.has_insert_id (   self)
Whether insert ID tables are to be used (`bool`).

◆ makeSchema()

None lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.makeSchema (   self,
bool   drop = False 
)
Create or re-create all tables.

Parameters
----------
drop : `bool`, optional
    If True then drop tables before creating new ones.

The documentation for this class was generated from the following file: