Details
Description
According to the documentation metadata for a prepared statement should be available after preparing the statement: "mysql_stmt_field_count() can be called after you have prepared a statement by invoking mysql_stmt_prepare().".
This doesn't work with all kind pf prepared statements.
How to repeat:
static int test_metadata(MYSQL *mysql) { int rc; char *query1= "SELECT 1,2 FROM DUAL"; char *query2= "SHOW CREATE TABLE test_metadata"; MYSQL_STMT *stmt= mysql_stmt_init(mysql); rc= mysql_query(mysql, "DROP TABLE IF EXISTS test_metadata"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "CREATE TABLE test_metadata (a int)"); check_mysql_rc(rc, mysql); rc= mysql_stmt_prepare(stmt, query1, strlen(query1)); check_stmt_rc(rc, stmt); diag("Fields in result set after prepare: %u", mysql_stmt_field_count(stmt)); rc= mysql_stmt_prepare(stmt, query2, strlen(query2)); check_stmt_rc(rc, stmt); diag("Fields in result set after prepare: %u", mysql_stmt_field_count(stmt)); rc= mysql_stmt_execute(stmt); diag("Fields in result set after execute: %u", mysql_stmt_field_count(stmt)); mysql_stmt_close(stmt); }
Output:
# Fields in result set after prepare: 2 # Fields in result set after prepare: 0 # Fields in result set after execute: 2
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Is 5.5 affected too?