Build criterion and ecosystem above multi-model databases

Overview

ShardingSphere - Building a Criterion and Ecosystem Above Multi-Model Databases

Official Website: https://shardingsphere.apache.org/

License GitHub release Build Status codecov snyk Maintainability OpenTracing-1.0 Badge Skywalking Tracing CII Best Practices

Twitter Slack Gitter

Stargazers Over Time Contributors Over Time
Stargazers over time Contributor over time

ShardingSphere Overview

Apache ShardingSphere is positioned as a Database Plus, and aims at building a new criterion and ecosystem above multi-model databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database.

The concepts at the core of the project are Link, Enhance and Pluggable.

  • Link: Flexible adaptation of database protocol, SQL dialect and database storage. It can quickly link applications and multi-mode heterogeneous databases quickly.
  • Enhance: Capture database access entry to provide additional features transparently, such as: redirect (sharding, readwrite-splitting and shadow), transform (data encrypt and mask), authentication (security, audit and authority), governance (circuit breaker and access limitation and analyze, QoS and observability).
  • Pluggable: Leveraging the micro kernel and 3 layers pluggable mode, features and database ecosystem can be embedded flexibily. Developers can customize their ShardingSphere just like building with LEGO blocks.

ShardingSphere became an Apache Top-Level Project on April 16, 2020.

Documentation:

EN doc CN doc

For full documentation & more details, visit: Docs

Contribution:

For guides on how to get started and setup your environment, contributor & committer guides, visit: Contribution Guidelines

Community & Support:

🔗 Mailing List. Best for: Apache community updates, releases, changes.

🔗 GitHub Issues. Best for: larger systemic questions/bug reports or anything development related.

🔗 GitHub Discussions. Best for: technical questions & support, requesting new features, proposing new features.

🔗 Slack channel. Best for: instant communications and online meetings, sharing your applications.

🔗 Twitter. Best for: keeping up to date on everything ShardingSphere.

Status:

Version 5.0.0: released 🎉

🔗 For the release notes, follow this link to the relevant GitHub page.

🔜 Version 5.0.1

We are currently working towards our 5.0.1 milestone. Keep an eye on the milestones page of this repo to stay up to date.

Nightly Builds:

A nightly build of ShardingSphere from the latest master branch is available. The package is updated daily and is available here.

‼️ Notice:

Use this nightly build at your own risk! The branch is not always fully tested. The nightly build may contain bugs, and there may be new features added which may cause problems with your environment.

How it Works:

Apache ShardingSphere includes 3 independent products: JDBC, Proxy & Sidecar (Planning). They all provide functions of data scale-out, distributed transaction and distributed governance, applicable in a variety of situations such as Java isomorphism, heterogeneous language and Cloud-Native.

ShardingSphere-JDBC

Maven Status

A lightweight Java framework providing extra services at the Java JDBC layer. With the client end connecting directly to the database, it provides services in the form of a jar and requires no extra deployment and dependence.

🔗 For more details, follow this link to the official website.

ShardingSphere-Proxy

Download Docker Pulls

A transparent database proxy, providing a database server that encapsulates database binary protocol to support heterogeneous languages. Friendlier to DBAs, the MySQL and PostgreSQL version now provided can use any kind of terminal.

🔗 For more details, follow this link to the official website.

Hybrid Architecture

ShardingSphere-JDBC adopts a decentralized architecture, applicable to high-performance light-weight OLTP applications developed with Java. ShardingSphere-Proxy provides static entry and all languages support, suitable for OLAP application and sharding databases management and operation.

Through the mixed use of ShardingSphere-JDBC & ShardingSphere-Proxy together with a unified sharding strategy by the same registry center, the ShardingSphere ecosystem can build an application system suitable to all kinds of scenarios.

🔗 More details can be found following this link to the official website.

Solution

Solutions/Features Distributed Database Data Security Database Gateway Stress Testing
Data Sharding Data Encrypt Multi-model Databases Supported Shadow Database
Readwrite-splitting Row Authority (TODO) SQL Dialect Translate (TODO) Observability
Distributed Transaction SQL Audit (TODO)
Elastic Scale-out SQL Firewall (TODO)
Highly Available

Roadmap

Roadmap

How to Build Apache ShardingSphere:

Check out Wiki section for details on how to build Apache ShardingSphere and a full guide on how to get started and setup your local dev environment.

Landscapes



  

Apache ShardingSphere enriches the CNCF CLOUD NATIVE Landscape.

