1.主键表添加字段(有别于mysql)
ALTER TABLE telit_project_info ADD COLUMN  data_model TINYINT NULL COMMENT '数据模块 1:生态资源 2 生态巡护 3 森林防火 4 多样性 5 生态检测 5 林业事件'  AFTER p_type;
2.外表情况下读取 MySQL date/datetime 类型出现异常
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[INTERNAL_ERROR]UdfRuntimeException: get next block failed: 
CAUSED BY: SQLException: Zero date value prohibited
CAUSED BY: DataReadException: Zero date value prohibited
这是因为JDBC中对于该非法的 Date/DateTime 默认处理为抛出异常,可以通过参数 zeroDateTimeBehavior控制该行为。
可选参数为: EXCEPTION,CONVERT_TO_NULL,ROUND, 分别为:异常报错,转为NULL值,转为 "0001-01-01 00:00:00";
需要在创建 Catalog 的 jdbc_url 把JDBC连接串最后增加 zeroDateTimeBehavior=convertToNull ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull" 这种情况下,JDBC 会把 0000-00-00 或者 0000-00-00 00:00:00 转换成 null,然后 Doris 会把当前 Catalog 的所有 Date/DateTime 类型的列按照可空类型处理,这样就可以正常读取了。
3.外表情况下读取 MySQL date/datetime 条件判断异常
JDBC 把 0000-00-00 或者 0000-00-00 00:00:00 转换成 null后根据null判断异常,因为条件会被下推到mysql执行所以应该判断是否是 0000-00-00 或者 0000-00-00 00:00:00