Authentication options and data type handling for Trino connections.
| Variable | Example | Description |
|---|---|---|
DATACONTRACT_TRINO_USERNAME |
trino |
Username for basic auth |
DATACONTRACT_TRINO_PASSWORD |
mysecretpassword |
Password for basic auth |
DATACONTRACT_TRINO_AUTHENTICATION |
oauth2 |
basic (default), jwt, or oauth2 |
DATACONTRACT_TRINO_JWT_TOKEN |
eyJhbGciOi... |
JWT bearer token for jwt auth |
host, port, catalog, and schema come from the contract’s servers block.
There is no direct Trino importer. Import a SHOW CREATE TABLE DDL with datacontract import sql --dialect postgres (Trino’s ANSI-style DDL generally parses with the postgres dialect): VARCHAR/CHAR → string, INTEGER/BIGINT/SMALLINT/TINYINT → integer, DECIMAL/DOUBLE/REAL → number, BOOLEAN → boolean, DATE → date, TIME → time, TIMESTAMP → timestamp, ARRAY(...) → array, JSON → object.
Trino supports native type introspection: the declared physicalType is checked against information_schema.columns. Length/precision is only enforced when the contract declares it (varchar matches varchar(10)); timezone variants of timestamps are interchangeable. A physicalType that isn’t valid Trino SQL falls back to the logical type category comparison.
{/* AUTOGENERATED TYPE MAPPING: do not edit by hand; regenerate with update_reference_types.py */}
When no physicalType is declared, the CLI derives the native type from the logicalType — for example in datacontract export sql and the dbt exports. This table is generated from the converter in the CLI’s code:
logicalType |
Trino type |
|---|---|
string |
varchar |
integer |
integer |
number |
decimal |
boolean |
boolean |
date |
date |
timestamp |
timestamp(3) with time zone |
time |
time |
object |
json |
array |
json |
{/* END AUTOGENERATED TYPE MAPPING */}