diff --git a/src/main/java/io/mycat/server/handler/ServerLoadDataInfileHandler.java b/src/main/java/io/mycat/server/handler/ServerLoadDataInfileHandler.java index 5a7373aef..4a339f97e 100644 --- a/src/main/java/io/mycat/server/handler/ServerLoadDataInfileHandler.java +++ b/src/main/java/io/mycat/server/handler/ServerLoadDataInfileHandler.java @@ -640,6 +640,12 @@ public void end(byte packID) settings.getFormat().setQuoteEscape(loadData.getEscape().charAt(0)); } settings.getFormat().setNormalizedNewline(loadData.getLineTerminatedBy().charAt(0)); + /* + * fix bug #1074 : LOAD DATA local INFILE导入的所有Boolean类型全部变成了false + * 不可见字符将在CsvParser被当成whitespace过滤掉, 使用settings.trimValues(false)来避免被过滤掉 + * TODO : 设置trimValues(false)之后, 会引起字段值前后的空白字符无法被过滤! + */ + settings.trimValues(false); CsvParser parser = new CsvParser(settings); try { @@ -689,6 +695,12 @@ private void parseFileByLine(String file, String encode, String split) settings.getFormat().setQuoteEscape(loadData.getEscape().charAt(0)); } settings.getFormat().setNormalizedNewline(loadData.getLineTerminatedBy().charAt(0)); + /* + * fix #1074 : LOAD DATA local INFILE导入的所有Boolean类型全部变成了false + * 不可见字符将在CsvParser被当成whitespace过滤掉, 使用settings.trimValues(false)来避免被过滤掉 + * TODO : 设置trimValues(false)之后, 会引起字段值前后的空白字符无法被过滤! + */ + settings.trimValues(false); CsvParser parser = new CsvParser(settings); InputStreamReader reader = null; FileInputStream fileInputStream = null;