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)
| 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( |
no test coverage detected