From e043e89dff91ede5c7b9ba7143f97cebc5d9f164 Mon Sep 17 00:00:00 2001 From: codingwithabhi <63392662+codingwithabhi@users.noreply.github.com> Date: Tue, 15 Mar 2022 09:22:51 +0530 Subject: [PATCH] ISSUE-3293: optimized-metadata-extraction (#3409) * ISSUE-3293: optimized-metadata-extraction * tuple-removed-for-_get_table_comment --- .../metadata/ingestion/source/snowflake.py | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/ingestion/src/metadata/ingestion/source/snowflake.py b/ingestion/src/metadata/ingestion/source/snowflake.py index 7433a6196bd..e56a138faa9 100644 --- a/ingestion/src/metadata/ingestion/source/snowflake.py +++ b/ingestion/src/metadata/ingestion/source/snowflake.py @@ -12,7 +12,9 @@ import logging from typing import Optional from snowflake.sqlalchemy.custom_types import VARIANT -from snowflake.sqlalchemy.snowdialect import ischema_names +from snowflake.sqlalchemy.snowdialect import SnowflakeDialect, ischema_names +from sqlalchemy.engine import reflection +from sqlalchemy.sql import text from metadata.generated.schema.entity.data.table import TableData from metadata.generated.schema.entity.services.databaseService import ( @@ -81,3 +83,20 @@ class SnowflakeSource(SQLSource): config = SnowflakeConfig.parse_obj(config_dict) metadata_config = MetadataServerConfig.parse_obj(metadata_config_dict) return cls(config, metadata_config, ctx) + + +@reflection.cache +def _get_table_comment(self, connection, table_name, schema=None, **kw): + """ + Returns comment of table. + """ + sql_command = "select * FROM information_schema.tables WHERE TABLE_SCHEMA ILIKE '{}' and TABLE_NAME ILIKE '{}'".format( + self.normalize_name(schema), + table_name, + ) + + cursor = connection.execute(text(sql_command)) + return cursor.fetchone() # pylint: disable=protected-access + + +SnowflakeDialect._get_table_comment = _get_table_comment