Skip to content

Commit 541d85c

Browse files
author
Mikhail Yevchenko
committed
Fix condition in SqlInsertParser and add test case for short insert parsing
1 parent f80f473 commit 541d85c

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/main/java/com/azazar/sqldumpparser/SqlInsertParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ private static void extractTupleIdentifiers(SqlTokenGroup group, List<String> id
114114
private static void processInsertStatement(SqlStatement stmt, Set<String> tableNames, SqlInsertParseCallback callback) throws SqlInsertParseException {
115115
List<SqlToken> tokens = stmt.getTokens();
116116

117-
if (tokens.size() < 6) {
117+
if (tokens.size() < 5) {
118118
throw new SqlInsertParseException("Statement is too short", stmt);
119119
}
120120

src/test/java/com/azazar/sqldumpparser/InsertParserTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,24 @@ void testInsertParser() throws Exception {
8080
assertDeepEquals(expectedValues2, capturedInserts.get(1));
8181
}
8282

83+
@Test
84+
void testShortInsertParsing() throws Exception {
85+
String inputSql = "INSERT INTO users VALUES (1);";
86+
StringReader inputReader = new StringReader(inputSql);
87+
88+
SqlInsertParseCallback callback = (tableName, values) -> {
89+
var m = new LinkedHashMap<String, Object>();
90+
for (Map.Entry<String,SqlValue> e : values.entrySet()) {
91+
m.put(e.getKey(), e.getValue().getValue());
92+
}
93+
capturedInserts.add(m);
94+
};
95+
96+
SqlInsertParser.parse(inputReader, tableNames, callback);
97+
98+
assertEquals(1, capturedInserts.size());
99+
}
100+
83101
@Test
84102
void testInsertWithoutColumnsParser() throws Exception {
85103
String inputSql = "INSERT INTO `libgenrelist` VALUES (1,'sf_history','Альтернативная история','Фантастика'),(2,'sf_action','Боевая фантастика','Фантастика'),(3,'sf_epic','Эпическая фантастика','Фантастика'),(4,'sf_heroic','Героическая фантастика','Фантастика'),(252,'tbg_higher','Учебники и пособия ВУЗов','Учебники и пособия'),(254,'popadancy','Попаданцы','Фантастика');";

0 commit comments

Comments
 (0)