chore: improve schema security (#23385)

This commit is contained in:
Beto Dealmeida
2023-03-17 08:05:50 -07:00
committed by GitHub
parent d4657f6198
commit 42e8d1b498
17 changed files with 346 additions and 26 deletions

View File

@@ -83,7 +83,7 @@ class SnowflakeEngineSpec(PostgresBaseEngineSpec):
default_driver = "snowflake"
sqlalchemy_uri_placeholder = "snowflake://"
dynamic_schema = True
supports_dynamic_schema = True
_time_grain_expressions = {
None: "{col}",
@@ -147,6 +147,22 @@ class SnowflakeEngineSpec(PostgresBaseEngineSpec):
return uri
@classmethod
def get_schema_from_engine_params(
cls,
sqlalchemy_uri: URL,
connect_args: Dict[str, Any],
) -> Optional[str]:
"""
Return the configured schema.
"""
database = sqlalchemy_uri.database.strip("/")
if "/" not in database:
return None
return parse.unquote(database.split("/")[1])
@classmethod
def epoch_to_dttm(cls) -> str:
return "DATEADD(S, {col}, '1970-01-01')"