https://github.com/MyCATApache/mycat2
https://gitee.com/MycatOne/Mycat2

1.22开发任务
1.新路由配置
2.允许不配置原型库的情况下启动
3.完善drop表的功能
4.新的分片算法

v1.22-release-6-15
1.修复native模式update/insert发生出现阻塞的问题

v1.22-release-6-14
1.优化blob接收逻辑
2.修复存储过程只能接收一个结果集的问题

v1.22-release-6-13(供某些用户测试)
1.支持设置Mycat会话的网络缓冲区
2.修复下推全局表后,数据分片中的分片条件丢失的问题
3.优化字段的非空属性判断逻辑

v1.22-release-6-9(供某些用户测试)
1.修复某些情况忽略主从心跳异常导致主从切换失败
2.支持SQL类型的权限拦截

v1.22-release-6-7(供某些用户测试)
1.修复单表路由(HackRouter)出现duplicate key错误
2.自动检查不活动的后端连接并回收
在datasource.json的removeAbandonedTimeoutSecond控制,默认180秒,不活动(没有sql操作)自动回收
3.支持clickhourse后端数据源(打包内置),使用的驱动是

  1. <dependency>
  2. <groupId>ru.yandex.clickhouse</groupId>
  3. <artifactId>clickhouse-jdbc</artifactId>
  4. <version>0.3.2</version>
  5. </dependency>

xx.datasource.json

  1. {
  2. "dbType":"clickhouse",
  3. "type":"JDBC",
  4. "url":"jdbc:clickhouse://192.168.28.128:8123"
  5. ...
  6. }

clickhourse后端数据源只支持select语句和insert语句,没有自增值返回

v1.22-release-6-2
1.修复HTTP实现的分片算法,使用截断表语句,失效
2.修复使用native模式,出现ArrayStore异常

v1.22-release-5-29
1.修复BKAJOIN报错

v1.22-release-5-27
1.提供基于HTTP调用实现的分片算法(测试)

v1.22-release-5-26
1.修复涉及BKAJOIN回表的情况下,生成的sql条件会全表扫描
2.修复生成sql带有重复字段,导致查询报错#706
3.升级BKAJOIN的条件生成算法,支持更多条件下推

v1.22-release-5-25
1.修复涉及回表的情况下,行类型不匹配,全局二级索引没有生效

v1.22-release-5-24
1.分片表支持12.修复全局索引表数量大于1的时候,无法使用全局索引表
3.修复BKAJOIN执行计划报错以及优化BKAJOIN的执行计划生成
4.新增全局表自增序列号的插入的三种方式
5.支持设置会话粘滞时间
6.user.json配置支持rsa加密(zyw提交代码)

v1.22-release-5-17
1.修复drop表,在自动加载单表的情况下,需要执行两次
2.修复spm初始化的时候报编码错误

v1.22-release-5-12
1.修复单表路由处理with子句的时候报错#697
2.完善drop表的功能(深圳-木先生-测试报告)

v1.22-release-5-11
1.修复分片表不写分片条件或者全表扫描的时候,使用mysql index hint生成的sql错误#695
2.修复mycat库下的表没有主键,导致某些集群类型无法同步#698

v1.22-release-5-10
1.完善drop逻辑表,这个版本之后会删除存储节点的数据
2.完善alter语句,支持自定义分片算法的分片表,自定义存储节点的单表/全局表,但不支持全局二级索引表

v1.22-release-5-9
1.添加mysql后端连接泄露检查的功能(见数据源配置)
2.修复xa事务在不涉及跨库事务的情况下升级到了xa事务的问题(proxy事务没有影响)
3.修复xa事务在不跨库事务下保留了后端连接,导致读写分离失败以及后端连接因为长时间不活动被mysql关闭后,出现mycat的旧连接没有响应的情况(proxy事务没有影响)
4.添加若干个用于检查连接泄露的debug级别日志

v1.21-release-5-9
该版本合拼了1.22分支的代码与1.22没有区别

v1.22-release-5-8
1.支持会话粘滞
2.支持PHP-Admin(可能遇到获取不了表的情况,可以改动PHP-Admin的源码实现过滤没有表名)
3.完善全局序列号,null和0值的替换为自增值

v1.21-release-5-7
1.修复PHP-Admin执行
SELECTSCHEMANAMEFROMINFORMATION_SCHEMA.SCHEMATA`, (SELECT DB_first_level FROM ( SELECT DISTINCT SUBSTRING_INDEX(SCHEMA_NAME, ‘‘, 1) DBfirst_level FROM INFORMATION_SCHEMA.SCHEMATA WHERE TRUE ) t ORDER BY DB_first_level ASC LIMIT 0, 100) t2 WHERE TRUE AND 1 = LOCATE(CONCAT(DB_first_level, ‘‘), CONCAT(SCHEMANAME, ‘‘)) ORDER BY SCHEMA_NAME ASC;`
错误
原因是优化器在CBO阶段对JOIN排序获取行数报错