Comments
  • [Vote] upgrade JDK8 on Sharding-Sphere 3.x

    [Vote] upgrade JDK8 on Sharding-Sphere 3.x

    JDK8 is more popular, and JDK 7 has abandoned by oracle. In future, we will use service-comb-saga(https://github.com/apache/incubator-servicecomb-saga) to to deal with BASE transaction. Saga only support JDK 8 and above version. So we planning upgrade to JDK 8 for new Sharding-JDBC and Sharding-Proxy on 3.0.0.

    This vote will open in at least a week. Welcome any contributor, end user and interested people to express themselves.

    Voters can either respond "agree, yes, +1", "disagree, no, -1", or "abstain".

    type: discussion 
    opened by terrymanu 77
  • Welcome to leave your article link

    Welcome to leave your article link

    Hi the community,

    This is our article collection and official channel list, which you can learn more about Apache ShardingSphere. Moreover, welcome your posts! We will consider including them into our collection and publish them on other mainstream media. 😉

    This link will direct you to our article collection 👉 Resources


    这里有Apache ShardingSphere的资源汇总,您可以在这里了解到我们各大平台的官方账号,及最新的文章汇总列表。欢迎你的关注,也欢迎你贡献有关ShardingSphere的博客文章。我们会从中挑选出有价值的文章,汇总到官方资源集或在其他主流媒体发布! 😉

    点击这里查看最新文章精选吧 👉文章精选

    status: volunteer wanted in: document 
    opened by terrymanu 62
  • proxy cannot connect to ZK.

    proxy cannot connect to ZK.

    Hello, I started sharding-proxy in version 5.0.0-beta and reported an error. The error message is as follows:

    Exception in thread "main" org.apache.shardingsphere.governance.repository.api.exception.GovernanceException: org.apache.zookeeper.KeeperException$OperationTimeoutException : KeeperErrorCode = OperationTimeout at org.apache.shardingsphere.governance.repository.zookeeper.handler.CuratorZookeeperExceptionHandler.handleException(CuratorZookeeperExceptionHandler.java:51) at org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository.initCuratorClient(CuratorZookeeperRepository.java:127) at org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository.init(CuratorZookeeperRepository.java:81) at org.apache.shardingsphere.governance.core.registry.RegistryCenterRepositoryFactory.newInstance(RegistryCenterRepositoryFactory.java:49) at org.apache.shardingsphere.governance.core.GovernanceFacade.init(GovernanceFacade.java:58) at org.apache.shardingsphere.proxy.initializer.impl.GovernanceBootstrapInitializer.getProxyConfiguration(GovernanceBootstrapInitializer.java:58) at org.apache.shardingsphere.proxy.initializer.impl.AbstractBootstrapInitializer.init(AbstractBootstrapInitializer.java:66) at org.apache.shardingsphere.proxy.Bootstrap.main(Bootstrap.java:48) Caused by: org.apache.zookeeper.KeeperException$OperationTimeoutException: KeeperErrorCode = OperationTimeout at org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository.initCuratorClient(CuratorZookeeperRepository.java:124) ... 6 more

    Please give me some solutions to the trouble, thank you

    type: discussion 
    opened by marker-wu 47
  •  【sharding-proxy】Actual SQL execution results are incorrect (data should have been returned, but no data was returned),

    【sharding-proxy】Actual SQL execution results are incorrect (data should have been returned, but no data was returned),

    I has tried all shardingproxy versions,the result is same: The ShardingProxy log shows that the Actual SQL for the query is ok, but the SQL execution results are incorrect (data should have been returned, but no data was returned)

    When directly using the interface to query the database, you can find the data. With the addition of shardingProxy proxy, the query interface does not return the data.

    The logging and configuration are shown below:

    一、configuration

    schemaName: sharding_db
    
    dataSources:
      ds_0:
        url: jdbc:mysql://19.111.4.11:3306/db1?serverTimezone=UTC&useSSL=false
        username: sera
        password: szua  
        connectionTimeoutMilliseconds: 30000
        idleTimeoutMilliseconds: 60000
        maxLifetimeMilliseconds: 1800000
        maxPoolSize: 50
      ds_1:
        url: jdbc:mysql://19.111.4.11:3306/db2?serverTimezone=UTC&useSSL=false
        username: sera
        password: szua
        connectionTimeoutMilliseconds: 30000
        idleTimeoutMilliseconds: 60000
        maxLifetimeMilliseconds: 1800000
        maxPoolSize: 50
      ds_2:
        url: jdbc:mysql://19.111.4.11:3306/db3?serverTimezone=UTC&useSSL=false
        username: sera
        password: szua
        connectionTimeoutMilliseconds: 30000
        idleTimeoutMilliseconds: 60000
        maxLifetimeMilliseconds: 1800000
        maxPoolSize: 50
        
    shardingRule:
      tables:
        pscst_prdt_cvr:
          actualDataNodes: ds_${0..1}.pscst_prdt_cvr${0..1}
          databaseStrategy:
            inline:
              shardingColumn: ecif_cust_no
              algorithmExpression: ds_${ecif_cust_no % 2}
          tableStrategy: 
            inline:
              shardingColumn: ecif_cust_no
              algorithmExpression: pscst_prdt_cvr${ecif_cust_no % 2}
          keyGenerator:
            type: SNOWFLAKE
            column: ecif_cust_no
        bcpur_epcst_aslb_stats:
          actualDataNodes: ds_2.bcpur_epcst_aslb_stats
          databaseStrategy:
            inline:
              shardingColumn: ecif_cust_no
              algorithmExpression: ds_2
          tableStrategy: 
            inline:
              shardingColumn: ecif_cust_no
              algorithmExpression: bcpur_epcst_aslb_stats
          keyGenerator:
            type: SNOWFLAKE
            column: ecif_cust_no          
      bindingTables:
        - pscst_prdt_cvr,bcpur_epcst_aslb_stats
      defaultDataSourceName: ds_2
      defaultTableStrategy:
        none: 
    

    二、logs(Logic SQL and Actual SQL logs) log(Logic SQL and Actual SQL logs)

    [INFO ] 11:05:16.105 [ShardingSphere-Command-2] ShardingSphere-SQL - Logic SQL:
     SELECT BIZ_DT, ECIF_CUST_NO, DEP_FLG, DBTCD_FLG, PLM_PY_FLG, PY_GTWY_FLG, 
     SFSRV_EQP_SGNG_FLG, ATMBL_MRTG_FLG, HS_MRTG_FLG, HLPFM_ETMN_FLG, PSNL_MANG_LN_FLG, 
     PSNL_CNSM_LN_FLG, ETC_FLG, CSCRD_FLG, MBLBNK_FLG, EBP_SGNG_FLG FROM pscst_prdt_cvr 
     WHERE ECIF_CUST_NO = ?
    
    
    [INFO ] 11:05:16.109 [ShardingSphere-Command-2] ShardingSphere-SQL - SQLStatement: 
    SelectStatementContext(super=CommonSQLStatementContext(sqlStatement=org.apache.shardingsphere
    .sql.parser.sql.statement.dml.SelectStatement@6d74eaeb, 
    tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@23f8fdb9), 
    tablesContext=org.apache.shardingsphere.sql.parser.binder.segment.table.TablesContext@23f8fdb9, 
    projectionsContext=ProjectionsContext(startIndex=7, stopIndex=218, distinctRow=false,
     projections=[ColumnProjection(owner=null, name=BIZ_DT, alias=Optional.empty), 
     ColumnProjection(owner=null, name=ECIF_CUST_NO, alias=Optional.empty), 
     ColumnProjection(owner=null, name=DEP_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=DBTCD_FLG, alias=Optional.empty),
     ColumnProjection(owner=null, name=PLM_PY_FLG, alias=Optional.empty),
     ColumnProjection(owner=null, name=PY_GTWY_FLG, alias=Optional.empty),
     ColumnProjection(owner=null, name=SFSRV_EQP_SGNG_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=ATMBL_MRTG_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=HS_MRTG_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=HLPFM_ETMN_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=PSNL_MANG_LN_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=PSNL_CNSM_LN_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=ETC_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=CSCRD_FLG, alias=Optional.empty),
     ColumnProjection(owner=null, name=MBLBNK_FLG, alias=Optional.empty), 
     ColumnProjection(owner=null, name=EBP_SGNG_FLG, alias=Optional.empty)]), 
     groupByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.groupby.GroupByContext@6386efb2, 
     orderByContext=org.apache.shardingsphere.sql.parser.binder.segment.select.orderby.OrderByContext@23183b2c,
     paginationContext=org.apache.shardingsphere.sql.parser.binder.segment.select.pagination.PaginationContext@64ef8bcc, 
     containsSubquery=false)
    [INFO ] 11:05:16.113 [ShardingSphere-Command-2] ShardingSphere-SQL - 
    Actual SQL: ds_0 ::: SELECT BIZ_DT, ECIF_CUST_NO, DEP_FLG, DBTCD_FLG, PLM_PY_FLG, 
    PY_GTWY_FLG, SFSRV_EQP_SGNG_FLG, ATMBL_MRTG_FLG, HS_MRTG_FLG, HLPFM_ETMN_FLG, 
    PSNL_MANG_LN_FLG, PSNL_CNSM_LN_FLG, ETC_FLG, CSCRD_FLG, MBLBNK_FLG, 
    EBP_SGNG_FLG FROM pscst_prdt_cvr0 WHERE ECIF_CUST_NO = ? ::: [10000]
    
    
    type: bug in: proxy 
    opened by duzhanfei 46
  • [Vote] Change project name from Sharding-JDBC to Sharding-Sphere

    [Vote] Change project name from Sharding-JDBC to Sharding-Sphere

    Sharding by JDBC layer only is not enough for diversified scenario. For example: dev language excepted Java, entry for database command client or UI. Because of the reasons, we dev anther proxy solution, the name of Sharding-JDBC is not suitable any more.

    Because of Sharding-JDBC is well-known at the past 2 years, we can not give up this intellectual property, so we want keep the key word Sharding as well, just move Sharding-JDBC, the new project Sharding-Proxy and Sharding-Sidecar(incubation now, for kubernetes env) in an ecosphere together, We call them as Sharding-Sphere.

    The vote is for All Initial Committers:

    @shardingjdbc/committers @ma-xiao-guang-64 @CharlesMaster @YunaiV

    Voters can either respond "agree, yes, +1", "disagree, no, -1", or "abstain".

    type: discussion 
    opened by terrymanu 46
  • how to use xa transaction in shardingsphere-proxy

    how to use xa transaction in shardingsphere-proxy

    Question

    I tried to use xa transaction on shardingsphere-proxy but got something wrong.

    the first problem is mysql does not support xa (start|begin) 'xxxxx' (join|resume), I made a little change here image

    then I set autocommit = 0 before use xa start 'xxxxx', but according to code here, it seems shardingsphere is trying to execute xa start on every schema using a broadcastdatabasebackendhandler image which lead to image

    the test sql is quite simple

    set autocommit = 0;
    xa start '1298390128390218903182903801923890218390';
    xa end '1298390128390218903182903801923890218390';
    xa prepare '1298390128390218903182903801923890218390';
    xa commit '1298390128390218903182903801923890218390';
    

    it seems I have to configure a xa datasource, but I can't find any document or examples for such configuration, please help, THX!

    type: question in: proxy feature: transaction 
    opened by roodkcab 43
  • Can not update sharding key, logic table: [**], column: [**]

    Can not update sharding key, logic table: [**], column: [**]

    I am using Spring Data JPA with Hibernate (with mysql), Spring Boot 2 and SS 4.1.1.

    Things were working fine with 4.0.0-RC1. After i updated version to 4.1.1 i get the following exception when running an update queryy through session.update(entity) or entity.save() :-

    org.apache.shardingsphere.core.exception.ShardingException: Can not update sharding key, logic table: [ACCOUNT_INFO], column: [org.apache.shardingsphere.sql.parser.sql.segment.dml.assignment.AssignmentSegment@5afa0b1a].

    My Table ACCOUNT_INFO table has the following columns:-

    • id (PRIMARY KEY)
    • version (VERSION FOR OPTIMISTIC LOCKING)
    • account_id (THIS IS THE SHARD COLUMN CONFIGURED)
    • zip
    • name

    The hibernate generated sql query for update looks like :-

    update ACCOUNT_INFO set name=??, account_id=??, zip=??, version=?? where id = ?? and version = ??

    This statement throws the exception when executed through DAL:- org.apache.shardingsphere.core.exception.ShardingException: Can not update sharding key, logic table: [ACCOUNT_INFO], column: [org.apache.shardingsphere.sql.parser.sql.segment.dml.assignment.AssignmentSegment@5afa0b1a]. This was not happening in 4.0.0-RC1.

    I debugged a bit and I found that this expects account_id to be present in the where clause. Unfortunately, Spring Data JPA does not provide a way for me to specify what columns will be there in where clause. I do not want to write custom JPA query because then version management will have to be done manually and also will become tedious as my table has large columns.

    I tried using the hint manager but it didn't work :-

    try(HintManager hintManager = HintManager.getInstance()) {
              hintManager
                  .addDatabaseShardingValue("ACCOUNT_INFO", accountEntity.getAccountId());
              hintManager.addTableShardingValue("ACCOUNT_INFO", accountEntity.getAccountId());
    
              session.update(accountEntity);
              transaction.commit();
            }
    

    How do i solve this ??

    type: enhancement feature: sharding 
    opened by sabz90 42
  • max.connections.size.per.query affects database performance

    max.connections.size.per.query affects database performance

    There are 7000 tables in the test target library, and the default value will start slowly, and the high setting value will lead to the soaring cpu and iops of the database

    type: duplicate 
    opened by 18511699755 39
  • Query Emoji's questions

    Query Emoji's questions

    The data obtained by querying the fields with emoji expressions becomes "?" But not every time it’s "?" It is occasionally possible to successfully display emoji The character sets of all libraries and tables are unified utf8mb4 The character set of the linked database is also set &character_set_server=utf8mb4&connectionCollation=utf8mb4_bin Please help to solve this problem

    type: question in: proxy 
    opened by duansy123 38
  • default-database-strategy:hint  hint can't use

    default-database-strategy:hint hint can't use

    ShardingSphere-JDBC 4.1.1 default-database-strategy:hint can't use

    spring: shardingsphere: sharding: default-data-source-name: demo-1 default-database-strategy: hint: algorithm-class-name: com.ai94.mysql.annotation.AnnotationHintShardingAlgorithm datasource: names: demo-1,demo-2

    datasource one

    demo-1: type: com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/db_A?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: root

    datasource two

    demo-2: type: com.zaxxer.hikari.HikariDataSource driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/db_B?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: root password: root

    type: fixed 
    opened by stelin 36
  • Can subqueries be supported in select?

    Can subqueries be supported in select?

    for example:SELECT hos_province_id AS hosProvinceId, (SELECT zmmc FROM dict_city WHERE zd_id = hos_province_id) provinceName FROM hospital WHERE del_flag = 0 GROUP BY hos_province_id

    When I use this query, the value of the provinceName field cannot be obtained

    type: enhancement in: SQL parse 
    opened by jasper520 36
  • Refactor agent packaging and class loader

    Refactor agent packaging and class loader

    Fixes #23392.

    Changes proposed in this pull request:

    • Refactor agent packaging and class loader

    Before committing this PR, I'm sure that I have checked the following options:

    • [ ] My code follows the code of conduct of this project.
    • [x] I have self-reviewed the commit code.
    • [x] I have (or in comment I request) added corresponding labels for the pull request.
    • [x] I have passed maven check locally : ./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e.
    • [ ] I have made corresponding changes to the documentation.
    • [ ] I have added corresponding unit tests for my changes.
    in: test type: build feature: agent 
    opened by taojintianxia 0
  • Disable sql-show at pipeline E2E test

    Disable sql-show at pipeline E2E test

    Changes proposed in this pull request:

    • Disable sql-show at pipeline E2E test

    Before committing this PR, I'm sure that I have checked the following options:

    • [ ] My code follows the code of conduct of this project.
    • [ ] I have self-reviewed the commit code.
    • [ ] I have (or in comment I request) added corresponding labels for the pull request.
    • [ ] I have passed maven check locally : ./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e.
    • [ ] I have made corresponding changes to the documentation.
    • [ ] I have added corresponding unit tests for my changes.
    in: test 
    opened by azexcy 0
  • Fix NPM on Oracle 12.2 when load column metadata

    Fix NPM on Oracle 12.2 when load column metadata

    Fixes #23013 .

    Changes proposed in this pull request:

    • Added null value handling to resolve NPM issues when obtaining metadata in Oracle12.2 environment.
    • Added unit test for it.

    Before committing this PR, I'm sure that I have checked the following options:

    • [x] My code follows the code of conduct of this project.
    • [x] I have self-reviewed the commit code.
    • [ ] I have (or in comment I request) added corresponding labels for the pull request.
    • [x] I have passed maven check locally : ./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e.
    • [ ] I have made corresponding changes to the documentation.
    • [x] I have added corresponding unit tests for my changes.
    type: bug in: metadata db: Oracle 
    opened by CLSChenml 1
  • shardingsphere removed “MASTER_VISITED” in 5.x version?How can I use this feature instead?

    shardingsphere removed “MASTER_VISITED” in 5.x version?How can I use this feature instead?

    This is 4.1.0 code public String route(final SQLStatement sqlStatement) { if (isMasterRoute(sqlStatement)) { MasterVisitedManager.setMasterVisited(); return masterSlaveRule.getMasterDataSourceName(); } ...

    and in 5.3.0 public String route(final SQLStatementContext<?> sqlStatementContext) { if (isPrimaryRoute(sqlStatementContext)) { return rule.getWriteDataSource(); } ....

    why remove this feature in 5.x? it means user should maintain a threadlocal status?and release by usercode?

    type: question feature: readwrite-splitting 
    opened by Enternal-ZERO 3
Releases(5.3.0)
  • 5.3.0(Jan 8, 2023)

    API Changes

    1. DistSQL: Refactor syntax API, please refer to the user manual
    2. Proxy: Change the configuration style of global rule, remove the exclamation mark
    3. Proxy: Allow zero-configuration startup, enable the default account root/root when there is no Authority configuration
    4. Proxy: Remove the default logback.xml and use API initialization
    5. JDBC: Remove the Spring configuration and use Driver + YAML configuration instead

    Enhancements

    1. DistSQL: New syntax REFRESH DATABASE METADATA, refresh logic database metadata
    2. Kernel: Support DistSQL REFRESH DATABASE METADATA to load configuration from the governance center and rebuild MetaDataContext
    3. Support postgresql/openGauss setting transaction isolation level
    4. Scaling: Increase inventory task progress update frequency
    5. Scaling: DATA_MATCH consistency check support breakpoint resume
    6. Scaling: Support drop consistency check job via DistSQL
    7. Scaling: Rename column from sharding_total_count to job_item_count in job list DistSQL response
    8. Scaling: Add sharding column in incremental task SQL to avoid broadcast routing
    9. Scaling: Sharding column could be updated when generating SQL
    10. Scaling: Improve column value reader for DATA_MATCH consistency check
    11. DistSQL: Encrypt DistSQL syntax optimization, support like query algorithm
    12. DistSQL: Add properties value check when REGISTER STORAGE UNIT
    13. DistSQL: Remove useless algorithms at the same time when DROP RULE
    14. DistSQL: EXPORT DATABASE CONFIGURATION supports broadcast tables
    15. DistSQL: REGISTER STORAGE UNIT supports heterogeneous data sources
    16. Encrypt: Support Encrypt LIKE feature
    17. Automatically start distributed transactions when executing DML statements across multiple shards
    18. Kernel: Support client \d for PostgreSQL and openGauss
    19. Kernel: Support select group by, order by statement when column contains null values
    20. Kernel: Support parse RETURNING clause of PostgreSQL/openGauss Insert
    21. Kernel: SQL HINT performance improvement
    22. Kernel: Support mysql case when then statement parse
    23. Kernel: Supporting data source level heterogeneous database gateway
    24. (Experimental) Sharding: Add sharding cache plugin
    25. Proxy: Support more PostgreSQL datetime formats
    26. Proxy: Support MySQL COM_RESET_CONNECTION
    27. Scaling: Improve MySQLBinlogEventType.valueOf to support unknown event type
    28. Kernel: Support case when for federation

    Bug Fix

    1. Scaling: Fix barrier node created at job deletion
    2. Scaling: Fix part of columns value might be ignored in DATA_MATCH consistency check
    3. Scaling: Fix jdbc url parameters are not updated in consistency check
    4. Scaling: Fix tables sharding algorithm type INLINE is case-sensitive
    5. Scaling: Fix incremental task on MySQL require mysql system database permission
    6. Proxy: Fix the NPE when executing select SQL without storage node
    7. Proxy: Support DATABASE_PERMITTED permission verification in unicast scenarios
    8. Kernel: Fix the wrong value of worker-id in show compute nodes
    9. Kernel: Fix route error when the number of readable data sources and weight configurations of the Weight algorithm are not equal
    10. Kernel: Fix multiple groups of readwrite-splitting refer to the same load balancer name, and the load balancer fails problem
    11. Kernel: Fix can not disable and enable compute node problem
    12. JDBC: Fix data source is closed in ShardingSphereDriver cluster mode when startup problem
    13. Kernel: Fix wrong rewrite result when part of logical table name of the binding table is consistent with the actual table name, and some are inconsistent
    14. Kernel: Fix startup exception when use SpringBoot without configuring rules
    15. Encrypt: Fix null pointer exception when Encrypt value is null
    16. Kernel: Fix oracle parsing does not support varchar2 specified type
    17. Kernel: Fix serial flag judgment error within the transaction
    18. Kernel: Fix cursor fetch error caused by wasNull change
    19. Kernel: Fix alter transaction rule error when refresh metadata
    20. Encrypt: Fix EncryptRule cast to TransparentRule exception that occurs when the call procedure statement is executed in the Encrypt scenario
    21. Encrypt: Fix exception which caused by ExpressionProjection in shorthand projection
    22. Proxy: Fix PostgreSQL Proxy int2 negative value decoding incorrect
    23. Proxy: PostgreSQL/openGauss support describe insert returning clause
    24. Proxy: Fix gsql 3.0 may be stuck when connecting Proxy
    25. Proxy: Fix parameters are missed when checking SQL in Proxy backend
    26. Proxy: Enable MySQL Proxy to encode large packets
    27. Kernel: Fix oracle parse comment without whitespace error
    28. DistSQL: Fix show create table for encrypt table

    Refactor

    1. Scaling: Reverse table name and column name when generating SQL if it's SQL keyword
    2. Scaling: Improve increamental task failure handling
    3. Kernel: Governance center node adjustment, unified hump to underscore

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.2.1(Oct 18, 2022)

    New Feature

    1. Add ShardingSphere default system database to support global metadata management
    2. Support asynchronous data consistency check
    3. Added support for Consul governance center
    4. Added support for Nacos governance center
    5. Added support for the view function in the governance center

    Enhancement

    1. SQL Federation engine adds ADVANCED executor and adapts to openGauss database
    2. Support ShardingSphere Proxy startup after read-write splitting read database is disabled
    3. SQL HINT supports force sharding route
    4. Show processlist supports showing Proxy connections (sleep, active)
    5. Optimized ShardingSphere-JDBC data source configuration error message
    6. ShardingSphere-JDBC supports SpringBoot 3.x version
    7. Support load MySQL, PostgreSQL, openGauss and SQLServer view metadata
    8. Update Snakeyaml to 1.33 and open YAML 3MB limit
    9. Reuse cached connections as possible when unicast sharding
    10. Support Parsing ALTER ROLE in Oracle
    11. Add support of ALTER RESOURCE COST for Oracle
    12. Support parsing Drop Materialized View in Oracle
    13. Support parsing DROP LIBRARY in Oracle
    14. Support parsing DROP JAVA in Oracle
    15. Support parsing DROP PLUGGABLE DATABASE in Oracle
    16. Support parsing DROP INDEX TYPE in Oracle
    17. Support Parsing ALTER PACKAGE in openGauss
    18. Support openGauss select offset, count statement parse and remove useless syntax in PostgreSQL grammar
    19. Add max_size to openGauss syntax
    20. Optimize alter view/drop view parse logic and fix alter view refresher bug
    21. Add sql parser error detail to ParseCancellationException
    22. Add support for parse OptOnConflict for postgres
    23. Enhance support for ALTER TABLE and ALTER VIEW in PostgreSQL
    24. Add a missing keyword in PostgreSQL Declare Statement
    25. Add json function support to mysql parser
    26. ShardingSphere-Proxy automatically adapts to cgroup memory limits in Docker environment
    27. Show migration status DistSQL respond new added error_message column
    28. Show migration status respond new added processed_records_count column
    29. Support MySQL 8 caching_sha2_password authentication in incremental dump
    30. Improve drop pipeline process configuration
    31. Support unique key table migration
    32. Support migrate table to new name table
    33. Improve thread pool usage in pipeline task and runner
    34. Support cancelable data consistency check
    35. DistSQL: When creating or altering readwrite-splitting rule, check duplicate write or read resources
    36. DistSQL: Add validity check for ALTER SHARDING BINDING TABLE RULES
    37. Standalone mode H2 support persistent metadata
    38. Fix openGauss cursor execution in xa transaction
    39. Added transaction related exceptions

    Bug Fix

    1. Generate proper placeholder for PostgreSQL when rewriting
    2. Fix opengauss update set parse exception
    3. Fix parse exception when execute insert statement with negative value
    4. Fix wrong connectDescriptorUrlPattern in OracleDataSourceMetaData
    5. Fix insert SQL garbled after sharding rewrote in special rules
    6. Fix exception when execute select * from information_schema.tables
    7. Fix exception when execute alter view rename
    8. Fix PostgreSQL check data source permission when using rolsuper
    9. DistSQL: fix NPE for REFRESH TABLE METADATA when there is no resource
    10. Fix Unmodified table metadata when modify rules
    11. Fix database discovery
    12. The MySQL.NORMAL_REPLICATION algorithm cannot find primary node"
    13. Fixed using etcd to build a cluster event not aware
    14. Fix NPE occurred when transaction management is not created
    15. Fix routing exception that occurs when the sharding value of the InlineShardingAlgorithm algorithm exceeds Integer

    API Changes

    1. SQL HINT syntax format adjust to SQL-style format
    2. DistSQL: Remove syntax COUNT DATABASE RULES
    3. ShardingSphere mode remove overwrite configuration
    4. Agent: Optimize configuration of agent.yaml

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Sep 8, 2022)

    New Feature

    1. Support SQL audit for sharding feature
    2. Support MySQL show processlist and kill process list id feature
    3. Scaling: Add dedicated DistSQL for data migration
    4. Scaling: Basic support migrate data to heterogeneous database
    5. DistSQL: New syntax CREATE MIGRATION PROCESS CONFIGURATION
    6. DistSQL: New syntax ALTER MIGRATION PROCESS CONFIGURATION
    7. DistSQL: New syntax SHOW MIGRATION PROCESS CONFIGURATION
    8. DistSQL: New syntax ADD MIGRATION SOURCE RESOURCE
    9. DistSQL: New syntax SHOW SQL_TRANSLATOR RULE
    10. DistSQL: New syntax CREATE SHARDING AUDITOR
    11. DistSQL: New syntax ALTER SHARDING AUDITOR
    12. DistSQL: New syntax SHOW SHARDING AUDIT ALGORITHMS

    Enhancement

    1. Support column visible feature for MySQL, Oracle, SQLServer and H2
    2. Support cartesian product configuration for read write splitting
    3. Support spring namespace and spring boot usage for sql translator
    4. Support JSR-310 Year and Month in IntervalShardingAlgorithm
    5. Support broadcast table update/delete limit statement
    6. Support create index on table(column) statement rewrite when config encrypt
    7. Support openGauss cursor, fetch, move, close statement for sharding, readwrite-splitting
    8. Support encrypt column rewrite when execute column is null in predicate
    9. Support encrypt show create table return logic columns
    10. Support create table with index statement rewrite when config encrypt
    11. Support PostgreSQL create operator statement parse
    12. Support PostgreSQL create materialized view statement parse
    13. Support PostgreSQL nested comments parse
    14. Support PostgreSQL alter subscription statement parse
    15. Support PostgreSQL create group statement parse
    16. Support PostgreSQL alter statictics statement parse
    17. Support PostgreSQL create foreign table statement parse
    18. Support PostgreSQL alter server statement parse
    19. Support PostgreSQL create foreign data wrapper statement parse
    20. Support PostgreSQL create event trigger statement parse
    21. Support PostgreSQL security label statement parse
    22. Support PostgreSQL reindex statement parse
    23. Support PostgreSQL reassign owned statement and refresh materialized view statement parse
    24. Support PostgreSQL prepare transaction statement parse
    25. Support PostgreSQL create collation statement parse
    26. Support PostgreSQL lock statement parse
    27. Support PostgreSQL alter rule statement parse
    28. Support PostgreSQL notify statement parse
    29. Support PostgreSQL unlisten statement parse
    30. Support Oracle alter function and alter hierarchy statement parse
    31. Support Oracle alter pluggable database statement parse
    32. Support Oracle alter materialized view log statement parse
    33. Support Oracle alter diskgroup statement parse
    34. Support Oracle alter operator statement parse
    35. Support oracle alter cluster statement parse
    36. Support oracle alter audit policy statement parse
    37. Support Oracle alter index type statement parse
    38. Support Oracle lock table statement parse
    39. Support Oracle alter java statement parse
    40. Support Oracle inline constraint statement parse
    41. Support openGauss geometric operator statement parse
    42. Optimize MySQL visible/invisible parse of create/alter table statements
    43. Support scope of variable prefixed with @@ in MySQL SET statement parse
    44. Support MySQL create procedure with create view parse
    45. Support column segments parse in create index on table statement
    46. Support openGauss cursor, fetch, move, close statement for sharding, readwrite-splitting
    47. Support encrypt column rewrite when execute column is null in predicate
    48. Support encrypt show create table return logic columns
    49. Support create table with index statement rewrite when config encrypt
    50. Support parsing ALTER LOCKDOWN PROFILE in Oracle
    51. Support parsing ALTER MATERIALIZED VIEW in Oracle
    52. Support parsing ALTER MATERIALIZED ZONEMAP in Oracle
    53. Support parsing ALTER LIBRARY in Oracle
    54. Support parsing ALTER INMEMORY JOIN GROUP in Oracle
    55. Support parsing DROP OPERATOR in Oracle
    56. Support parsing DROP RESTORE POINT in Oracle
    57. Support parsing CREATE RESTORE POINT in Oracle
    58. Support parsing DROP INMEMORY JOIN GROUP in Oracle
    59. Support parsing create_bit_xor_table in MySQL
    60. Support parsing MySQL DO statement
    61. Support parsing DropServer in openGauss
    62. Support parsing CREATE AGGREGATE In openGauss
    63. Support parsing ALTER ROUTINE in PostgreSQL
    64. Add PostgreSQL Create Cast Statement
    65. Add PostgreSQL Create Aggregate Statement
    66. Support fetch/move/close cursor statement in PostgreSQL
    67. Support Parsing ALTER PUBLICATION in PostgreSQL
    68. Add PostgreSQL Create Access Method Statement
    69. Support Parsing ALTER POLICY in PostgreSQL
    70. Support parsing ALTER OPERATOR in PostgreSQL
    71. Add PostgreSQL Copy Statement
    72. Add PostgreSQL Comment Statement
    73. Support listen statement in postgreSQL
    74. Support DECLARE cursor statement
    75. Add default serverConfig in helm charts
    76. Assemble openGauss JDBC Driver into Proxy distribution
    77. ShardingSphere-Proxy listen on specified IP addresses
    78. Support COM_STMT_SEND_LONG_DATA in MySQL Proxy
    79. SELECT VERSION() support alias in MySQL Proxy
    80. Fix openGauss Proxy could not be connected if no resource defined
    81. Support using JRE defined in JAVA_HOME in ShardingSphere-Proxy's startup script
    82. Avoid client blocked when OOM occurred in ShardingSphere-Proxy
    83. Support using c3p0 in ShardingSphere-JDBC
    84. Support SET NAMES with value quoted by double-quote
    85. Connection.prepareStatement with columns arguments is available in ShardingSphere-JDBC
    86. Scaling: Improve MySQL connect and reconnect
    87. Scaling: Fix MySQL json column may cause leak at incremental task
    88. Scaling: Add permission check for PostgreSQL data sources
    89. Scaling: Incremental migration support for MySQL MGR mode
    90. Scaling: Improve job progress persistence
    91. Scaling: Start job DistSQL execute and return synchronously
    92. Scaling: Inventory migration support table has primary key and unique key
    93. Scaling: Close unerlying ElasticJob when stopping job
    94. Scaling: Improve logical replication slot name generation for PostgreSQL and openGauss
    95. Scaling: Make query DistSQL could be executed when no database selected
    96. DistSQL: Add worker_id to the result set of SHOW INSTANCE LIST & SHOW INSTANCE INFO
    97. DistSQL: Improve the result of EXPORT DATABASE CONFIG
    98. DistSQL: Support more databases for FORMAT SQL
    99. DistSQL: Optimize the execution logic of CREATE TRAFFIC RULE
    100. DistSQL: Add paramter writeDataSourceQueryEnabled for RDL READWRITE_SPLITTING RULE.
    101. DistSQL: Support assistEncryptor for Encrypt RDL
    102. DistSQL: Add sharding algorithm type check when CREATE SHARDING TABLE RULE
    103. Support database discovery to configure multiple groups of high availability under the same logic database
    104. Support ShardingSphere-Proxy to start up under empty logic library
    105. Support for isolating EventBus events by instance
    106. Support the database to detect changes in the master node and restart the detection heartbeat task
    107. Support ShardingSphere-Proxy to generate new worker-id when re-registering in cluster mode
    108. Thrown exception when inserting expression value in shadow column on executing insert
    109. Support distributed transactions across multiple logical databases
    110. Support executing truncate in XA & PostgreSQL
    111. Support alter local transaction rule with DistSQL
    112. Support global transaction manager
    113. Delete support for branch transaction on proxy

    Bug Fix

    1. Fix single table metadata refresh error caused by filtering DataSourceContainedRule
    2. Fix parsing exception caused by the null value of MySQL blob type
    3. Fix PostgreSQL/openGauss reset statement parse error
    4. Fix wrong parameter rewrite when use sharding and encrypt
    5. Fix the failed conversion of Month related classes on IntervalShardingAlgorithm
    6. Fix NullPointerException when execute select union statement contains subquery
    7. Fix wrong encrypt rewrite result due to incorrect order of metadata
    8. Fix MySQL trim function parse error
    9. Fix MySQL insert values with _binary parse error
    10. Fix MySQL syntax error cannot be thrown to client
    11. Avoid EventLoop blocked because of closing JDBC resources
    12. Correct server status flags returned by MySQL Proxy
    13. Fix a possible connection leak issue if Proxy client disconnected in transaction
    14. Fixed a possible consistency issue with the statement being executed when the Proxy client is disconnected
    15. Avoid pooled connection polluted by executing SET statements
    16. Make SHOW TABLES FROM work in ShardingSphere-Proxy
    17. Fix PostgreSQL DDL could not be executed by Extended Query
    18. Fix SHOW VARIABLES could not be executed in PostgreSQL Proxy without resource
    19. Fix FileNotFoundException when use ShardingSphere Driver with SpringBoot fatjar
    20. Scaling: Fix the problem that the table contains both primary key and unique index at inventory migration
    21. Scaling: Improve incremental migration, support the latest position in the middle of batch insert event
    22. Scaling: Fix the error caused by null field value in openGauss incremental migration
    23. DistSQL: Fix incorrect strategy name in result of SHOW SHARDING TABLE RULES
    24. DistSQL: Fix current rule config is modified in advance when ALTER SHARDING TABLE RULE
    25. DistSQL: Fix connection leak when ALTER RESOURCE
    26. DistSQL: Fix CREATE TRAFFIC RULE failed when load balance algorithm is null
    27. Fix that the monitoring heartbeat task was not stopped when the database was discovered and the logical library was deleted
    28. Fix cluster mode ShardingSphere-JDBC load all logic database
    29. Fix worker-id generated by SnowflakeKeyGenerateAlgorithm in cluster mode may exceed the maximum value
    30. Fix DistSQL adding shadow algorithm exception without shadow data source
    31. Fix cross-database data source confusion caused by same data source name in multiple logical databases
    32. Fix RUL DistSQL execution failure in transaction
    33. Fix begin for PostgreSQL & openGauss
    34. Agent: Fixed the error of null value in contextManager when collecting metric data

    API Changes

    1. Remove SQL passthrough to data source feature
    2. Add new assistedQueryEncryptorName and remove QueryAssistedEncryptAlgorithm interface
    3. Refactor readwrite-splitting api to improve user experience
    4. Remove check-duplicate-table-enabled configuration
    5. Remove useless config item show-process-list-enabled configuration
    6. Scaling: Change keyword for part of data migration DistSQL
    7. Scaling: Redesign part of data migration DistSQL
    8. DistSQL: Unify parameter type specification
    9. DistSQL: Split SHOW INSTANCE MODE to SHOW MODE INFO and SHOW INSTANCE INFO
    10. DistSQL: Change DROP SCALING jobId to CLEAN MIGRATION jobId
    11. DistSQL: Remove COUNT INSTANCE RULES
    12. Add database found that high availability supports all the slave libraries to go offline, and the main library undertakes the read traffic configuration
    13. SnowflakeKeyGenerateAlgorithm supports configuring worker-id in standalone mode
    14. Replace sourceDataSourceName with productionDataSourceName in Shadow API Configuration
    15. Authority: Remove deprecated native authority provider

    Refactor

    1. ShardingSphere metadata refactoring for splitting actual metadata and logical metadata
    2. Use ConnectionContext, QueryContext to remove ThreadLocal in FetchOrderByValueQueuesHolder, TrafficContextHolder, SQLStatementDatabaseHolder and TransactionHolder
    3. Modify the default value of the ShardingSphere-Proxy version in the helm chart
    4. Docker container will exit if ShardingSphere-Proxy failed to startup
    5. Helm Charts in ShardingSphere repository are transferred to sub-project shardingsphere-on-cloud
    6. Scaling: Plenty of refactor for better code reuse
    7. DistSQL: Add a new category named RUL
    8. Refactor the schedule module and split it into cluster schedule and standalone schedule
    9. Remove memory mode, keep standalone mode and cluster mode
    10. Refactoring metadata table loading logic and persistence logic
    11. Refactoring distributed locks to retain the most concise interface design
    12. Refactor : Unify The Creation for Proxy Containers in IT from ENV Modules
    13. Refactor : Unify The Configuration for container created by testcontainer

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.1.2(Jun 17, 2022)

    New Feature

    1. Kernel: Alpha version to support SQL dialect translate for MySQL and PostgreSQL
    2. Kernel: Support custom schema for PostgreSQL and openGauss
    3. Kernel: Support create/alter/drop view statement for PostgreSQL and openGauss
    4. Kernel: Support openGauss cursor statement
    5. Kernel: Support use customize system database
    6. Kernel: Support get openGauss and MySQL create SQL
    7. Kernel: Support get postgres create SQL
    8. Proxy: Official support for quickly deploying a ShardingSphere-Proxy cluster with a ZooKeeper cluster in Kubernetes using Helm
    9. JDBC: Support ShardingSphere JDBC Driver
    10. Scaling: Support PostgreSQL auto create table
    11. Scaling: Support scaling for table with customized schema in PostgreSQL and openGauss
    12. Scaling: Support scaling for table with text primary key and without integer primary key
    13. Mode: Registry center supports PG/openGauss three-level structure
    14. Mode: Registry center supports database-level distributed lock

    Enhancement

    1. Kernel: Support copy statement for PostgreSQL and openGauss
    2. Kernel: Support alter/drop index statement for PostgreSQL
    3. Kernel: Support update force index statement for MySQL
    4. Kernel: Support create/alter/drop schema for openGauss
    5. Kernel: Optimize RoundRobinReplicaLoadBalanceAlgorithm and RoundRobinTrafficLoadBalanceAlgorithm logic
    6. Kernel: Optimize metadata loading logic when frontendDatabaseType and backendDatabaseType are different
    7. Kernel: Refactor meta data load logic
    8. Kernel: Optimize show processlist statement
    9. Kernel: Improve performance about large tables loaded
    10. Kernel: Support execute comment statement
    11. Kernel: Support view in sharding rule
    12. Kernel: Support parsing CREATE ROLLBACK SEGMENT in Oracle
    13. Kernel: Support Parsing DROP TYPE in openGauss
    14. Kernel: Support Parsing ALTER TYPE in openGauss
    15. Kernel: Support parsing DROP DISKGROUP in Oracle
    16. Kernel: Support parsing CREATE DISKGROUP in Oracle
    17. Kernel: Support parsing DROP FLASHBACK ARCHIVE in Oracle
    18. Kernel: Support Parsing CHECKPOINT in openGauss
    19. Kernel: Support parsing CREATE FLASHBACK ARCHIVE in Oracle
    20. Kernel: Add PostgreSQL Close Statement
    21. Kernel: Support Parsing DROP CAST in openGauss
    22. Kernel: Support parsing CREATE CAST in openGauss
    23. Kernel: Support parsing CREATE CONTROL FILE in Oracle
    24. Kernel: Support Parsing DROP DIRECTORY in openGauss
    25. Kernel: Support parsing ALTER DIRECTORY in openGauss
    26. Kernel: Support parsing CREATE DIRECTORY in openGauss
    27. Kernel: Add PostgreSQL Checkpoint Statement
    28. Kernel: Support parsing DROP SYNONYM in openGauss
    29. Kernel: Support parsing CREATE SYNONYM in openGauss
    30. Kernel: Support parsing ALTER SYNONYM in openGauss
    31. Kernel: Add PostgreSQL CALL Statement
    32. Kernel: Support parsing CREATE PFILE in Oracle
    33. Kernel: Support parsing CREATE SPFILE in Oracle
    34. Kernel: Support parsing ALTER SEQUENCE in Oracle
    35. Kernel: Support parsing CREATE CONTEXT in Oracle
    36. Kernel: Support Parsing ALTER PACKAGE in oracle
    37. Kernel: Support parsing CREATE SEQUENCE in Oracle
    38. Kernel: Support parsing ALTER ATTRIBUTE DIMENSION in Oracle
    39. Kernel: Support parsing ALTER ANALYTIC VIEW in Oracle
    40. Kernel: Use ShardingSphere SPI in SQLVisitorFacade
    41. Kernel: Use ShardingSphere SPI in DatabaseTypedSQLParserFacade
    42. Kernel: Support parsing ALTER OUTLINE in Oracle
    43. Kernel: Support parsing DROP OUTLINE in Oracle
    44. Kernel: Support parsing drop edition in oracle
    45. Kernel: Support WITH Common Table Expression of SQLServer
    46. Kernel: Exclude parenthesis from SubquerySegment's start and stop index in withClause
    47. Kernel: Refactor JoinTableSegment
    48. Kernel: Support parsing DROP SYNONYM in Oracle
    49. Kernel: Support parsing CREATE DIRECTORY in Oracle
    50. Kernel: Support parsing CREATE SYNONYM in Oracle
    51. Kernel: Support for XmlNamespaces Clause of SQLServer SELECT Statement
    52. Kernel: Support parsing Alter Database Dictionary in Oracle
    53. Kernel: Support FOR Clause of SQLServer SELECT Statement
    54. Kernel: Support Parsing ALTER DATABASE LINK in Oracle
    55. Kernel: Support CREATE EDITION Parsing in Oracle
    56. Kernel: Support parsing ALTER TRIGGER in Oracle
    57. Kernel: Add SQLServer REVERT Statement
    58. Kernel: Support Parsing DROP TEXT SEARCH in PostgreSQL
    59. Kernel: Add drop server for PostgreSQL
    60. Kernel: Support Parsing ALTER VIEW in Oracle
    61. Kernel: Add drop access method for PostgreSQL
    62. Kernel: Support Parsing DROP ROUTINE in PostgreSQL
    63. Kernel: Proofread SQLServer DROP USER Statement
    64. Kernel: Support parsing DROP TRIGGER in Oracle
    65. Kernel: Support parsing Drop subscription in PostgreSQL
    66. Kernel: Add drop operator class for PostgreSQL
    67. Kernel: Support parsing DROP PUBLICATION in PostgreSQL
    68. Kernel: Support Parsing DROP VIEW in Oracle
    69. Kernel: Support Parsing DROP TRIGGER in PostgreSQL
    70. Kernel: Support Parsing DROP DIRECTORY in Oracle
    71. Kernel: Support Parsing DROP STATISTICS for PostgreSQL
    72. Kernel: Add drop type SQL parser for PostgreSQL
    73. Kernel: Support Parsing DROP RULE in PostgreSQL
    74. Kernel: Proofread SQLServer ALTER LOGIN Statement
    75. Kernel: Support parsing PostgreSQL DROP FOREIGN DATA WRAPPER
    76. Kernel: Small changes to PostgreSQL DROP EVENT TRIGGER statement
    77. Proxy: ShardingSphere-Proxy MySQL supports receiving MySQL packet more than 16 MB
    78. Proxy: Supports netty parameter ChannelOption.SO_BACKLOG configurable in ShardingSphere-Proxy
    79. Proxy: Optimize so-reuseaddr in netty to solve the problem of port occupied
    80. Proxy: Docker image of ShardingSphere-Proxy supports aarch64 platform
    81. Proxy: Make server version configurable in ShardingSphere-Proxy MySQL
    82. Proxy: Supports more character sets in ShardingSphere-Proxy PostgreSQL/openGauss
    83. Proxy: Make default port configurable in ShardingSphere-Proxy
    84. Scaling: Compatible with HA ports for openGauss:3.0 when thread_pool enabled
    85. Scaling: Optimize ZooKeeper event handling in PipelineJobExecutor to avoid blocking ZooKeeper events
    86. Scaling: Make table name case-insensitive in whole process
    87. Scaling: Improve replication slot cleanup for PostgreSQL and openGauss
    88. Scaling: Improve lock protection for job preparation
    89. Scaling: Support PostgreSQL insert on conflict do update
    90. Scaling: Do not cache data source in GlobalDataSourceRegistry to avoid possible shared resource close issue
    91. Scaling: Reuse data source pool as more as possible to reduce working database connections
    92. DistSQL: REFRESH TABLE METADATA supports specifying PostgreSQL's schema
    93. DistSQL: ALTER SHARDING TABLE RULE add validation of binding table
    94. Mode: ShardingSphere-JDBC supports configuring database connection name
    95. Distributed Transaction: DistSQL is prohibited from executing within a transaction
    96. Distributed Transaction: autocommit = 0, DDL part of DML will automatically open the transaction

    Bug Fix

    1. Kernel: Fix parsing error about show statement for PostgreSQL and openGauss
    2. Kernel: Fix parsing error about time extract function for for PostgreSQL and openGauss
    3. Kernel: Fix parsing error about select mod function for for PostgreSQL and openGauss
    4. Kernel: Fix PSQLException when execute join statement with multi schema in readwrite scenario
    5. Kernel: Fix wrong route result when execute create schema statement in encrypt scenario
    6. Kernel: Fix npe when execute drop schema if exist statement
    7. Kernel: Fix wrong route result when execute SELECT LAST_INSERT_ID() AS id; statement
    8. Kernel: Fix npe when execute use database when database doesn't contains datasource
    9. Kernel: Fix create function with set var
    10. Proxy: Fix NPE caused by column's case unmatched in PostgreSQLComDescribeExecutor
    11. Proxy: Complete command tags for schema DDL in ShardingSphere-Proxy PostgreSQL / openGauss
    12. Scaling: Fix MySQL unsigned type null value cause error during increment task
    13. Scaling: Fix resource leak caused by error occurred when creating DataSource in ShardingSphere-Scaling
    14. Scaling: Fix ShardingSphereDataSource creation ignoring other rules
    15. Scaling: Fix on preparation job could not be stopped
    16. Scaling: Fix data source property url and jdbcUrl compatibility
    17. Scaling: Fix openGauss logical replication slot creation, avoid possible incremental data loss
    18. Scaling: Update local job status before persisting job status to registry center, make sure it won't be overwritten later
    19. Scaling: Handling null value in TestDecodingPlugin for PostgreSQL
    20. DistSQL: Fix SET VARIABLE modification not taking effect in stand-alone and memory mode
    21. DistSQL: Fix the inconsistency between SHOW INSTANCE LIST display data and actual data
    22. DistSQL: Fix capitalization sensitivity in sharding DistSQL
    23. Mode: Fix the new version metadata lost data after the Scaling changes the table sharding rules
    24. Distributed Transaction: Fix getIndexInfo with catalog

    API Changes

    1. DistSQL: Change EXPORT SCHEMA CONFIG to EXPORT DATABASE CONFIG
    2. DistSQL: Change IMPORT SCHEMA CONFIG to IMPORT DATABASE CONFIG
    3. DistSQL: Change SHOW SCHEMA RESOURCES to SHOW DATABASE RESOURCES
    4. DistSQL: Change COUNT SCHEMA RULES to COUNT DATABASE RULES
    5. Mode: Adjust db-discovery algorithm configuration
    6. Authority: Authority provider ALL_PRIVILEGES_PERMITTED updated to ALL_PERMITTED
    7. Authority: Authority provider SCHEMA_PRIVILEGES_PERMITTED updated to DATABASE_PERMITTED

    Refactor

    1. Scaling: Refactor JobConfiguration, prepare for different types of jobs reuse and extension
    2. Mode: Optimize compute node structure of the registry center
    3. Mode: Use uuid instead of ip@port as instance id

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.1.1(Apr 14, 2022)

    New Feature

    1. Kernel: support alter materialized view for PostgreSQL
    2. Kernel: support declare for PostgreSQL
    3. Kernel: support discard for PostgreSQL
    4. Kernel: Add mode to parser to support $$ in PostgreSQL
    5. Kernel: Support MySQL create tablespace statement parse
    6. Scaling: Implement stop source writing and restore source writing
    7. Scaling: Support partial tables scale-out
    8. DistSQL: New DistSQL syntax: SHOW UNUSED RESOURCES
    9. Mode: Added persistent XA Recovery Id to Governance Center
    10. Mode: Database discovery adds delayed master-slave delay function
    11. Distributed Transaction: Add savepoint support for ShardingSphere proxy
    12. Distributed Transaction: Support auto rollback when report exception in transaction block for PostgreSQL and openGauss
    13. Distributed Transaction: Make it is easy to use with Narayana
    14. Distributed Transaction: Add savepoint support for ShardingSphere-JDBC

    Enhancement

    1. Kernel: Refactor kernel to improve performance
    2. Proxy: Reduce Docker image size of ShardingSphere-Proxy
    3. Proxy: ShardingSphere-Proxy supports set names statements
    4. Proxy: ShardingSphere-Proxy MySQL supports multi statements
    5. Scaling: Only one proxy node could do data consistency check in proxy cluster
    6. Scaling: Replace scaling input and output config fields type from int to Integer
    7. Scaling: Update MySQL checksum SQL
    8. Scaling: Improve scaling job progress deletion in reset and progress check before starting job
    9. Scaling: Improve FinishCheckJob data consistency check when target tables already have the same data as source tables
    10. Scaling: Break scaling job ASAP when there is unsupported table since primary key
    11. Scaling: Reuse ClusterPersistRepository of proxy in PipelineAPIFactory
    12. Scaling: Update jobId generation algorithm, and make it support idempotency
    13. DistSQL: Support configuration data type and length when CREATE/ALTER ENCRYPT RULE
    14. DistSQL: Unify the display results of SHOW ALL VARIABLES and SHOW VARIABLE
    15. DistSQL: Remove the effect of binding order when DROP BINDING TABLE RULES
    16. DistSQL: Add column mode_type in the result of SHOW INSTANCE LIST
    17. DistSQL: Add validation to the mode when ENABLE/DISABLE INSTANCE
    18. DistSQL: Check if the rule is in used when DROP READWRITE_SPLITTING RULE
    19. DistSQL: Check duplicate resource names when CREATE READWRITE_SPLITTING RULE
    20. DistSQL: Add column delay_time to the result of SHOW READWRITE_SPLITTING READ RESOURCES
    21. DistSQL: Support IF EXISTS when DROP RULE
    22. DistSQL: Optimize the prompt information of connection failure when ADD/ALTER RESOURCE
    23. Mode: Add schema-level global distributed locks
    24. Mode: Add schema version number to support batch execution of DistSQL
    25. Mode: Persistent metadata optimization in cluster mode
    26. Mode: The database discovery add the schemaName identifier when create a JOB

    Refactor

    1. Kernel: Refactor test case for encrypt
    2. Kernel: Refactor metadata to support PostgreSQL database and schema
    3. Scaling: Remove HikariCP dependency in pipeline modules
    4. Mode: Refactor governance center storage node structure
    5. Mode: Refactor governance center meta data structure
    6. Mode: Adjust the database discovery MGR module to MySQL module

    Bug Fix

    1. Kernel: Fix function with no parameter
    2. Kernel: Fix InsertValueContext.getValue cast exception
    3. Kernel: Fix aggregate distinct column error
    4. Kernel: Fix NPE when rewrite parameter with schema
    5. Kernel: Fix NPE caused by GeneratedKeysResultSet not return columnName in read-write splitting
    6. Kernel: Fix show tables statement loses part of the single table
    7. Kernel: Fix ModShardingAlgorithm wrong route result when exist same suffix table
    8. Kernel: Fix sql parse error when contains key in assignment clause and optimize index parse
    9. Kernel: Fix NumberFormatException when sharding algorithm config number props
    10. Kernel: Fix wrong metadata when config single dataSource for read-write splitting
    11. Kernel: Fix statement close exception when use BatchPreparedStatementExecutor
    12. Kernel: Fix rewrite lowercase logic when sql contains shorthand projection
    13. Kernel: Fix NullPointerException when start up proxy with memory mode
    14. Proxy: Fix literals may be replaced by mistake in PostgreSQL/openGauss protocol
    15. Proxy: Fix ShardingSphere-Proxy PostgreSQL with multi-schema cannot be connected by PostgreSQL JDBC Driver 42.3.x
    16. Proxy: Fix timestamp nanos inaccurate in ShardingSphere-Proxy MySQL
    17. Proxy: Complete ShardingSphere-Proxy PostgreSQL codec for numeric in binary format
    18. Proxy: Potential performance issue and risk of OOM in ShardingSphere-JDBC
    19. Proxy: Fix Operation not allowed after ResultSet closed occasionally happens in ShardingSphere-Proxy MySQL
    20. Proxy: Fix NPE causes by ShardingSphere-JDBC executeBatch without addBatch
    21. Scaling: Fix failed or stopped job could not be started by DistSQL except restarting proxy
    22. DistSQL: Fix parsing exception for inline expression when CREATE SHARDING TABLE RULE
    23. DistSQL: Fix parsing exception when password is keyword password in ADD RESOURCE statement
    24. Mode: Fixed loss of compute nodes due to ZooKeeper session timeout
    25. Mode: Fixed the case of the table name in the governance center
    26. Mode: DistSQL enable disable instance refresh in-memory compute node status
    27. Mode: Fixed database discovery unable to create Rule through DistSQL

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Feb 16, 2022)

    New feature

    1. Support SQL hint
    2. New DistSQL syntax: SHOW AUTHORITY RULE
    3. New DistSQL syntax: SHOW TRANSACTION RULE
    4. New DistSQL syntax: ALTER TRANSACTION RULE
    5. New DistSQL syntax: SHOW SQL_PARSER RULE
    6. New DistSQL syntax: ALTER SQL_PARSER RULE
    7. New DistSQL syntax: ALTER DEFAULT SHARDING STRATEGY
    8. New DistSQL syntax: DROP DEFAULT SHARDING STRATEGY
    9. New DistSQL syntax: CREATE DEFAULT SINGLE TABLE RULE
    10. New DistSQL syntax: SHOW SINGLE TABLES
    11. New DistSQL syntax: SHOW SINGLE TABLE RULES
    12. New DistSQL syntax: SHOW SHARDING TABLE NODES
    13. New DistSQL syntax: CREATE/ALTER/DROP SHARDING KEY GENERATOR
    14. New DistSQL syntax: SHOW SHARDING KEY GENERATORS
    15. New DistSQL syntax: REFRESH TABLE METADATA
    16. New DistSQL syntax: PARSE SQL, Output the abstract syntax tree obtained by parsing SQL
    17. New DistSQL syntax: SHOW UNUSED SHARDING ALGORITHMS
    18. New DistSQL syntax: SHOW UNUSED SHARDING KEY GENERATORS
    19. New DistSQL syntax: CREATE/DROP SHARDING SCALING RULE
    20. New DistSQL syntax: ENABLE/DISABLE SHARDING SCALING RULE
    21. New DistSQL syntax: SHOW SHARDING SCALING RULES
    22. New DistSQL syntax: SHOW INSTANCE MODE
    23. New DistSQL syntax: COUNT SCHEMA RULES
    24. Scaling: Add rateLimiter configuration and QPS TPS implementation
    25. Scaling: Add DATA_MATCH data consistency check
    26. Scaling: Add batchSize configuration to avoid possible OOME
    27. Scaling: Add streamChannel configuration and MEMORY implementation
    28. Scaling: Support MySQL BINARY data type
    29. Scaling: Support MySQL YEAR data type
    30. Scaling: Support PostgreSQL BIT data type
    31. Scaling: Support PostgreSQL MONEY data type
    32. Database discovery adds support for JDBC Spring Boot
    33. Database discovery adds support for JDBC Spring Namespace
    34. Database discovery adds support for openGauss
    35. Shadow DB adds support for logical data source transfer
    36. Add data type validator for column matching shadow algorithm
    37. Add support for xa start/end/prepare/commit/recover in encrypt case with only one data source

    API Change

    1. Redesign the database discovery related DistSQL syntax
    2. In DistSQL, the keyword GENERATED_KEY is adjusted to KEY_GENERATE_STRATEGY
    3. Native authority provider is marked as deprecated and will be removed in a future version
    4. Scaling: Move scaling configuration from server.yaml to config-sharding.yaml
    5. Scaling: Rename clusterAutoSwitchAlgorithm SPI to completionDetector and refactor method parameter
    6. Scaling: Data consistency check API method rename and return type change
    7. Database discovery module API refactoring
    8. Readwrite-splitting supports static and dynamic configuration
    9. Shadow DB remove the enable configuration
    10. Shadow algorithm type modified

    Enhancement

    1. Improve load multi single table performance
    2. Remove automatically added order by primary key clause
    3. Optimize binding table route logic without sharding column in join condition
    4. Support update sharding key when the sharding routing result keep the same
    5. Optimize rewrite engine performance
    6. Support select union/union all ... statements by federation engine
    7. Support insert on duplicate key update sharding column when route context keep same
    8. Use union all to merge sql route units for simple select to improve performance
    9. Supports autocommit in ShardingSphere-Proxy
    10. ShardingSphere openGauss Proxy supports sha256 authentication method
    11. Remove property java.net.preferIPv4Stack=true from Proxy startup script
    12. Remove the verification of null rules for JDBC
    13. Optimize performance of executing openGauss batch bind
    14. Disable Netty resource leak detector by default
    15. Supports describe prepared statement in PostgreSQL / openGauss Proxy
    16. Optimize performance of executing PostgreSQL batched inserts
    17. Add instance_id to the result of SHOW INSTANCE LIST
    18. Support to use instance_id to perform operations when enable/disable a proxy instance
    19. Support auto creative algorithm when CREATE SHARDING TABLE RULE, reducing the steps of creating rule
    20. Support specifying an existing KeyGenerator when CREATE SHARDING TABLE RULE
    21. DROP DATABASE supports IF EXISTS option
    22. DATANODES in SHARDING TABLE RULE supports enumerated inline expressions
    23. CREATE/ALTER SHARDING TABLE RULE supports complex sharding algorithm
    24. SHOW SHARDING TABLE NODES supports non-inline scenarios (range, time, etc.)
    25. When there is only one read data source in the readwrite-splitting rule, it is not allowed to be disabled
    26. Scaling: Add basic support of chunked streaming data consistency check
    27. Shadow algorithm decision logic optimization to improve performance

    Refactor

    1. Refactor federation engine scan table logic
    2. Avoid duplicated TCL SQL parsing when executing prepared statement in Proxy
    3. Scaling: Add pipeline modules to redesign scaling
    4. Scaling: Refactor several job configuration structure
    5. Scaling: Precalculate tasks splitting and persist in job configuration
    6. Scaling: Add basic support of pipeline-core code reuse for encryption job
    7. Scaling: Add basic support of scaling job and encryption job combined running
    8. Scaling: Add input and output configuration, including workerThread and rateLimiter
    9. Scaling: Move blockQueueSize into streamChannel
    10. Scaling: Change jobId type from integer to text
    11. Optimize JDBC to load only the specified schema
    12. Optimize meta data structure of the registry center
    13. Rename Note shadow algorithm to HINT shadow algorithm

    Bug Fix

    1. Support parsing function
    2. Fix alter table drop constrain
    3. Fix optimize table route
    4. Support Route resource group
    5. Support parsing binlog
    6. Support postgreSql/openGauss '&' and '|' operator
    7. Support parsing openGauss insert on duplicate key
    8. Support parse postgreSql/openGauss union
    9. Support query which table has column contains keyword
    10. Fix missing parameter in function
    11. Fix sub query table with no alias
    12. Fix utc timestamp function
    13. Fix alter encrypt column
    14. Support alter column with position encrypt column
    15. Fix delete with schema for postgresql
    16. Fix wrong route result caused by oracle parser ambiguity
    17. Fix projection count error when use sharding and encrypt
    18. Fix npe when using shadow and readwrite_splitting
    19. Fix wrong metadata when actual table is case insensitive
    20. Fix encrypt rewrite exception when execute multiple table join query
    21. Fix encrypt rewrite wrong result with table level queryWithCipherColumn
    22. Fix parsing chinese
    23. Fix encrypt exists sub query
    24. Fix full route caused by the MySQL BINARY keyword in the sharding condition
    25. Fix getResultSet method empty result exception when using JDBCMemoryQueryResult processing statement
    26. Fix incorrect shard table validation logic when creating store function/procedure
    27. Fix null charset exception occurs when connecting Proxy with some PostgreSQL client
    28. Fix executing commit in prepared statement cause transaction status incorrect in MySQL Proxy
    29. Fix client connected to Proxy may stuck if error occurred in PostgreSQL with non English locale
    30. Fix file not found when path of configurations contains blank character
    31. Fix transaction status may be incorrect cause by early flush
    32. Fix the unsigned datatype problem when query with PrepareStatement
    33. Fix protocol violation in implementations of prepared statement in MySQL Proxy
    34. Fix caching too many connections in openGauss batch bind
    35. Fix the problem of missing data in SHOW READWRITE_SPLITTING RULES when db-discovery and readwrite-splitting are used together
    36. Fix the problem of missing data in SHOW READWRITE_SPLITTING READ RESOURCES when db-discovery and readwrite-splitting are used together
    37. Fix the NPE when the CREATE SHARDING TABLE RULE statement does not specify the sub-database and sub-table strategy
    38. Fix NPE when PREVIEW SQL by schema.table
    39. Fix DISABLE statement could disable readwrite-splitting write data source in some cases
    40. Fix DIABLE INSTANCE could disable the current instance in some cases
    41. Fix the issue that user may query the unauthorized logic schema when the provider is SCHEMA_PRIVILEGES_PERMITTED
    42. Fix NPE when authority provider is not configured
    43. Scaling: Fix DB connection leak on XA initialization which triggered by data consistency check
    44. Scaling: Fix PostgreSQL replication stream exception on multiple data sources
    45. Scaling: Fix migrating updated record exception on PostgreSQL incremental phase
    46. Scaling: Fix MySQL 5.5 check BINLOG_ROW_IMAGE option failure
    47. Scaling: Fix PostgreSQL xml data type consistency check
    48. Fix database discovery failed to modify cron configuration
    49. Fix single read data source use weight loadbalance algorithm error
    50. Fix create redundant data souce without memory mode
    51. Fix column value matching shadow algorithm data type conversion exception

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Nov 10, 2021)

    New feature

    1. Support parsing SQL comment
    2. New DistSQL syntax: shadow rule management
    3. New DistSQL syntax: scaling job management
    4. New DistSQL syntax: disable proxy instance
    5. New DistSQL syntax: disable readwrite-splitting read data source
    6. New DistSQL syntax: DROP SHARDING ALGORITHM
    7. New DistSQL syntax: ALTER RESOURCE
    8. New DistSQL syntax: CREATE SHARDING ALGORITHM
    9. New DistSQL syntax: CREATE DEFAULT SHARDING [TABLE | DATABASE] STRATEGY
    10. New DistSQL syntax: SHOW ALL VARIABLE
    11. New DistSQL syntax:SHOW VARIABLE variableName;
    12. Support 3 modes, including Memory, Standalone and Cluster mode
    13. Proxy supports for openGauss
    14. Scaling: Add basic support for openGauss
    15. Scaling: Add incremental task completion detect algorithm SPI interface
    16. Scaling: Add data consistency check algorithm SPI interface
    17. Scaling: Basic support of create table on target automatically for MySQL and openGauss
    18. Scaling: Support auto switch cluster configuration when job finished
    19. Scaling: Add more DistSQL support such as data consistency check, etc

    API Change

    1. Add schema name configuration for ShardingSphere-JDBC
    2. Add default sharding column configuration
    3. Change the default authority provider from NATIVE to ALL_PRIVILEGES_PERMITTED
    4. SCTL syntax adjustment, merged with DistSQL RAL syntax
    5. SHOW RESOURCES DistSQL is adjusted to SHOW SCHEMA RESOURCES
    6. Remove shadow logical field, support shadow algorithm

    Enhancement

    1. Support parsing MySQL union/union all statement
    2. Support PostgreSQL ABORT statement
    3. Refactor and improve metadata loading process
    4. Support PostgreSQL CREATE INDEX statement to generate index automatically when no index is specified
    5. Support SQL statement execution with logical schema
    6. Support binding tables configuration with different sharding columns
    7. Optimize kernel performance
    8. Proxy supports queries to part of information_schema tables to optimize client connection experience
    9. DistSQL supports using quotation marks to use keywords as parameter names
    10. The password in the ADD RESOURCE statement supports special characters
    11. ADD RESOURCE supports custom JDBC parameters and connection pool properties
    12. DROP RESOURCE supports optional parameter ignore single tables, used to ignore single table rule restrictions
    13. Support the use of DistSQL to create sharding table rule based on readwrite-splitting rules
    14. SHOW DATABASES statement supports like syntax
    15. CREATE SHARDING TABLE RULE supports the use of inline expressions to specify resources
    16. CREATE SHARDING TABLE RULE supports configuration using dataNodes
    17. CREATE SHARDING TABLE RULE supports reuse of existing algorithms
    18. SET VARIABLE, support to modify proxy configuration
    19. PostgreSQL's protocol enhancements (Such as supports Portal, unspecified type)
    20. Using Netty executor to optimize Proxy performance in specified scenarios
    21. Make memory strictly fetch size configurable in Proxy
    22. Scaling: Improve support for PostgreSQL
    23. Scaling: Support concurrent data consistency check of source and target side

    Refactor

    1. Refactor the SingleTable feature to support Encrypt multiple data sources
    2. Adjust the persistent data structure of the registry center state node
    3. Remove the SQL rewrite of DML for Shadow
    4. Support the SQL routing of DDL for Shadow
    5. Scaling: Refactor default implementation of incremental task completion detect algorithm
    6. Scaling: Refactor default implementation of data consistency check algorithm
    7. Scaling: Remove HTTP API and binary distribution

    Bug Fix

    1. Fix sharding interval algorithm
    2. Fix SHOW INDEX FROM TABLE FROM TABLE statement rewrite exception
    3. Fix Encrypt multi tables join query rewrite exception
    4. Fix subquery index out of range exception
    5. Fix wrong result of Oracle paging query
    6. Fix the rewrite exception when KeyGenerateStrategy is not configured in the Sharding feature
    7. Fix federation executor engine exception caused by Oracle dialect case
    8. Fix Sharding and Encrypt integration usage rewrite exception
    9. Fix Oracle metadata loading exception
    10. Fix the issue that SHOW RESOURCES statement cannot display custom attributes
    11. Fix the issue that SQL execution exception is not thrown
    12. Fix Etcd can not send node added event
    13. Fix PostgreSQL rows contains null value may be missing in query result
    14. Fix PostgreSQL metadata columns are out-of-order
    15. Fix client character set may be incorrect in Proxy

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0-beta(Jun 19, 2021)

    New feature

    1. New DistSQL to load and show all the ShardingSphere configuration rules
    2. Support join SQL from different database instances
    3. Support multiple backend database types for new feature of database gateway
    4. Support creating and updating the authentication online
    5. Add a new automated agent module

    API Change

    1. QueryReplica configuration item is replaced by read-write-splitting
    2. Authentication configuration item of ShardingProxy is replaced by AUTHORITY
    3. Optimize the dataSource configuration for ShardingJDBC with dataSourceClassName
    4. New API for automated sharding table configuration to provide standard and automated sharding tables
    5. Remove configuration item acceptor-size from ShardingProxy
    6. Create a built-in sharding algorithm SPI which allows users to directly configure the class name as in 4.x

    Enhancement

    1. Improve metadata loading process distinctly
    2. Greatly enhance the SQL parsing for Oracle, SQLServer and PostgreSQL
    3. Support loading privileges from MySQL/PostgreSQL/SQLServer/Oracle
    4. Support DDL statement for encryption feature
    5. Support rewrite owner table name of projection if using sharding and encrypt together
    6. When using SELECT * from encrypted SQL, add quote char for the rewritten column to avoid conflict with keyword
    7. Support PostgreSQL JSON/JSONB/pattern matching operator parse
    8. Support MySQL/PostgreSQL CREATE/ALTER/DROP TABLESPACE statement
    9. Support PostgreSQL PREPARE, EXECUTE, DEALLOCATE statement
    10. Support PostgreSQL EXPLAIN statement
    11. Support PostgreSQL START/END TRANSACTION statement
    12. Support PostgreSQL ALTER/DROP INDEX statement
    13. Support CREATE TABLESPACE of PostgreSQL
    14. Support MySQL CREATE LOADABLE FUNCTION statement
    15. Support MySQL/PostgreSQL ALTER TABLE RENAME statement
    16. Support PostgreSQL Close command

    Refactor

    1. New schema structure in registry center
    2. Remove Nacos and Apollo config center support
    3. ShardingScaling leverages elasticJob as its job distribution
    4. Refactor the metadata content and its update process

    Bug Fix

    1. Bugfix for cannot use SELECT * wildcard when readwrite-splitting only
    2. Fix instance error when the custom sharding algorithm does not match the configuration type.
    3. Fix NoSuchTableException when executing drop table if exists statement
    4. Fix the wrong table rewrite in UPDATE ... SET ... statement
    5. Fix wrong table rewrite in CREATE/ALTER TABLE statement foreign key reference table
    6. Fix projection owner check exception when existing subquery temporary table
    7. Fix Oracle/SQL92 SELECT ... WHERE ... LIKE statement class cast exception
    8. Fix MySQL SELECT EXISTS ... FROM ... statement parse error
    9. Fix the wrong result of SHOW INDEX statement
    10. Fix SELECT ... GROUP BY ... statement rewrite and merge result error
    11. Fix CREATE TABLE statement rewrite error for encrypt
    12. Fix exception occurs in PostgreSQL Proxy when reading text format parameter values
    13. Enhance the support of array object for PostgreSQL Proxy
    14. Fix the bug of Datatype casting for ShardingProxy
    15. PostgreSQL Proxy supports using numeric type
    16. Fix PostgreSQL Proxy transaction command complete packet's tag incorrect
    17. Fix PostgreSQL Proxy may return packet which is not expected by the client

    Change Log

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0-alpha(Nov 10, 2020)

    5.0.0-alpha

    New Feature

    1. The pluggable architecture is available and support function extension through the SPI.
    2. Independent SQL parsing engine is available to get SQL parsed AST for the different database dialects.
    3. New RDL feature for ShardingSphere Proxy supports creating sharding rules and sharding tables.
    4. ShardingSphere-Scaling supports resuming data migration from break-point.
    5. ShardingSphere-Scaling supports using ShardingSphere JDBC to migrate data to new cluster.
    6. ShardingSphere shadow database is available.

    API Changes

    1. New sharding/encryption/shadow/queryReplica API.
    2. New sharding algorithm and strategy API.
    3. New API for ShardingSphere Scaling to create task.
    4. Remove DefaultDataSourceName setting item.
    5. The separator of the parameter configuration item is changed from - the dot ‘.’ to minus sign ‘-’.
    6. Change parameter allow.range.query.with.inline.sharding from global parameter to sharding algorithm parameter.

    Refactor

    1. Refactor the architecture of SQL parsing module base on the database dialects.
    2. Use SPI mechanism to reconstruct online metadata change processing.
    3. Rename Orchestration module to Governance module.
    4. Rename MasterSlave module to QueryReplica module.
    5. Refactor the metadata structure in the governance registration center.
    6. Refactor GovernmentShardingSphereDataSource.
    7. ShardingSphere UI merges configuration center and registration center display layout.

    Enhancement

    1. Upgrade the minimum supported version of JDK to Java8.
    2. Update Zookeeper curator to version 5.1.0.
    3. Update Google Guava to version 29.0-jre.
    4. The enhancement for MySQL SQL syntax definition and parsing process.
    5. The enhancement for PostgreSQL syntax definition and parsing process.
    6. The enhancement for sub-queries in different database dialects.
    7. Support MySQL view operations for non-sharding tables
    8. Support MySQL stored functions and procedure operations for non-sharding tables.
    9. Support SQLServer Top syntax.
    10. Optimize the metadata loading to improve the startup speed.
    11. Optimize batch insert performance.
    12. Supports the use of Oracle RAC JDBC URL.
    13. XA transaction manager adds support for Oracle database.
    14. ShardingSphere Proxy supports the use of p6sy driver.
    15. Add help information to the ShardingSphere Proxy startup script.

    Bug fixes

    1. Fix alias rewriting error when processing OrderBy condition.
    2. Fix SQL rewriting error when MYSQL Insert statement contains expression.
    3. Fix parameter calculation error in update on duplicate SQL.
    4. Fix generatedKeys gets wrong when batch inserting.
    5. Fix the abnormal issue of multi-table verification in DML statement update operation.
    6. Fix the NPE problem caused by executing SQL when the table does not exist.
    7. Fix the exception when using the Show table command for an unconfigured table.
    8. Fix metadata loading error when Oracle database has multiple qualified users.
    9. Fix the issue that replica node cannot be enabled online.
    10. Fix the problem that ShardingSphere-JDBC does not support PostgreSQL array type.
    11. Fix the problem that ShardingSphere-Proxy does not respond when querying long blob data.
    Source code(tar.gz)
    Source code(zip)
  • shardingsphere-ui-4.1.1(Jun 12, 2020)

    4.1.1

    Enhancement

    1. Add Sharding-UI dockerfile
    2. Enhancement for Sharding-UI docker build

    Bug Fixes

    1. Fix faild to disable slave database through ui
    Source code(tar.gz)
    Source code(zip)
  • 4.1.1(Jun 8, 2020)

    4.1.1

    Enhancement

    1. Add Sharding-Scaling & Sharding-UI dockerfile
    2. update MySQL & PostgreSQL version for proxy

    Bug Fixes

    1. Fix parser syntax rule of SUBSTRING and CONVERT
    2. Fix parser ColumnSegment ClassCastException
    3. Fix TableMetaData load error when use Sharding-JDBC with oracle
    4. Fix getSchema NPE when use Sharding-JDBC with oracle
    5. Fix Sharding-JDBC parse sql NPE in PostgreSQL
    6. Fix Sharding-Proxy receive error response for PostgreSQL JDBC client
    7. Fix Sharding-Proxy response number of update is 0 for PostgreSQL JDBC client
    8. Fix Sharding-Proxy receive null for PostgreSQL column meta data
    9. Fix Sharding-Scaling NPE in MySQL incremental task

    Change Logs

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(May 21, 2020)

    4.1.0

    New Features

    1. Support scaling for ShardingSphere (alpha version)
    2. Move etcd registry center from experiment repo to apache repo
    3. Upgrade to Java 8

    Enhancement

    1. Optimization for Sharing Parser with ANTLR Visitor improving the parsing performance of long SQL by 100%~1000%
    2. Use multiple threads to load metadata for different data sources
    3. Support allow.range.query.with.inline.sharding option
    4. The docker of Sharding-Proxy supports loading external lib packages
    5. Support integration with Spring using @ShardingTransactionType
    6. Enhance ShardingDataSource to compatiable with Seata in micro-sevice distribution transaction

    Refactor

    1. Remove leaf key generator

    Bug Fixes

    1. Fix an exception caused by using a CHAR/VARCHAR type column as a order by item
    2. Refine DataTypeName syntax rules of all database dialects
    3. Fix an exception caused by executing BEGIN using prepared statement of MySQL C API
    4. Fix the problem that ALTER TABLE fails to execute when the field type of the table contains Integer/Double/BigDecimal
    5. Fix the problem of the stop index dislocation of segment with alias
    6. Fix the problem that overwriting SQL SELECT * FROM tbl WHERE encrypt_col = ? AND (sharding_key = ? OR sharding_key = ?) when using sharding + encrypt would throw StringIndexOutOfBoundsException
    7. Fix the problem of incorrect decoding after AES encoding when using Sharding-Proxy in Spring Boot
    8. Fix a long-time problem of adding schema dynamically in Sharding-UI

    Change Logs

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • shardingsphere-ui-4.1.0(May 9, 2020)

    4.1.0

    New Features

    1. Add a start.bat to launch for shardingsphere-ui distribution module in Windows
    2. The work flow and roadmap of sharding-scaling

    Enhancements

    1. sharding-ui-frontend config file problem
    2. The enhancement for the first version sharding-scaling-ui
    3. Fix link of build status
    4. Fix ui login Chinese text
    5. Add sharding scaling API document

    Bug Fixes

    1. Fix request error page interactive presentation problem
    2. Fix ui module for new center api
    3. Fix spelling error
    4. UI details modification
    5. Fixes ui errors when loading datasources config
    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(Mar 9, 2020)

    4.0.1

    Bug Fixes

    1. Using guava cache to fix parsing deadlock.
    2. Oracle insert SQL could not work in encrypt mode.
    3. Proxy for PostgreSQL decode parameters error in all types except String.
    4. COM_STM_EXECUTE of proxy for MySQL could not support sysbench.
    5. None sharding strategy could not config in spring-boot.
    6. Plain column could not get from resultSet in sharding-encrypt mode.
    7. WasNull field was wrong in GroupByStreamMergeResult.
    8. Metadata.getColumns could not work in JDBC.
    9. IN operator contains space and \n \t \r could not supported by parser.

    Enhancement

    1. Optimize antlr performance using two-stage parsing strategy.
    2. Add class filter constructor to restrict the illegal class from YAML.

    Change Logs

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Jan 13, 2020)

    4.0.0

    API Changes

    1. Change package and maven groupId form io.shardingsphere to org.apache.shardingsphere.
    2. Adjust Sharding-JDBC configuration API.
    3. Adjust persist structure for registry center.

    New Features

    1. SQL92 Syntax available.
    2. Sharding-Proxy for PostgreSQL protocol available.
    3. SQL 100% compatible if route to single data node.
    4. Less-than(<), greater-than(>) and Less-than-equal(<=), greater-than-equal(>=) for sharding key operator available.
    5. DISTINCT SQL syntax available.
    6. Broadcast table available.
    7. LEAF key generator available.
    8. XA Transaction available, Atomikos, Narayana and Bitronix integrated.
    9. BASE Transaction available, Seata integrated.
    10. Data encrypt available.
    11. Skywalking plugin available.
    12. Sharding-UI available, an orchestration management platform.

    Enhancement

    1. MariaDB supported.
    2. Improve the compatibility of SQL parsing.
    3. SELECT FOR UPDATE route to master data source only.
    4. Hint in Sharding-Proxy available.
    5. Make configuration of orchestration consistent between Sharding-JDBC and Sharding-Proxy.
    6. Renew modified data sources only, not renew all the data sources.
    7. Vibrate configurable for Snowflake key generator.

    Bug Fixes

    1. Improve the compatibility of JDBC Driver URL.
    2. Delete statement with alias available.
    3. Check and disable updating sharding column.
    4. Fix wrong type of TINYINT and SMALLINT as INTEGER.

    Change Logs

    1. MILESTONE #3
    2. MILESTONE #4
    3. MILESTONE #5
    4. MILESTONE #6
    5. MILESTONE #7
    6. MILESTONE #8
    7. MILESTONE #9
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0-RC3(Nov 26, 2019)

    4.0.0-RC3

    New Features

    1. Sharding-UI, an orchestration management platform for ShardingSphere comes online.
    2. Not only SQLs from MySQL, PostgreSQL, SQLServer, Oracle, but any SQL92 Syntax can be parsed correctly and used in ShardingSphere.

    Enhancement

    1. Support using less-than character(<) and greater-than character(>) for sharding data.
    2. When master and slave dataSources exist, support executing SELECT FOR UPDATE on master dataSource.
    3. Support hint in Sharding-Proxy.
    4. Finish parsing DAL syntax for MySQL.
    5. Make configuration of orchestration compatible between Sharding-JDBC and Sharding-Proxy.

    Bug Fixes

    1. Through Bug fix, the feature of encryption becomes much stable and applicable.
    2. Support delete statement with alias.
    3. Check and disable updating sharding column.
    4. Fix wrong type of TINYINT and SMALLINT as INTEGER.

    Refactor

    1. Rename optimized module to preprocessor module.
    2. Decouple rewrite core module for sharding/encrypt features.

    Change Logs

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0-RC2(Aug 23, 2019)

    4.0.0.RC2

    API Changes

    1. Optimize and delete API and configuration item of sharding logic index.
    2. Update the API of encryption to support the encrypted and plain data coexistence.

    New Features

    1. Integration of Seata for distributed transaction.
    2. User can do data encryption by using ShardingProxy.
    3. User can use Leaf-segment generator to get distributed ID.
    4. Support Skywalking plugin for application performance management.

    Enhancement

    1. Renew modified dataSources, not all the datasources to improve performance for configuration orchestration.
    2. Improve the compatibility of SQL parsing.

    Refactor

    1. Remove DatabaseType enum, use dynamic SPI to load data source type.
    2. The parse engine upgrade from the 2nd generation to 3rd.
    3. The Refactoring of SQL rewriting module.

    Change Logs

    1. MILESTONE
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0-RC1(Apr 21, 2019)

    Merge all change logs of version 3.1.0.M1, 3.1.0, 3.1.0.1 and 4.0.0.M1. First apache release.

    API Changes

    1. Adjust persist structure for orchestration's registry center.
    2. Adjust Sharding-JDBC configuration API.
    3. Change package and maven groupId form io.shardingsphere to org.apache.shardingsphere.
    4. Adjust spring-boot-starter.

    New Features

    1. XA Transaction available.
    2. Data encrypt available.
    3. Use PostgreSQL protocol access Sharding-Proxy available.
    4. DISTINCT SQL syntax available.
    5. Broadcast table.
    6. All SQL 100% compatible if route to single data node (MySQL Only).

    Change Logs

    1. MILESTONE #3
    2. MILESTONE #4
    3. MILESTONE #5
    4. MILESTONE #6
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Oct 23, 2018)

    Milestones

    1. Sharding-Proxy launch. Support the use of Sharding-Sphere in the form of database to support for MySQL CLI and GUI client

    New Features

    Core

    1. ISSUE #290 Support batch INSERT
    2. ISSUE #501 Support OR
    3. ISSUE #980 Support DCL
    4. ISSUE #1111 Support MySQL DAL

    Sharding-Proxy

    1. ISSUE #902 Support XA transaction
    2. ISSUE #916 Support authorization
    3. ISSUE #936 Support registry center
    4. ISSUE #1046 Support multiple logic databases

    Enhancements

    Core

    1. ISSUE #373 Support order by ?
    2. ISSUE #610 Route unicast for DQL without table
    3. ISSUE #701 Caching parsed results to improve performance
    4. ISSUE #773 Support sharding and autoincrement key of INSERT without column names
    5. ISSUE #935 Use YAML instead of JSON to store configurations in registry center
    6. ISSUE #1004 Properties can configure for Sharding and Master-slave independent
    7. ISSUE #1205 Execute engine enhancement

    Sharding-JDBC

    1. ISSUE #652 Support Spring Boot Starter 2.X
    2. ISSUE #702 Support $->{..} for inline expression
    3. ISSUE #719 Support inject key generator objects by spring namespace
    4. ISSUE #720 Support inject sharding algorithm objects by spring namespace

    Sharding-Opentracing

    1. ISSUE #1172 Opentracing enhancement

    API changes

    1. ISSUE #1153 Adjust the maven artifactId for Orchestration module
    2. ISSUE #1203 Adjust Spring namespace xsd for Sharding and Master-slave
    3. ISSUE #1289 Adjust Hint API
    4. ISSUE #1302 Refine package structure
    5. ISSUE #1305 Deprecated and remove sharding-jdbc-transaction-parent module
    6. ISSUE #1382 Remove type configuration in Orchestration module

    Bug Fixes

    Core

    1. ISSUE #569 Failed to parse SQL for Oracle when ROWNUM is not at end
    2. ISSUE #628 Support data type jsonb for PostgreSQL
    3. ISSUE #646 When aliases in SELECT ITEMS correspond to the real column names of GROUP BY or ORDER BY, there is no need to generate derived columns
    4. ISSUE #806 NOT IN parse exception
    5. ISSUE #827 Endless loop for bad SQL like SELECT * FROM table WHERE id IN ()
    6. ISSUE #919 Inline expression with groovy may cause memory leak
    7. ISSUE #993 Fail to parsing PostgreSQL due to the quotation
    8. ISSUE #1015 Support SQL like SELECT id, COUNT(*) FROM table GROUP BY 1,2
    9. ISSUE #1120 Derived columns of GROUP BY / ORDER BY appear in query result
    10. ISSUE #1186 Dead lock may occur on MEMORY_STRICTLY mode when get connection on concurrency environment
    11. ISSUE #1265 RoundRobinMasterSlaveLoadBalanceAlgorithm throw an ArrayIndexOutOfBoundsException when AtomicInteger overflow

    Sharding-JDBC

    1. ISSUE #372 Reuse PreparedStatement cause cache of route result do not clean
    2. ISSUE #629 Support transaction isolation on JDBC
    3. ISSUE #735 Unexpected slave datasource routing result when using Round-robin load-balance algorithm in Mybatis
    4. ISSUE #1011 Can't resolve placeholder in Spring Boot YAML configuration
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0.M4(Sep 28, 2018)

    New Features

    Sharding-Proxy

    1. ISSUE #1046 Support multiple database schema

    Enhancements

    core

    1. ISSUE #1205 Execute engine enhancement

    Sharding-Opentracing

    1. ISSUE #1172 Opentracing enhancement

    API changes

    1. ISSUE #1289 Adjust Hint API
    2. ISSUE #1302 Refine package structure
    3. ISSUE #1305 Deprecated and remove sharding-jdbc-transaction-parent module

    Bug Fixes

    Core

    1. ISSUE #1265 RoundRobinMasterSlaveLoadBalanceAlgorithm throw an ArrayIndexOutOfBoundsException when AtomicInteger overflow
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0.M3(Sep 5, 2018)

    New Features

    Sharding-Proxy

    1. ISSUE #902 Support XA transaction

    Enhancements

    Core

    1. ISSUE #373 Support order by ?

    Sharding-JDBC

    1. ISSUE #1153 Reconstruct orchestration module to make it independent

    API changes

    1. ISSUE #1153 Adjust the maven artifactId for Orchestration module
    2. ISSUE #1203 Change Spring namespace xsd for Sharding + Master-slave configuration

    Bug Fixes

    Core

    1. ISSUE #1186 Dead lock may occur on MEMORY_STRICTLY mode when get connection on concurrency environment
    2. ISSUE #1120 Derived columns of GROUP BY / ORDER BY appear in query result

    Sharding-JDBC

    1. ISSUE #1116 Throw NullPointerException when Using transaction
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0.M2(Aug 7, 2018)

    New Features

    Core

    1. ISSUE #980 Support DCL

    Sharding-Proxy

    1. ISSUE #916 Support authorization
    2. ISSUE #936 Support registry center

    Enhancements

    Core

    1. ISSUE #935 Use YAML instead of JSON to store configurations in registry center
    2. ISSUE #1004 Properties can configure for Sharding and Master-slave independent

    Bug Fixes

    Core

    1. ISSUE #919 Inline expression with groovy may cause memory leak
    2. ISSUE #1015 Support SQL like SELECT id, COUNT(*) FROM table GROUP BY 1,2

    Sharding-JDBC

    1. ISSUE #372 Reuse PreparedStatement cause cache of route result do not clean
    2. ISSUE #993 Fail to parsing PostgreSQL due to the quotation
    3. ISSUE #1011 Can't resolve placeholder in Spring Boot YAML configuration
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0.M1(May 21, 2018)

    Milestones

    1. Sharding-Proxy launch. Support the use of Sharding-Sphere in the form of database to support for MySQL CLI and GUI client

    New Features

    Core

    1. ISSUE #290 Support batch INSERT
    2. ISSUE #501 Support OR
    3. ISSUE #1111 Support MySQL DAL

    Enhancements

    Core

    1. ISSUE #610 Route unicast for DQL without table
    2. ISSUE #701 Caching parsed results to improve performance
    3. ISSUE #773 Support sharding and autoincrement key of INSERT without column names

    Sharding-JDBC

    1. ISSUE #652 Support Spring Boot Starter 2.X
    2. ISSUE #702 Support $->{..} for inline expression
    3. ISSUE #719 Support inject key generator objects by spring namespace
    4. ISSUE #720 Support inject sharding algorithm objects by spring namespace

    Bug Fixes

    Core

    1. ISSUE #628 Support data type jsonb for PostgreSQL
    2. ISSUE #646 When aliases in SELECT ITEMS correspond to the real column names of GROUP BY or ORDER BY, there is no need to generate derived columns
    3. ISSUE #806 NOT IN parse exception
    4. ISSUE #827 Endless loop for bad SQL like SELECT * FROM table WHERE id IN ()
    5. ISSUE #993 Fail to parsing PostgreSQL due to the quotation

    Sharding-JDBC

    1. ISSUE #629 Support transaction isolation on JDBC
    2. ISSUE #735 Unexpected slave datasource routing result when using Round-robin load-balance algorithm in Mybatis
    Source code(tar.gz)
    Source code(zip)
  • 2.0.3(Feb 16, 2018)

  • 2.0.2(Jan 18, 2018)

    Enhancements

    Core

    1. ISSUE #475 Support CREATE INDEX
    2. ISSUE #525 Support DROP INDEX

    Bug Fixes

    Core

    1. ISSUE #521 ShardingProperties is invalid in YAML configuration
    2. ISSUE #529 Table name capitalization cannot be queried
    3. ISSUE #541 IS NOT NULL parse error
    4. ISSUE #557 When GROUP BY and ORDER BY aliases are inconsistent, stream merging should be used
    5. ISSUE #559 Support parsing numbers beginning with minus and decimal (e.g. -.12)
    6. ISSUE #567 Add escape char for derived columns or alias when using MySQL

    Sharding-JDBC

    1. ISSUE #520 Exception is no longer DuplicateKeyException when the unique key conflict
    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Dec 15, 2017)

    Enhancements

    Core

    1. ISSUE #490 Using rownum greater than or equal to or less than or equal to the result of paging is incorrect in Oracle
    2. ISSUE #496 Logical table names in sharding configuration can be case sensitive
    3. ISSUE #497 Close registry center gracefully

    Bug Fixes

    Sharding-JDBC

    1. ISSUE #489 Uses RuntimeBeanReference to prevent the creation of InnerBean on spring namespace
    2. ISSUE #491 Can't close connection by ResultSet.getStatement().getConnection().close()
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Dec 3, 2017)

    Milestones

    1. API adjust. Brand new groupId and artifactId for Maven, package name and spring namespace name. Simplify and enhance API configuration, inline expression fully configuration support
    2. Support spring-boot-starter of Sharding-JDBC
    3. Dynamic configuration. ZooKeeper and etcd can be used as registry to dynamically modify data sources and sharding configurations
    4. Database orchestration. Fusing database access procedures to access databases and disable access to slave databases
    5. ConfigMap support. Predefined metadata can be obtained in the sharding and read-write separation strategy
    6. Tracking system support. You can view the invocation chain of Sharding-JDBC through sky-walking and other Opentracing based APM systems

    Enhancements

    Core

    1. ISSUE #386 Support SQL that does not contain table names, such as SELECT 1

    Sharding-JDBC

    1. ISSUE #407 Support Hyphen properties for sharding-jdbc-spring-boot-starter
    2. ISSUE #424 Providing SQL overall execution events

    Bug Fixes

    Core

    1. ISSUE #387 Prevent errors from keywords process when '`' exists in function + column name
    2. ISSUE #419 When SQL is rewritten, it does not determine whether alias is a keyword without the escape character, which results in SQL exception
    3. ISSUE #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

    Sharding-JDBC

    1. ISSUE #394 Can't only close statement
    2. ISSUE #398 Use Hint routing to shield case sensitivity
    3. ISSUE #404 Sharding-jdbc's spring-boot-starter does not support HikariDataSource
    4. ISSUE #436 Read-write splitting, when the RoundRobin algorithm is configured from the database and MyBatis is used, it can only be routed to the same slave library
    5. ISSUE #452 Sharding of DDL statements to more than one table causes a connection leak
    6. ISSUE #472 Before Connection executes createStatement, it calls getMetaData first and then setAutoCommit can not take effective connection to the database that was created later
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0.M3(Nov 20, 2017)

    Milestones

    1. Data governance. Fusing database access procedures to access databases and disable access to slave databases
    2. ConfigMap support. Predefined metadata can be obtained in the sharding and read-write separation strategy

    Bug Fixes

    1. ISSUE #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
    2. ISSUE #452 Sharding of DDL statements to more than one table causes a connection leak
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0.M2(Nov 6, 2017)

    Milestones

    1. The database access governance of the client can fuse the database access

    Enhancements

    1. ISSUE #407 Sharding-jdbc's spring-boot-starter compatibility uses two ways of attribute configuration: minus sign and hump
    2. ISSUE #424 Providing SQL overall execution events

    Bug Fixes

    1. ISSUE #404 Sharding-jdbc's spring-boot-starter does not support HikariDataSource
    2. ISSUE #419 When SQL is rewritten, it does not determine whether alias is a keyword without the escape character, which results in SQL exception
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0.M1(Oct 10, 2017)

    Milestones

    1. Dynamic configuration. Zookeeper and etcd can be used as registry to dynamically modify data sources and sharding configurations
    2. API adjust. Brand new Maven coordinate name, package name and spring namespace name. Simplify and enhance API configuration, inline expression full configuration support

    New Features

    1. Support sharding-jdbc-spring-boot-starter

    Enhancements

    1. ISSUE #386 Support for SELECT 1, a SQL that does not contain table names

    Bug Fixes

    1. ISSUE #387 Prevent errors from keywords process when '`' exists in function + column name
    2. ISSUE #394 Can't only close statement
    3. ISSUE #398 Use Hint routing to shield case sensitivity
    Source code(tar.gz)
    Source code(zip)
