-
Bug
-
Resolution: Done
-
Major
-
1.2.0.Beta2
-
None
On an empty MySQL database, running this code:
CREATE PROCEDURE `myprocedure` (IN param1 VARCHAR(255), IN param2 INT) BEGIN INSERT INTO some_table (some_column) VALUES (CAST('32' as INT)); END;
successfully creates the procedure, but it causes Debezium to fail with a parsing error.
This patch fixes the problem for me (but I'm not sure if this is the right place to do the fix):
diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 index acb8ea09..3aaf1ab4 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 @@ -2095,7 +2095,7 @@ collectionOption convertedDataType : typeName=(BINARY| NCHAR) lengthOneDimension? | typeName=CHAR lengthOneDimension? ((CHARACTER SET | CHARSET) charsetName)? - | typeName=(DATE | DATETIME | TIME | JSON) + | typeName=(DATE | DATETIME | TIME | JSON | INT | INTEGER) | typeName=DECIMAL lengthTwoDimension? | (SIGNED | UNSIGNED) INTEGER? ;