Bug #23657 Malformed ColumnName with special charactars
Submitted: 26 Oct 2006 7:57 Modified: 6 Nov 2006 15:13
Reporter: Martin Karch
Status: Closed
Category:Connector/Net Severity:S2 (Serious)
Version:1.0.8 OS:
Assigned to: Tonci Grgin Target Version:
Tags: umlaut, special, character, columnname, corrupt, malformed

[26 Oct 2006 7:57] Martin Karch
Description:
ColumnNames with special characters, e.g. the German Umlauts get malformed when filling a
DataTable or DataSet.

I know that special characters should be avoided in column names, but in my case I 'm
dynamically creating columns by a crosstab procedure.

How to repeat:
conn = New MySqlConnection("server=mysql;database=test;user id=root;password=secret")
conn.Open()

Dim da As New MySqlDataAdapter("SELECT ""a"" As 'auo', ""b"" As 'äöü'", conn)
Dim dt As New DataTable

da.Fill(dt)
        
DataGridView1.DataSource = dt

Suggested fix:
Don't know. Perhaps an encoding problem?
[27 Oct 2006 12:53] Tonci Grgin
Hi Martin and thanks for your problem report. You are missing some of important info like
MySQL server version, NET fw version and so on. I also noticed that you don't use
"character set" or "charset" connection string keyword. Can you please test with it and,
if it doesn't help, provide info that's missing.
[30 Oct 2006 11:41] Martin Karch
The .NET fw is 2.0, the server is 5.0.27.

If I add "charset=latin1" to the connection string, the same error occurs. If I add
"charset=utf8", the lower case umlauts are retrieved correctly, but the upper case
ColumnNames get the correct umlaut with an additional "1".
[30 Oct 2006 12:10] Tonci Grgin
Martin, thanks. Can you please attach my.ini (or my.cnf) from the server. Also, can you
please paste output of SHOW VARIABLES LIKE "%char%" and DESCRIBE "yourtablename"\G from
mysql command line client.
[31 Oct 2006 8:05] Martin Karch
SHOW VARIABLES LIKE "%char%"

output when called by .net connector (without charset in conn string):
  character_set_client       latin1
  character_set_connection   latin1
  character_set_database     latin1
  character_set_filesystem   binary
  character_set_results      
  character_set_server       latin1
  character_set_system       utf8
  character_sets_dir         E:\MySQL\share\charsets\

output by frontend software:
character_set_client         latin1
character_set_connection     latin1
character_set_database       latin1
character_set_filesystem     binary
character_set_results        latin1
character_set_server         latin1
character_set_system         utf8
character_sets_dir           E:\MySQL\share\charsets\

output by mysql console client:
character_set_client         latin1
character_set_connection     latin1
character_set_database       latin1
character_set_filesystem     binary
character_set_results        latin1
character_set_server         latin1
character_set_system         utf8
character_sets_dir           E:\MySQL\share\charsets\

DESCRIBE "yourtablename"\G
As I wrote in prevouisly I don't have a table with special character ColumnNames. I have
a stored procedure that dynamically generates resultsets from my data ("crosstab call").
[31 Oct 2006 8:05] Martin Karch
my.ini

Attachment: my.ini (application/octet-stream, text), 9.81 KiB.

[31 Oct 2006 17:21] Reggie Burnett
Fixed in 5.0.2
[6 Nov 2006 15:14] MC Brown
A note has been added to the 5.0.2 changelog
[15 Jan 2007 11:27] Tonci Grgin
Seems not fixed. See Bug#25385.
[11 Jun 2007 11:00] Tonci Grgin
My mistake, seems Bug#25385 is !Bg after all. Waiting on Reggie's ruling.