Owner
The Apache Software Foundation
The Apache Software Foundation
A guild plugin for Minecraft Servers that supports 1.13 and above

OasisGuild Description A guild plugin for Minecraft Servers that supports 1.13 and above Languages zh_cn(简体中文) en_us(English) Placeholders %oasisguild

ChiyodaXiaoYi 2 Apr 6, 2022
"Some" Utilities you can use for your Java projects "freely"! Files are compiled with Java-8 and above, but mostly Java-11.

✨ Java-SomeUtils ?? "Some" Utilities you can use for your Java projects "freely"! *"Freely"* forcing you to include the license into your program. Fil

JumperBot_ 2 Jan 6, 2023
SlimeVR-Server - Server app for SlimeVR ecosystem

SlimeVR Server Server app for SlimeVR ecosystem Server orchestrates communication between multiple sensors and integrations, like SteamVR. Sensors imp

null 362 Dec 31, 2022
jedibot is an application that aims to do beneficial actions on the Ethereum blockchain for the DeFi ecosystem while earning a profit for the user.

jedibot is an application that aims to do beneficial actions on the Ethereum blockchain for the DeFi ecosystem while earning a profit for the user. These actions include maintaining the DAI peg, providing liquidity and liquidating undercollateralized assets.

我是高天才! 10 Feb 5, 2022
🐀 Simple, Fast and easy to implement ORM for most popular databases

