decrease max columns per table of load data

This commit is contained in:
collapsar
2019-03-05 10:08:39 +08:00
parent 0219bd65b2
commit 338274162f

View File

@@ -54,6 +54,8 @@ import java.util.regex.Pattern;
*/
public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(ServerLoadDataInfileHandler.class);
//innodb limit of columns per table, https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html
private static final int DEFAULT_MAX_COLUMNS = 1017;
private ServerConnection serverConnection;
private String sql;
private String fileName;
@@ -571,7 +573,7 @@ public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler
}
// List<String> lines = Splitter.on(loadData.getLineTerminatedBy()).omitEmptyStrings().splitToList(content);
CsvParserSettings settings = new CsvParserSettings();
settings.setMaxColumns(65535);
settings.setMaxColumns(DEFAULT_MAX_COLUMNS);
settings.setMaxCharsPerColumn(systemConfig.getMaxCharsPerColumn());
settings.getFormat().setLineSeparator(loadData.getLineTerminatedBy());
settings.getFormat().setDelimiter(loadData.getFieldTerminatedBy().charAt(0));
@@ -622,7 +624,7 @@ public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler
private boolean parseFileByLine(String file, String encode, String split) {
CsvParserSettings settings = new CsvParserSettings();
settings.setMaxColumns(65535);
settings.setMaxColumns(DEFAULT_MAX_COLUMNS);
settings.setMaxCharsPerColumn(systemConfig.getMaxCharsPerColumn());
settings.getFormat().setLineSeparator(loadData.getLineTerminatedBy());
settings.getFormat().setDelimiter(loadData.getFieldTerminatedBy().charAt(0));