# This import verifies that the dependencies are available. import cx_Oracle # noqa: F401 import pydantic from sqlalchemy import event from sqlalchemy.dialects.oracle.base import OracleDialect from sqlalchemy.engine.reflection import Inspector from datahub.ingestion.source.sql.sql_common import ( BasicSQLAlchemyConfig, SQLAlchemySource, make_sqlalchemy_type, ) extra_oracle_types = { make_sqlalchemy_type("SDO_GEOMETRY"), make_sqlalchemy_type("SDO_POINT_TYPE"), make_sqlalchemy_type("SDO_ELEM_INFO_ARRAY"), make_sqlalchemy_type("SDO_ORDINATE_ARRAY"), } assert OracleDialect.ischema_names def output_type_handler(cursor, name, defaultType, size, precision, scale): """Add CLOB and BLOB support to Oracle connection.""" if defaultType == cx_Oracle.CLOB: return cursor.var(cx_Oracle.LONG_STRING, arraysize=cursor.arraysize) elif defaultType == cx_Oracle.BLOB: return cursor.var(cx_Oracle.LONG_BINARY, arraysize=cursor.arraysize)
query = textwrap.dedent(query) + audit_log_filter return textwrap.dedent(query) def get_view_definition(self, connection, view_name, schema=None, **kw): view = self._get_table(connection, view_name, schema) return view.view_query pybigquery.sqlalchemy_bigquery.BigQueryDialect.get_view_definition = get_view_definition # Handle the GEOGRAPHY type. We will temporarily patch the _type_map # in the get_workunits method of the source. GEOGRAPHY = make_sqlalchemy_type("GEOGRAPHY") register_custom_type(GEOGRAPHY) assert pybigquery.sqlalchemy_bigquery._type_map class BigQueryCredential(ConfigModel): project_id: str private_key_id: str private_key: str client_email: str client_id: str auth_uri: str = "https://accounts.google.com/o/oauth2/auth" token_uri: str = "https://oauth2.googleapis.com/token" auth_provider_x509_cert_url: str = "https://www.googleapis.com/oauth2/v1/certs" type: str = "service_account" client_x509_cert_url: Optional[str]
# This import verifies that the dependencies are available. import pymysql # noqa: F401 from sqlalchemy.dialects.mysql import base from datahub.ingestion.source.sql.sql_common import ( BasicSQLAlchemyConfig, SQLAlchemySource, make_sqlalchemy_type, register_custom_type, ) GEOMETRY = make_sqlalchemy_type("GEOMETRY") POINT = make_sqlalchemy_type("POINT") LINESTRING = make_sqlalchemy_type("LINESTRING") POLYGON = make_sqlalchemy_type("POLYGON") register_custom_type(GEOMETRY) register_custom_type(POINT) register_custom_type(LINESTRING) register_custom_type(POLYGON) base.ischema_names["geometry"] = GEOMETRY base.ischema_names["point"] = POINT base.ischema_names["linestring"] = LINESTRING base.ischema_names["polygon"] = POLYGON class MySQLConfig(BasicSQLAlchemyConfig): # defaults host_port = "localhost:3306" scheme = "mysql+pymysql"