-
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?
;