1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Implementation of mysql_stmt_attr_get and mysql_stmt_attr_set

requested by Monty for Bug#1647 (No way to determine what size 
blob/clob is being returned into bound buffer)


include/mysql.h:
  Implementation of mysql_stmt_attr_get and mysql_stmt_attr_set 
  requested by Monty for Bug#1647.
libmysql/libmysql.c:
  Implementation of mysql_stmt_attr_get and mysql_stmt_attr_set 
  requested by Monty for Bug#1647.
libmysql/libmysql.def:
  Windows .defs added for new API calls
This commit is contained in:
unknown
2004-04-30 01:02:29 +04:00
parent 242fe78d2b
commit e73e26f381
3 changed files with 75 additions and 0 deletions

View File

@ -2514,6 +2514,56 @@ stmt_read_row_no_data(MYSQL_STMT *stmt __attribute__((unused)),
return MYSQL_NO_DATA;
}
/*
Get/set statement attributes
SYNOPSIS
mysql_stmt_attr_get()
mysql_stmt_attr_set()
attr_type statemenet attribute
value casted to const void * pointer to value.
RETURN VALUE
0 success
!0 wrong attribute type
*/
my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt,
enum enum_stmt_attr_type attr_type,
const void *value)
{
switch (attr_type) {
case STMT_ATTR_UPDATE_MAX_LENGTH:
/*
Do we need a flags variable for all attributes or a bool for each
attribute?
*/
stmt->update_max_length= value ? *(const my_bool*) value : 0;
break;
default:
return TRUE;
}
return FALSE;
}
my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
enum enum_stmt_attr_type attr_type,
void *value)
{
switch (attr_type) {
case STMT_ATTR_UPDATE_MAX_LENGTH:
*(unsigned long *) value= stmt->update_max_length;
break;
default:
return TRUE;
}
return FALSE;
}
/*
Execute the prepared query
*/