You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-08 14:02:17 +03:00
Fixes for bigendian systems (CONC-252, CONC-265)
This commit is contained in:
@@ -453,7 +453,7 @@ static long ma_get_length(MYSQL_STMT *stmt, unsigned int param_nr, unsigned long
|
|||||||
return stmt->params[param_nr].length[row_nr];
|
return stmt->params[param_nr].length[row_nr];
|
||||||
}
|
}
|
||||||
|
|
||||||
static char ma_get_indicator(MYSQL_STMT *stmt, unsigned int param_nr, unsigned long row_nr)
|
static signed char ma_get_indicator(MYSQL_STMT *stmt, unsigned int param_nr, unsigned long row_nr)
|
||||||
{
|
{
|
||||||
if (!MARIADB_STMT_BULK_SUPPORTED(stmt) ||
|
if (!MARIADB_STMT_BULK_SUPPORTED(stmt) ||
|
||||||
!stmt->array_size ||
|
!stmt->array_size ||
|
||||||
@@ -484,7 +484,7 @@ int store_param(MYSQL_STMT *stmt, int column, unsigned char **p, unsigned long r
|
|||||||
{
|
{
|
||||||
void *buf= ma_get_buffer_offset(stmt, stmt->params[column].buffer_type,
|
void *buf= ma_get_buffer_offset(stmt, stmt->params[column].buffer_type,
|
||||||
stmt->params[column].buffer, row_nr);
|
stmt->params[column].buffer, row_nr);
|
||||||
char indicator= ma_get_indicator(stmt, column, row_nr);
|
signed char indicator= ma_get_indicator(stmt, column, row_nr);
|
||||||
|
|
||||||
switch (stmt->params[column].buffer_type) {
|
switch (stmt->params[column].buffer_type) {
|
||||||
case MYSQL_TYPE_TINY:
|
case MYSQL_TYPE_TINY:
|
||||||
@@ -896,7 +896,7 @@ unsigned char* mysql_stmt_execute_generate_bulk_request(MYSQL_STMT *stmt, size_t
|
|||||||
{
|
{
|
||||||
size_t size= 0;
|
size_t size= 0;
|
||||||
my_bool has_data= TRUE;
|
my_bool has_data= TRUE;
|
||||||
char indicator= ma_get_indicator(stmt, i, j);
|
signed char indicator= ma_get_indicator(stmt, i, j);
|
||||||
/* check if we need to send data */
|
/* check if we need to send data */
|
||||||
if (indicator > 0)
|
if (indicator > 0)
|
||||||
has_data= FALSE;
|
has_data= FALSE;
|
||||||
@@ -930,9 +930,11 @@ unsigned char* mysql_stmt_execute_generate_bulk_request(MYSQL_STMT *stmt, size_t
|
|||||||
size+= 5; /* max 8 bytes for size */
|
size+= 5; /* max 8 bytes for size */
|
||||||
if (indicator == STMT_INDICATOR_NTS ||
|
if (indicator == STMT_INDICATOR_NTS ||
|
||||||
(!stmt->row_size && ma_get_length(stmt,i,j) == -1))
|
(!stmt->row_size && ma_get_length(stmt,i,j) == -1))
|
||||||
|
{
|
||||||
size+= strlen(ma_get_buffer_offset(stmt,
|
size+= strlen(ma_get_buffer_offset(stmt,
|
||||||
stmt->params[i].buffer_type,
|
stmt->params[i].buffer_type,
|
||||||
stmt->params[i].buffer,j));
|
stmt->params[i].buffer,j));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
size+= (size_t)ma_get_length(stmt, i, j);
|
size+= (size_t)ma_get_length(stmt, i, j);
|
||||||
break;
|
break;
|
||||||
|
@@ -194,7 +194,7 @@ static int test_cursor(MYSQL *mysql)
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
MYSQL_STMT *stmt;
|
MYSQL_STMT *stmt;
|
||||||
unsigned int prefetch_rows= 1;
|
unsigned long prefetch_rows= 1;
|
||||||
unsigned long cursor_type= CURSOR_TYPE_READ_ONLY;
|
unsigned long cursor_type= CURSOR_TYPE_READ_ONLY;
|
||||||
|
|
||||||
stmt= mysql_stmt_init(mysql);
|
stmt= mysql_stmt_init(mysql);
|
||||||
|
@@ -1189,7 +1189,7 @@ static int test_zerofill(MYSQL *mysql)
|
|||||||
static int test_server_status(MYSQL *mysql)
|
static int test_server_status(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
unsigned long server_status;
|
unsigned int server_status;
|
||||||
MYSQL_STMT *stmt= mysql_stmt_init(mysql);
|
MYSQL_STMT *stmt= mysql_stmt_init(mysql);
|
||||||
|
|
||||||
rc= mysql_autocommit(mysql, 1);
|
rc= mysql_autocommit(mysql, 1);
|
||||||
|
@@ -63,6 +63,9 @@ static int test_conc_27(MYSQL *mysql)
|
|||||||
DWORD threads[THREAD_NUM];
|
DWORD threads[THREAD_NUM];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
diag("please run this test manually as root");
|
||||||
|
return SKIP;
|
||||||
|
|
||||||
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t_conc27");
|
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t_conc27");
|
||||||
check_mysql_rc(rc, mysql);
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user