Skip to content

Commit

Permalink
Further refactor MYSQL_PROXY (#119)
Browse files Browse the repository at this point in the history
* create DUMMY_PROXY to handle mysql library calls, refactor MYSQL_PROXY to only forward proxy call

* remove commented include

* include thread header in dummy proxy

* rename mysql_proxy to connection_proxy

* rename dummy proxy to mysql proxy

* remove secrets manager proxy as it should be a different PR

* include in alphabetical order
  • Loading branch information
yanw-bq authored and justing-bq committed May 1, 2023
1 parent 3b2ba1c commit 79a87d1
Show file tree
Hide file tree
Showing 45 changed files with 1,190 additions and 916 deletions.
4 changes: 2 additions & 2 deletions driver/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ WHILE(${DRIVER_INDEX} LESS ${DRIVERS_COUNT})
base_metrics_holder.cc catalog.cc catalog_no_i_s.cc cluster_topology_info.cc
cluster_aware_hit_metrics_holder.cc cluster_aware_metrics_container.cc
cluster_aware_metrics.cc cluster_aware_time_metrics_holder.cc
connect.cc connection_handler.cc cursor.cc desc.cc dll.cc driver.cc efm_proxy.cc
connect.cc connection_handler.cc connection_proxy.cc cursor.cc desc.cc dll.cc driver.cc efm_proxy.cc
error.cc execute.cc failover_handler.cc
failover_reader_handler.cc failover_writer_handler.cc handle.cc host_info.cc info.cc
monitor.cc monitor_connection_context.cc monitor_service.cc monitor_thread_container.cc
Expand All @@ -83,7 +83,7 @@ WHILE(${DRIVER_INDEX} LESS ${DRIVERS_COUNT})
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/driver/driver.rc.cmake ${CMAKE_SOURCE_DIR}/driver/driver${CONNECTOR_DRIVER_TYPE_SHORT}.rc @ONLY)
SET(DRIVER_SRCS ${DRIVER_SRCS} driver${CONNECTOR_DRIVER_TYPE_SHORT}.def driver${CONNECTOR_DRIVER_TYPE_SHORT}.rc
base_metrics_holder.h catalog.h cluster_aware_hit_metrics_holder.h cluster_aware_metrics_container.h
cluster_aware_metrics.h cluster_aware_time_metrics_holder.h cluster_topology_info.h connection_handler.h
cluster_aware_metrics.h cluster_aware_time_metrics_holder.h cluster_topology_info.h connection_handler.h connection_proxy.h
driver.h efm_proxy.h error.h failover.h host_info.h monitor.h monitor_connection_context.h monitor_service.h
monitor_thread_container.h mylog.h mysql_proxy.h myutil.h parse.h query_parsing.h topology_service.h
../MYODBC_MYSQL.h ../MYODBC_CONF.h ../MYODBC_ODBC.h)
Expand Down
2 changes: 1 addition & 1 deletion driver/ansi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ SQLDescribeCol(SQLHSTMT hstmt, SQLUSMALLINT column,

if (free_value == -1)
{
set_mem_error(stmt->dbc->mysql_proxy);
set_mem_error(stmt->dbc->connection_proxy);
return handle_connection_error(stmt);
}

Expand Down
40 changes: 20 additions & 20 deletions driver/catalog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ create_fake_resultset(STMT *stmt, MYSQL_ROW rowval, size_t rowsize,
else
{
if (stmt->result)
stmt->dbc->mysql_proxy->free_result(stmt->result);
stmt->dbc->connection_proxy->free_result(stmt->result);
}

/* Free if result data was not in row storage */
Expand All @@ -178,7 +178,7 @@ create_fake_resultset(STMT *stmt, MYSQL_ROW rowval, size_t rowsize,
x_free(stmt->result);
x_free(stmt->result_array);

set_mem_error(stmt->dbc->mysql_proxy);
set_mem_error(stmt->dbc->connection_proxy);
return handle_connection_error(stmt);
}
stmt->fake_result= 1;
Expand Down Expand Up @@ -257,7 +257,7 @@ MYSQL_RES *db_status(STMT *stmt, std::string &db)
return NULL;
}

return stmt->dbc->mysql_proxy->store_result();
return stmt->dbc->connection_proxy->store_result();
}