v1.22-release-5-5
1.修复回滚事务或者强制放弃druid jdbc连接有可能连接泄露,主要原因是druid强制放弃连接没有关闭连接

v1.21-release-5-5
1.修复回滚事务或者强制放弃druid jdbc连接有可能连接泄露,主要原因是druid强制放弃连接没有关闭连接

v1.22-release-4-27
1.修复偶然回滚事务发生空指针错误导致连接泄露

v1.21-release-4-27
1.修复偶然回滚事务发生空指针错误导致连接泄露

v1.22-release-4-26
1.修复TBPARTITION BY RIGHT_SHIFT 分表不均匀 #682

v1.21-release-4-26
1.修复TBPARTITION BY RIGHT_SHIFT 分表不均匀 #682

v1.22-release-4-22
1.insert语句的duplicate子句不限制表达式#678

v1.22-release-4-21
1.分片表与全局二级索引表的insert语句支持duplicate子句

v1.21-release-4-20
1.修复分片表describe 逻辑表在sqlyog报错
2.修复update语句对全局二级索引表没有进行set列剪裁以及出现参数化错误#673

v1.22-test-4-15
1.修复show databases,使用单表覆盖information.schemata表,出现语法错误
2.修复全局二级索引使用二级索引字段报错#668

v1.21-release-4-15
1.修复show databases,使用单表覆盖information.schemata表,出现语法错误
2.修复全局二级索引使用二级索引字段报错#668

v1.22-test-4-14
修复虚拟表information.tables/information.columns因为生成的建表语句的库名表名带有关键字而不带``导致解析错误,这个错误不影响正常使用

v1.21-release-4-14
修复虚拟表information.tables/information.columns因为生成的建表语句的库名表名带有关键字而不带``导致解析错误,这个错误不影响正常使用

v1.22-test-4-8
修复schema.json使用targetName批量加载物理表不支持库名带有-
修复delete/insert/update语句不支持库名带有-

v1.21-release-4-8
修复schema.json使用targetName批量加载物理表不支持库名带有-
修复delete/insert/update语句不支持库名带有-

v1.22-test-4-7

  1. 修复

SELECT * FROM A WHERE aid IN (SELECT DISTINCT aid FROM B)
报错,B为分片表,aid是非唯一字段,A是单表

  1. 添加jooq实现SQL方言翻译器包装非mysql数据源

v1.21-release-4-7

  1. 修复

SELECT * FROM A WHERE aid IN (SELECT DISTINCT aid FROM B)
报错,B为分片表,aid是非唯一字段,A是单表
B为分片表,aid是非唯一字段,A是单表

v1.21-release-4-1
支持分片表下推json运算符->

v1.22- test-4-1
支持分片表下推json运算符->

v1.21-release-3-30
逻辑库支持带有-字符

v1.22- test-3-30
逻辑库支持带有-字符

v1.21-release-3-25
1.支持xxx.user.json设置事务隔离级别
2.去掉JDBC管理器总是设置autocommit/事务隔离级别,为了提交性能以及解决事务隔离级别问题
3.解决旧版本驱动(5.1.35)连接Mycat报以下错误
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (23 > -1). You can change this value on the server by setting the max_allowed_packet’ variable.

v1.22- test-3-25
1.支持xxx.user.json设置事务隔离级别
2.去掉JDBC管理器总是设置autocommit/事务隔离级别,为了提交性能以及解决事务隔离级别问题
3.解决旧版本驱动(5.1.35)连接Mycat报以下错误
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (23 > -1). You can change this value on the server by setting the max_allowed_packet’ variable.

v1.22- test-3-22
1.单表/全局表的delete/replace 语句支持join
2.支持PartitionByDateEx分片算法
3.支持rewriteInsertBatchedStatementBatch参数,用于提高批量插入性能

v1.21- release-3-22
1.单表/全局表的delete/replace 语句支持join
2.支持PartitionByDateEx分片算法
3.支持rewriteInsertBatchedStatementBatch参数,用于提高批量插入性能

v1.22- test-3-15
1.JDBC简单查询性能比1.21有提升,大约是5000-7000 qps 4核机器 16g内存
2.支持native直连,简单查询8000-11000 qps 4核机器 16g内存
3.支持BINLOG同步追平
4.支持全量数据迁移
5.安全停机
sql限流
update insert支持复杂查询