RatORM Simple, Fast and easy to implement ORM for most popular databases Status: Branch Tests Code Quality master Usefull links Helpful links: GitHub

Szczurowsky 3 Dec 25, 2022
Tuya 37 Dec 26, 2022
Model Layer Implementation for a J2EE Pull MVC WebApp

Modality is a lightweight but hightly configurable Java ORM, with a companion set of tools docs home modality-core doc modality-webapp doc velocity-to

Claude Brisson 11 Jan 3, 2023
An intelliJ plugin providing a UI layer for git-flow, which in itself is a collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model.

Git Flow Integration Plus for Intellij An intelliJ plugin providing a UI layer for git-flow, which in itself is a collection of Git extensions to prov

RubinCarter 35 Nov 8, 2022
Virtual model of an atom

Project Zero Virtual model of an atom. Download Demo · Report Bug Table of Contents About The Project Built With Getting Started Prerequisites Install

Phi Long Bui 3 Dec 23, 2022
Kafka integration with Java Spring-boot: producer-consumer model

Kafka integration with Java Spring-boot with one application serving as a producer and the other consuming the messages

Hardik Singh Behl 15 Apr 26, 2022
MarioCash is a trust-based multi-dimensional blockchains built with a vision to connect everything and any blockchain networks.

MarioCash We will change the world by blockchain. What is mariocash? MARIOCASH is a trust-based multi-dimensional blockchains (branches) built with a

