File modules/sq/mysql_driver.c

  $Revision: 1.36 $

SQL module (sq) - this is a MySQL implementation of the SQL module.
Status: NOT REVUED, TESTED

Included Files


Preprocessor definitions

String sizes

#define STR_S 63

#define STR_M 255

#define STR_L 1023

#define STR_XL 4095

#define STR_XXL 16383


Global Function SQ_abort_query()

int SQ_abort_query ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Calls: ER_dbg_va()modules/er/er.c
  SQ_close_connection()modules/sq/mysql_driver.c
  SQ_duplicate_connection()modules/sq/mysql_driver.c
  mysql_kill()
Called by: qi_kill_body()modules/qi/query_instructions.c

Global Function SQ_close_connection()

  Call this function to close a connection to the server

SQ_connection_t *sql_connection The connection to the database.
More:
  Authors:
        ottrey
Online References:
void SQ_close_connection ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Calls: mysql_close()
Called by: AC_acc_load()modules/ac/access_control.c
  AC_acl_sql()modules/ac/access_control.c
  PM_interact()modules/pm/protocol_mirror.c
  QI_execute()modules/qi/query_instructions.c
  RP_sql_load_reg()modules/rp/rp_load.c
  SQ_abort_query()modules/sq/mysql_driver.c
  SQ_get_connection()modules/sq/mysql_driver.c
  aa_find()modules/aa/aa.c
  pm_get_source_info()modules/pm/pm_serials.c
  sql_execute_watched()modules/qi/query_instructions.c

Global Function SQ_duplicate_connection()

MYSQL* SQ_duplicate_connection ( MYSQL* orig )
Prototyped in: modules/sq/mysql_driver.h
Calls: SQ_get_connection()modules/sq/mysql_driver.c
Called by: SQ_abort_query()modules/sq/mysql_driver.c
  sql_execute_watched()modules/qi/query_instructions.c

Global Function SQ_errno()

  Get the error number for the last error.

SQ_connection_t *sql_connection The connection to the database.
More:
  Authors:
        ottrey
Online References:
int SQ_errno ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Called by: AC_acc_load()modules/ac/access_control.c
  AC_dbopen_admin()modules/ac/access_control.c
  PM_interact()modules/pm/protocol_mirror.c
  QI_execute()modules/qi/query_instructions.c
  RP_sql_load_attr_space()modules/rp/rp_load.c
  __report_sql_error()modules/qi/query_instructions.c
  aa_find()modules/aa/aa.c
  add_ref_name()modules/qi/query_instructions.c
  insert_radix_serials()modules/qi/query_instructions.c
  qi_collect_domain()modules/qi/query_instructions.c
  qi_collect_ids()modules/qi/query_instructions.c
  qi_fetch_references()modules/qi/query_instructions.c
  write_objects()modules/qi/query_instructions.c

Global Function SQ_error()

  Get the error string for the last error.

SQ_connection_t *sql_connection The connection to the database.
More:
  Authors:
        ottrey
Online References:
char* SQ_error ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Called by: AC_acc_load()modules/ac/access_control.c
  AC_dbopen_admin()modules/ac/access_control.c
  NH_comrol()modules/nh/nh.c
  PM_get_minmax_serial()modules/pm/pm_serials.c
  PM_get_serial_object()modules/pm/pm_serials.c
  PM_interact()modules/pm/protocol_mirror.c
  QI_execute()modules/qi/query_instructions.c
  RP_sql_load_attr_space()modules/rp/rp_load.c
  SQ_get_connection()modules/sq/mysql_driver.c
  __report_sql_error()modules/qi/query_instructions.c
  aa_find()modules/aa/aa.c
  get_range()modules/nh/nh.c

Global Function SQ_execute_query()

  Execute the sql query.

SQ_connection_t *sql_connection Connection to database.
SQ_result_set_t *result ptr to the structure to hold result. May be NULL if no result is needed.
Returns: 0 if the query was successful. Non-zero if an error occured.
More:
  Authors:
        ottrey, andrei, marek
