dlt.destinations.impl.sqlalchemy.load_jobs
build_mysql_adbc_dsn
def build_mysql_adbc_dsn(username: Optional[str] = None,
password: Optional[str] = None,
host: Optional[str] = None,
port: Optional[int] = None,
database: Optional[str] = None,
params: Optional[Dict[str, str]] = None) -> str
Build a DSN connection string for the go-mysql ADBC driver.
The go-mysql driver (github.com/go-sql-driver/mysql) has specific DSN format: [username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
Based on the driver's source code (dsn.go):
- Username and password are NOT URL-decoded by the driver
- Database name IS URL-decoded using url.PathUnescape
- Query parameter values ARE URL-decoded using url.QueryUnescape
Arguments:
username- MySQL username (not URL-encoded)password- MySQL password (not URL-encoded)host- MySQL hostport- MySQL port (default: 3306)database- Database/schema name (will be URL-encoded)params- Query parameters (values will be URL-encoded)
Returns:
DSN connection string for go-mysql driver
SqlalchemyParquetADBCJob Objects
class SqlalchemyParquetADBCJob(AdbcParquetCopyJob)
ADBC Parquet copy job for SQLAlchemy (sqlite, mysql) with query param handling.