Brantley·Williams 23 Mar 10, 2022
In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend

In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend. We will use MySQL database to store and retrieve the data.

Ramesh Fadatare 43 Dec 22, 2022
An advanced and highly optimized Java library to build framework

An advanced and highly optimized Java library to build frameworks: it's useful for scanning class paths, generating classes at runtime, facilitating the use of reflection, scanning the filesystem, executing stringified source code and much more...

Burningwave 119 Dec 21, 2022
See how simple it is to build a REST API with a database using Java and Spring Boot

Seu primeiro projeto Java Web no Spring Boot 2022 Veja como é simples construir uma API REST com banco de dados usando Java e Spring Boot Realização D

DevSuperior 74 Dec 26, 2022
Hi, Spring fans! We're going to learn how to build Kubernetes operators, CRDs, and controllers

Bootiful Kubernetes Operators Make sure youre in the default namespace of a Kubernetes cluster. Not sure fi this matters but I am, so it might help. T

Josh Long 14 Dec 29, 2022
Multi-OS Engine: Create iOS Apps in Java (or Kotlin ... etc.)

Multi-OS Engine Overview Multi-OS Engine provides a Java runtime and Java interfaces to iOS platform API to develop native iOS applications with nativ

Multi-OS Engine 561 Dec 22, 2022
Multi-Disciplinary Project

Multi-Disciplinary Project With an odd-numbered group of 7, the planning for the distribution of work is tricky since certain members have to take add

Lim You Rong 0 Mar 9, 2022
A multi-ride amusement park ticket application on NFC memory card

A multi-ride amusement park ticket application on NFC memory card. The security features cover mitigating: Man in the Middle attack, Rollback attack, tearing protection, Write Protection.

Jayshree Rathi 1 Nov 28, 2022
A supercharged gradle template for developing Minecraft plugins with multi platform support.

Minecraft Multi-Platform Template You can use this template to develop your own high quality Minecraft plugins for multiple platforms using Gradle wit

sVoxelDev 3 Nov 23, 2022