diff options
author | konstantin@mysql.com <> | 2004-04-30 01:02:29 +0400 |
---|---|---|
committer | konstantin@mysql.com <> | 2004-04-30 01:02:29 +0400 |
commit | 392481dae51c5a075757d9fdcceb4bf6aee95b77 (patch) | |
tree | f7bebcd7a35a5e9629f8b55f24abc75c628205c6 /libmysql | |
parent | 40ac433e4bc2ad363fa0910f1e6ed225e1119390 (diff) | |
download | mariadb-git-392481dae51c5a075757d9fdcceb4bf6aee95b77.tar.gz |
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)
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/libmysql.c | 50 | ||||
-rw-r--r-- | libmysql/libmysql.def | 2 |
2 files changed, 52 insertions, 0 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 4447ece308e..eb5048bbb61 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -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 */ diff --git a/libmysql/libmysql.def b/libmysql/libmysql.def index 4f6347776e0..1790b0fa888 100644 --- a/libmysql/libmysql.def +++ b/libmysql/libmysql.def @@ -127,3 +127,5 @@ EXPORTS mysql_stmt_prepare mysql_stmt_init mysql_stmt_insert_id + mysql_stmt_attr_get + mysql_stmt_attr_set |