Code review comment: You should add it to the commit message and document.

Code before review:
public void testParser() {
String sql = "alter ROUTINE LOAD for testdb.routine_name\n"
+ "WHERE k1 > 1 and k2 like \"%starrocks%\",\n"
+ "COLUMNS(k1, k2, k4 = k1 + k2),\n"
+ "COLUMNS TERMINATED BY \"\\t\",\n"
+ "PARTITION(p1,p2) \n"
+ "PROPERTIES\n"
+ "(\n"
+ "\"max_batch_rows\"=\"200000\",\n"
+ "\"max_error_number\"=\"1\",\n"
+ "\"desired_concurrent_number\"=\"3\",\n"
+ "\"max_batch_interval\" = \"21\",\n"
+ "\"strict_mode\" = \"false\",\n"
+ "\"timezone\" = \"Africa/Abidjan\"\n"
+ ")\n"
+ "FROM KAFKA\n"
+ "(\n"
+ "\"kafka_partitions\" = \"0, 1, 2\",\n"
+ "\"kafka_offsets\" = \"100, 200, 100\",\n"
+ "\"property.group.id\" = \"group1\",\n"
+ "\"confluent.schema.registry.url\" = \"https:
+ ");";
List<StatementBase> stmts = com.starrocks.sql.parser.SqlParser.parse(sql, 32);
AlterRoutineLoadStmt stmt = (AlterRoutineLoadStmt)stmts.get(0);
AlterRoutineLoadAnalyzer.analyze(stmt, connectContext);
Assert.assertEquals(6, stmt.getAnalyzedJobProperties().size());
Assert.assertTrue(
stmt.getAnalyzedJobProperties().containsKey(CreateRoutineLoadStmt.MAX_ERROR_NUMBER_PROPERTY));
Assert.assertTrue(
stmt.getAnalyzedJobProperties().containsKey(CreateRoutineLoadStmt.MAX_BATCH_ROWS_PROPERTY));
Assert.assertTrue(stmt.hasDataSourceProperty());
Assert.assertEquals(1, stmt.getDataSourceProperties().getCustomKafkaProperties().size());
Assert.assertTrue(stmt.getDataSourceProperties().getCustomKafkaProperties().containsKey("group.id"));
Assert.assertEquals(3, stmt.getDataSourceProperties().getKafkaPartitionOffsets().size());
Assert.assertEquals("https:
}

Line under review: + "\"confluent.schema.registry.url\" = \"https:

Code after addressing the review:
public void testParser() {
String sql = "alter ROUTINE LOAD for testdb.routine_name\n"
+ "WHERE k1 > 1 and k2 like \"%starrocks%\",\n"
+ "COLUMNS(k1, k2, k4 = k1 + k2),\n"
+ "COLUMNS TERMINATED BY \"\\t\",\n"
+ "PARTITION(p1,p2) \n"
+ "PROPERTIES\n"
+ "(\n"
+ "\"max_batch_rows\"=\"200000\",\n"
+ "\"max_error_number\"=\"1\",\n"
+ "\"desired_concurrent_number\"=\"3\",\n"
+ "\"max_batch_interval\" = \"21\",\n"
+ "\"strict_mode\" = \"false\",\n"
+ "\"timezone\" = \"Africa/Abidjan\"\n"
+ ")\n"
+ "FROM KAFKA\n"
+ "(\n"
+ "\"kafka_partitions\" = \"0, 1, 2\",\n"
+ "\"kafka_offsets\" = \"100, 200, 100\",\n"
+ "\"property.group.id\" = \"group1\",\n"
+ "\"confluent.schema.registry.url\" = \"https:
+ ");";
List<StatementBase> stmts = com.starrocks.sql.parser.SqlParser.parse(sql, 32);
AlterRoutineLoadStmt stmt = (AlterRoutineLoadStmt)stmts.get(0);
AlterRoutineLoadAnalyzer.analyze(stmt, connectContext);
Assert.assertEquals(6, stmt.getAnalyzedJobProperties().size());
Assert.assertTrue(
stmt.getAnalyzedJobProperties().containsKey(CreateRoutineLoadStmt.MAX_ERROR_NUMBER_PROPERTY));
Assert.assertTrue(
stmt.getAnalyzedJobProperties().containsKey(CreateRoutineLoadStmt.MAX_BATCH_ROWS_PROPERTY));
Assert.assertTrue(stmt.hasDataSourceProperty());
Assert.assertEquals(1, stmt.getDataSourceProperties().getCustomKafkaProperties().size());
Assert.assertTrue(stmt.getDataSourceProperties().getCustomKafkaProperties().containsKey("group.id"));
Assert.assertEquals(3, stmt.getDataSourceProperties().getKafkaPartitionOffsets().size());
Assert.assertEquals("https:
}