Online References:
int SQ_execute_query ( MYSQL* sql_connection, const char* query, MYSQL_RES** result_ptr )
MYSQL* sql_connection
&nbs;
const char* query
SQL query.
MYSQL_RES** result_ptr
&nbs;
Prototyped in: modules/sq/mysql_driver.h
Calls: ER_dbg_va()modules/er/er.c
  ER_is_traced()modules/er/er.c
  SQ_get_affected_rows()modules/sq/mysql_driver.c
  UT_timediff(), UT_timeget(), mysql_free_result(), mysql_query(), mysql_store_result()
Called by: AC_acc_load()modules/ac/access_control.c
  AC_acl_sql()modules/ac/access_control.c
  NH_comrol()modules/nh/nh.c
  PM_get_minmax_serial()modules/pm/pm_serials.c
  PM_get_serial_object()modules/pm/pm_serials.c
  QI_execute()modules/qi/query_instructions.c
  RP_sql_load_attr_space()modules/rp/rp_load.c
  RP_sql_load_reg()modules/rp/rp_load.c
  SQ_get_table_size()modules/sq/mysql_driver.c
  aa_find()modules/aa/aa.c
  add_ref_name()modules/qi/query_instructions.c
  create_range()modules/nh/nh.c
  get_range()modules/nh/nh.c
  insert_radix_serials()modules/qi/query_instructions.c
  qi_collect_domain()modules/qi/query_instructions.c
  qi_collect_ids()modules/qi/query_instructions.c
  qi_fetch_references()modules/qi/query_instructions.c
  sql_execute_watched()modules/qi/query_instructions.c
  update_range()modules/nh/nh.c

Global Function SQ_execute_query_nostore()

int SQ_execute_query_nostore ( MYSQL* sql_connection, const char* query, MYSQL_RES** result_ptr )
Prototyped in: modules/sq/mysql_driver.h
Calls: mysql_query(), mysql_use_result()

Global Function SQ_free_result()

  Free the result set.

SQ_result_set_t *result The results.
More:
  Authors:
        ottrey
Online References:
void SQ_free_result ( MYSQL_RES* result )
Prototyped in: modules/sq/mysql_driver.h
Calls: mysql_free_result()
Called by: AC_acc_load()modules/ac/access_control.c
  AC_acl_sql()modules/ac/access_control.c
  PM_get_minmax_serial()modules/pm/pm_serials.c
  PM_get_serial_object()modules/pm/pm_serials.c
  RP_sql_load_attr_space()modules/rp/rp_load.c
  SQ_get_table_size()modules/sq/mysql_driver.c
  aa_find()modules/aa/aa.c
  get_range()modules/nh/nh.c
  qi_collect_domain()modules/qi/query_instructions.c
  qi_fetch_references()modules/qi/query_instructions.c
  sql_execute_watched()modules/qi/query_instructions.c
  write_objects()modules/qi/query_instructions.c

Global Function SQ_get_affected_rows()

  Get the row count of a table

char *table The table to be examined
More:
  Authors:
        marek
int SQ_get_affected_rows ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Called by: SQ_execute_query()modules/sq/mysql_driver.c
  create_range()modules/nh/nh.c
  qi_collect_domain()modules/qi/query_instructions.c
  qi_collect_ids()modules/qi/query_instructions.c
  update_range()modules/nh/nh.c

Global Function SQ_get_column_count()

  Get the column count.

SQ_result_set_t *result The results from the query.
More:
  Authors:
        ottrey
Online References:
int SQ_get_column_count ( MYSQL_RES* result )
Prototyped in: modules/sq/mysql_driver.h
Called by: RP_sql_load_attr_space()modules/rp/rp_load.c

Global Function SQ_get_column_int()

  Get an integer from the column.

SQ_result_set_t *result The results.
SQ_row_t *current_row The current row.
returns -1 if error occurs, 0 otherwise. Note - it never says what error occured....
More:
  Authors:
        ottrey
Online References:
int SQ_get_column_int ( MYSQL_RES* result, MYSQL_ROW* current_row, unsigned int column, long* resultptr )
MYSQL_RES* result
&nbs;
MYSQL_ROW* current_row
&nbs;
unsigned int column
The column index.
long* resultptr
pointer where the result should be stored
Prototyped in: modules/sq/mysql_driver.h
Calls: strtol()
Called by: qi_prep_run_refer()modules/qi/query_instructions.c

Global Function SQ_get_column_label()

  Get the column label.

