Skip to content

Commit d76c7ee

Browse files
committed
implement a better regex for detecting mariadb gtid strs
1 parent 2774bed commit d76c7ee

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

src/main/java/com/github/shyiko/mysql/binlog/MariadbGtidSet.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ public MariadbGtidSet(String gtidSet) {
4444
}
4545
}
4646

47-
static Pattern MARIA_GTID_PATTERN = Pattern.compile("^\\d+-\\d+-\\d+");
47+
static String threeDashes = "\\d{1,10}-\\d{1,10}-\\d{1,20}";
48+
49+
static Pattern MARIA_GTID_PATTERN = Pattern.compile(
50+
"^" + threeDashes + "(\\s*,\\s*" + threeDashes + ")*$"
51+
);
4852

4953
public static boolean isMariaGtidSet(String gtidSet) {
5054
return MARIA_GTID_PATTERN.matcher(gtidSet).find();

src/test/java/com/github/shyiko/mysql/binlog/GtidSetTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,5 @@ public void testPutUUIDSet() {
164164
assertEquals(gtidSet, gtidSet2);
165165
}
166166

167+
167168
}

src/test/java/com/github/shyiko/mysql/binlog/MariadbGtidSetTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import org.testng.annotations.Test;
44

5+
import static org.junit.Assert.assertFalse;
6+
import static org.junit.Assert.assertTrue;
57
import static org.testng.Assert.assertEquals;
68
import static org.testng.Assert.assertNotEquals;
79

@@ -33,4 +35,12 @@ public void testEquals() {
3335
assertEquals(new MariadbGtidSet(""), new MariadbGtidSet(""));
3436
assertEquals(new MariadbGtidSet("0-0-7404"), new MariadbGtidSet("0-0-7404"));
3537
}
38+
39+
@Test
40+
public void testMatcher() {
41+
assertTrue(MariadbGtidSet.isMariaGtidSet("0-0-3323"));
42+
assertTrue(MariadbGtidSet.isMariaGtidSet("0-0-3323,4-33-12342134,444-33-13412341233"));
43+
assertTrue(MariadbGtidSet.isMariaGtidSet("0-0-3323, 4-33-12342134, 444-33-13412341233"));
44+
assertFalse(MariadbGtidSet.isMariaGtidSet("07212070-4330-3bc8-8a3a-01e34be47bc3:1-141692942,a0c4a949-fae8-30f3-a4d2-fee56a1a9307:1-1427643460,a16ef643-1d4a-3fd9-a86e-1adeb836eb2d:1-1411988930,b0d822f4-5a84-30d3-a929-61f64740d7ac:1-59364"));
45+
}
3646
}

0 commit comments

Comments
 (0)