# Chat Message History

> **Version:** langchain-mariadb v0.0.21

Client for persisting chat message history in a MariaDB database.

## MariaDBChatMessageHistory

Chat message history that persists to a MariaDB database.

### Constructor

```python
__init__(
    table_name: str,
    session_id: str,
    datasource: Union[Engine | str],
    engine_args: Optional[dict[str, Any]] = None
) -> None
```

Initialize a chat message history that persists to a MariaDB database.

**Parameters:**

* **table\_name** (`str`): Name of the database table to use (must be alphanum + '\_')
* **session\_id** (`str`): UUID string to identify the chat session
* **datasource** (`Union[Engine | str]`): datasource (connection string or a sqlalchemy engine)

**Raises:**

* **ValueError**: If pool is not provided, session\_id is not a valid UUID, or table\_name contains invalid characters

### Methods

#### `create_tables`

```python
create_tables(datasource: Union[Engine | str], table_name: str) -> None
```

Create the table schema in the database and create relevant indexes.

**Parameters:**

* **datasource** (`Union[Engine | str]`): datasource (connection string or sqlalchemy engine)
* **table\_name** (`str`): Name of the table to create

#### `drop_table`

```python
drop_table(datasource: Union[Engine | str], table_name: str) -> None
```

Delete the table schema from the database.

**Parameters:**

* **datasource** (`Union[Engine | str]`): datasource (connection string or sqlalchemy engine)
* **table\_name** (`str`): Name of the table to drop

#### `add_messages`

```python
add_messages(messages: Sequence[BaseMessage]) -> None
```

Add messages to the chat history.

**Parameters:**

* **messages** (`Sequence[BaseMessage]`): Sequence of messages to add

#### `get_messages`

```python
get_messages() -> List[BaseMessage]
```

Retrieve messages from the chat history.

**Returns:**

`List[BaseMessage]` - List of messages in chronological order

#### `clear`

```python
clear() -> None
```

Clear all messages for the current session.

### Attributes

* **messages** (`List[BaseMessage]`): Get all messages in the chat history.

***


---

# 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://mariadb.com/docs/connectors/other/langchain-mariadb/api-reference/chat_message_histories.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.
