Log Level opt + endpoint#535
Conversation
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
2dfebaf to
0a45e44
Compare
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
clt❌ CLT tests in test/clt-tests/buddy/test-show-version.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "show version\G;"
––– output –––
- Component: Embeddings
+ Component: Buddy
- Version: embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#
+ Version: buddy v3.28.5-5-g1ad5a6
- *************************** 6. row ***************************
- Component: Buddy
- Version: buddy %{VERSION}
test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-5-g1ad5a6"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-5-g1ad5a6"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-5-g1ad5a6"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-5-g1ad5a6"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
test/clt-tests/buddy/test-log-level-buddy-sync.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debug
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugvv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level | debug |
+ | log_level | info |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level | debugvv |
+ | log_level | info |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-buddy-max-connections-configuration.rec––– input –––
sed -i '/^searchd/a\ max_connections=1' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS t (id INT); INSERT INTO t (id) VALUES(0); SHOW QUERIES\G;"
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
––– input –––
sed -i '/^searchd/,/^}/s/max_connections=1/max_connections=2/' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
for n in 1 2; do mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS b${n} (id INT);" ; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "INSERT INTO b${n} (id) VALUES(0)" & pids="$pids $!"; done; for pid in $pids; do wait $pid; done; mysql -P9306 -h0 -e "show queries\G;"
––– output –––
OKtest/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
test/clt-tests/expected-errors/buddy-plugin-select.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM manticore.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `Manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.files;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.tables;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.triggers;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.column_statistics;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.columns;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id = '1';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id IN ('1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COALESCE(name, '') = '' FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE CONTAINS(text_field, 'NEAR((word1, word2), 3)');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DISTINCT TABLE_SCHEMA from information_schema.TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60 + MINUTE(date)) MINUTE) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60*60 + MINUTE(date)*60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) FROM test;'
––– output –––
OKtest/clt-tests/core/show-version-trailing-semicolon.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT); INSERT INTO t VALUES (1, 'example'), (2, 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli?show%20version" | awk '!/row.*in set/'; echo
––– output –––
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Component | Version |
+ | Component | Version |
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Daemon | %{VERSION} #!/\s*/!#|
+ | Daemon | 0.0.0 eddb5512e@25052304 |
- | Columnar | columnar %{VERSION} #!/\s*/!#|
+ | Columnar | columnar 4.2.2 5333714@25052214 |
- | Secondary | secondary %{VERSION} #!/\s*/!#|
+ | Secondary | secondary 4.2.2 5333714@25052214 |
- | Knn | knn %{VERSION} #!/\s*/!#|
+ | Knn | knn 4.2.2 5333714@25052214 |
- | Embeddings | embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)\s*/!#|
+ | Buddy | buddy v3.28.5-5-g1ad5a6 |
- | Buddy | buddy %{VERSION} #!/\s*/!#|
+ +-----------+----------------------------------+
- +------------+----------------------------------+
––– input –––
curl -s "http://localhost:9308/cli_json" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-5-g1ad5a6"}]}]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-5-g1ad5a6"}]}]
test/clt-tests/expected-errors/buddy-plugin-backup.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location';'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OKtest/clt-tests/expected-errors/buddy-plugin-show.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW QUERIES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW FULL TABLES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW SCHEMAS;'
––– output –––
OKtest/clt-tests/core/test-alter-rename-nightly.rec––– input –––
stdbuf -oL searchd; if timeout 10 grep -qm1 'accepting' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Started'; else echo 'Timeout or failed!'; fi
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2001(f text, s string); insert into index2001 values(01,'abc','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2002(f text, s string); insert into index2002 values(02,'def','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2003(f text, s string); insert into index2003 values(03,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2004(f text, s string); insert into index2004 values(04,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2001 RENAME new_index2001;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2002 RENAME new_index2002;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2003 RENAME new_index2003;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2004 RENAME new_index2004;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2006(f text, s string); insert into index2006 values(3,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2007(f text, s string); insert into index2007 values(4,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE dist_table type='distributed' local='index2006' local='index2007';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES; DESC dist_table"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE dist_table RENAME new_dist_table;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE products(title text, meta json) type='pq';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE products RENAME new_products;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE nonexistent RENAME new_nonexistent;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE invalid-name RENAME new_invalid_name;"
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "CREATE TABLE index${i}(f text, s string); insert into index${i} values(${i}, 'value${i}', 'string');"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "ALTER TABLE index${i} RENAME new_index${i};"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OKtest/clt-tests/expected-errors/buddy-plugin-empty-string.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET @saved_cs_client = @@character_set_client;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET character_set_client = utf8mb4;'
––– output –––
OK |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
clt❌ CLT tests in test/clt-tests/buddy/test-show-version.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "show version\G;"
––– output –––
- Component: Embeddings
+ Component: Buddy
- Version: embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#
+ Version: buddy v3.28.5-7-g81a8cd
- *************************** 6. row ***************************
- Component: Buddy
- Version: buddy %{VERSION}
test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-7-g81a8cd"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-7-g81a8cd"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-7-g81a8cd"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
- "Component": "Embeddings",
+ "Component": "Buddy",
- "Version": "embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"
+ "Version": "buddy v3.28.5-7-g81a8cd"
- },
+ }
- {
+ ]
- "Component": "Buddy",
+ }
- "Version": "buddy %{VERSION}"
+ ]
- }
- ]
- }
- ]
test/clt-tests/buddy/test-log-level-buddy-sync.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debug
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
- debugvv
+ info
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level | debug |
+ | log_level | info |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level | debugvv |
+ | log_level | info |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-buddy-max-connections-configuration.rec––– input –––
sed -i '/^searchd/a\ max_connections=1' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS t (id INT); INSERT INTO t (id) VALUES(0); SHOW QUERIES\G;"
––– output –––
OK
––– input –––
stdbuf -oL searchd --stopwait
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
––– input –––
sed -i '/^searchd/,/^}/s/max_connections=1/max_connections=2/' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi;
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
for n in 1 2; do mysql -P9306 -h0 -e "CREATE TABLE IF NOT EXISTS b${n} (id INT);" ; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "INSERT INTO b${n} (id) VALUES(0)" & pids="$pids $!"; done; for pid in $pids; do wait $pid; done; mysql -P9306 -h0 -e "show queries\G;"
––– output –––
OKtest/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-writing-binlog-during-parallel-queries.rec––– input –––
set -b +m; sed -i '/data_dir = \/var\/lib\/manticore/a\ binlog_common = 1\n' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
for i in {1..10}; do rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi; mysql -P9306 -h0 -e "drop table if exists t1"; mysql -P9306 -h0 -e "drop table if exists t2"; for n in 1 2; do mysql -P9306 -h0 -e "create table t${n}"; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "insert into t${n} values(0)" &>/dev/null; done; wait 5>/dev/null 2>&1; echo $?; mysql -P9306 -h0 -e "show tables; select * from t1; select * from t2;"; mysql -P9306 -h0 -e "flush logs"; done
––– output –––
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
test/clt-tests/expected-errors/buddy-plugin-select.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM manticore.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM `Manticore`.test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.files;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.tables;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.triggers;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.column_statistics;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT * FROM information_schema.columns;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id = '1';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE id IN ('1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COALESCE(name, '') = '' FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM test WHERE CONTAINS(text_field, 'NEAR((word1, word2), 3)');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DISTINCT TABLE_SCHEMA from information_schema.TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date) * 60 * 60 + MINUTE(date) * 60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60 + MINUTE(date)) MINUTE) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL (HOUR(date)*60*60 + MINUTE(date)*60 + SECOND(date)) SECOND) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE_ADD(DATE(date), INTERVAL HOUR(date) HOUR) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) AS date FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT DATE(date) FROM test;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFMONTH(date)-1 DAY)) FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) AS date FROM test;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SELECT DATE(DATE_SUB(date, INTERVAL DAYOFYEAR(date)-1 DAY)) FROM test;'
––– output –––
OKtest/clt-tests/core/show-version-trailing-semicolon.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE t (id INT, value TEXT); INSERT INTO t VALUES (1, 'example'), (2, 'test');"
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/cli?show%20version" | awk '!/row.*in set/'; echo
––– output –––
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Component | Version |
+ | Component | Version |
- +------------+----------------------------------+
+ +-----------+----------------------------------+
- | Daemon | %{VERSION} #!/\s*/!#|
+ | Daemon | 0.0.0 eddb5512e@25052304 |
- | Columnar | columnar %{VERSION} #!/\s*/!#|
+ | Columnar | columnar 4.2.2 5333714@25052214 |
- | Secondary | secondary %{VERSION} #!/\s*/!#|
+ | Secondary | secondary 4.2.2 5333714@25052214 |
- | Knn | knn %{VERSION} #!/\s*/!#|
+ | Knn | knn 4.2.2 5333714@25052214 |
- | Embeddings | embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)\s*/!#|
+ | Buddy | buddy v3.28.5-7-g81a8cd |
- | Buddy | buddy %{VERSION} #!/\s*/!#|
+ +-----------+----------------------------------+
- +------------+----------------------------------+
––– input –––
curl -s "http://localhost:9308/cli_json" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-7-g81a8cd"}]}]
––– input –––
curl -s "http://localhost:9308/sql?mode=raw" -d "show version"; echo
––– output –––
- [{"total":%{NUMBER},"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"%{VERSION}"},{"Component":"Columnar","Version":"columnar %{VERSION}"},{"Component":"Secondary","Version":"secondary %{VERSION}"},{"Component":"Knn","Version":"knn %{VERSION}"},{"Component":"Embeddings","Version":"embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#"},{"Component":"Buddy","Version":"buddy %{VERSION}"}]}]
+ [{"total":5,"error":"","warning":"","columns":[{"Component":{"type":"string"}},{"Version":{"type":"string"}}],"data":[{"Component":"Daemon","Version":"0.0.0 eddb5512e@25052304"},{"Component":"Columnar","Version":"columnar 4.2.2 5333714@25052214"},{"Component":"Secondary","Version":"secondary 4.2.2 5333714@25052214"},{"Component":"Knn","Version":"knn 4.2.2 5333714@25052214"},{"Component":"Buddy","Version":"buddy v3.28.5-7-g81a8cd"}]}]
test/clt-tests/expected-errors/buddy-plugin-backup.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location';'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES users, posts TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'BACKUP TABLES TO '/backup/location' OPTIONS compress=true, async=false;'
––– output –––
OKtest/clt-tests/expected-errors/buddy-plugin-show.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW QUERIES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW FULL TABLES;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SHOW SCHEMAS;'
––– output –––
OKtest/clt-tests/core/test-alter-rename-nightly.rec––– input –––
stdbuf -oL searchd; if timeout 10 grep -qm1 'accepting' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Started'; else echo 'Timeout or failed!'; fi
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2001(f text, s string); insert into index2001 values(01,'abc','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2002(f text, s string); insert into index2002 values(02,'def','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2003(f text, s string); insert into index2003 values(03,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2004(f text, s string); insert into index2004 values(04,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2001 RENAME new_index2001;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2002 RENAME new_index2002;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2003 RENAME new_index2003;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE index2004 RENAME new_index2004;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2006(f text, s string); insert into index2006 values(3,'ghi','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE index2007(f text, s string); insert into index2007 values(4,'jkl','string');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE dist_table type='distributed' local='index2006' local='index2007';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES; DESC dist_table"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE dist_table RENAME new_dist_table;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE products(title text, meta json) type='pq';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE products RENAME new_products;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE nonexistent RENAME new_nonexistent;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "ALTER TABLE invalid-name RENAME new_invalid_name;"
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "CREATE TABLE index${i}(f text, s string); insert into index${i} values(${i}, 'value${i}', 'string');"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OK
––– input –––
for i in $(seq 1 1000); do mysql -h0 -P9306 -e "ALTER TABLE index${i} RENAME new_index${i};"; done
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES" | awk 'NR==1{print $0; next} {print $0 | "sort"}'
––– output –––
OKtest/clt-tests/expected-errors/buddy-plugin-empty-string.rec––– input –––
apt-get -y remove 'manticore-buddy' > /dev/null; echo $?
––– output –––
OK
––– input –––
stdbuf -oL searchd
––– output –––
- Manticore %{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)
+ Manticore 0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)
- starting daemon version '%{VERSION} (columnar %{VERSION}) (secondary %{VERSION}) (knn %{VERSION}) (embeddings #!/([0-9]+\.[0-9]+\.[0-9]+)/!#)' ...
+ starting daemon version '0.0.0 eddb5512e@25052304 (columnar 4.2.2 5333714@25052214) (secondary 4.2.2 5333714@25052214) (knn 4.2.2 5333714@25052214)' ...
––– input –––
mysql -h0 -P9306 -e 'CREATE TABLE test (id BIGINT, name TEXT, date TIMESTAMP);'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET @saved_cs_client = @@character_set_client;'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e 'SET character_set_client = utf8mb4;'
––– output –––
OK |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
clt❌ CLT tests in test/clt-tests/buddy/test-log-level-buddy-sync.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
BUDDY_PORT=$(grep "started.*at http://127.0.0.1:" /var/log/manticore/searchd.log | tail -1 | sed 's/.*http:\/\/127.0.0.1:\([0-9]*\).*/\1/'); echo "Buddy API port: $BUDDY_PORT"
––– output –––
OK
––– input –––
sleep 2; curl -s -X GET localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debug;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=debugvv;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SET GLOBAL log_level=info;"
––– output –––
OK
––– input –––
sleep 1; curl -s -X GET localhost:$BUDDY_PORT/config | jq -r '.log_level'
––– output –––
OK
––– input –––
curl -s -X POST -d '{"log_level":"debug"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- | log_level | debug |
+ | log_level | info |
––– input –––
curl -s -X POST -d '{"log_level":"debugvv"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
- +---------------+---------+
+ +---------------+-------+
- | Variable_name | Value |
+ | Variable_name | Value |
- +---------------+---------+
+ +---------------+-------+
- | log_level | debugvv |
+ | log_level | info |
- +---------------+---------+
+ +---------------+-------+
––– input –––
curl -s -X POST -d '{"log_level":"info"}' localhost:$BUDDY_PORT/config; echo
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW VARIABLES LIKE 'log_level';"
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
clt❌ CLT tests in test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
clt❌ CLT tests in test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
88c5491 to
63a9f0a
Compare
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
clt❌ CLT tests in test/clt-tests/buddy/test-inconsistent-comunication-with-buddy.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW TABLES"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20TABLES"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; echo
––– output –––
- {"Variable_name":"last_insert_id","Value":""},
+ {"Variable_name":"last_insert_id","Value":"0"},
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW META"; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20META"; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20QUERIES" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OK
––– input –––
curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VERSION" | jq '.[0].data |= sort_by(.id)'; echo
––– output –––
OKtest/clt-tests/buddy/test-fuzzy-search.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get update -y > /dev/null; echo $?
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
php -d memory_limit=2G ./test/clt-tests/scripts/load_names_attr.php --batch-size=100000 --concurrency=1 --docs=1000000 --start-id=1 --min-infix-len=2 > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name ORDER BY id ASC LIMIT 1000000 OPTION max_matches=1000000;" > /tmp/name_data.txt
––– output –––
OK
––– input –––
md5sum /tmp/name_data.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE name;" | grep "min_infix_len='2'" | sed "s/.\(min_infix_len='2'\)./\1/"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM name;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "OPTIMIZE TABLE name OPTION sync=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('RICH') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('EBGRNA') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('ANT') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('tony') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
- | 1721 | JOE TONG | a |
+ | 2154 | TONY GREY | a |
- | 2154 | TONY GREY | a |
+ | 3759 | TOBY GILCHRIST | a |
- | 3759 | TOBY GILCHRIST | a |
+ | 5687 | TONY EASTERLING | a |
- | 5292 | TONA VALENTIN | a |
+ | 5835 | TOBY ROBERSON | a |
- | 5687 | TONY EASTERLING | a |
+ | 6281 | TOBY ARAIZA | a |
- | 5835 | TOBY ROBERSON | a |
+ | 7311 | ANTONY STOVALL | a |
- | 6281 | TOBY ARAIZA | a |
+ | 7475 | TOBY REINHART | a |
- | 6962 | TONA DAVIDSON | a |
+ | 8828 | TONYA CALLAHAN | a |
- | 7311 | ANTONY STOVALL | a |
+ | 9251 | TOBY LANGFORD | a |
- | 7475 | TOBY REINHART | a |
+ | 9293 | ZENA STORY | a |
- | 8174 | TONA CARRILLO | a |
+ | 9619 | TONY WHITTINGTON | a |
- | 8700 | TONA FLETCHER | a |
+ | 10167 | LANA STORY | a |
- | 8828 | TONYA CALLAHAN | a |
+ | 10341 | ANTONY KAYE | a |
- | 9251 | TOBY LANGFORD | a |
+ | 12573 | LATONYA CRABTREE | a |
- | 9293 | ZENA STORY | a |
+ | 12876 | TOBY MONTENEGRO | a |
- | 9619 | TONY WHITTINGTON | a |
+ | 13391 | ANTONY CARRILLO | a |
- | 10167 | LANA STORY | a |
+ | 13672 | LEZLIE STORY | a |
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMYTH') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
- +--------+--------------------+------+
+ +--------+----------------+------+
- | id | username | s |
+ | id | username | s |
- +--------+--------------------+------+
+ +--------+----------------+------+
- | 999921 | VICKI SOUTHARD | a |
+ | 998829 | EDYTHE VACA | a |
- | 998829 | EDYTHE VACA | a |
+ | 998500 | SETH PHUNG | a |
- | 998500 | SETH PHUNG | a |
+ | 996507 | SETH LYMAN | a |
- | 996507 | SETH LYMAN | a |
+ | 995119 | EDYTHE JOHN | a |
- | 995690 | ROBERTO SOUTHARD | a |
+ | 993455 | EDYTH ROSADO | a |
- | 995663 | CHUNG SOUTH | a |
+ | 992097 | EDYTH RAGAN | a |
- | 995119 | EDYTHE JOHN | a |
+ | 989954 | GWENN SMYTH | a |
- | 993455 | EDYTH ROSADO | a |
+ | 988823 | SETH WHITTAKER | a |
- | 993278 | LAKITA SOUTHARD | a |
+ | 988755 | SHERRON SMYTH | a |
- | 992097 | EDYTH RAGAN | a |
+ | 988366 | LAVONIA SMYTH | a |
- | 989954 | GWENN SMYTH | a |
+ | 986580 | DARNELL SMYTH | a |
- | 988936 | LARISA SOUTHERLAND | a |
+ | 986231 | EDYTH BLODGETT | a |
- | 988823 | SETH WHITTAKER | a |
+ | 985595 | SETH BACON | a |
- | 988759 | LIEN SOUTHARD | a |
+ | 982423 | SETH CHATMAN | a |
- | 988755 | SHERRON SMYTH | a |
+ | 981115 | KATIE SMYTH | a |
- | 988366 | LAVONIA SMYTH | a |
+ | 979541 | EDYTHE CLAYTON | a |
- | 987165 | TULA SOUTHARD | a |
+ | 979093 | SETH BURROUGHS | a |
- | 987136 | LUANN SOUTHARD | a |
+ | 978812 | EDYTH GULLEY | a |
- | 986847 | JORDAN SOUTHERN | a |
+ | 975994 | SETH PARHAM | a |
- | 986711 | MARLIN SOUTHERN | a |
+ | 975841 | ALEIDA SMYTH | a |
- +--------+--------------------+------+
+ +--------+----------------+------+
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id DESC, username ASC OPTION fuzzy=\"1\";"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('john') ORDER BY id DESC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('jane') AND id BETWEEN 10000 AND 20000 ORDER BY username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('EBGRNA') AND id BETWEEN 1000 AND 2000 ORDER BY username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SARA') ORDER BY id ASC, username ASC OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, ranker=expr('sum((4*lcs+2*(min_hit_pos=1)+exact_hit)*user_weight)*1000+bm25'), field_weights=(username=1), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, field_weights=(username=1), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, ranker=expr('sum((4*lcs+2*(min_hit_pos=1)+exact_hit)*user_weight)*1000+bm25'), fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT username FROM name WHERE MATCH('SMITH') OPTION cutoff=0, fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id ASC OPTION fuzzy=0;" > /tmp/result_fuzzy0.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name WHERE MATCH('SMITH') ORDER BY id ASC;" > /tmp/result_no_fuzzy.txt
––– output –––
OK
––– input –––
diff /tmp/result_fuzzy0.txt /tmp/result_no_fuzzy.txt; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS fuzziness);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'us,ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 0 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS prepend, 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS fuzziness, '' AS layouts, 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 2 AS fuzziness, 'us,ru' AS layouts, 1 AS append, 1 AS prepend, 2 AS expansion_len);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'us' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('jo', 'name', 'ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('al', 'name', 0 AS fuzziness);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('mi', 'name', 0 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('ch', 'name', 1 AS fuzziness, 3 AS expansion_len);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('зф', 'name', 'us,ru' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('зф', 'name', 'us' AS layouts);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('gr', 'name', 1 AS fuzziness, 'ru' AS layouts, 1 AS append, 1 AS prepend);" | tail -n +4 | sort
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS tbl1; CREATE TABLE tbl1 (title TEXT) min_infix_len='2';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM \`tbl1\` WHERE MATCH('abc') OPTION fuzzy = 1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(a int);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t option fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists comment_28798446; create table comment_28798446(id int, content text) min_infix_len='3';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into comment_28798446 values (1, 'business Manticore interaction'), (2, 'buisness Manticore interation'), (3, 'other text content');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('buisness Manticore interation') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('business Manticore interaction') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('Manticore') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', 'ru,us,ua' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', '' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('somethin') option fuzzy=0;"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -P9306 -h0 -e "drop table if exists t; create table t(f text) min_infix_len='2'; insert into t values(1, 'something'), (2, 'some thing'); call autocomplete('some', 't');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists t; create table t(a int);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t option fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "drop table if exists comment_28798446; create table comment_28798446(id int, content text) min_infix_len='3';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into comment_28798446 values (1, 'business Manticore interaction'), (2, 'buisness Manticore interation'), (3, 'other text content');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('buisness Manticore interation') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('business Manticore interaction') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT id FROM comment_28798446 WHERE MATCH('Manticore') OPTION fuzzy = 1, layouts = '';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', 'ru,us,ua' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('bus', 'comment_28798446', '' AS layouts);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS t; DEBUG SLEEP 2; CREATE TABLE t(f TEXT) min_infix_len='2';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO t VALUES (1, 'abcdef'), (2, 'abcd efgh');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcdef'); SHOW META;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "insert into t values(3, 'aa defghi xxx');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select * from t where match('aa def ghi xxx') option fuzzy=1, layouts='';"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcef') OPTION fuzzy=1; SHOW META;"
––– output –––
OK
––– input –––
grep -A3 "SELECT \* FROM t WHERE MATCH('abcdef')" /var/log/manticore/query.log
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('nonexistent'); SHOW META;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('abcdef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM t WHERE MATCH('\$#@\!') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "DROP TABLE IF EXISTS idx1; CREATE TABLE idx1(value TEXT) min_infix_len='2';"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO idx1(value) VALUES ('340');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('34', 'idx1');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('3', 'idx1');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('34', 'idx1', 1 AS fuzziness);"
––– output –––
OK
––– input –––
echo -e "searchd {\nlisten = 9306:mysql\nlisten = 9312\nlisten = 9308:http\nlog = /tmp/searchd.log\nquery_log = /tmp/query.log\npid_file = /tmp/searchd.pid\n}\n\nsource src_idx {\ntype = tsvpipe\ntsvpipe_command = cat /tmp/data.tsv\ntsvpipe_field_string = f\ntsvpipe_attr_bigint = id\n}\n\nindex idx_plain {\ntype = plain\nsource = src_idx\npath = /tmp/idx_plain\nmin_infix_len = 2\n}" > /tmp/manticore_idx.conf; echo $?
––– output –––
OK
––– input –––
echo -e "1\tabcdef\n2\tabcd efgh\n3\trandom text" > /tmp/data.tsv; echo $?
––– output –––
OK
––– input –––
mkdir -p /tmp/idx_plain && chmod 777 /tmp/idx_plain; echo $?
––– output –––
OK
––– input –––
indexer --all --config /tmp/manticore_idx.conf > /dev/null 2>&1; echo $?
––– output –––
OK
––– input –––
rm -f /tmp/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; (stdbuf -oL searchd -c /tmp/manticore_idx.conf 2>&1 | tee /tmp/searchd.log | grep -i precach & disown); sleep 0.5; if timeout 10 grep -qm1 '\[BUDDY\] started' /tmp/searchd.log; then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /tmp/searchd.log; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLES;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW TABLE idx_plain SETTINGS;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcdef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcef') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('nonexistent') OPTION fuzzy=1;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('abc', 'idx_plain');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('ran', 'idx_plain');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CALL AUTOCOMPLETE('zzz', 'idx_plain');"; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcdef') OPTION fuzzy=0;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM idx_plain WHERE MATCH('abcd efgh') OPTION fuzzy=0;"
––– output –––
OKtest/clt-tests/buddy/test-fuzzy-autocomplete-http.rec––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 '\[BUDDY\] started' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Buddy started!'; else echo 'Timeout or failed!'; cat /var/log/manticore/searchd.log;fi
––– output –––
OK
––– input –––
apt-get update -y > /dev/null; echo $?
––– output –––
OK
––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
php -d memory_limit=2G ./test/clt-tests/scripts/load_names_attr.php --batch-size=100000 --concurrency=1 --docs=1000000 --start-id=1 --min-infix-len=2 > /dev/null; echo $?
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT * FROM name ORDER BY id ASC LIMIT 1000000 OPTION max_matches=1000000;" > /tmp/name_data.txt
––– output –––
OK
––– input –––
md5sum /tmp/name_data.txt
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SHOW CREATE TABLE name;" | grep "min_infix_len='2'" | sed "s/.\(min_infix_len='2'\)./\1/"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM name;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "OPTIMIZE TABLE name OPTION sync=1;"
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"EBGRNA"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"ANT"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"tony"}}]}},"options":{"fuzzy":true}}' | jq -M
––– output –––
- "total": 2200,
+ "total": 1813,
- "_id": 1721,
+ "_id": 800363,
- "_score": 1531,
+ "_score": 1547,
- "username": "JOE TONG",
+ "username": "TOBY BEAULIEU",
- "_id": 5292,
+ "_id": 807095,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA VALENTIN",
+ "username": "TOBY HOFER",
- "_id": 6962,
+ "_id": 807096,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA DAVIDSON",
+ "username": "TOBY DEMPSEY",
- "_id": 8174,
+ "_id": 808820,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA CARRILLO",
+ "username": "TOBY RAYMOND",
- "_id": 8700,
+ "_id": 808863,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA FLETCHER",
+ "username": "TOBY BATEMAN",
- "_id": 11975,
+ "_id": 813761,
- "_score": 1531,
+ "_score": 1547,
- "username": "CAMILLA TONG",
+ "username": "TOBY VANWINKLE",
- "_id": 15241,
+ "_id": 818229,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA FENG",
+ "username": "TOBY BROCK",
- "_id": 15914,
+ "_id": 825472,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA POINDEXTER",
+ "username": "TOBY LINDQUIST",
- "_id": 16361,
+ "_id": 826251,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA HIGGS",
+ "username": "TOBY KAUFFMAN",
- "_id": 17120,
+ "_id": 827886,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA ARCHER",
+ "username": "TOBY PITMAN",
- "_id": 18205,
+ "_id": 832558,
- "_score": 1531,
+ "_score": 1547,
- "username": "KIMBRA TONG",
+ "username": "TOBY KELLEY",
- "_id": 19344,
+ "_id": 833689,
- "_score": 1531,
+ "_score": 1547,
- "username": "JOSEF TONG",
+ "username": "TOBY HANDY",
- "_id": 23070,
+ "_id": 834136,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA YUN",
+ "username": "TOBY HOPPE",
- "_id": 25266,
+ "_id": 836413,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA OVIEDO",
+ "username": "TOBY STOVALL",
- "_id": 27082,
+ "_id": 839075,
- "_score": 1531,
+ "_score": 1547,
- "username": "ROZELLA TONG",
+ "username": "TOBY JEROME",
- "_id": 31839,
+ "_id": 839512,
- "_score": 1531,
+ "_score": 1547,
- "username": "MELANI TONG",
+ "username": "TOBY LEONARD",
- "_id": 36735,
+ "_id": 841923,
- "_score": 1531,
+ "_score": 1547,
- "username": "KANESHA TONG",
+ "username": "TOBY PARNELL",
- "_id": 39741,
+ "_id": 842450,
- "_score": 1531,
+ "_score": 1547,
- "username": "TONA GRAFF",
+ "username": "TOBY LOWE",
- "_id": 41701,
+ "_id": 843217,
- "_score": 1531,
+ "_score": 1547,
- "username": "KARISA TONG",
+ "username": "TOBY ROBISON",
- "_id": 53822,
+ "_id": 846291,
- "_score": 1531,
+ "_score": 1547,
- "username": "ROSALINDA TONG",
+ "username": "TOBY BITTNER",
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"SMITH"}}]}}, "sort":[{"id":"desc"},{"username":"asc"}], "options":{"fuzzy":true}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/search -d '{"index":"name","query":{"bool":{"must":[{"match":{"*":"SMYTH"}}]}}, "sort":[{"id":"desc"},{"username":"asc"}], "options":{"fuzzy":true}}' | jq -M
––– output –––
- "total": 1567,
+ "total": 773,
- "_id": 999921,
+ "_id": 998829,
- "username": "VICKI SOUTHARD",
+ "username": "EDYTHE VACA",
- "_id": 998829,
+ "_id": 998500,
- "username": "EDYTHE VACA",
+ "username": "SETH PHUNG",
- "_id": 998500,
+ "_id": 996507,
- "username": "SETH PHUNG",
+ "username": "SETH LYMAN",
- "_id": 996507,
+ "_id": 995119,
- "username": "SETH LYMAN",
+ "username": "EDYTHE JOHN",
- "_id": 995690,
+ "_id": 993455,
- "username": "ROBERTO SOUTHARD",
+ "username": "EDYTH ROSADO",
- "_id": 995663,
+ "_id": 992097,
- "username": "CHUNG SOUTH",
+ "username": "EDYTH RAGAN",
- "_id": 995119,
+ "_id": 989954,
- "username": "EDYTHE JOHN",
+ "username": "GWENN SMYTH",
- "_id": 993455,
+ "_id": 988823,
- "username": "EDYTH ROSADO",
+ "username": "SETH WHITTAKER",
- "_id": 993278,
+ "_id": 988755,
- "username": "LAKITA SOUTHARD",
+ "username": "SHERRON SMYTH",
- "_id": 992097,
+ "_id": 988366,
- "username": "EDYTH RAGAN",
+ "username": "LAVONIA SMYTH",
- "_id": 989954,
+ "_id": 986580,
- "username": "GWENN SMYTH",
+ "username": "DARNELL SMYTH",
- "_id": 988936,
+ "_id": 986231,
- "username": "LARISA SOUTHERLAND",
+ "username": "EDYTH BLODGETT",
- "_id": 988823,
+ "_id": 985595,
- "username": "SETH WHITTAKER",
+ "username": "SETH BACON",
- "_id": 988759,
+ "_id": 982423,
- "username": "LIEN SOUTHARD",
+ "username": "SETH CHATMAN",
- "_id": 988755,
+ "_id": 981115,
- "username": "SHERRON SMYTH",
+ "username": "KATIE SMYTH",
- "_id": 988366,
+ "_id": 979541,
- "username": "LAVONIA SMYTH",
+ "username": "EDYTHE CLAYTON",
- "_id": 987165,
+ "_id": 979093,
- "username": "TULA SOUTHARD",
+ "username": "SETH BURROUGHS",
- "_id": 987136,
+ "_id": 978812,
- "username": "LUANN SOUTHARD",
+ "username": "EDYTH GULLEY",
- "_id": 986847,
+ "_id": 975994,
- "username": "JORDAN SOUTHERN",
+ "username": "SETH PARHAM",
- "_id": 986711,
+ "_id": 975841,
- "username": "MARLIN SOUTHERN",
+ "username": "ALEIDA SMYTH",
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"layouts":"us,ru"}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"append":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"prepend":0}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"prepend":1,"append":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":1,"layouts":"","append":1,"prepend":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":2,"layouts":"us,ru","append":1,"prepend":1,"expansion_len":2}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"gr","options":{"fuzziness":1,"layouts":"ru","append":1,"prepend":1}}' | jq -M
––– output –––
OK
––– input –––
curl -sX POST http://localhost:9308/autocomplete -d '{"table":"name","query":"jo","options":{"fuzziness":1}}' | jq -M
––– output –––
OK |
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debugvv --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
test/clt-tests/core/test-writing-binlog-during-parallel-queries.rec––– input –––
set -b +m; sed -i '/data_dir = \/var\/lib\/manticore/a\ binlog_common = 1\n' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
for i in {1..10}; do rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null; if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi; mysql -P9306 -h0 -e "drop table if exists t1"; mysql -P9306 -h0 -e "drop table if exists t2"; for n in 1 2; do mysql -P9306 -h0 -e "create table t${n}"; done; sleep 1; for n in 1 2; do mysql -P9306 -h0 -e "insert into t${n} values(0)" &>/dev/null; done; wait 5>/dev/null 2>&1; echo $?; mysql -P9306 -h0 -e "show tables; select * from t1; select * from t2;"; mysql -P9306 -h0 -e "flush logs"; done
––– output –––
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
- | id |
+ | id |
- +---------------------+
+ +--------------------+
- +---------------------+
+ +--------------------+
test/clt-tests/core/test-character-transformation-when-sending-to-buddy.rec––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --debug' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "CREATE TABLE test (id BIGINT, a TEXT, b TEXT);"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "INSERT INTO test (id, a, b) VALUES (1, 'hello', 'world'), (2, 'hello', 'universe'), (3, 'goodbye', 'world');"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key1 = 1, key2 = 2;"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select b, a from test where match('hello world') option key2 = 2"
––– output –––
OK
––– input –––
mysql -h0 -P9306 -e "select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3;"
––– output –––
OK
––– input –––
sleep 0.02; cat /var/log/manticore/searchd.log | grep 'request data' | sed 's/.*request data/request data/'
––– output –––
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key1 = 1, key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key2'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select b, a from test where match('hello world') option key2 = 2","http_method":""}}
- request data: {"type":"unknown sql request","error":{"message":"unknown option 'key1'","body":null},"version":3,"user":"root","message":{"path_query":"","body":"select a, b from test where match('hello world') option key1 = 1, key2 = 2, key3 = 3","http_method":""}}
|
63a9f0a to
8d0884d
Compare
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
…--debugvv options
- Introduce ConfigManager to store config in Swoole Table for thread safety - Replace putenv calls in CliArgsProcessor with ConfigManager::set - Ensure consistent and centralized config management across workers
- Replace --debug, --debugv, --debugvv flags with --log-level option in configs and scripts - Update README, cluster script, and tests to use --log-level for consistent logging control - Simplify debug mode handling and improve clarity of logging configuration
- Assert non-null ConfigManager::$table before usage to satisfy PHPStan - Add type checks for array structure in ConfigManager::get and getAll - Fix logic in setDefaults to skip existing keys correctly - Correct output format enum usage in EventHandler for Raw format - Ensure ConfigManager::set uses non-null string for PLUGIN_DIR - Fix string quoting in test assertion for consistency
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
e754ec5 to
9bb42cc
Compare
clt❌ CLT tests in test/clt-tests/core/test-manticore-version-in-telemetry.rec––– input –––
apt-get install jq -y > /dev/null; echo $?
––– output –––
OK
––– input –––
sed -i '/data_dir = \/var\/lib\/manticore/a\ buddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --telemetry-period=5' /etc/manticoresearch/manticore.conf
––– output –––
OK
––– input –––
export SEARCHD_ARGS="--logdebugv"
––– output –––
OK
––– input –––
rm -f /var/log/manticore/searchd.log; stdbuf -oL searchd --stopwait > /dev/null; stdbuf -oL searchd ${SEARCHD_ARGS:-} > /dev/null
––– output –––
OK
––– input –––
if timeout 10 grep -qm1 'accepting connections' <(tail -n 1000 -f /var/log/manticore/searchd.log); then echo 'Accepting connections!'; else echo 'Timeout or failed!'; fi
––– output –––
OK
––– input –––
timeout 60 bash -c 'grep -m 1 "labels:" <(tail -f /var/log/manticore/searchd.log) | sed "s/.*labels: //" | jq -M .'
––– output –––
- {
- "collector": "buddy",
- "os_name": "Linux",
- "os_release_name": "Ubuntu",
- "os_release_version": "%{SEMVER} LTS (#!/[A-Za-z]+\s[A-Za-z]+/!#)",
- "machine_type": "x86_64",
- "machine_id": "#!/[0-9A-Za-z]+/!#",
- "dockerized": "#!/\b(?:unknown|yes)\b/!#",
- "official_docker": "#!/\b(?:no|yes)\b/!#",
- "buddy_version": "%{VERSION}",
- "manticore_version": "%{VERSION}",
- "columnar_version": "%{VERSION}",
- "secondary_version": "%{VERSION}",
- "knn_version": "%{VERSION}",
- "embeddings_version": "%{VERSION}",
- "manticore_mode": "#!/[A-Za-z]+/!#",
- "manticore_binlog_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_auto_optimize_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_query_log_format": "#!/[A-Za-z]+/!#",
- "manticore_max_allowed_packet": "%{NUMBER}",
- "manticore_pseudo_sharding_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_secondary_indexes_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_accurate_aggregation_enabled": "#!/\b(?:no|yes)\b/!#",
- "manticore_distinct_precision_threshold": "%{NUMBER}"
- }
|
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
🐳 Docker Images PushedBuddy Test-Kit Images:
Base image used: These images contain the buddy code from this PR and can be used for testing. |
No description provided.