1.[ISSUE #501](https://github.com/shardingjdbc/sharding-jdbc/issues/501)Support OR statement
### Enhancements
1.[ISSUE #608](https://github.com/shardingjdbc/sharding-jdbc/issues/608)Support the USE statement of MySQL
1.[ISSUE #609](https://github.com/shardingjdbc/sharding-jdbc/issues/609)Support the SHOW statement of MySQL
1.[ISSUE #610](https://github.com/shardingjdbc/sharding-jdbc/issues/610)Optimize the DQL that does not contain a table name
1.[ISSUE #611](https://github.com/shardingjdbc/sharding-jdbc/issues/611)Support the DESC statement of MySQL
1.[ISSUE #652](https://github.com/shardingjdbc/sharding-jdbc/issues/652) Support Spring Boot Starter 2.x
1.[ISSUE #701](https://github.com/shardingjdbc/sharding-jdbc/issues/701)Support caching parsing results of SQL to improve performance
1.[ISSUE #702](https://github.com/shardingjdbc/sharding-jdbc/issues/702)Support $->{..} as mark for inline expression
1.[ISSUE #719](https://github.com/shardingjdbc/sharding-jdbc/issues/719)Support Spring bean namespace to inject key generator objects
1.[ISSUE #720](https://github.com/shardingjdbc/sharding-jdbc/issues/720)Support Spring bean namespace to inject sharding algorithm objects
1.[ISSUE #773](https://github.com/shardingjdbc/sharding-jdbc/issues/773)Support sharding and autoincrement primary key of INSERT statements without column names
### Bug Fixes
1.[ISSUE #628](https://github.com/shardingjdbc/sharding-jdbc/issues/628)Support data type jsonb for PostgreSQL
1.[ISSUE #646](https://github.com/shardingjdbc/sharding-jdbc/issues/646)When aliases in SELECT ITEMS correspond to the real column names of GROUP BY or ORDER BY, there is no need to add columns
1.[ISSUE #522](https://github.com/shardingjdbc/sharding-jdbc/issues/522)The slave database does not need to execute the DDL statement for read-write separation
1.[ISSUE #540](https://github.com/shardingjdbc/sharding-jdbc/issues/540)Support SQLs that the alias is the keyword
1.[ISSUE #577](https://github.com/shardingjdbc/sharding-jdbc/issues/577)Support newline for YAML configuration
## 2.0.2
### 功能提升
1.[ISSUE #475](https://github.com/shardingjdbc/sharding-jdbc/issues/475)支持CREATE INDEX
1.[ISSUE #525](https://github.com/shardingjdbc/sharding-jdbc/issues/525)支持DROP INDEX
### Enhancements
1.[ISSUE #475](https://github.com/shardingjdbc/sharding-jdbc/issues/475)Support CREATE INDEX
1.[ISSUE #525](https://github.com/shardingjdbc/sharding-jdbc/issues/525)Support DROP INDEX
1.[ISSUE #520](https://github.com/shardingjdbc/sharding-jdbc/issues/520)When the partition table is introduced, the exception type is no longer DuplicateKeyException when the unique key conflict occurs
1.[ISSUE #521](https://github.com/shardingjdbc/sharding-jdbc/issues/521)ShardingProperties is invalid in YAML configuration
1.[ISSUE #529](https://github.com/shardingjdbc/sharding-jdbc/issues/529)Table name capitalization cannot be queried
1.[ISSUE #541](https://github.com/shardingjdbc/sharding-jdbc/issues/541)Can't parse IS NOT NULL
1.[ISSUE #557](https://github.com/shardingjdbc/sharding-jdbc/issues/557)When GroupBy and OrderBy aliases are inconsistent, stream merging should be used
1.[ISSUE #559](https://github.com/shardingjdbc/sharding-jdbc/issues/559)Support parsing numbers beginning with minus and decimal (e.g. -.12).
1.[ISSUE #567](https://github.com/shardingjdbc/sharding-jdbc/issues/567) MySQL adds an escape character when columns are added to prevent errors caused by using keywords as column names or aliases
1.[ISSUE #490](https://github.com/shardingjdbc/sharding-jdbc/issues/490) Oracle using rownum greater than or equal to or less than or equal to the result of paging is incorrect
1.[ISSUE #491](https://github.com/shardingjdbc/sharding-jdbc/issues/491)Can't close connection by ResultSet.getStatement().getConnection().close()
1. API adjust. Brand new Maven coordinate name, package name and spring namespace name. Simplify and enhance API configuration, inline expression full configuration support
1.Support spring-boot-starter of sharding-jdbc
1.Dynamic configuration. Zookeeper and etcd can be used as registry to dynamically modify data sources and sharding configurations
1.Data governance. Fusing database access procedures to access databases and disable access to slave databases
1. ConfigMap support. Predefined metadata can be obtained in the sharding and read-write separation strategy
1.Tracking system support. You can view the invocation chain of sharding-jdbc through sky-walking and other Opentracing based APM systems
1.[ISSUE #386](https://github.com/shardingjdbc/sharding-jdbc/issues/386)Support for SELECT 1, a SQL that does not contain table names
1.[ISSUE #407](https://github.com/shardingjdbc/sharding-jdbc/issues/407)Sharding-jdbc's spring-boot-starter compatibility uses two ways of attribute configuration: minus sign and hump
1.[ISSUE #387](https://github.com/shardingjdbc/sharding-jdbc/issues/387)Prevent errors from keywords process when '`' exists in function + column name
1.[ISSUE #394](https://github.com/shardingjdbc/sharding-jdbc/issues/394)Can't only close statement
1.[ISSUE #398](https://github.com/shardingjdbc/sharding-jdbc/issues/398)Use Hint routing to shield case sensitivity
1.[ISSUE #404](https://github.com/shardingjdbc/sharding-jdbc/issues/404)Sharding-jdbc's spring-boot-starter does not support HikariDataSource
1.[ISSUE #419](https://github.com/shardingjdbc/sharding-jdbc/issues/419)When SQL is rewritten, it does not determine whether alias is a keyword without the escape character, which results in SQL exception
1.[ISSUE #436](https://github.com/shardingjdbc/sharding-jdbc/issues/436)Read-write separation, when the RoundRobin algorithm is configured from the database and MyBatis is used, it can only be routed to the same slave library
1.[ISSUE #452](https://github.com/shardingjdbc/sharding-jdbc/issues/452)Sharding of DDL statements to more than one table causes a connection leak
1.[ISSUE #453](https://github.com/shardingjdbc/sharding-jdbc/issues/453)Orchestration datasource name is conflict with Druid datasource name
1.[ISSUE #464](https://github.com/shardingjdbc/sharding-jdbc/issues/464) SQL if the varchar type is not closed due to the absence of matching single quotes, and the next varchar in SQL is the wrong SQL of Chinese characters, it will lead to higher use of CPU
1.[ISSUE #472](https://github.com/shardingjdbc/sharding-jdbc/issues/472)Before Connection executes createStatement, it calls getMetaData first and then setAutoCommit can not take effective connection to the database that was created later
1.[ISSUE #356](https://github.com/shardingjdbc/sharding-jdbc/issues/356)In the Where condition of SQL, the REGEXP operator is compatible with non sharding columns
1.[ISSUE #362](https://github.com/shardingjdbc/sharding-jdbc/issues/362)Read-write separation using PreparedStatement does not invoke the setParameter method to cause errors
1.[ISSUE #370](https://github.com/shardingjdbc/sharding-jdbc/issues/370)Error in calling getGeneratedKeys using native self increment primary key
1.[ISSUE #375](https://github.com/shardingjdbc/sharding-jdbc/issues/375)Data can not be obtained after paging second pages route to a single node
1.[ISSUE #379](https://github.com/shardingjdbc/sharding-jdbc/issues/379)When Mybatis is used to call Connection.getMetaData (), the connection is not close correct
1.[ISSUE #349](https://github.com/shardingjdbc/sharding-jdbc/issues/349)Incorrect function of ResultSet.wasNull causes null numeric type in DB to zero
1.[ISSUE #351](https://github.com/shardingjdbc/sharding-jdbc/issues/351)Tables that are included in the default data source but not in TableRule configuration are not properly executed
1.[ISSUE #353](https://github.com/shardingjdbc/sharding-jdbc/issues/353)In the Where condition of SQL, it is compatible with non sharding columns !=, !> and !< operator
1.[ISSUE #354](https://github.com/shardingjdbc/sharding-jdbc/issues/354)In the Where condition of SQL, NOT operators are compatible with non-sharding columns
## 1.5.2
### 里程碑
### Milestones
1.质量保障的测试引擎,每条SQL可以运行60个不同维度的测试用例
1.The test engine of quality assurance, each SQL can run 60 test cases of different dimensions
### 功能提升
### Enhancements
1.[ISSUE #335](https://github.com/shardingjdbc/sharding-jdbc/issues/335)支持GROUP BY + 自定义函数的SQL
1.[ISSUE #341](https://github.com/shardingjdbc/sharding-jdbc/issues/341)支持Oracle中的ORDER BY xxx NULLS FIRST | LAST 语句
1.[ISSUE #335](https://github.com/shardingjdbc/sharding-jdbc/issues/335)Support the GROUP BY + custom function SQL
1.[ISSUE #341](https://github.com/shardingjdbc/sharding-jdbc/issues/341)Support ORDER BY xxx NULLS FIRST | LAST statement of Oracle
1.[ISSUE #346](https://github.com/shardingjdbc/sharding-jdbc/issues/346)DDL语句 DROP TABLE IF EXISTS USER 解析表名错误
1.[ISSUE #334](https://github.com/shardingjdbc/sharding-jdbc/issues/334)Parsing ORDER BY with functions will resolve the following ASC and DESC to the name attribute of OrderItem
1.[ISSUE #335](https://github.com/shardingjdbc/sharding-jdbc/issues/339)JOIN parsing is incorrect using the full name association of the table
1.[ISSUE #346](https://github.com/shardingjdbc/sharding-jdbc/issues/346)Parsing table name error of DDL statement DROP TABLE IF EXISTS USER
1.The new SQL parsing module removes the dependence on Druid. We only need to parse the sharding context, and adopt a "semi understanding" concept for SQL to further improve performance and compatibility, and reduce code complexity
1.The new SQL rewrite module adds an optimized rewrite module
1.The new SQL merge module is rebuilt into 3 merging engines: streaming, memory and decorator
1.Simplify the distributed self increasing sequence. Each table is supported by simplifying a multiple self increasing sequence to a single table supporting only a single distributed self increasing sequence, and no longer supporting workerID settings through environment variables
1.[ISSUE #239](https://github.com/shardingjdbc/sharding-jdbc/issues/239) LIMIT routes to multiple query result sets. If there is only one result set that is not empty, the result of paging is incorrect
1.[ISSUE #263](https://github.com/shardingjdbc/sharding-jdbc/issues/263)Sharding and logical table configuration can be case insensitive
1.[ISSUE #292](https://github.com/shardingjdbc/sharding-jdbc/issues/292)When the memory mode handles GROUP BY statement, if there is paging information, it needs to be rewritten
1.[ISSUE #295](https://github.com/shardingjdbc/sharding-jdbc/issues/295) LIMIT 0 does not filter the result set according to paging restrictions
1.[ISSUE #215](https://github.com/shardingjdbc/sharding-jdbc/issues/215)Aggregated result set of stream sort StreamingOrderByReducerResultSet performance optimization
1.[ISSUE #161](https://github.com/shardingjdbc/sharding-jdbc/issues/161)When the result sets are merged, heap sort can be used to improve performance
1.[ISSUE #191](https://github.com/shardingjdbc/sharding-jdbc/issues/191)Generating KeyGenerator of workerId based on IP of host
1.[ISSUE #192](https://github.com/shardingjdbc/sharding-jdbc/issues/192)Get workerId's KeyGenerator based on HOSTNAME's digital suffix
1.[ISSUE #210](https://github.com/shardingjdbc/sharding-jdbc/issues/210)Routing to single library and single table to remove supplementary SQL statement fragments
1.[ISSUE #194](https://github.com/shardingjdbc/sharding-jdbc/issues/194)Some component exceptions in the close method of Connection, Statement, Resultset and other interfaces cause the close method of another component to be not invoked
1.[ISSUE #199](https://github.com/shardingjdbc/sharding-jdbc/issues/199)Sharding and reuse PreparedStatement object cause route error
1.[ISSUE #201](https://github.com/shardingjdbc/sharding-jdbc/issues/201)Event transmission missing before batch operation execution
1.[ISSUE #203](https://github.com/shardingjdbc/sharding-jdbc/issues/203)Merge events sent by the batch operation
1.[ISSUE #209](https://github.com/shardingjdbc/sharding-jdbc/issues/209)Parallel execution of multiple limit queries leads to IndexOutOfBoundsException
## 1.4.0
### 功能提升
### Enhancements
自动生成键实现,包含
Automatic generation key implementation, including
1.[ISSUE #59](https://github.com/shardingjdbc/sharding-jdbc/issues/59) PreparedStatement can call the correct underlying set method according to the parameter type when setting parameters
1.[ISSUE #149](https://github.com/shardingjdbc/sharding-jdbc/issues/149)When INSERT IGNORE INTO, if the data is duplicated, the value returned to -1 when ignored, and it should be returned to 0
1.[ISSUE #118](https://github.com/shardingjdbc/sharding-jdbc/issues/118)In the same thread, DQL is executed first, then DML is executed, and DML operation is executed from the slave database
1.[ISSUE #122](https://github.com/shardingjdbc/sharding-jdbc/issues/122)In cases where connections are not available (such as network interruption), transactions should be interrupted rather than retry
1.[ISSUE #152](https://github.com/shardingjdbc/sharding-jdbc/issues/152) PreparedStatement's cache causes an array out of bound
1.[ISSUE #150](https://github.com/shardingjdbc/sharding-jdbc/issues/150)With the latest SQLServer jdbc driver compatibility problem, Product Name should be changed from SQLServer to Microsoft SQL Server
1.[ISSUE #166](https://github.com/shardingjdbc/sharding-jdbc/issues/166)Druid data source stat filter multi-thread error reporting should be added to database connection level synchronization
1.[ISSUE #36](https://github.com/shardingjdbc/sharding-jdbc/issues/36) ShardingPreparedStatement cannot set parameters repeatedly
1.[ISSUE #114](https://github.com/shardingjdbc/sharding-jdbc/issues/114)When ShardingPreparedStatement performs batch tasks, it repeatedly analyzes SQL and leads to OOM
1.[ISSUE #33](https://github.com/shardingjdbc/sharding-jdbc/issues/33)According to the MySQL document, queries similar to limit 100 and -1 format are not supported
1.[ISSUE #124](https://github.com/shardingjdbc/sharding-jdbc/issues/124)The return value of com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractStatementAdapter.getUpdateCount does not conform to the JDBC specification
1.[ISSUE #91](https://github.com/shardingjdbc/sharding-jdbc/issues/91)Open support for Statement.getGeneratedKeys can return the original database self increase primary key
1.[ISSUE #89](https://github.com/shardingjdbc/sharding-jdbc/issues/89)Use read-write separation with sharding hint leads to conflict
1.[ISSUE #95](https://github.com/shardingjdbc/sharding-jdbc/issues/95)Write operations in the same thread are read from the master database changed to the same thread and within the same connection
1.[ISSUE #82](https://github.com/shardingjdbc/sharding-jdbc/issues/82) TableRule can import the dataSourceName attribute to specify the data source corresponding to the TableRule
1.[ISSUE #88](https://github.com/shardingjdbc/sharding-jdbc/issues/88)Release restrictions on other databases, support standard SQL, do not support personalized paging statements
1.[ISSUE #61](https://github.com/shardingjdbc/sharding-jdbc/issues/61)Add the logical table name to the ShardingValue class
1.[ISSUE #66](https://github.com/shardingjdbc/sharding-jdbc/issues/66)Statement on the JDBC tier supports get/set MaxFieldSize, MaxRows and QueryTimeout
1.[ISSUE #72](https://github.com/shardingjdbc/sharding-jdbc/issues/72)Batch inserts supporting select union all
1.[ISSUE #78](https://github.com/shardingjdbc/sharding-jdbc/issues/78)Simplifying sharding only configuration, without configuring logical table and real table correspondence
1.[ISSUE #80](https://github.com/shardingjdbc/sharding-jdbc/issues/80)Simplifying the configuration that does not sharding, specifying the default data source, do not need configure TableRule
1.[ISSUE #63](https://github.com/shardingjdbc/sharding-jdbc/issues/63)No table name or table alias is added to the ORDER BY and GROUP BY derivation columns
1.[ISSUE #65](https://github.com/shardingjdbc/sharding-jdbc/issues/65)Performance enhancement for parsing condition context
1.[ISSUE #67](https://github.com/shardingjdbc/sharding-jdbc/issues/67)The soft transaction log cannot be deleted when routed to multiple tables
1.[ISSUE #71](https://github.com/shardingjdbc/sharding-jdbc/issues/71)Routing single sharding key by OFFSET of LIMIT error
1.[ISSUE #75](https://github.com/shardingjdbc/sharding-jdbc/issues/75) MemoryTransactionLogStorage retry times update concurrency problem
1.[ISSUE #53](https://github.com/shardingjdbc/sharding-jdbc/issues/53)The relationship between the real table and the logical table is not configured, and the real table is dynamically calculated by the sharding algorithm
1.[ISSUE #58](https://github.com/shardingjdbc/sharding-jdbc/issues/58)Soft transaction: the initial version of the best effort type
1.[ISSUE #43](https://github.com/shardingjdbc/sharding-jdbc/issues/43)The yaml file contains Chinese, and the operating system mode is not UTF-8 encoding, resulting in yaml can not be parsed
1.[ISSUE #48](https://github.com/shardingjdbc/sharding-jdbc/issues/48)Yaml file is not closed after reading
1.[ISSUE #57](https://github.com/shardingjdbc/sharding-jdbc/issues/57)At the analytic level, we can identify sub queries to ensure that the behavior of supplementary columns can be accurately positioned
1.[ISSUE #11](https://github.com/shardingjdbc/sharding-jdbc/issues/11)The count function returns incorrectly without aliases
1.[ISSUE #13](https://github.com/shardingjdbc/sharding-jdbc/issues/13)The Insert statement does not write column names or write column names but column names do not contain sharding fields, occur broadcast route
1.[ISSUE #16](https://github.com/shardingjdbc/sharding-jdbc/issues/16)For now a new connection pool is executed every time SQL is executed. Instead, each ShardingDataSource object should be changed to share a pool
1.[ISSUE #19](https://github.com/shardingjdbc/sharding-jdbc/issues/19)In SUM and AVG functions, merger is not executed if aliases are not added, and null pointer exception fired if aliases are added
1.[ISSUE #38](https://github.com/shardingjdbc/sharding-jdbc/issues/38)The compatibility between JPA and Sharding-JDBC. JPA automatically add the column aliases of SELECT, resulting in ORDER BY obtaining ResultSet data only by aliases rather than column names