mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug #21618: NULL shown as empty string in client
The column's NOT NULL flag doesn't affect what we should print. Remove the wrong logic that does check it. Also, verify that this and the previous two tests print the same data as other output formats. client/mysql.cc: Don't check the column's NOT NULL flag when determining whether to print "NULL" or not. mysql-test/r/mysql.result: Add results and confirm that the other output forms give the same results for other similar tests. mysql-test/t/mysql.test: Add regression tests for this bug and two similar bugs.
This commit is contained in:
@@ -2270,10 +2270,8 @@ print_table_data(MYSQL_RES *result)
|
||||
MYSQL_ROW cur;
|
||||
MYSQL_FIELD *field;
|
||||
bool *num_flag;
|
||||
bool *not_null_flag;
|
||||
|
||||
num_flag=(bool*) my_alloca(sizeof(bool)*mysql_num_fields(result));
|
||||
not_null_flag=(bool*) my_alloca(sizeof(bool)*mysql_num_fields(result));
|
||||
if (info_flag)
|
||||
{
|
||||
print_field_types(result);
|
||||
@@ -2307,7 +2305,6 @@ print_table_data(MYSQL_RES *result)
|
||||
MAX_COLUMN_LENGTH),
|
||||
field->name);
|
||||
num_flag[off]= IS_NUM(field->type);
|
||||
not_null_flag[off]= IS_NOT_NULL(field->flags);
|
||||
}
|
||||
(void) tee_fputs("\n", PAGER);
|
||||
tee_puts((char*) separator.ptr(), PAGER);
|
||||
@@ -2328,7 +2325,7 @@ print_table_data(MYSQL_RES *result)
|
||||
uint extra_padding;
|
||||
|
||||
/* If this column may have a null value, use "NULL" for empty. */
|
||||
if (! not_null_flag[off] && (cur[off] == NULL))
|
||||
if (cur[off] == NULL)
|
||||
{
|
||||
buffer= "NULL";
|
||||
data_length= 4;
|
||||
@@ -2368,7 +2365,6 @@ print_table_data(MYSQL_RES *result)
|
||||
}
|
||||
tee_puts((char*) separator.ptr(), PAGER);
|
||||
my_afree((gptr) num_flag);
|
||||
my_afree((gptr) not_null_flag);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user