SQ_result_set_t *result The results from the query.
More:
  Authors:
        ottrey
Online References:
char* SQ_get_column_label ( MYSQL_RES* result, unsigned int column )
MYSQL_RES* result
&nbs;
unsigned int column
The column index.
Prototyped in: modules/sq/mysql_driver.h
Calls: fprintf(), strcpy(), strlen(), wr_real_malloc()
Called by: SQ_result_to_string()modules/sq/mysql_driver.c

Global Function SQ_get_column_max_length()

  Get the max length of the column.

SQ_result_set_t *result The results from the query.
More:
  Authors:
        ottrey
Online References:
unsigned int SQ_get_column_max_length ( MYSQL_RES* result, unsigned int column )
MYSQL_RES* result
&nbs;
unsigned int column
The column index.
Prototyped in: modules/sq/mysql_driver.h
Called by: SQ_result_to_string()modules/sq/mysql_driver.c

Global Function SQ_get_column_string()

  Get the column string.

SQ_row_t *current_row The current row (obtained from a SQ_row_next() ).
More:
  Authors:
        ottrey
Online References:
char* SQ_get_column_string ( MYSQL_RES* result, MYSQL_ROW* current_row, unsigned int column )
MYSQL_RES* result
&nbs;
MYSQL_ROW* current_row
&nbs;
unsigned int column
The column index.
Prototyped in: modules/sq/mysql_driver.h
Calls: fprintf(), memcpy(), mysql_fetch_lengths(), wr_real_malloc()
Called by: AC_acc_load()modules/ac/access_control.c
  AC_acl_sql()modules/ac/access_control.c
  PM_get_minmax_serial()modules/pm/pm_serials.c
  PM_get_serial_object()modules/pm/pm_serials.c
  SQ_get_table_size()modules/sq/mysql_driver.c
  get_range()modules/nh/nh.c
  qi_fetch_references()modules/qi/query_instructions.c
  qi_prep_run_refer()modules/qi/query_instructions.c
  write_results()modules/qi/query_instructions.c

Global Function SQ_get_column_string_nocopy()

char* SQ_get_column_string_nocopy ( MYSQL_RES* result, MYSQL_ROW* current_row, unsigned int column )
Prototyped in: modules/sq/mysql_driver.h
Called by: aa_parserow()modules/aa/aa.c
  make_sql2pack()modules/rp/rp_load.c

Global Function SQ_get_column_strings()

  Get the all the strings in one column.

SQ_result_set_t *result The results.
More:
  Authors:
        ottrey
Online References:
char* SQ_get_column_strings ( MYSQL_RES* result, unsigned int column )
MYSQL_RES* result
&nbs;
unsigned int column
The column index.
Prototyped in: modules/sq/mysql_driver.h
Calls: fprintf(), mysql_fetch_row(), sprintf(), strcat(), strcmp(), strcpy(), strlen(), wr_real_malloc()

Global Function SQ_get_connection()

  Get a connection to the database.

More:
  Authors:
        ottrey
Online References:
MYSQL* SQ_get_connection ( const char* host, unsigned int port, const char* db, const char* user, const char* password )
Prototyped in: modules/sq/mysql_driver.h
Calls: ER_perror()modules/er/er.c
  NOERR()modules/er/er.c
  SQ_close_connection()modules/sq/mysql_driver.c
  SQ_error()modules/sq/mysql_driver.c
  SQ_try_connection()modules/sq/mysql_driver.c
  fprintf(), sleep()
Called by: AC_dbopen_admin()modules/ac/access_control.c
  PM_interact()modules/pm/protocol_mirror.c
  QI_execute()modules/qi/query_instructions.c
  RP_sql_load_reg()modules/rp/rp_load.c
  SQ_duplicate_connection()modules/sq/mysql_driver.c
  pm_get_source_info()modules/pm/pm_serials.c

Global Function SQ_get_info()

  Get additional information about the most 
  recently executed query.

SQ_connection_t *sql_connection The connection to the database. int info[3] array of integers where information is stored
The meaning of the numbers returned depends on the query type:
info[SQL_RECORDS] - # of Records for INSERT info[SQL_MATCHES] - # of Matches for UPDATE info[SQL_DUPLICATES] - # of Duplicates info[SQL_WARNINGS] - # of Warnings
More:
 Authors:
  andrei
