in aws_advanced_python_wrapper/database_dialect.py [0:0]
def get_dialect(self, driver_dialect: str, props: Properties) -> DatabaseDialect:
self._can_update = False
if self._custom_dialect is not None:
self._dialect_code = DialectCode.CUSTOM
self._dialect = self._custom_dialect
self._log_current_dialect()
return self._dialect
user_dialect_setting: Optional[str] = WrapperProperties.DIALECT.get(props)
url = PropertiesUtils.get_url(props)
if user_dialect_setting is None:
dialect_code = DatabaseDialectManager._known_endpoint_dialects.get(url)
else:
dialect_code = DialectCode.from_string(user_dialect_setting)
if dialect_code is not None:
dialect: Optional[DatabaseDialect] = DatabaseDialectManager._known_dialects_by_code.get(dialect_code)
if dialect:
self._dialect_code = dialect_code
self._dialect = dialect
self._log_current_dialect()
return dialect
else:
raise AwsWrapperError(
Messages.get_formatted("DatabaseDialectManager.UnknownDialectCode", str(dialect_code)))
host: str = props["host"]
target_driver_type: TargetDriverType = self._get_target_driver_type(driver_dialect)
if target_driver_type is TargetDriverType.MYSQL:
rds_type = self._rds_helper.identify_rds_type(host)
if rds_type.is_rds_cluster:
self._can_update = True
self._dialect_code = DialectCode.AURORA_MYSQL
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.AURORA_MYSQL]
return self._dialect
if rds_type.is_rds:
self._can_update = True
self._dialect_code = DialectCode.RDS_MYSQL
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.RDS_MYSQL]
self._log_current_dialect()
return self._dialect
self._can_update = True
self._dialect_code = DialectCode.MYSQL
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.MYSQL]
self._log_current_dialect()
return self._dialect
if target_driver_type is TargetDriverType.POSTGRES:
rds_type = self._rds_helper.identify_rds_type(host)
if rds_type.is_rds_cluster:
self._can_update = True
self._dialect_code = DialectCode.AURORA_PG
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.AURORA_PG]
return self._dialect
if rds_type.is_rds:
self._can_update = True
self._dialect_code = DialectCode.RDS_PG
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.RDS_PG]
self._log_current_dialect()
return self._dialect
self._can_update = True
self._dialect_code = DialectCode.PG
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.PG]
self._log_current_dialect()
return self._dialect
self._can_update = True
self._dialect_code = DialectCode.UNKNOWN
self._dialect = DatabaseDialectManager._known_dialects_by_code[DialectCode.UNKNOWN]
self._log_current_dialect()
return self._dialect