Details
-
New Feature
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
-
Q1/2027 Server Development
Description
MDEV-40168: Indexes over JSON data based on Fulltext index enables indexing for JSON data with a fulltext index.
Use of fulltext index here is a temporary measure until MDEV-25848: Support for Multi-Valued Indexes is done.
Once we have both MDEV-40168 and MDEV-25848, we will switch to using Multi-Value index. The switch is covered by MDEV-40113: Optimizer support for JSON queries: switch to using Multi-Valued Index API
Fulltext->MVI switch allows richer querying capabilities
It looks like use of Multi-Value Index instead of fulltext will allow to expand the class of sargable conditions.
Basically, fulltext boolean mode searches allow to search for exact match (or a prefix), while Multi-Value Index allows range searches.
fulltext searches allow narrow searches for equality conditions
select * from t where JSON_VALUE(col, '$.memb1')='val1' |
while MVI could allow non-equality searches:
select * from t where JSON_VALUE(col, '$.memb1')>1000 |
(with fulltext, depending on the index type we could enumerate rows that have non-empty $memb1. But filtereing on >1000 doesn't seem to be possible)
Attachments
Issue Links
- includes
-
MDEV-40113 Optimizer support for JSON queries: switch to using Multi-Valued Index API
-
- Open
-
- is blocked by
-
MDEV-25848 Support for Multi-Valued Indexes
-
- Stalled
-
-
MDEV-40168 Indexes over JSON data based on Fulltext index
-
- Stalled
-
- is duplicated by
-
MDEV-35389 Native Multi-Value Indexes for JSON
-
- Closed
-
- relates to
-
MDEV-13594 Support for JSON operators column->path and column->>path
-
- Closed
-
-
MDEV-37288 JSON Comparator: does MariaDB need one?
-
- Closed
-
-
MDEV-38591 MEMBER OF json operator
-
- In Testing
-