manticoresoftware / manticoresoftware/manticoresearch

inconsistent error behaviour between RAM and DISK parts of rt when matching non-existing field

Open
#558 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.