1.21-release-3-14
1.修复预处理语句execute接收Date类型值报错
2.单个MycatView执行SQL的获取连接会根据FULL_TABLE_SCAN_LIMIT进行限制,FULL_TABLE_SCAN_LIMIT是最大连接数量
3.修复慢SQL记录,在旧版本MySQL5.6上面因为字符集不支持报错的问题
4.新建全局表可以自动使用prototype
5.server.json支持asyncDDL属性,涉及刷新表配置可以异步执行
6.修复show collation报错
7.修复跨节点JOIN,某些合拼跨库节点在mycat首次启动执行的时候有可能发生死锁
8.添加线程运维类注释
9.实现kill报文的语义
10.server.json添加pushShowOnPrototype属性实现下推show语句的功能
11.单表支持update join
12.修复Colocated下推丢失mysql注释

1.21-release-3-3
1.useProxyProtocol:true|false
支持HAProxy ProxyProtocol协议
2.fullTableScanException:true|false
检查到全表扫描就抛异常
3.移除一些没有用的依赖包
4.通过更改打包插件,解决类加载错误的问题
5.支持TCP试探连接不会输出日志,对SLB友好
6.

  1. /*+ mycat:showConnections{}*/ 支持显示正在执行的SQL

1.21-release-2-28
1.修复上一个错误的错误信息,会延续到后一个查询
image.png
不影响查询结果,错误信息说明曾经发生过错误,提示作用

2.更新fastjson版本到1.2.79
3.更新mysql-connector-java到8.0.25
4.更新guava到31.0.1-jre
5.

  1. {
  2. "ip": "127.0.0.1",//建议为空,填写后会对客户端的ip进行限制
  3. "password": "123456",
  4. "transactionType": "proxy",
  5. "username": "root",
  6. "schema":"db1"//如果客户端没有指定默认库,则使用此配置的逻辑库
  7. }

6.支持IN schema语法替代use语法(临时的功能)

  1. IN db1;/切换默认库,IN是大写

第5,6点都是为了临时解决某些mysql客户端不加-A参数连接的情况下,避免在use schema的时候发生阻塞的问题

