Commit 1b4d6a05 authored by unknown's avatar unknown
Browse files

Bug#21263 mysql client XML output does not distinguish between NULL and string 'NULL'

  
  Fix: "mysql --xml" now print NULL values the same way that "mysqldump --xml" does:
  
    <field name="name" xsi:nil="true" />
  
  to distinguish from empty strings:
  
    <field name="name"></field>
  
  and from string "NULL":
  
    <field name="name">NULL</field>


client/mysql.cc:
  Fixing to print NULLs differently from empty strings
mysql-test/r/client_xml.result:
  Fixing test result accordingly
parent 880c9b2a
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -2509,10 +2509,15 @@ print_table_data_xml(MYSQL_RES *result)
    {
      tee_fprintf(PAGER, "\t<field name=\"");
      xmlencode_print(fields[i].name, (uint) strlen(fields[i].name));
      if (cur[i])
      {
        tee_fprintf(PAGER, "\">");
        xmlencode_print(cur[i], lengths[i]);
        tee_fprintf(PAGER, "</field>\n");
      }
      else
        tee_fprintf(PAGER, "\" xsi:nil=\"true\" />\n");
    }
    (void) tee_fputs("  </row>\n", PAGER);
  }
  (void) tee_fputs("</resultset>\n", PAGER);
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b');
<resultset statement="select null from dual
">
  <row>
	<field name="NULL">NULL</field>
	<field name="NULL" xsi:nil="true" />
  </row>
</resultset>
drop table t1;