When using column sensing, any encountered column name is checked against existing columns for that table by doing a case-insensitive comparison. However, when retrieving the attribute value to populate the data set, the xml qname is used to retrieve the value, which is case-sensitive. Thus, once a column is encountered for a table, subsequent usages of that column must have identical casing to the first usage. When they do not match casing, a null value is inserted.
Relevant code was found in FlatXmlProducer#startElement. Have not verified if other XML formats have the same behavior.
I assume that this is unintended behavior, since the code specifically does case-insensitive comparisons to determine if the column has already been encountered and error messages do specify that column names are case-insensitive.
If this is a bug that is determined to be worth fixing, I would like to take on developing the patch.
Hi, thank you for the report and analysis.
Yes, seems like undesired behavior. Please create test(s) proving the problem along with a fix.
Please follow the dev guide for making and testing changes.