Expand Down Expand Up @@ -285,7 +285,7 @@ static MYSQL_RES *table_status_i_s(STMT *stmt,
my_bool show_tables,
my_bool show_views)
{
MYSQL_PROXY *mysql_proxy= stmt->dbc->mysql_proxy;
CONNECTION_PROXY *connection_proxy= stmt->dbc->connection_proxy;
/** the buffer size should count possible escapes */
my_bool clause_added= FALSE;
std::string query;
Expand Down Expand Up @@ -344,7 +344,7 @@ static MYSQL_RES *table_status_i_s(STMT *stmt,
query.append("AND TABLE_NAME LIKE '");
if (wildcard)
{
cnt = mysql_proxy->real_escape_string(tmpbuff, (char *)table_name, table_len);
cnt = connection_proxy->real_escape_string(tmpbuff, (char *)table_name, table_len);
query.append(tmpbuff, cnt);
}
else
Expand All @@ -365,7 +365,7 @@ static MYSQL_RES *table_status_i_s(STMT *stmt,
return NULL;
}

return mysql_proxy->store_result();
return connection_proxy->store_result();
}


Expand All @@ -391,7 +391,7 @@ static MYSQL_RES *table_status_i_s_old(STMT *stmt,
my_bool show_tables,
my_bool show_views)
{
MYSQL_PROXY *mysql_proxy= stmt->dbc->mysql_proxy;
CONNECTION_PROXY *connection_proxy= stmt->dbc->connection_proxy;
/** the buffer size should count possible escapes */
my_bool clause_added= FALSE;
std::string query;
Expand Down Expand Up @@ -449,7 +449,7 @@ static MYSQL_RES *table_status_i_s_old(STMT *stmt,
query.append("WHERE TABLE_NAME LIKE '");
if (wildcard)
{
cnt = mysql_proxy->real_escape_string(tmpbuff, (char *)table_name, table_len);
cnt = connection_proxy->real_escape_string(tmpbuff, (char *)table_name, table_len);
query.append(tmpbuff, cnt);
}
else
Expand All @@ -468,7 +468,7 @@ static MYSQL_RES *table_status_i_s_old(STMT *stmt,
return NULL;
}

return mysql_proxy->store_result();
return connection_proxy->store_result();
}


Expand Down Expand Up @@ -528,7 +528,7 @@ int add_name_condition_oa_id(HSTMT hstmt, std::string &query, SQLCHAR * name,

query.append("'");
char tmpbuff[1024];
size_t cnt = stmt->dbc->mysql_proxy->real_escape_string(tmpbuff, (char *)name, name_len);
size_t cnt = stmt->dbc->connection_proxy->real_escape_string(tmpbuff, (char *)name, name_len);
query.append(tmpbuff, cnt);
query.append("' ");
}
Expand Down Expand Up @@ -574,7 +574,7 @@ int add_name_condition_pv_id(HSTMT hstmt, std::string &query, SQLCHAR * name,

query.append("'");
char tmpbuff[1024];
size_t cnt = stmt->dbc->mysql_proxy->real_escape_string(tmpbuff, (char *)name, name_len);
size_t cnt = stmt->dbc->connection_proxy->real_escape_string(tmpbuff, (char *)name, name_len);
query.append(tmpbuff, cnt);
query.append("' ");
}
Expand Down Expand Up @@ -820,7 +820,7 @@ columns_i_s(SQLHSTMT hstmt, SQLCHAR *catalog, unsigned long catalog_len,
do_bind(params, column, MYSQL_TYPE_STRING, column_len);
}
query.append(" ORDER BY ORDINAL_POSITION");
ODBC_STMT local_stmt(stmt->dbc->mysql_proxy);
ODBC_STMT local_stmt(stmt->dbc->connection_proxy);

for (size_t i = 0; i < ccount; i++)
{
Expand Down Expand Up @@ -856,7 +856,7 @@ columns_i_s(SQLHSTMT hstmt, SQLCHAR *catalog, unsigned long catalog_len,
is_access = true;
#endif

size_t rows = stmt->dbc->mysql_proxy->stmt_num_rows(local_stmt);
size_t rows = stmt->dbc->connection_proxy->stmt_num_rows(local_stmt);
stmt->m_row_storage.set_size(rows, SQLCOLUMNS_FIELDS);
if (rows == 0)
{
Expand All @@ -869,7 +869,7 @@ columns_i_s(SQLHSTMT hstmt, SQLCHAR *catalog, unsigned long catalog_len,
std::string db = get_database_name(stmt, catalog, catalog_len,
schema, schema_len, false);
size_t rnum = 1;
while(!stmt->dbc->mysql_proxy->stmt_fetch(local_stmt))
while(!stmt->dbc->connection_proxy->stmt_fetch(local_stmt))
{
CAT_SCHEMA_SET(data[0], data[1], db);
/* TABLE_NAME */
Expand Down Expand Up @@ -1355,7 +1355,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,
SQLSMALLINT fk_table_len)
{
STMT *stmt=(STMT *) hstmt;
MYSQL_PROXY *mysql_proxy= stmt->dbc->mysql_proxy;
CONNECTION_PROXY *connection_proxy= stmt->dbc->connection_proxy;
char tmpbuff[1024]; /* This should be big enough. */
char *update_rule, *delete_rule, *ref_constraints_join;
SQLRETURN rc;
Expand All @@ -1371,7 +1371,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,
/*
With 5.1, we can use REFERENTIAL_CONSTRAINTS to get even more info.
*/
if (is_minimum_version(stmt->dbc->mysql_proxy->get_server_version(), "5.1"))
if (is_minimum_version(stmt->dbc->connection_proxy->get_server_version(), "5.1"))
{
update_rule= "CASE"
" WHEN R.UPDATE_RULE = 'CASCADE' THEN 0"
Expand Down Expand Up @@ -1440,7 +1440,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,
if (!pk_db.empty())
{
query.append("'");
cnt = mysql_proxy->real_escape_string(tmpbuff, pk_db.c_str(), pk_db.length());
cnt = connection_proxy->real_escape_string(tmpbuff, pk_db.c_str(), pk_db.length());
query.append(tmpbuff, cnt);
query.append("' ");
}
Expand All @@ -1451,7 +1451,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,

query.append("AND A.REFERENCED_TABLE_NAME = '");

cnt =mysql_proxy->real_escape_string(tmpbuff, (char *)pk_table, pk_table_len);
cnt =connection_proxy->real_escape_string(tmpbuff, (char *)pk_table, pk_table_len);
query.append(tmpbuff, cnt);
query.append("' ");

Expand All @@ -1465,7 +1465,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,
if (!fk_db.empty())
{
query.append("'");
cnt = mysql_proxy->real_escape_string(tmpbuff, fk_db.c_str(), fk_db.length());
cnt = connection_proxy->real_escape_string(tmpbuff, fk_db.c_str(), fk_db.length());
query.append(tmpbuff, cnt);
query.append("' ");
}
Expand All @@ -1476,7 +1476,7 @@ SQLRETURN foreign_keys_i_s(SQLHSTMT hstmt,

query.append("AND A.TABLE_NAME = '");

cnt = mysql_proxy->real_escape_string(tmpbuff, (char *)fk_table, fk_table_len);
cnt = connection_proxy->real_escape_string(tmpbuff, (char *)fk_table, fk_table_len);
query.append(tmpbuff, cnt);
query.append("' ");

Expand Down
Loading

0 comments on commit 79a87d1

Please sign in to comment.