manticoresoftware / manticoresearch

Easy to use open source fast database for search | Good alternative to Elasticsearch now | Drop-in replacement for E in the ELK soon
https://manticoresearch.com
GNU General Public License v3.0
8.82k stars 489 forks source link

Meta info in mysql response #1456

Closed sanikolaev closed 11 months ago

sanikolaev commented 11 months ago

It would be nice if we could show the most important query meta info right in the mysql response without the need to do SHOW META, e.g.:

mysql> select * from hackernews;
Empty set (0.00 sec)
Time: 0.000877 sec., total found: 0

The task is to research how feasible it is and implement. Things to check:

tomatolog commented 11 months ago

SendMysqlOkPacket already has a sMessage argument and any text there looks like one-liner at reply message

mysql> select * from hackernews;
Empty set (0.00 sec)
any text - Time: 0.000877 sec., total found: 0
sanikolaev commented 11 months ago

An idea of what it might look like combining total, total_found, total_relation and time:

mysql> select * from hackernews limit 0;
Empty set (0.00 sec)
--- 0 out of 1115 results in 115 ms ---

mysql> select * from t
+---------------------+
| id                  |
+---------------------+
| 1515532189620502761 |
| 1515532189620502801 |
| 1515532189620502762 |
| 1515532189620502802 |
| 1515532189620502800 |
| 1515532189620502760 |
| 1515532189620502758 |
| 1515532189620502798 |
| 1515532189620502759 |
| 1515532189620502799 |
| 1515532189620502694 |
| 1515532189620502718 |
| 1515532189620502716 |
| 1515532189620502692 |
| 1515532189620502693 |
| 1515532189620502647 |
| 1515532189620502648 |
| 1515532189620502623 |
| 1515532189620502583 |
| 1515532189620502582 |
+---------------------+
20 rows in set (5.12 sec)
--- 20 out of >= 20 results in 5.123 sec ---
sanikolaev commented 11 months ago

Note from today's dev call: many tests may fail when we implement this. We'll have to update them or do smth else.

sanikolaev commented 11 months ago

As discuss with Alexey on the call of Oct 2 2023, there's a function which can display time in human-readable format. We can use it.