<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Serialized Form (shardingsphere-infra-distsql-handler 5.3.3-SNAPSHOT API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Serialized Form (shardingsphere-infra-distsql-handler 5.3.3-SNAPSHOT API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Serialized Form" class="title">Serialized Form</h1>
</div>
<div class="serializedFormContainer">
<ul class="blockList">
<li class="blockList">
<section>
<h2 title="Package">Package&nbsp;org.apache.shardingsphere.distsql.handler.exception</h2>
<ul class="blockList">
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.DistSQLException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/DistSQLException.html" title="class in org.apache.shardingsphere.distsql.handler.exception">org.apache.shardingsphere.distsql.handler.exception.DistSQLException</a> extends org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-6464411607608071400L</dd>
</dl>
</li>
</ul>
</section>
</li>
<li class="blockList">
<section>
<h2 title="Package">Package&nbsp;org.apache.shardingsphere.distsql.handler.exception.algorithm</h2>
<ul class="blockList">
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.algorithm.AlgorithmDefinitionViolationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">org.apache.shardingsphere.distsql.handler.exception.algorithm.AlgorithmDefinitionViolationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/DistSQLException.html" title="class in org.apache.shardingsphere.distsql.handler.exception">DistSQLException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-727466071244178933L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.algorithm.AlgorithmInUsedException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmInUsedException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">org.apache.shardingsphere.distsql.handler.exception.algorithm.AlgorithmInUsedException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">AlgorithmDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-8735125626190637177L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.algorithm.DuplicateAlgorithmException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/DuplicateAlgorithmException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">org.apache.shardingsphere.distsql.handler.exception.algorithm.DuplicateAlgorithmException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">AlgorithmDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>3503761639898230997L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/InvalidAlgorithmConfigurationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">AlgorithmDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>1352014079406440573L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/MissingRequiredAlgorithmException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/algorithm/AlgorithmDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.algorithm">AlgorithmDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>4591071898233749618L</dd>
</dl>
</li>
</ul>
</section>
</li>
<li class="blockList">
<section>
<h2 title="Package">Package&nbsp;org.apache.shardingsphere.distsql.handler.exception.datasource</h2>
<ul class="blockList">
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.datasource.DataSourceDefinitionViolationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/datasource/DataSourceDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.datasource">org.apache.shardingsphere.distsql.handler.exception.datasource.DataSourceDefinitionViolationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/DistSQLException.html" title="class in org.apache.shardingsphere.distsql.handler.exception">DistSQLException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-3318829232811230364L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.datasource.MissingRequiredDataSourcesException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/datasource/MissingRequiredDataSourcesException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.datasource">org.apache.shardingsphere.distsql.handler.exception.datasource.MissingRequiredDataSourcesException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/datasource/DataSourceDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.datasource">DataSourceDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-7846645449809082667L</dd>
</dl>
</li>
</ul>
</section>
</li>
<li class="blockList">
<section>
<h2 title="Package">Package&nbsp;org.apache.shardingsphere.distsql.handler.exception.rule</h2>
<ul class="blockList">
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/rule/DuplicateRuleException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">RuleDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-1738699538105858939L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.rule.InvalidRuleConfigurationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/rule/InvalidRuleConfigurationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">org.apache.shardingsphere.distsql.handler.exception.rule.InvalidRuleConfigurationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">RuleDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>6085010920008859376L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/rule/MissingRequiredRuleException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">RuleDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-8464574460917965546L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.rule.RuleDefinitionViolationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">org.apache.shardingsphere.distsql.handler.exception.rule.RuleDefinitionViolationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/DistSQLException.html" title="class in org.apache.shardingsphere.distsql.handler.exception">DistSQLException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>1090914641996552474L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.rule.RuleInUsedException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleInUsedException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">org.apache.shardingsphere.distsql.handler.exception.rule.RuleInUsedException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/rule/RuleDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.rule">RuleDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>3308787279125477660L</dd>
</dl>
</li>
</ul>
</section>
</li>
<li class="blockList">
<section>
<h2 title="Package">Package&nbsp;org.apache.shardingsphere.distsql.handler.exception.storageunit</h2>
<ul class="blockList">
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/DuplicateStorageUnitException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">StorageUnitDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>2103793827572264148L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.EmptyStorageUnitException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/EmptyStorageUnitException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.EmptyStorageUnitException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">StorageUnitDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>1704331180489268L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/InvalidStorageUnitsException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">StorageUnitDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>7029641448948791509L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/MissingRequiredStorageUnitsException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">StorageUnitDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>1704331180489268L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitDefinitionViolationException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitDefinitionViolationException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/DistSQLException.html" title="class in org.apache.shardingsphere.distsql.handler.exception">DistSQLException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-2686784350802985974L</dd>
</dl>
</li>
<li class="blockList"><a id="org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitInUsedException">
<!--   -->
</a>
<h3>Class <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitInUsedException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitInUsedException</a> extends <a href="org/apache/shardingsphere/distsql/handler/exception/storageunit/StorageUnitDefinitionViolationException.html" title="class in org.apache.shardingsphere.distsql.handler.exception.storageunit">StorageUnitDefinitionViolationException</a> implements Serializable</h3>
<dl class="nameValue">
<dt>serialVersionUID:</dt>
<dd>-3427324685070457375L</dd>
</dl>
</li>
</ul>
</section>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
