### Question:
SqlParserServiceImpl implements SqlParserService { @Override public List<SqlCreateTable> sqlTableParser(String ddlSql) throws Exception { List<SqlCreateTable> result = new LinkedList<>(); SqlNodeList nodeList = SqlUtils.parseSql(ddlSql); for (SqlNode sqlNode : nodeList) { if (sqlNode instanceof SqlCreateTable) { result.add((SqlCreateTable) sqlNode); SqlNodeList columnList = ((SqlCreateTable) sqlNode).getColumnList(); List<SqlTableColumn> tableColumnList = new ArrayList<>(); List<SqlBasicCall> basicCallList = new ArrayList<>(); Map<String,String> tableColumnInfo = new LinkedHashMap<>(); List<String> basicCallInfo = new ArrayList<>(); for (SqlNode sqlNode1: columnList) { if (sqlNode1 instanceof SqlTableColumn) { tableColumnList.add((SqlTableColumn) sqlNode1); SqlIdentifier name = ((SqlTableColumn) sqlNode1).getName(); SqlDataTypeSpec type = ((SqlTableColumn) sqlNode1).getType(); tableColumnInfo.put(name.toString(), type.toString()); } if (sqlNode1 instanceof SqlBasicCall) { basicCallList.add((SqlBasicCall) sqlNode1); System.out.println(sqlNode1.toString()); basicCallInfo.add(sqlNode1.toString()); } } } } return result; }  @Override List<SqlCreateFunction> sqlFunctionParser(String funSql); @Override List<SqlCreateTable> sqlTableParser(String ddlSql); @Override List<SqlCreateView> sqlViewParser(String viewSql); @Override List<RichSqlInsert> sqlDmlParser(String insertSql);  }### Answer:
@Test public void sqlTableParserTest() throws Exception { String table = "CREATE TABLE tbl1 (\n" + " `a` bigint,\n" + " `date` date,\n" + " h varchar, \n" + " g as 2 * (a + 1), \n" + " ts as toTimestamp(b, 'yyyy-MM-dd HH:mm:ss'), \n" + " b varchar,\n" + " proc as PROCTIME(), \n" + " PRIMARY KEY (a, b)\n" + ")\n" + "with (\n" + " 'connector' = 'kafka', \n" + " 'kafka.topic' = 'log.test'\n" + ")\n"; List<SqlCreateTable> list = service.sqlTableParser(table); Assert.assertEquals(list.size(), 1); }