manticoresoftware / manticoresoftware/manticoresearch
inconsistent error behaviour between RAM and DISK parts of rt when matching non-existing field
Open
Nobody has claimed this yet.
bug
- Dominant language
- C++
- Stars
- 12k
- Forks
- 642
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 47
Description
mysql> create table tttt (t text, i int) type='rt';
Query OK, 0 rows affected (0,00 sec)
mysql> insert into tttt (id, t, i) values (1,'bla',1),(2,'ble',2);
Query OK, 2 rows affected (0,01 sec)
mysql> select * from tttt;
+------+------+------+
| id | i | t |
+------+------+------+
| 1 | 1 | bla |
| 2 | 2 | ble |
+------+------+------+
2 rows in set (0,00 sec)
mysql> select * from tttt where match ('@t bla');
+------+------+------+
| id | i | t |
+------+------+------+
| 1 | 1 | bla |
+------+------+------+
1 row in set (0,00 sec)
mysql> select * from tttt where match ('@b bla');
ERROR 1064 (42000): index tttt: query error: no field 'b' found in schema
mysql> flush ramchunk tttt;
Query OK, 0 rows affected (0,01 sec)
mysql> select * from tttt where match ('@b bla');
Empty set (0,00 sec)
mysql> show meta;
+---------------+-------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------+
| error | query error: no field 'b' found in schema |
| total | 0 |
| total_found | 0 |
| time | 0.000 |
+---------------+-------------------------------------------+
4 rows in set (0,00 sec)
Note, that after 'flush ramchunk' explicit error disappeared from console and became visible only in 'show meta' output.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the example using a real-time table, an invalid MATCH field, and flush ramchunk, then compare the RAM and disk query paths. Trace how each path reports the missing-field error; done means both paths expose the error consistently rather than moving it only to show meta.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, sql
- Domain
- databases, search
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100