> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/release-notes/community-server/13.1/mariadb-13.1-changes-and-improvements.md).

# MariaDB 13.1 Changes & Improvements

{% hint style="info" %}

<p align="center">The most recent release of MariaDB 13.1 is:</p>

<h4 align="center"><strong>MariaDB 13.1 Preview</strong> <a href="https://downloads.mariadb.org/mariadb/13.1.0/" class="button primary">Download Now</a></h4>
{% endhint %}

MariaDB 13.1 is a [rolling release](/docs/release-notes/community-server/about/release-model.md). It is an evolution of [MariaDB 13.0](/docs/release-notes/community-server/13.0/mariadb-13.0-changes-and-improvements.md) with many entirely new features.

## New Features

* Support for JSON operators `column->path` and `column->>path` ([MDEV-13594](https://jira.mariadb.org/browse/MDEV-13594))
* DENY clause for access control a.k.a. "negative grants" ([MDEV-14443](https://jira.mariadb.org/browse/MDEV-14443))
* Auto-adding new partitions for `PARTITION BY RANGE` ([MDEV-15621](https://jira.mariadb.org/browse/MDEV-15621))
* Improve error reporting of mysqlbinlog when used with `--flashback` ([MDEV-20749](https://jira.mariadb.org/browse/MDEV-20749))
* Locking full table scan fails to use table-level locking ([MDEV-24813](https://jira.mariadb.org/browse/MDEV-24813))
* Add formatted column support to `JSON_TABLE` ([MDEV-25727](https://jira.mariadb.org/browse/MDEV-25727))
* Ignored domain ids skip validation when connecting to a master ([MDEV-28213](https://jira.mariadb.org/browse/MDEV-28213))
* The default `utf8` character set is now `utf8mb4` ([MDEV-30041](https://jira.mariadb.org/browse/MDEV-30041))
* New statement `CREATE TRIGGER FOR { STARTUP | SHUTDOWN }` ([MDEV-30645](https://jira.mariadb.org/browse/MDEV-30645))
* Optional lengths for string types: `VARCHAR[(N)]` ([MDEV-31414](https://jira.mariadb.org/browse/MDEV-31414))
* `mariadbd --validate-config` to check the configuration for validity without starting the server ([MDEV-31527](https://jira.mariadb.org/browse/MDEV-31527))
* `mariadb-dump` no longer includes generated column values in a dump ([MDEV-32362](https://jira.mariadb.org/browse/MDEV-32362))
* `NEW` and `OLD` in a trigger can be used as row variables ([MDEV-34723](https://jira.mariadb.org/browse/MDEV-34723))
* `INFORMATION_SCHEMA.VECTOR_INDEXES` provides information about vector indexes ([MDEV-34805](https://jira.mariadb.org/browse/MDEV-34805))
* `parsec_iterations` session variables allows to set the number of PBKDF2 rounds for PARSEC plugin ([MDEV-35254](https://jira.mariadb.org/browse/MDEV-35254))
* `ADAPTIVE_HASH_INDEX = { YES | NO | DEFAULT }` can specify per InnoDB table whether to use AHI ([MDEV-37070](https://jira.mariadb.org/browse/MDEV-37070))
* XMLISVALID() schema validation function ([MDEV-37262](https://jira.mariadb.org/browse/MDEV-37262))
* `AND`/`OR` can now short-circuit the execution for any argument not in a strictly left-to-right fashion ([MDEV-37713](https://jira.mariadb.org/browse/MDEV-37713), [MDEV-37714](https://jira.mariadb.org/browse/MDEV-37714))
* `XXH3`, `XXH32`, `XXH64`, `XXH128` family of hash functions ([MDEV-38180](https://jira.mariadb.org/browse/MDEV-38180))
* Adaptive hash index statistics is shown in ANALYZE FORMAT=JSON ([MDEV-38305](https://jira.mariadb.org/browse/MDEV-38305))
* Optimizer Context Recorder to record the optimizer data and then analyze query optimization on another server instance ([MDEV-38701](https://jira.mariadb.org/browse/MDEV-38701))
* `innodb_tablespace_size_warning_threshold` and `innodb_tablespace_size_warning_pct` variables to get a warning when InnoDB tablespace is getting close to full (before it's 100% full and the service is disrupted) ([MDEV-38936](https://jira.mariadb.org/browse/MDEV-38936))
* MEMORY tables support variable-length data types, `VARCHAR` and `TEXT`/`BLOB` ([MDEV-38975](https://jira.mariadb.org/browse/MDEV-38975))
* Local routine variables usable in `PREPARE`/`EXECUTE`/`DEALLOCATE` and `OPEN ... FOR` ([MDEV-39022](https://jira.mariadb.org/browse/MDEV-39022))
* Package-wide TYPE declarations ([MDEV-39587](https://jira.mariadb.org/browse/MDEV-39587))
* CHECK TABLE supports MEMORY tables ([MDEV-40030](https://jira.mariadb.org/browse/MDEV-40030))
* `slave_skip_errors` variable can be modified without server restart ([MDEV-7394](https://jira.mariadb.org/browse/MDEV-7394))

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formid="4316" formId="4316" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/release-notes/community-server/13.1/mariadb-13.1-changes-and-improvements.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.
