# TrinoConnector

## Configuration

Prism relies on the [Trino DBAPI](https://github.com/trinodb/trino-python-client) client to connect your project to a Trino cluster. The DBAPI offers several different authentication mechanisms for creating this connection. As of now, Prism only supports [BasicAuthentication](https://github.com/trinodb/trino-python-client#basic-authentication).

The required arguments for the Trino connector are:

* `id`: ID for your connector
* `autocommit`: toggle whether the connection commits changes to the database after executing. The default is `True`.
* `host`: the hostname of Amazon Redshift cluster.
* `port`: the port number of the Amazon Redshift cluster.
* `database`: the name of the database to which you want to connect.
* `user`: the user name to use for authentication.
* `password`: the password to use for authentication

```python
trino_connector = TrinoConnector(
    id="trino_connector_id",
    host=os.environ["TRINO_HOST"],
    http_scheme="https",
    port=os.environ["TRINO_PORT"],
    user=os.environ["TRINO_USER"],
    password=os.environ["TRINO_PASSWORD"],
    catalog=os.environ["TRINO_CATALOG"],
    schema=os.environ["TRINO_SCHEMA"],
)
```

Under the hood, Prism takes care of parsing the configuration variables and establishing a connection to your Trino cluster.

## `execute_sql`

You can run queries against the Trino cluster using the `execute_sql` function:

```python
from prism.decorators import task
from prism.runtime import CurrentRun

@task()
def trino_task(self):
    conn = CurrentRun.conn("trino_connector_id")
    data = conn.execute_sql(
        sql="SELECT * FROM table"
    )
```

Note that when `return_type = None`, the result will be a list tuples containing the query data.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.runprism.com/connectors/trinoconnector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
