(
self,
dialect: Dialect,
*,
compiled_cache: Optional[CompiledCacheType],
column_keys: List[str],
for_executemany: bool = False,
schema_translate_map: Optional[SchemaTranslateMapType] = None,
**kw: Any,
)
| 692 | return self |
| 693 | |
| 694 | def _compile_w_cache( |
| 695 | self, |
| 696 | dialect: Dialect, |
| 697 | *, |
| 698 | compiled_cache: Optional[CompiledCacheType], |
| 699 | column_keys: List[str], |
| 700 | for_executemany: bool = False, |
| 701 | schema_translate_map: Optional[SchemaTranslateMapType] = None, |
| 702 | **kw: Any, |
| 703 | ) -> tuple[ |
| 704 | Compiled, |
| 705 | Sequence[BindParameter[Any]] | None, |
| 706 | _CoreSingleExecuteParams | None, |
| 707 | CacheStats, |
| 708 | ]: |
| 709 | elem_cache_key: Optional[CacheKey] |
| 710 | |
| 711 | if compiled_cache is not None and dialect._supports_statement_cache: |
| 712 | elem_cache_key = self._generate_cache_key() |
| 713 | else: |
| 714 | elem_cache_key = None |
| 715 | |
| 716 | extracted_params: Optional[Sequence[BindParameter[Any]]] |
| 717 | if elem_cache_key is not None: |
| 718 | if TYPE_CHECKING: |
| 719 | assert compiled_cache is not None |
| 720 | |
| 721 | cache_key, extracted_params, param_dict = elem_cache_key |
| 722 | key = ( |
| 723 | dialect, |
| 724 | cache_key, |
| 725 | tuple(column_keys), |
| 726 | bool(schema_translate_map), |
| 727 | for_executemany, |
| 728 | ) |
| 729 | compiled_sql = compiled_cache.get(key) |
| 730 | |
| 731 | if compiled_sql is None: |
| 732 | cache_hit = dialect.CACHE_MISS |
| 733 | compiled_sql = self._compiler( |
| 734 | dialect, |
| 735 | cache_key=elem_cache_key, |
| 736 | column_keys=column_keys, |
| 737 | for_executemany=for_executemany, |
| 738 | schema_translate_map=schema_translate_map, |
| 739 | **kw, |
| 740 | ) |
| 741 | # ensure that params of the current statement are not |
| 742 | # left in the cache |
| 743 | assert not compiled_sql._collect_params # type: ignore[attr-defined] # noqa: E501 |
| 744 | compiled_cache[key] = compiled_sql |
| 745 | else: |
| 746 | cache_hit = dialect.CACHE_HIT |
| 747 | else: |
| 748 | param_dict = None |
| 749 | extracted_params = None |
| 750 | compiled_sql = self._compiler( |
| 751 | dialect, |
nothing calls this directly
no test coverage detected