Skip to content

Commit 834ea2d

Browse files
raulbonetpre-commit-ci[bot]Cody J. Hansonedgarrmondragon
authored
fix: Removed unnecessary and problematic column caching (#2352)
* deprecate column caching * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Cody J. Hanson <[email protected]> Co-authored-by: Edgar Ramírez Mondragón <[email protected]>
1 parent 4f07b67 commit 834ea2d

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

singer_sdk/connectors/sql.py

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ def __init__(
5858
"""
5959
self._config: dict[str, t.Any] = config or {}
6060
self._sqlalchemy_url: str | None = sqlalchemy_url or None
61-
self._table_cols_cache: dict[str, dict[str, sa.Column]] = {}
62-
self._schema_cache: set[str] = set()
6361

6462
@property
6563
def config(self) -> dict:
@@ -586,12 +584,8 @@ def schema_exists(self, schema_name: str) -> bool:
586584
Returns:
587585
True if the database schema exists, False if not.
588586
"""
589-
if schema_name not in self._schema_cache:
590-
self._schema_cache = set(
591-
sa.inspect(self._engine).get_schema_names(),
592-
)
593-
594-
return schema_name in self._schema_cache
587+
schemas = set(sa.inspect(self._engine).get_schema_names())
588+
return schema_name in schemas
595589

596590
def get_table_columns(
597591
self,
@@ -607,24 +601,22 @@ def get_table_columns(
607601
Returns:
608602
An ordered list of column objects.
609603
"""
610-
if full_table_name not in self._table_cols_cache:
611-
_, schema_name, table_name = self.parse_full_table_name(full_table_name)
612-
inspector = sa.inspect(self._engine)
613-
columns = inspector.get_columns(table_name, schema_name)
614-
615-
self._table_cols_cache[full_table_name] = {
616-
col_meta["name"]: sa.Column(
617-
col_meta["name"],
618-
col_meta["type"],
619-
nullable=col_meta.get("nullable", False),
620-
)
621-
for col_meta in columns
622-
if not column_names
623-
or col_meta["name"].casefold()
624-
in {col.casefold() for col in column_names}
625-
}
604+
_, schema_name, table_name = self.parse_full_table_name(full_table_name)
605+
inspector = sa.inspect(self._engine)
606+
columns = inspector.get_columns(table_name, schema_name)
607+
608+
columns_dict: dict[str, sa.Column] = {
609+
col_meta["name"]: sa.Column(
610+
col_meta["name"],
611+
col_meta["type"],
612+
nullable=col_meta.get("nullable", False),
613+
)
614+
for col_meta in columns
615+
if not column_names
616+
or col_meta["name"].casefold() in {col.casefold() for col in column_names}
617+
}
626618

627-
return self._table_cols_cache[full_table_name]
619+
return columns_dict
628620

629621
def get_table(
630622
self,

0 commit comments

Comments
 (0)