Huawei Cloud DWS connector¶
GaussDB(DWS) is a distributed warehouse derived from PostgreSQL. It uses the
standard PostgreSQL wire driver in Dosi; it is not the gaussdb connector,
whose private SHA256 authentication requires a different driver.
The important DWS-specific property is pg_database.datcompatibility. Every
database is ORA, TD, or MYSQL, and that value affects SQL semantics. Dosi
therefore resolves it from the connected database before compiling SQL and
keeps it in the compiled query metadata through execution.
Connection profile¶
datasources:
warehouse-td:
type: dws
host: ${DWS_HOST}
port: 8000
database: ${DWS_DATABASE_TD}
username: ${DWS_USERNAME}
password: ${DWS_PASSWORD}
schema: public
sslmode: verify-full
sslrootcert: /etc/ssl/certs/dws-ca.pem
compat_mode: TD
| Key | Type | Required | Default | Meaning |
|---|---|---|---|---|
host |
string | yes, unless uri is set |
— | DWS endpoint. |
port |
int | no | 8000 |
DWS service port for a discrete-field profile. |
database |
string | yes | — | The database whose compatibility mode is probed. |
username / password |
string | normally | — | PostgreSQL-wire credentials; environment expansion is supported. |
schema |
string | no | public |
Session search_path. |
sslmode / sslrootcert |
string | no | prefer / none |
Same TLS ladder as PostgreSQL. Verification modes require a CA bundle. |
compat_mode |
ORA, TD, or MYSQL |
no | probed | Optional assertion. A mismatch with the database fails before compilation. |
uri |
string | alternative | — | A complete postgres://...:8000/... URI, including its port. compat_mode remains a separate key. |
Do not copy one profile and change its database at runtime. Use one named profile per database; the successful mode cache belongs to that profile, so a TD database can never populate an ORA database's compilation context.
Compatibility modes¶
Dosi runs this exact probe through the selected connection:
Unknown or unreadable values fail closed. SQL compiled as dws_ora, dws_td,
or dws_mysql is accepted only by an executor that resolves the same mode.
All three currently use the shared PostgreSQL-compatible renderer; the mode is
still explicit compiler input so verified mode-specific lowerings can be added
without changing the API or risking cross-database reuse.
For compilation without a connection, supply the mode explicitly:
Execution should use a named profile so Dosi can probe the live database:
Validation¶
Each compatibility mode is verified on its own against a live DWS database:
dws_ora, dws_td and dws_mysql run the same test queries as the other
warehouses and are checked against the same expected rows, so success in one
mode never claims support for another. Connection profiles can use any
existing schema.
See also¶
- PostgreSQL — wire protocol, TLS, pooling, and row decoding
- GaussDB / openGauss — the separate private-auth connector
- Warehouse connectors — profile discovery and shared keys