Details
-
New Feature
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
Q3/2026 Server Development
Description
Splitting this off from MDEV-38306.
The code in MDEV-25848 will reimplement Fulltext and Vector as Multi-Value indexes. It will handle index maintenance and provide an API for index access, as well as for estimating the cost of reading an index.
This task is about hooking it to SQL.
Current draft of Multi-Valued Index API looks like this:
class hlindex : public Sql_alloc |
{
|
public: |
hlindex(TABLE *t) : table(t) { }
|
|
|
virtual int insert_row(TABLE *tbl, KEY *keyinfo) = 0; |
// This takes the condition and initializes a scan to read the records: |
virtual int read_init(TABLE *tbl, KEY *keyinfo, Item *dist, ulonglong limit) = 0; |
virtual int read_next(TABLE *tbl) = 0; |
virtual int read_end(TABLE *tbl) = 0; |
virtual int delete_row(TABLE *tbl, const uchar *rec, KEY *keyinfo) = 0; |
virtual int delete_all(TABLE *tbl, KEY *keyinfo, bool truncate) = 0; |
virtual bool reading() = 0; |
virtual ~hlindex(); |
|
|
TABLE *table;
|
}
|
also cost function will be added:
virtual cost_of_read(TABLE *tbl, KEY *keyinfo, Item *dist, ulonglong limit, COST *cost, ha_rows *rows) = 0; |
This MDEV is about hooking these into Query Optimizer/ Executor.
Attachments
Issue Links
- relates to
-
MDEV-25848 Support for Multi-Valued Indexes
-
- In Progress
-
-
MDEV-38306 Optimizer support for Multi-Valued indexes over JSON data
-
- Open
-