MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _columns_select

Method _columns_select

lib/sqlalchemy/dialects/mssql/base.py:3636–3747  ·  view source on GitHub ↗

Build the unified Core sys.* select for column reflection. Returns a ``select()`` that includes ``table_name`` and ``owner`` in the result so callers can group rows by table. Used by :meth:`.get_multi_columns` (and indirectly by :meth:`.get_columns` via the multi de

(self)

Source from the content-addressed store, hash-verified

3634
3635 @lru_cache()
3636 def _columns_select(self):
3637 """Build the unified Core sys.* select for column reflection.
3638
3639 Returns a ``select()`` that includes ``table_name`` and ``owner``
3640 in the result so callers can group rows by table.
3641
3642 Used by :meth:`.get_multi_columns` (and indirectly by
3643 :meth:`.get_columns` via the multi delegation).
3644 """
3645 sys_columns = ischema.sys_columns
3646 sys_types = ischema.sys_types
3647 sys_base_types = ischema.sys_types.alias("base_types")
3648 sys_default_constraints = ischema.sys_default_constraints
3649 computed_cols = ischema.computed_columns
3650 identity_cols = ischema.identity_columns
3651 extended_properties = ischema.extended_properties
3652 sys_objects = ischema.sys_objects
3653 sys_schemas = ischema.sys_schemas
3654
3655 if self._supports_nvarchar_max:
3656 computed_definition = computed_cols.c.definition
3657 else:
3658 # tds_version 4.2 does not support NVARCHAR(MAX)
3659 computed_definition = sql.cast(
3660 computed_cols.c.definition, NVARCHAR(4000)
3661 )
3662
3663 s = (
3664 sql.select(
3665 sys_objects.c.name.label("table_name"),
3666 sys_schemas.c.name.label("owner"),
3667 sys_columns.c.name.label("column_name"),
3668 sys_types.c.name.label("type_name"),
3669 sys_base_types.c.name.label("base_type"),
3670 sys_columns.c.is_nullable,
3671 sys_columns.c.max_length,
3672 sys_columns.c.precision,
3673 sys_columns.c.scale,
3674 sys_default_constraints.c.definition.label("default_value"),
3675 sys_columns.c.collation_name,
3676 computed_definition.label("computed_definition"),
3677 computed_cols.c.is_persisted,
3678 identity_cols.c.is_identity,
3679 identity_cols.c.seed_value,
3680 identity_cols.c.increment_value,
3681 extended_properties.c.value.label("comment"),
3682 sys_columns.c.column_id,
3683 )
3684 .select_from(sys_columns)
3685 .join(
3686 sys_objects,
3687 onclause=sys_columns.c.object_id == sys_objects.c.object_id,
3688 )
3689 .join(
3690 sys_schemas,
3691 onclause=sys_objects.c.schema_id == sys_schemas.c.schema_id,
3692 )
3693 .join(

Callers 1

_fetch_multi_columnsMethod · 0.95

Calls 12

NVARCHARClass · 0.50
aliasMethod · 0.45
castMethod · 0.45
order_byMethod · 0.45
whereMethod · 0.45
outerjoinMethod · 0.45
joinMethod · 0.45
select_fromMethod · 0.45
selectMethod · 0.45
labelMethod · 0.45
and_Method · 0.45
in_Method · 0.45

Tested by

no test coverage detected