<This looks like it was generated using mysqlbug, but actually I took
another post and pasted in the values.>
>Description:
The mysql_fetch_field() function returns a MYSQL_FIELD structure with
the flags field set to a value including NOT_NULL_FLAG even if the field
is an aggregate, if that aggregate is on the primary key.
If there are no rows in the table, then MAX(pri_key_column) will return
NULL. However, the MYSQL_FIELD structure will indicate that the
MAX(pri_key_column) field does not allow NULL.
If the column is not a primary key, but is NOT NULL, then the
MYSQL_FIELD flags will correctly indicate that the aggregate can allow
NULL.
>How-To-Repeat:
In MySQL: CREATE TABLE foo (bar int PRIMARY KEY);
In C:
MYSQL *cnn = mysql_init(NULL);
mysql_real_connect(cnn, NULL, NULL, NULL, "test", 0, NULL, 0);
const char* select_query = "SELECT MAX(bar) FROM foo";
mysql_query(cnn, select_query);
MYSQL_RES* res = mysql_store_result(cnn);
MYSQL_FIELD* fld = mysql_fetch_field(res);
char* name = strdup(fld->name);
bool isNotNull = ((fld->flags & NOT_NULL_FLAG) > 0);
printf("column `%s`: notnull=%d\n", name, isNotNull);
MYSQL_ROW row = mysql_fetch_row(res);
printf("value: %s", row[0] ? row[0] : "NULL");
mysql_close(cnn);
>Fix:
None.
>Originator: Matt Solnit
>Organization: Iteration Software, Inc. http://www.iteration.com
>Release: mysql-4.0.9-gamma (Binary distribution)
>Environment:
System: Windows XP Professional
Architecture: Pentium IV
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php