MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _resolve_temp_names

Method _resolve_temp_names

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

Resolve user-facing temp names (``#foo``) to their mangled tempdb names, grouped by owner. Returns ``(resolved_by_owner, temp_name_map)``: * ``resolved_by_owner`` -- ``{owner: [mangled_name, ...]}``, one bulk query per owner (typically just ``'dbo'``). * `

(self, connection, temp_names)

Source from the content-addressed store, hash-verified

4070 )
4071
4072 def _resolve_temp_names(self, connection, temp_names):
4073 """Resolve user-facing temp names (``#foo``) to their mangled
4074 tempdb names, grouped by owner.
4075
4076 Returns ``(resolved_by_owner, temp_name_map)``:
4077
4078 * ``resolved_by_owner`` -- ``{owner: [mangled_name, ...]}``,
4079 one bulk query per owner (typically just ``'dbo'``).
4080 * ``temp_name_map`` -- a function that maps mangled names back
4081 to the user-supplied name.
4082
4083 Names that don't resolve (no matching temp table in tempdb) are
4084 silently dropped. The single-table reflection wrappers handle
4085 the resulting absence by raising :exc:`.NoSuchTableError` via
4086 :meth:`._value_or_raise`.
4087 """
4088 resolved_by_owner = {}
4089 original_by_mangled = {}
4090 for name in temp_names:
4091 try:
4092 temp_owner, mangled = self._get_internal_temp_table_name(
4093 connection, name
4094 )
4095 except exc.NoSuchTableError:
4096 continue
4097 resolved_by_owner.setdefault(temp_owner, []).append(mangled)
4098 original_by_mangled[mangled] = name
4099
4100 def temp_name_map(server_name):
4101 return original_by_mangled.get(server_name, server_name)
4102
4103 return resolved_by_owner, temp_name_map
4104
4105 @_db_plus_owner_multi
4106 def get_multi_pk_constraint(

Calls 3

appendMethod · 0.45
setdefaultMethod · 0.45

Tested by

no test coverage detected