@ -485,8 +485,8 @@ int ProxySQL_Admin::FlushDigestTableToDisk(SQLite3DB *_db) {
sqlite3_stmt * statement32 = NULL ;
char * query1 = NULL ;
char * query32 = NULL ;
query1 = ( char * ) " INSERT INTO history_mysql_query_digest VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14 )" ;
query32 = ( char * ) " INSERT INTO history_mysql_query_digest VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14 ) , ( ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23, ?24, ?25, ?26, ?27, ?28) , ( ?29, ?30, ?31, ?32, ?33, ?34, ?35, ?36, ?37, ?38, ?39, ?40, ?41, ?42) , ( ?43, ?44, ?45, ?46, ?47, ?48, ?49, ?50, ?51, ?52, ?53, ?54, ?55, ?56) , ( ?57, ?58, ?59, ?60, ?61, ?62, ?63, ?64, ?65, ?66, ?67, ?68, ?69, ?70) , ( ?71, ?72, ?73, ?74, ?75, ?76, ?77, ?78, ?79, ?80, ?81, ?82, ?83, ?84) , ( ?85, ?86, ?87, ?88, ?89, ?90, ?91, ?92, ?93, ?94, ?95, ?96, ?97, ?98) , ( ?99, ?100, ?101, ?102, ?103, ?104, ?105, ?106, ?107, ?108, ?109, ?110, ?111, ?112) , ( ?113, ?114, ?115, ?116, ?117, ?118, ?119, ?120, ?121, ?122, ?123, ?124, ?125, ?126) , ( ?127, ?128, ?129, ?130, ?131, ?132, ?133, ?134, ?135, ?136, ?137, ?138, ?139, ?140) , ( ?141, ?142, ?143, ?144, ?145, ?146, ?147, ?148, ?149, ?150, ?151, ?152, ?153, ?154) , ( ?155, ?156, ?157, ?158, ?159, ?160, ?161, ?162, ?163, ?164, ?165, ?166, ?167, ?168) , ( ?169, ?170, ?171, ?172, ?173, ?174, ?175, ?176, ?177, ?178, ?179, ?180, ?181, ?182) , ( ?183, ?184, ?185, ?186, ?187, ?188, ?189, ?190, ?191, ?192, ?193, ?194, ?195, ?196) , ( ?197, ?198, ?199, ?200, ?201, ?202, ?203, ?204, ?205, ?206, ?207, ?208, ?209, ?210), (?211, ?212, ?213, ?214, ?215, ?216, ?217, ?218, ?219, ?220, ?221, ?222, ?223, ?224) , ( ?225, ?226, ?227, ?228, ?229, ?230, ?231, ?232, ?233, ?234, ?235, ?236, ?237, ?238) , ( ?239, ?240, ?241, ?242, ?243, ?244, ?245, ?246, ?247, ?248, ?249, ?250, ?251, ?252) , ( ?253, ?254, ?255, ?256, ?257, ?258, ?259, ?260, ?261, ?262, ?263, ?264, ?265, ?266) , ( ?267, ?268, ?269, ?270, ?271, ?272, ?273, ?274, ?275, ?276, ?277, ?278, ?279, ?280) , ( ?281, ?282, ?283, ?284, ?285, ?286, ?287, ?288, ?289, ?290, ?291, ?292, ?293, ?294) , ( ?295, ?296, ?297, ?298, ?299, ?300, ?301, ?302, ?303, ?304, ?305, ?306, ?307, ?308) , ( ?309, ?310, ?311, ?312, ?313, ?314, ?315, ?316, ?317, ?318, ?319, ?320, ?321, ?322) , ( ?323, ?324, ?325, ?326, ?327, ?328, ?329, ?330, ?331, ?332, ?333, ?334, ?335, ?336) , ( ?337, ?338, ?339, ?340, ?341, ?342, ?343, ?344, ?345, ?346, ?347, ?348, ?349, ?350) , ( ?351, ?352, ?353, ?354, ?355, ?356, ?357, ?358, ?359, ?360, ?361, ?362, ?363, ?364) , ( ?365, ?366, ?367, ?368, ?369, ?370, ?371, ?372, ?373, ?374, ?375, ?376, ?377, ?378) , ( ?379, ?380, ?381, ?382, ?383, ?384, ?385, ?386, ?387, ?388, ?389, ?390, ?391, ?392) , ( ?393, ?394, ?395, ?396, ?397, ?398, ?399, ?400, ?401, ?402, ?403, ?404, ?405, ?406) , ( ?407, ?408, ?409, ?410, ?411, ?412, ?413, ?414, ?415, ?416, ?417, ?418, ?419, ?420), (?421, ?422, ?423, ?424, ?425, ?426, ?427, ?428, ?429, ?430, ?431, ?432, ?433, ?434) , ( ?435, ?436, ?437, ?438, ?439, ?440, ?441, ?442, ?443, ?444, ?445, ?446, ?447, ?448)" ;
query1 = ( char * ) " INSERT INTO history_mysql_query_digest VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14 , ?15 )" ;
query32 = ( char * ) " INSERT INTO history_mysql_query_digest VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14 , ?15) , ( ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23, ?24, ?25, ?26, ?27, ?28, ?29, ?30) , ( ?31, ?32, ?33, ?34, ?35, ?36, ?37, ?38, ?39, ?40, ?41, ?42, ?43, ?44, ?45) , ( ?46, ?47, ?48, ?49, ?50, ?51, ?52, ?53, ?54, ?55, ?56, ?57, ?58, ?59, ?60) , ( ?61, ?62, ?63, ?64, ?65, ?66, ?67, ?68, ?69, ?70, ?71, ?72, ?73, ?74, ?75) , ( ?76, ?77, ?78, ?79, ?80, ?81, ?82, ?83, ?84, ?85, ?86, ?87, ?88, ?89, ?90) , ( ?91, ?92, ?93, ?94, ?95, ?96, ?97, ?98, ?99, ?100, ?101, ?102, ?103, ?104, ?105) , ( ?106, ?107, ?108, ?109, ?110, ?111, ?112, ?113, ?114, ?115, ?116, ?117, ?118, ?119, ?120) , ( ?121, ?122, ?123, ?124, ?125, ?126, ?127, ?128, ?129, ?130, ?131, ?132, ?133, ?134, ?135) , ( ?136, ?137, ?138, ?139, ?140, ?141, ?142, ?143, ?144, ?145, ?146, ?147, ?148, ?149, ?150) , ( ?151, ?152, ?153, ?154, ?155, ?156, ?157, ?158, ?159, ?160, ?161, ?162, ?163, ?164, ?165) , ( ?166, ?167, ?168, ?169, ?170, ?171, ?172, ?173, ?174, ?175, ?176, ?177, ?178, ?179, ?180) , ( ?181, ?182, ?183, ?184, ?185, ?186, ?187, ?188, ?189, ?190, ?191, ?192, ?193, ?194, ?195) , ( ?196, ?197, ?198, ?199, ?200, ?201, ?202, ?203, ?204, ?205, ?206, ?207, ?208, ?209, ?210), (?211, ?212, ?213, ?214, ?215, ?216, ?217, ?218, ?219, ?220, ?221, ?222, ?223, ?224, ?225) , ( ?226, ?227, ?228, ?229, ?230, ?231, ?232, ?233, ?234, ?235, ?236, ?237, ?238, ?239, ?240) , ( ?241, ?242, ?243, ?244, ?245, ?246, ?247, ?248, ?249, ?250, ?251, ?252, ?253, ?254, ?255) , ( ?256, ?257, ?258, ?259, ?260, ?261, ?262, ?263, ?264, ?265, ?266, ?267, ?268, ?269, ?270) , ( ?271, ?272, ?273, ?274, ?275, ?276, ?277, ?278, ?279, ?280, ?281, ?282, ?283, ?284, ?285) , ( ?286, ?287, ?288, ?289, ?290, ?291, ?292, ?293, ?294, ?295, ?296, ?297, ?298, ?299, ?300) , ( ?301, ?302, ?303, ?304, ?305, ?306, ?307, ?308, ?309, ?310, ?311, ?312, ?313, ?314, ?315) , ( ?316, ?317, ?318, ?319, ?320, ?321, ?322, ?323, ?324, ?325, ?326, ?327, ?328, ?329, ?330) , ( ?331, ?332, ?333, ?334, ?335, ?336, ?337, ?338, ?339, ?340, ?341, ?342, ?343, ?344, ?345) , ( ?346, ?347, ?348, ?349, ?350, ?351, ?352, ?353, ?354, ?355, ?356, ?357, ?358, ?359, ?360) , ( ?361, ?362, ?363, ?364, ?365, ?366, ?367, ?368, ?369, ?370, ?371, ?372, ?373, ?374, ?375) , ( ?376, ?377, ?378, ?379, ?380, ?381, ?382, ?383, ?384, ?385, ?386, ?387, ?388, ?389, ?390) , ( ?391, ?392, ?393, ?394, ?395, ?396, ?397, ?398, ?399, ?400, ?401, ?402, ?403, ?404, ?405) , ( ?406, ?407, ?408, ?409, ?410, ?411, ?412, ?413, ?414, ?415, ?416, ?417, ?418, ?419, ?420), (?421, ?422, ?423, ?424, ?425, ?426, ?427, ?428, ?429, ?430, ?431, ?432, ?433, ?434, ?435) , ( ?436, ?437, ?438, ?439, ?440, ?441, ?442, ?443, ?444, ?445, ?446, ?447, ?448, ?449, ?450), (?451, ?452, ?453, ?454, ?455, ?456, ?457, ?458, ?459, ?460, ?461, ?462, ?463, ?464, ?465), (?466, ?467, ?468, ?469, ?470, ?471, ?472, ?473, ?474, ?475, ?476, ?477, ?478, ?479, ?480 )" ;
rc = sdb - > prepare_v2 ( query1 , & statement1 ) ;
ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sdb - > prepare_v2 ( query32 , & statement32 ) ;
@ -503,37 +503,38 @@ int ProxySQL_Admin::FlushDigestTableToDisk(SQLite3DB *_db) {
QP_query_digest_stats * qds = ( QP_query_digest_stats * ) it - > second ;
int idx = row_idx % 32 ;
if ( row_idx < max_bulk_row_idx ) { // bulk
rc = sqlite3_bind_int64 ( statement32 , ( idx * 14 ) + 1 , qds - > hid ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 14 ) + 2 , qds - > schemaname , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 14 ) + 3 , qds - > username , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 14 ) + 4 , qds - > client_address , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 15 ) + 1 , __now ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 15 ) + 2 , qds - > hid ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 15 ) + 3 , qds - > schemaname , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 15 ) + 4 , qds - > username , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 15 ) + 5 , qds - > client_address , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
sprintf ( qdsp . digest , " 0x%016llX " , ( long long unsigned int ) qds - > digest ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 1 4) + 5 , qdsp . digest , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 1 5) + 6 , qdsp . digest , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
if ( qds - > digest_text ) {
rc = sqlite3_bind_text ( statement32 , ( idx * 1 4) + 6 , qds - > digest_text , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 1 5) + 7 , qds - > digest_text , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
} else {
std : : unordered_map < uint64_t , char * > : : iterator it2 ;
it2 = uqdt . find ( qds - > digest ) ;
if ( it2 ! = uqdt . end ( ) ) {
rc = sqlite3_bind_text ( statement32 , ( idx * 1 4) + 6 , it2 - > second , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement32 , ( idx * 1 5) + 7 , it2 - > second , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
} else {
assert ( 0 ) ;
}
}
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 7 , qds - > count_star ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 8 , qds - > count_star ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
{
seen_time = __now - curtime / 1000000 + qds - > first_seen / 1000000 ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 8 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 9 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
}
{
seen_time = __now - curtime / 1000000 + qds - > last_seen / 1000000 ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 9 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 10 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
}
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 10 , qds - > sum_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 11 , qds - > min_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 12 , qds - > max_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 13 , qds - > rows_affected ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows affected
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 4) + 14 , qds - > rows_sent ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows sent
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 11 , qds - > sum_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 12 , qds - > min_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 13 , qds - > max_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 14 , qds - > rows_affected ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows affected
rc = sqlite3_bind_int64 ( statement32 , ( idx * 1 5) + 15 , qds - > rows_sent ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows sent
if ( idx = = 31 ) {
SAFE_SQLITE3_STEP2 ( statement32 ) ;
rc = sqlite3_clear_bindings ( statement32 ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
@ -544,38 +545,39 @@ int ProxySQL_Admin::FlushDigestTableToDisk(SQLite3DB *_db) {
}
}
} else { // single row
rc = sqlite3_bind_int64 ( statement1 , 1 , qds - > hid ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 , __now ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 2 , qds - > hid ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
assert ( qds - > schemaname ) ;
rc = sqlite3_bind_text ( statement1 , 2 , qds - > schemaname , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 3 , qds - > username , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 4 , qds - > client_address , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 3 , qds - > schemaname , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 4 , qds - > username , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 5 , qds - > client_address , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
sprintf ( qdsp . digest , " 0x%016llX " , ( long long unsigned int ) qds - > digest ) ;
rc = sqlite3_bind_text ( statement1 , 5 , qdsp . digest , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 6 , qdsp . digest , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
if ( qds - > digest_text ) {
rc = sqlite3_bind_text ( statement1 , 6 , qds - > digest_text , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 7 , qds - > digest_text , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
} else {
std : : unordered_map < uint64_t , char * > : : iterator it2 ;
it2 = uqdt . find ( qds - > digest ) ;
if ( it2 ! = uqdt . end ( ) ) {
rc = sqlite3_bind_text ( statement1 , 6 , it2 - > second , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_text ( statement1 , 7 , it2 - > second , - 1 , SQLITE_TRANSIENT ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
} else {
assert ( 0 ) ;
}
}
rc = sqlite3_bind_int64 ( statement1 , 7 , qds - > count_star ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 8 , qds - > count_star ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
{
seen_time = __now - curtime / 1000000 + qds - > first_seen / 1000000 ;
rc = sqlite3_bind_int64 ( statement1 , 8 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 9 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
}
{
seen_time = __now - curtime / 1000000 + qds - > last_seen / 1000000 ;
rc = sqlite3_bind_int64 ( statement1 , 9 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 10 , seen_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
}
rc = sqlite3_bind_int64 ( statement1 , 1 0 , qds - > sum_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 1 , qds - > min_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 2 , qds - > max_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 3 , qds - > rows_affected ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows affected
rc = sqlite3_bind_int64 ( statement1 , 1 4 , qds - > rows_sent ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows sent
rc = sqlite3_bind_int64 ( statement1 , 1 1 , qds - > sum_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 2 , qds - > min_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 3 , qds - > max_time ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_bind_int64 ( statement1 , 1 4 , qds - > rows_affected ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows affected
rc = sqlite3_bind_int64 ( statement1 , 1 5 , qds - > rows_sent ) ; ASSERT_SQLITE_OK ( rc , sdb ) ; // rows sent
SAFE_SQLITE3_STEP2 ( statement1 ) ;
rc = sqlite3_clear_bindings ( statement1 ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
rc = sqlite3_reset ( statement1 ) ; ASSERT_SQLITE_OK ( rc , sdb ) ;
@ -4548,27 +4550,14 @@ bool ProxySQL_Admin::init() {
if ( GloVars . __cmd_proxysql_reload | | GloVars . __cmd_proxysql_initial | | admindb_file_exists = = false ) { // see #617
if ( GloVars . configfile_open ) {
if ( GloVars . confFile - > cfg ) {
Read_MySQL_Servers_from_configfile ( ) ;
Read_Global_Variables_from_configfile ( " admin " ) ;
Read_Global_Variables_from_configfile ( " mysql " ) ;
Read_MySQL_Users_from_configfile ( ) ;
Read_MySQL_Query_Rules_from_configfile ( ) ;
Read_Scheduler_from_configfile ( ) ;
Read_ProxySQL_Servers_from_configfile ( ) ;
__insert_or_replace_disktable_select_maintable ( ) ;
} else {
if ( GloVars . confFile - > OpenFile ( GloVars . config_file ) = = true ) {
Read_MySQL_Servers_from_configfile ( ) ;
Read_MySQL_Users_from_configfile ( ) ;
Read_MySQL_Query_Rules_from_configfile ( ) ;
Read_Global_Variables_from_configfile ( " admin " ) ;
Read_Global_Variables_from_configfile ( " mysql " ) ;
Read_Scheduler_from_configfile ( ) ;
Read_ProxySQL_Servers_from_configfile ( ) ;
__insert_or_replace_disktable_select_maintable ( ) ;
}
}
Read_MySQL_Servers_from_configfile ( ) ;
Read_MySQL_Users_from_configfile ( ) ;
Read_MySQL_Query_Rules_from_configfile ( ) ;
Read_Global_Variables_from_configfile ( " admin " ) ;
Read_Global_Variables_from_configfile ( " mysql " ) ;
Read_Scheduler_from_configfile ( ) ;
Read_ProxySQL_Servers_from_configfile ( ) ;
__insert_or_replace_disktable_select_maintable ( ) ;
}
}
flush_admin_variables___database_to_runtime ( admindb , true ) ;
@ -5187,7 +5176,6 @@ bool ProxySQL_Admin::ProxySQL_Test___Verify_mysql_query_rules_fast_routing(int *
unsigned int ProxySQL_Admin : : ProxySQL_Test___GenerateRandom_mysql_query_rules_fast_routing ( unsigned int cnt ) {
char * a = " INSERT OR IGNORE INTO mysql_query_rules_fast_routing VALUES (?1, ?2, ?3, ?4, '') " ;
int rc ;
unsigned int i = 0 ;
sqlite3_stmt * statement1 = NULL ;
rc = admindb - > prepare_v2 ( a , & statement1 ) ;
ASSERT_SQLITE_OK ( rc , admindb ) ;
@ -9008,7 +8996,7 @@ char * ProxySQL_Admin::load_mysql_query_rules_to_runtime() {
}
int ProxySQL_Admin : : Read_Global_Variables_from_configfile ( const char * prefix ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
char * groupname = ( char * ) malloc ( strlen ( prefix ) + strlen ( ( char * ) " _variables " ) + 1 ) ;
sprintf ( groupname , " %s%s " , prefix , " _variables " ) ;
if ( root . exists ( groupname ) = = false ) {
@ -9049,7 +9037,7 @@ int ProxySQL_Admin::Read_Global_Variables_from_configfile(const char *prefix) {
}
int ProxySQL_Admin : : Read_MySQL_Users_from_configfile ( ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
if ( root . exists ( " mysql_users " ) = = false ) return 0 ;
const Setting & mysql_users = root [ " mysql_users " ] ;
int count = mysql_users . getLength ( ) ;
@ -9098,7 +9086,7 @@ int ProxySQL_Admin::Read_MySQL_Users_from_configfile() {
}
int ProxySQL_Admin : : Read_Scheduler_from_configfile ( ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
if ( root . exists ( " scheduler " ) = = false ) return 0 ;
const Setting & schedulers = root [ " scheduler " ] ;
int count = schedulers . getLength ( ) ;
@ -9198,7 +9186,7 @@ int ProxySQL_Admin::Read_Scheduler_from_configfile() {
}
int ProxySQL_Admin : : Read_MySQL_Query_Rules_from_configfile ( ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
if ( root . exists ( " mysql_query_rules " ) = = false ) return 0 ;
const Setting & mysql_query_rules = root [ " mysql_query_rules " ] ;
int count = mysql_query_rules . getLength ( ) ;
@ -9460,7 +9448,7 @@ int ProxySQL_Admin::Read_MySQL_Query_Rules_from_configfile() {
}
int ProxySQL_Admin : : Read_MySQL_Servers_from_configfile ( ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
int i ;
int rows = 0 ;
admindb - > execute ( " PRAGMA foreign_keys = OFF " ) ;
@ -9678,7 +9666,7 @@ int ProxySQL_Admin::Read_MySQL_Servers_from_configfile() {
}
int ProxySQL_Admin : : Read_ProxySQL_Servers_from_configfile ( ) {
const Setting & root = GloVars . confFile - > cfg - > getRoot ( ) ;
const Setting & root = GloVars . confFile - > cfg . getRoot ( ) ;
int i ;
int rows = 0 ;
admindb - > execute ( " PRAGMA foreign_keys = OFF " ) ;