Online References:
int SQ_get_info ( MYSQL* sql_connection, int info[3] )
Prototyped in: modules/sq/mysql_driver.h
Calls: atoi()

Global Function SQ_get_insert_id()

  Get the ID that was most recently generated for an AUTO_INCREMENT field


More:
  Authors:
        andrei
long SQ_get_insert_id ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Called by: create_range()modules/nh/nh.c

Global Function SQ_get_table_size()

  Get the row count of a table

More:
  Authors:
        marek
int SQ_get_table_size ( MYSQL* sql_connection, char* table )
MYSQL* sql_connection
&nbs;
char* table
The table to be examined
Prototyped in: modules/sq/mysql_driver.h
Calls: SQ_execute_query()modules/sq/mysql_driver.c
  SQ_free_result()modules/sq/mysql_driver.c
  SQ_get_column_string()modules/sq/mysql_driver.c
  SQ_row_next()modules/sq/mysql_driver.c
  fprintf(), sprintf(), sscanf(), wr_real_free()

Global Function SQ_info_to_string()

  Convert all available information about the sql server into a string.

SQ_connection_t *sql_connection The connection to the database.
More:
  Authors:
        ottrey
Online References:
char* SQ_info_to_string ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Calls: fprintf(), mysql_dump_debug_info(), mysql_get_client_info(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info(), mysql_ping(), mysql_stat(), sprintf(), strcat(), strcpy(), strlen(), wr_real_malloc()

Global Function SQ_num_rows()

  Call this function to find out how many rows are in a query result

SQ_result_set_t *result The results.
More:
  Authors:
        ottrey
Online References:
int SQ_num_rows ( MYSQL_RES* result )
Prototyped in: modules/sq/mysql_driver.h
Called by: AC_acl_sql()modules/ac/access_control.c
  qi_collect_domain()modules/qi/query_instructions.c

Global Function SQ_ping()

  Checks whether or not the connection to the server is working. 
  If it has gone down, an automatic reconnection is attempted.

Return values
Zero if the server is alive. Non-zero if an error occurred.
More:
  Authors:
        andrei
Online References:
int SQ_ping ( MYSQL* sql_connection )
Prototyped in: modules/sq/mysql_driver.h
Calls: mysql_ping()

Global Function SQ_result_to_string()

  Convert the result set to a string.

SQ_result_set_t *result The results.
More:
  Authors:
        ottrey
Online References:
char* SQ_result_to_string ( MYSQL_RES* result )
Prototyped in: modules/sq/mysql_driver.h
Calls: SQ_get_column_label()modules/sq/mysql_driver.c
  SQ_get_column_max_length()modules/sq/mysql_driver.c
  fprintf(), mysql_fetch_row(), sprintf(), strcat(), strcpy(), strlen(), wr_real_malloc()

Global Function SQ_row_next()

  Get the next row.

SQ_result_set_t *result The results from the query.
unsigned int column The column index.
More:
  Authors:
        ottrey
Online References:
MYSQL_ROW* SQ_row_next ( MYSQL_RES* result )
Prototyped in: modules/sq/mysql_driver.h
Calls: mysql_fetch_row()
Called by: AC_acc_load()modules/ac/access_control.c
  AC_acl_sql()modules/ac/access_control.c
  PM_get_minmax_serial()modules/pm/pm_serials.c
  PM_get_serial_object()modules/pm/pm_serials.c
  RP_sql_load_attr_space()modules/rp/rp_load.c
  SQ_get_table_size()modules/sq/mysql_driver.c
  aa_parserow()modules/aa/aa.c
  get_range()modules/nh/nh.c
  qi_collect_domain()modules/qi/query_instructions.c
  qi_fetch_references()modules/qi/query_instructions.c
  write_results()modules/qi/query_instructions.c

Global Function SQ_try_connection()

er_ret_t SQ_try_connection ( MYSQL** conn, const char* host, unsigned int port, const char* db, const char* user, const char* password )
Prototyped in: modules/sq/mysql_driver.h
Calls: fprintf(), mysql_init(), mysql_real_connect()
Called by: SQ_get_connection()modules/sq/mysql_driver.c