1.21-release-2-25
1.修复BEGIN;(大写)识别为BASELINE命令导致开启事务报错(C#客户端)
2.修复2-24号实现的无表SQL下推导致的锁函数失效
3.支持无表SQL下推
4.修复不写别名情况下,select ‘x’的字段名带有’’

1.21-release-2-24
1.适配C#客户端
![7(HRRK)~X48G%KO85QU3.png
请使用mysql8客户端同时设置mycat模拟的mysql版本

C#客户端用的information_schema.schema.json

  1. {
  2. "customTables": {},
  3. "globalTables": {},
  4. "normalTables": {
  5. "ROUTINES": {
  6. "createTableSQL": "CREATE TABLE information_schema.ROUTINES (\n\tSPECIFIC_NAME varchar(192),\n\tROUTINE_CATALOG varchar(192),\n\tROUTINE_SCHEMA varchar(192),\n\tROUTINE_NAME varchar(192),\n\tROUTINE_TYPE varchar(27),\n\tDATA_TYPE varchar(1024),\n\tCHARACTER_MAXIMUM_LENGTH bigint(21),\n\tCHARACTER_OCTET_LENGTH bigint(21),\n\tNUMERIC_PRECISION bigint(3),\n\tNUMERIC_SCALE bigint(3),\n\tDATETIME_PRECISION bigint(3),\n\tCHARACTER_SET_NAME varchar(12),\n\tCOLLATION_NAME varchar(12),\n\tDTD_IDENTIFIER varchar(255),\n\tROUTINE_BODY varchar(255),\n\tROUTINE_DEFINITION varchar(255),\n\tEXTERNAL_NAME varchar(255),\n\tEXTERNAL_LANGUAGE varchar(255),\n\tPARAMETER_STYLE varchar(255),\n\tIS_DETERMINISTIC varchar(255),\n\tSQL_DATA_ACCESS char(64),\n\tSQL_PATH varchar(255),\n\tSECURITY_TYPE varchar(255),\n\tCREATED datetime,\n\tLAST_ALTERED datetime,\n\tSQL_MODE varchar(80),\n\tROUTINE_COMMENT varchar(12),\n\tDEFINER varchar(64),\n\tCHARACTER_SET_CLIENT varchar(64),\n\tCOLLATION_CONNECTION varchar(64),\n\tDATABASE_COLLATION varchar(64)\n)",
  7. "locality": {
  8. "schemaName": "information_schema",
  9. "tableName": "ROUTINES",
  10. "targetName": "prototype"
  11. }
  12. },
  13. "PARAMETERS": {
  14. "createTableSQL": "CREATE TABLE information_schema.parameters (\n\tSPECIFIC_CATALOG varchar(64),\n\tSPECIFIC_SCHEMA varchar(64),\n\tSPECIFIC_NAME varchar(64),\n\tORDINAL_POSITION bigint(11) UNSIGNED,\n\tPARAMETER_MODE varchar(5),\n\tPARAMETER_NAME varchar(64),\n\tDATA_TYPE longtext,\n\tCHARACTER_MAXIMUM_LENGTH bigint(21),\n\tCHARACTER_OCTET_LENGTH bigint(21),\n\tNUMERIC_PRECISION int(10) UNSIGNED,\n\tNUMERIC_SCALE bigint(11),\n\tDATETIME_PRECISION int(10),\n\tCHARACTER_SET_NAME varchar(64),\n\tCOLLATION_NAME varchar(64),\n\tDTD_IDENTIFIER mediumtext,\n\tROUTINE_TYPE enum('FUNCTION', 'PROCEDURE')\n)",
  15. "locality": {
  16. "schemaName": "information_schema",
  17. "tableName": "PARAMETERS",
  18. "targetName": "prototype"
  19. }
  20. },
  21. "CHARACTER_SETS": {
  22. "locality": {
  23. "targetName": "prototype"
  24. }
  25. },
  26. "COLLATIONS": {
  27. "locality": {
  28. "targetName": "prototype"
  29. }
  30. },
  31. "COLLATION_CHARACTER_SET_APPLICABILITY": {
  32. "locality": {
  33. "targetName": "prototype"
  34. }
  35. }
  36. },
  37. "schemaName": "information_schema",
  38. "shardingTables": {}
  39. }

2.修复

  1. SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())//报错

3.修复union all多个分片表改写错误
4.支持全表扫描警告日志
https://www.yuque.com/ccazhw/ml3nkf/da38c2fce9fd89d39d9d0fcb53bf5d17
5.支持条件剪裁,分片条件可以把非分片键写在条件首部不影响分析

1.21-release-2022-2-18
1.新增(恢复)1.21 Prometheus的监控信息,使Grafana信息完整.
2.修复Prometheus的监控端口会强制开启(默认7066)

v1.21-release-2022-2-14
1.修复1.21无法启动Prometheus监控端口
2.修复慢SQL自动建表sqlTime表类型为bigint

v1.21-release-2022-2-11
1.修复相同的一个会话长时间运行后出现OOM( 监控 可以观察到)
2.修复连接出现事务异常时候,直接关闭连接mycat的客户端连接没有回滚事务(显式回滚是可以的回滚的)

v1.21-release-2022-1-24
1.修复jdbc连接管理带有集群信息缓存导致集群信息更新后会访问到旧的集群名字
2.修复MHA/MGR集群,在踢除失效mysql,而mysql恢复后不能自动加入集群的问题
3.修复创建表的时候可能会遇上readlonly报错,如果进行了集群主从切换
4.修复启动的时候,jdbc数据源没有启动就就进行心跳,mycat2的心跳报错导致出现主从切换
5.修复心跳遇上readyonly连接报错
6.修复showUsers注释显示错误

v1.21-release-2022-1-17
1.添加单表添加失败的异常提示
2.修复MHA集群心跳语句错误(番茄)
3.explain语句支持显示colocatedPushDown
4.修复后端拉取结果集的字段不一致,与mycat建表语句不一致没有异常提示的问题,但是显示空结果集
5.修复sortJoin优化规则没有解参数化表达式的报错(番茄)
image.png
6.支持select @@FOREIGN_KEY_CHECKS,SELECT @@innodb_file_per_table =1;返回值都是固定的,用于兼容某些框架(番茄)
7.重构预处理处理,并支持sysbanch测试,兼容Mysql C客户端的预处理语句,完善deprecateEOF兼容性
8.完善<=>语义的分区剪裁以及其下推(番茄)
9.默认jdbc的queryTimeout为0
10.心跳配置支持showLog属性配置心跳日志输出(好莱坞)
11.PartitionByPrefixPattern/PartitionByPattern/PartitionByMurmurHash/PartitionByFileMap/AutoPartitionByLong 支持mapfile属性(平常心)
12.忽略xa recoverylog在初始化建库时候的错误,因为读写分离用不到xa
13.PartitionByPattern 支持defaultNode属性(平常心)
14.update/delete语句的条件支持 table.column的表达式(番茄)
15.修复jdbc管理器无法加载mongodb驱动的问题
16.修复单节点下,不写别名报1054 Unknown column in ‘where clause’的问题(番茄)
17.支持不配置c0节点也可以使用sql建立分片表
18.修复SHOW GLOBAL VARIABLES的空结果集错误
19.修复删除表配置失败
20.修复建库使用了utf8编码,现已经改为utf8mb4编码
21.修复元信息表没有内置parameters表(窗外流星)
22.修复ddl无法并行执行的错误(#631)
23.支持锁函数(番茄)
24.支持虚拟表
25.支持Mycat UI(窗外流星)
26.支持逻辑表映射覆盖虚拟表
27.支持id in(1,2,3) and xxxxx语法,id是分片键,支持此写法分区剪裁

v1.21-release-2021-12-26
重构executor模块
添加向量化执行注释解析(实验),列式计算引擎处于流程上可使用,并逐步完善,需要使用注释指定使用

  1. /*+mycat:vector() */SELECT * FROM `db1`.`travelrecord` LIMIT 0, 1000;

v1.21-release-2021-12-24
修复单表场景下,支持插入语句带有xml等转义字符
支持在仅有一个原型库集群下,把该原型库视为存储节点,并使用该原型库创建分片表
修复分片值带有函数调用报错

v1.21-release-2021-12-23
修复IS NOT DISTINCT FROM下推到mysql上,而mysql不支持该语法

v1.20-release-2021-12-23
修复IS NOT DISTINCT FROM下推到mysql上,而mysql不支持该语法

v1.21-release-2021-12-22
修复https://github.com/MyCATApache/Mycat2/issues/621
修复在复杂查询下join_recude_expression规则在RBO死循环
修复long类型在参数化后变成int导致在复杂查询表达式计算错误的问题

v1.20-release-2021-12-22
修复在复杂查询下join_recude_expression规则在RBO死循环
修复long类型在参数化后变成int导致在复杂查询表达式计算错误的问题

v1.21-release-2021-12-21
BuildTime 2020-01-10 09:06:35
该版本限制了bkajoin的规则应用范围,仅在全局二级索引回开启,其他情况要使用注释开启
旧版本可以在server.json关闭这个功能
“bkaJoin”: false

v1.20-release-2021-12-21
BuildTime 2020-01-10 09:06:35
该版本默认禁用了bkajoin,全局二级索引的回表与bkajoin暂时不可用,但可通过配置开启
原因是在1.21发现分片表join单表join单表join 单表,生产的执行计划查询结果有问题
旧版本可以在server.json关闭这个功能
“bkaJoin”: false

v1.21-release-2021-12-17(20)
提升存储过程,存储过程支持多结果集返回
数据源支持native模式(实验)

v1.21-release-2021-12-16
修复MGR集群读节点在停机后无法恢复

v1.20-release-2021-12-16
修复MGR集群读节点在停机后无法恢复

v1.20-release-2021-12-15
修复alter 分片表字段不能更新本地配置文件

v1.21-release-2021-12-14
修复集群失效,完善readonly判断集群主从节点
修复show columns 语句空指针错误
完善优化器对聚合,排序的下推处理

v1.21-release-2021-12-2
修复配置重启后失效
修复apache arrow版本问题
修复float类型带有多余小数点

v1.20-release-2021-12-3
修复某些表结构在分片表的情况下,使用含聚合函数和排序的sql会出现优化器死循环导致内存用完

v1.20-release-2021-12-2
修复float类型带有多余小数点

v1.21-release-2021-12-1
支持逻辑视图
完善ditinct下推
完善union下推
完善join下推
适配dbeaver
使条件=大小写不敏感
该版本开始对原型库不依赖
修复视图不能根据schema上的targetName加载的问题

BuildTime 2021-12-01 09:55:18
GitVersion f19bfb7c2e76fa571a9ebb71d39c57b3e9427be6
MavenVersion 1.21-release

v1.20-2021-11-25
适配dbeaver
使条件=大小写不敏感

v1.21-alpha-2021-11-21
升级vertx依赖到4.2.1
功能上移除原型库依赖,使用虚拟表实现information_schema,mysql,performance_schema
实现mycat:schema注释

  1. /*+mycat:schema=ds2*/是语句作用的注释,实现不通过use schema临时修改当前的schema
  2. select DATABASE();//mysql库
  3. /*+mycat:schema=ds2*/select DATABASE()");//ds2
  4. select DATABASE();//恢复到mysql库

修复配置更新,使用mysql存储配置.存储数据不一致的问题
修复Binary函数报错
初步支持apache arrow作为结果集写入
BuildTime 2021-11-21 12:38:08
GitVersion b23bb8b9da073d275ad73f3f691c82072897f0af

v1.20-2021-11-21
实现mycat:schema注释

  1. /*+mycat:schema=ds2*/是语句作用的注释,实现不通过use schema临时修改当前的schema
  2. select DATABASE();//mysql库
  3. /*+mycat:schema=ds2*/select DATABASE()");//ds2
  4. select DATABASE();//恢复到mysql库

BuildTime 2021-11-21 09:33:39
GitVersion cfb828e19a357d9480fc47294c5941f31d93affb

v1.20-2021-11-17
禁用mysql数据源自动使用流式读取结果行,在sql执行异常情况下后续操作会导致resultset for update错误(仅v1.20-2021-11-11这个版本有此问题,v1.21的流式读取没有此问题)
修复Prometheus监控无法启动
修复服务器预处理执行sql使用了旧的参数值(客户端是druid连接池默认关闭服务器预处理没有此问题,HikariCP没有关闭而且发现此bug)
BuildTime 2021-11-17 05:46:27
GitVersion aeeeeca5cda30b722b6547285fb048e32071e0af
https://github.com/MyCATApache/Mycat2/tree/2021-8-23-fix

v1.20-2021-11-11
mysql数据源自动使用流式读取结果行
BuildTime 2021-11-11 06:53:20
GitVersion 0ec0121ad181d459e6dba2140f6305157f8558c8

v1.21-alpha-2021-11-10
日期型自动hash算法支持范围查询
支持基于分区键的join下推
支持保存点(savepoint)
对于后端数据源是mysql的时候,会自动开启流式结果集读取
对于后端数据源是mysql的时候,而且只有一条sql的时候会把字段信息传递到mycat前端
完善kill命令
完善xa rollback机制
修复replace报错,暂时分片表不支持replace语句
BuildTime 2021-11-10 07:42:44
GitVersion 453d1e0aeb58f6e00697ba735bf7b2b802afa49f
MavenVersion 1.21-aplha

v1.21-alpha-2021-11-2
移除vertx后端查询接口
重构配置更新,使用mysql存储配置
支持通过配置选择开启sort join下推
支持存储过程调用
移植1.6的mongodb,sequoiadb数据源
完善统计功能
元数据原型库,实现该功能后,show语句减少mysql的实现依赖
BuildTime 2021-11-02 12:48:32
GitVersion 2a6f50dcd53dcfb0027c0d0e0d7d949597cb7c6b

v1.20-2021-11-2
BuildTime 2021-11-02 13:23:26
GitVersion 79d257bdb923d95295d205625205996d2f48b109
支持DATE_SUB,解决报错
替换vertx线程池
修复union all流式合拼结果集报错

v1.20-2021-10-26
BuildTime 2021-10-26 09:02:20
GitVersion 68b2181d8319ba31376a777cb9faec8ff7ecad5e
修复预处理中double/float值被识别为了大端序的错误(touch提交)
支持UUID函数

v1.20-2021-10-21
BuildTime 2021-10-21 15:02:58
GitVersion 1916eb528c6f69414a42dd5fd4ebf96da09f7e7e
修复预处理中blob与字符串读取错误,导致插入值错误(低版本mysql5.6出现,高版本mysql8没有这个问题,touch提交)

v1.20-2021-10-16
BuildTime 2021-10-16 12:09:20
GitVersion 42a2ca61b341cf82775129c5f7446739bd67c284
1.针对单分片节响应点,报文带有库名表名(lingkang提交)
2.日志框架从simplelogger替换为logback并提供kafka记录日志示例(lingkang提交)

v1.20-2021-10-11
BuildTime 2020-01-10 09:06:35
GitVersion 20f22f947c60665debb02fed8e205fd9b3580858
修复showSlowSql注释不能统计慢sql
修复不能通过注释设置规则分片表

v1.20-2021-9-29
BuildTime 2021-09-29 09:12:38
GitVersion 68000eff28fb991c548ceec72e3c12d156e1a47f
修复createTable hint中sharding错误拼写为shading导致失效,并更新ui和安装包壳

v1.20-2021-9-23
BuildTime 2021-09-23 06:18:45
GitVersion 269f92d39e53bfbbf01d695a183fc06d34079f54
修复mycat一些alter column语句执行无效

v1.20-2021-9-15
BuildTime 2021-09-15 08:53:16
GitVersion 27bf9f4286d566eaa73c06a57749342b94336fd2
支持 desc schema.table语法(使用原型库实现)

v1.20-2021-9-14
BuildTime 2021-09-14 07:52:41
GitVersion aaf2711f2aa5bb3881bdb3a51e105634d1e64a85
1.修复id = 1 or id = 1000000000因为存在隐式cast表达式导致无法分区剪裁
2.修复字符串值因为calcite表达式的NlsString包装导致计算hash错误导致路由错误
3.修复潜在的calcite表达式包装时间类型,字节数组类型可能导致的路由错误

v1.20-2021-8-27
BuildTime 2021-08-27 07:07:05
GitVersion 96f9e223d12f6a67458df5d35f370857be9207dd
1.修复前端会话在关闭之后对象没有释放,导致连接统计出错以及对象泄露
2.优化监控服务状态不占用io线程
3.修复集群监控在不配置从节点会报空指针日志
4.实现insert/update等错误码异常信息使用mysql格式返回

v1.20-2021-8-24
添加优化注释,实现强制下推count/sum/等 distinct语法(实验)

  1. /*+ MYCAT:push_down_agg_distinct() */
  2. /*+ MYCAT:push_down_join_broadcast() */
  3. /*+ MYCAT:merge_union_size(0)*/
  4. //用于动态控制sql使用union all的数量用于统计类SQL减少union all而使用Mycat并行计算
  5. /*+ MYCAT:push_down_agg_distinct() merge_union_size(1)*/

v1.20-2021-8-23
1.修复count distinct ,忽略distinct语义的错误
2.修复多个相同的全局表在join中下推失败
3.添加sever.json中配置forcedPushDownBroadcast(实验)强制下推全局表,默认关闭

  1. private boolean joinClustering = true;
  2. private String serverVersion = "5.7.33-mycat-2.0";
  3. private boolean ignoreCast = false;
  4. //BROADCAST
  5. private boolean forcedPushDownBroadcast = false;

v1.20-2021-8-17
1.支持分片表配置autoIncrement属性,禁用全局序列号
“autoIncrement”: false
2.支持read only状态查询,用于完善spring等框架的事务注解
3.优化Mycat UI界面

  1. SET SESSION TRANSACTION READ WRITE
  2. SELECT @@session.transaction_read_only
  3. SET SESSION TRANSACTION READ ONLY

1.20-2021-8-12
修复全局二级索引表与单表join失败
修复全局二级索引表不能执行二阶段聚合运算
修复RxJava执行层并行失败
修复RANGE_HASH无法使用
提供Mycat2 UI配置界面

1.20-2021-8-3
schema配置中的shading分片表配置项是拼写错误,更正为sharding
更新sql建表语句只能对写入节点(InstanceType)操作

1.20-2021-7-26
支持BKAJOIN
支持全局二级索引并支持全局二级索引注释

支持
column = expr or column1 = expr2
column in (expr,expr2)
谓词分析并分区剪裁

修复某些异常导致mycat2不能接受新的连接
新增后端连接超时
限制仅mysql数据源类型支持自动建表
支持透传新增删除mysql函数语法
修复预处理long类型读取错误
修复heidisql客户端连接出错
修复PartitionByMonth,PartitionByHotDate
新增允许嵌套事务
修复alter table statement
新增字段报文带有non-null信息
调整默认日志级别是info

1.19-2021-6-18
schema配置中单表,全局表,分片表的datanode配置名字变更
https://www.yuque.com/ccazhw/ml3nkf/00d1d4fc145edf34b2d13fcd95908722

支持路由注释(读写分离,透传SQL下发,分区剪裁)
与上一个版本对比,部分基于规则的SQL重写技术升级为使用基于代价的SQL重写技术,并引入LocalRel表示存储节点的运算而MycatRel表示Mycat中的运算,为下一步计算与存储(分离/混合)使用代价分析做准备
简单支持MySQL index 注释,可以在生成存储节点的SQL中带有MySQL的索引注释
修复kill命令
完善分片算法(对于相同字段的分库分表,表名默认使用全局物理表下标表示),修复日期类型报错,从旧版本升级的mycat2需要检查配置的数据分布与mysql中的数据分布是否对应
修复结果集缓存失效
升级连接调度器
修复XA事务中删除XA日志的连接偶然出现阻塞导致连接不能释放的问题
修复线程池不能同时处理多个请求任务的问题(性能大大提高)
重新支持colocate push down,即只要SQL在一些情况,比如涉及一个mysql,一个ER组,就会把整个SQL完全下推,不再在mycat里合拼运算
修复MycatUnion报错
修复执行计划管理在第一次编译SQL模板的时候存在并行重复编译的问题

1.18-2021-4-24
支持执行计划管理
支持索引分析

1.17-2021-3-15
支持MHA,MGR集群类型
修复预处理读取日期值错误

1.15-2021-3-11
修复ER表不能下推
完善类型转换下推

1.14-2021-2-13
修复update错误
修复主从集群类型的主节点心跳错误

1.14-2021-1-29
修复分片表插入sql,在同一个存储节点,批量插入第二个值开始插入失败

1.14-2021-1-29
修复全局表若干问题

1.14-2021-1-27
支持xxx =null
关闭并行查询,并把查询结果集串行保存到内存,减少BlockNestedJoin发起多个连接

1.14
修复若干bug
使用代码生成技术的执行器实现

1.13-alpha
采用云服务分库分表中间件设计

1.12-05与1.11-05是最后的文件配置版本,1.13开始采用云服务的设计

1.09-2020-6-19
##### 2020.6.15-> 2020.6.19日志

配置无需配置建表sql](https://github.com/MyCATApache/Mycat2/commit/ec034439a43ec97da1e5e74668c4fad7d4f19225)) 自动从dataNode中查询建表语句

简化配置 ShardingType可以不写,默认自然分片](https://github.com/MyCATApache/Mycat2/commit/706262328682d490c850742f6f4c70d46c0e39ab))

添加插入语句中出现未知字段的提示](https://github.com/MyCATApache/Mycat2/commit/d1bf9a01caa3440928f49427a48264a27802e9c0))

修复caclite 内部类型为数字的日期类型 类型转换问题](https://github.com/MyCATApache/Mycat2/commit/c883f60366d69acc6048995b653d3b5c50e52728))

通过判断是否存在初始化语句加速jdbc获取连接](https://github.com/MyCATApache/Mycat2/commit/b1438d34e698f8ab884675319a5f16a715da98c7))

修复boolean类型转换](https://github.com/MyCATApache/Mycat2/commit/8d9bf7e9ed2abfbfd74bf917695bac350e3f53c7))

show @@backend.replica](https://github.com/MyCATApache/Mycat2/commit/d7285cfd4eb24d8b9713a73578fa0e99f4b4c78f))

show @@backend.datasource 可以显示连接使用数量](https://github.com/MyCATApache/Mycat2/commit/e3aa295288ed15a2b782941ba042a5cf4d3e43fa))

实现show @@connection](https://github.com/connection)@connection)

实现show @@backend.native](https://github.com/MyCATApache/Mycat2/commit/1f0467131d4b30fc548fc0c66811bc8414cbec99))

2020.6.8-> 2020.6.14日志

修复读写分离在跨库情况下有异常

支持枚举类型(以字符串对待)

修复时间类型转换错误

修复sqllog下mycat自研的show column命令导致的崩溃

重构路由,可以支持分片算法返回dataNode

强制native(proxy)使用NativePassword](https://github.com/MyCATApache/Mycat2/commit/a135181457554199aa072a8f8f097faa6cefa15e))插件,而不再自动可以切换为其他插件

使用druid作为数据源的时候可以使用本地事务

添加本地事务配置例子(druid)

修复使用jdbc查询返回IllegalArgumentException();](https://github.com/MyCATApache/Mycat2/commit/9afe0dde62912da22839cf040bbc9e06690a5d32))

忽略SET TRANSACTION READ WRITE;](https://github.com/MyCATApache/Mycat2/commit/1aa50549d1ce4f4467150065314739306cb7ea42))

带有InformationSchema的表的sql发送到后端数据库](https://github.com/MyCATApache/Mycat2/commit/f3ee1fa64d27ae472dc095479a0f93cefd6c8b4b))

修复xa测试主键冲突](https://github.com/MyCATApache/Mycat2/commit/6c5cc719ccc075a4828a208b560d52dc8735924b))

暂时禁用show tables因为mysql8客户端不兼容此实现](https://github.com/MyCATApache/Mycat2/commit/6926e67a5b84946a83343f6be61c0ffd6acc23f1))

禁用jdbc设置readOnly](https://github.com/MyCATApache/Mycat2/commit/6f9ce86a21c8d2221ff561522dd40a5b64cb2455))

禁用UnionPullUpConstantsRule](https://github.com/MyCATApache/Mycat2/commit/00454390f52b34c6bb9535347fb6cc0d51d05374))

1.08-2020-6-7
修复只能拉取两个数据源的问题
跨分片查询性能大幅提高
查询引擎的行为变更
前:
在事务内,遇上重复拉取同一的数据源计划,使用临时表方案保存同一个数据源的数据
会下推union运算

后:
总是并行拉取数据
不会下推union运算

1.07-2020-6-2
完成booster功能

1.06-2020-5-28
适配mysql workbench
修复jdbc并行后拉取多于两个数据源的连接的结果集是空的情况

1.06-2020-5-27
完善对分片字段在字符串类型下出现cast节点导致无法找到分片值的情况
完善枚举分片

1.06
jdbc拉取数据并行化
数据源支持type属性
reuqestType属性改名为reuqestType

1.05
配置变更实现自动路由

1.04
稳定的手动路由版本

1.03
修复客户端偶然不能登录
添加小型正则表达式实现
提交读写分离测试
修复单独使用SELECT next_value_for(‘db1_travelrecord’)无法获得全局序列号

修复读写分离,executeType query master路由到非主节点
相比于1.02,
1.修复某些情况xa没有自动开启
2.完善主从集群切换

1.02
完善日志
完善安装包

1.01
存在execute QUERY_MASTER情况下仍然路由到从节点的问题