@ -27,7 +27,6 @@
# include <stdio.h>
# include <utility>
# include <vector>
# include <numeric>
# include "mysql.h"
# include "mysqld_error.h"
@ -46,7 +45,6 @@ using std::map;
using nlohmann : : json ;
int create_testing_tables ( MYSQL * mysql_server ) {
diag ( " Creating testing tables... " ) ;
// Create the testing database
MYSQL_QUERY ( mysql_server , " CREATE DATABASE IF NOT EXISTS test " ) ;
MYSQL_QUERY ( mysql_server , " DROP TABLE IF EXISTS test.gtid_test " ) ;
@ -66,7 +64,6 @@ int create_testing_tables(MYSQL* mysql_server) {
}
int insert_random_data ( MYSQL * proxysql_mysql , uint32_t rows ) {
diag ( " Inserting %u rows of random data... " , rows ) ;
int rnd_a = rand ( ) % 1000 ;
string rnd_c = random_string ( rand ( ) % 100 + 5 ) ;
string rnd_pad = random_string ( rand ( ) % 50 + 5 ) ;
@ -128,7 +125,6 @@ map<uint32_t, pair<uint32_t,uint32_t>> extract_hosgtroups_stats(const vector<mys
}
int perform_rnd_selects ( const CommandLine & cl , uint32_t NUM ) {
diag ( " Performing %u random selects... " , NUM ) ;
// Check connections only performing select doesn't contribute to GITD count
MYSQL * select_conn = mysql_init ( NULL ) ;
@ -159,7 +155,6 @@ int perform_rnd_selects(const CommandLine& cl, uint32_t NUM) {
}
int check_gitd_tracking ( const CommandLine & cl , MYSQL * proxysql_mysql , MYSQL * proxysql_admin ) {
diag ( " Checking GTID tracking stats... " ) ;
// Check that all queries were routed to the correct hostgroup
MYSQL_QUERY ( proxysql_admin , " SELECT hostgroup, queries, Queries_GTID_sync FROM stats.stats_mysql_connection_pool " ) ;
MYSQL_RES * conn_pool_stats_myres = mysql_store_result ( proxysql_admin ) ;
@ -184,7 +179,7 @@ int check_gitd_tracking(const CommandLine& cl, MYSQL* proxysql_mysql, MYSQL* pro
NUM_CHECKS ; // Updates (matching number of checks)
uint32_t hg_1200_exp_sync_queries = NUM_CHECKS - 1 ;
bool hg_1200_checks = hg_1200_ queries = = hg_1200 _exp _queries & & hg_1200_sync_queries = = hg_1200_exp_sync_queries ;
bool hg_1200_checks = hg_1200_ exp_ queries = = hg_1200 _queries & & hg_1200_sync_queries = = hg_1200_exp_sync_queries ;
bool hg_1201_checks = hg_1201_queries = = NUM_CHECKS & & hg_1201_sync_queries = = NUM_CHECKS ;
ok (
@ -252,31 +247,15 @@ int main(int argc, char** argv) {
plan ( 3 ) ;
}
diag ( " Initializing test_binlog_reader-t... " ) ;
diag ( " Connecting to ProxySQL Admin on %s:%d as %s " , cl . host , cl . admin_port , cl . admin_username ) ;
MYSQL * proxysql_mysql = mysql_init ( NULL ) ;
MYSQL * proxysql_admin = mysql_init ( NULL ) ;
if ( ! mysql_real_connect ( proxysql_admin , cl . host , cl . admin_username , cl . admin_password , NULL , cl . admin_port , NULL , 0 ) ) {
fprintf ( stderr , " File %s, line %d, Error: %s \n " , __FILE__ , __LINE__ , mysql_error ( proxysql_admin ) ) ;
return EXIT_FAILURE ;
}
diag ( " Ensuring user 'sbtest8' exists in ProxySQL with fast_forward=0 " ) ;
MYSQL_QUERY ( proxysql_admin , " INSERT OR REPLACE INTO mysql_users (username, password, active, default_hostgroup, fast_forward) VALUES ('sbtest8', 'sbtest8', 1, 0, 0) " ) ;
MYSQL_QUERY ( proxysql_admin , " LOAD MYSQL USERS TO RUNTIME " ) ;
diag ( " Connecting to ProxySQL on %s:%d as sbtest8 " , cl . host , cl . port ) ;
MYSQL * proxysql_mysql = mysql_init ( NULL ) ;
if ( ! mysql_real_connect ( proxysql_mysql , cl . host , " sbtest8 " , " sbtest8 " , NULL , cl . port , NULL , 0 ) ) {
fprintf ( stderr , " File %s, line %d, Error: %s \n " , __FILE__ , __LINE__ , mysql_error ( proxysql_mysql ) ) ;
diag ( " Access denied for user 'sbtest8'. Checking if it exists in runtime_mysql_users... " ) ;
MYSQL_QUERY ( proxysql_admin , " SELECT * FROM runtime_mysql_users WHERE username='sbtest8' " ) ;
MYSQL_RES * res = mysql_store_result ( proxysql_admin ) ;
if ( res ) {
diag ( " User 'sbtest8' found in runtime_mysql_users with %llu rows " , mysql_num_rows ( res ) ) ;
mysql_free_result ( res ) ;
} else {
diag ( " User 'sbtest8' NOT found in runtime_mysql_users! " ) ;
}
return EXIT_FAILURE ;
}
if ( ! mysql_real_connect ( proxysql_admin , cl . host , cl . admin_username , cl . admin_password , NULL , cl . admin_port , NULL , 0 ) ) {
fprintf ( stderr , " File %s, line %d, Error: %s \n " , __FILE__ , __LINE__ , mysql_error ( proxysql_admin ) ) ;
return EXIT_FAILURE ;
}
@ -285,7 +264,6 @@ int main(int argc, char** argv) {
vector < mysql_res_row > reader_2_read { } ;
// Reset connection pool stats
diag ( " Resetting connection pool stats... " ) ;
int rc = mysql_query ( proxysql_admin , " SELECT * FROM stats.stats_mysql_connection_pool_reset " ) ;
if ( rc ! = EXIT_SUCCESS ) { goto cleanup ; }
mysql_free_result ( mysql_store_result ( proxysql_admin ) ) ;
@ -297,7 +275,6 @@ int main(int argc, char** argv) {
rc = insert_random_data ( proxysql_mysql , NUM_ROWS ) ;
if ( rc ! = EXIT_SUCCESS ) { goto cleanup ; }
diag ( " Performing %u update/select pairs... " , NUM_CHECKS ) ;
for ( uint32_t i = 0 ; i < NUM_CHECKS ; i + + ) {
rc = perform_update ( proxysql_mysql , NUM_ROWS ) ;
if ( rc ! = EXIT_SUCCESS ) { goto cleanup ; }
@ -361,6 +338,5 @@ cleanup:
mysql_close ( proxysql_mysql ) ;
mysql_close ( proxysql_admin ) ;
diag ( " Test completed " ) ;
return exit_status ( ) ;
}