blob: 5ace546efd9c3cf2ad6dd4e5b787330d9e3779ae [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-61232409-1');
</script>
<meta charset="UTF-8">
<meta name="ignite-version" content="2.9.0" />
<title>SQL Conformance | Ignite Documentation</title>
<link rel="canonical" href="/docs/latest/sql-reference/sql-conformance" />
<link rel="stylesheet" href="/assets/css/styles.css?1600382367">
<link rel="stylesheet" href="/assets/css/asciidoc-pygments.css">
<link rel="shortcut icon" href="/favicon.ico">
<meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
<script type="text/javascript" src="/assets/js/anchor.min.js?1600382367"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
</head>
<body>
<header>
<!--#include virtual="/includes/promotion_banner.html" -->
<div class="container">
<button type='button' class='menu' title='Docs menu'>
<img src="/assets/images/menu-icon.svg"/>
</button>
<div class='home'>
<a href="/" class='home' title='Apache Ignite home'>
<img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" >
</a>
</div>
<nav>
</nav>
<select id="version-selector">
<option value="2.9.0">2.9.0</option>
</select>
<a href="https://github.com/apache/ignite" title='GitHub' class='github' target="_blank">
<img src="/assets/images/github-gray.svg" alt="GitHub logo">
</a>
<form class='search'>
<button class="search-close" type='button'><img src='/assets/images/cancel.svg'></button>
<input type="search" placeholder="Search…" id="search-input">
</form>
<button type='button' class='search-toggle'><img src='/assets/images/search.svg'></button>
<button type='button' class='top-nav-toggle'></button>
</div>
</header>
<link rel="stylesheet" href="/assets/css/docs.css">
<section class='page-docs'>
<nav class='left-nav' data-swiftype-index='false'>
<li>
<a href="/docs/latest/preface" class='' >Preface</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Quick Start Guides<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/quick-start/java"
class=''
>Java</a>
</li>
<li>
<a href="/docs/latest/quick-start/dotnet"
class=''
>.NET/C#</a>
</li>
<li>
<a href="/docs/latest/quick-start/cpp"
class=''
>C++</a>
</li>
<li>
<a href="/docs/latest/quick-start/python"
class=''
>Python</a>
</li>
<li>
<a href="/docs/latest/quick-start/nodejs"
class=''
>Node.JS</a>
</li>
<li>
<a href="/docs/latest/quick-start/sql"
class=''
>SQL</a>
</li>
<li>
<a href="/docs/latest/quick-start/php"
class=''
>PHP</a>
</li>
<li>
<a href="/docs/latest/quick-start/restapi"
class=''
>REST API</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/installation" class='group-toggle collapsed '>Installation<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/installation/installing-using-zip"
class=''
>Installing Using ZIP Archive</a>
</li>
<li>
<a href="/docs/latest/installation/installing-using-docker"
class=''
>Installing Using Docker</a>
</li>
<li>
<a href="/docs/latest/installation/deb-rpm"
class=''
>Installing DEB or RPM package</a>
</li>
<li>
<button
type='button'
class='collapsed '>Kubernetes<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//installation/kubernetes/amazon-eks-deployment" class=''>Amazon EKS</a></li>
<li><a href="/docs/latest//installation/kubernetes/azure-deployment" class=''>Azure Kubernetes Service</a></li>
<li><a href="/docs/latest//installation/kubernetes/gke-deployment" class=''>Google Kubernetes Engine</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Setting Up<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/setup"
class=''
>Setting Up Ignite for Java</a>
</li>
<li>
<a href="/docs/latest/setup-dotnet"
class=''
>Setting Up Ignite for .NET/C#</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/understanding-configuration" class='' >Understanding Configuration</a>
</li>
<li>
<a href="/docs/latest/logging" class='' >Configuring Logging</a>
</li>
<li>
<a href="/docs/latest/starting-nodes" class='' >Starting and Stopping Nodes</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/clustering/clustering"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/latest/clustering/tcp-ip-discovery"
class=''
>TCP/IP Discovery</a>
</li>
<li>
<a href="/docs/latest/clustering/zookeeper-discovery"
class=''
>ZooKeeper Discovery</a>
</li>
<li>
<a href="/docs/latest/clustering/discovery-in-the-cloud"
class=''
>Discovery in the Cloud</a>
</li>
<li>
<a href="/docs/latest/clustering/network-configuration"
class=''
>Network Configuration</a>
</li>
<li>
<a href="/docs/latest/clustering/connect-client-nodes"
class=''
>Connecting Client Nodes</a>
</li>
<li>
<a href="/docs/latest/clustering/running-client-nodes-behind-nat"
class=''
>Running Client Nodes Behind NAT</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Data Modeling<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/data-modeling/data-modeling"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/data-modeling/data-partitioning"
class=''
>Data Partitioning</a>
</li>
<li>
<a href="/docs/latest/data-modeling/affinity-collocation"
class=''
>Affinity Colocation</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Memory<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/memory-architecture"
class=''
>Memory Architecture</a>
</li>
<li>
<a href="/docs/latest/memory-configuration/data-regions"
class=''
>Configuring Data Regions</a>
</li>
<li>
<a href="/docs/latest/memory-configuration/eviction-policies"
class=''
>Eviction Policies</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Caches<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/configuring-caches/configuration-overview"
class=''
>Cache Configuration</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/configuring-backups"
class=''
>Configuring Partition Backups</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/atomicity-modes"
class=''
>Atomicity Modes</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/expiry-policies"
class=''
>Expiry Policy</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/on-heap-caching"
class=''
>On-Heap Caching</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/cache-groups"
class=''
>Cache Groups</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Persistence<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/persistence/native-persistence"
class=''
>Ignite Persistence</a>
</li>
<li>
<a href="/docs/latest/persistence/external-storage"
class=''
>External Storage</a>
</li>
<li>
<a href="/docs/latest/persistence/swap"
class=''
>Swapping</a>
</li>
<li>
<a href="/docs/latest/persistence/custom-cache-store"
class=''
>Implementing Custom Cache Store</a>
</li>
<li>
<a href="/docs/latest/persistence/snapshots"
class=''
>Cluster Snapshots</a>
</li>
<li>
<a href="/docs/latest/persistence/disk-compression"
class=''
>Disk Compression</a>
</li>
<li>
<a href="/docs/latest/persistence/persistence-tuning"
class=''
>Tuning Persistence</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/baseline-topology" class='' >Baseline Topology</a>
</li>
<li>
<a href="/docs/latest/cluster-states" class='' >Cluster States</a>
</li>
<li>
<a href="/docs/latest/data-rebalancing" class='' >Data Rebalancing</a>
</li>
<li>
<a href="/docs/latest/partition-loss-policy" class='' >Partition Loss Policy</a>
</li>
<li>
<a href="/docs/latest/deploying-user-code" class='' >Deploying User Code</a>
</li>
<li>
<a href="/docs/latest/peer-class-loading" class='' >Peer Class Loading</a>
</li>
<li>
<a href="/docs/latest/data-streaming" class='' >Data Streaming</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Using Key-Value Cache API<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/key-value-api/basic-cache-operations"
class=''
>Basic Cache Operations</a>
</li>
<li>
<a href="/docs/latest/key-value-api/binary-objects"
class=''
>Working with Binary Objects</a>
</li>
<li>
<a href="/docs/latest/key-value-api/using-scan-queries"
class=''
>Using Scan Queries</a>
</li>
<li>
<a href="/docs/latest/read-repair"
class=''
>Read Repair</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/key-value-api/continuous-queries" class='' >Using Continuous Queries</a>
</li>
<li>
<a href="/docs/latest/key-value-api/transactions" class='' >Performing Transactions</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with SQL<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/SQL/sql-introduction"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/SQL/schemas"
class=''
>Understanding Schemas</a>
</li>
<li>
<a href="/docs/latest/SQL/indexes"
class=''
>Defining Indexes</a>
</li>
<li>
<a href="/docs/latest/SQL/sql-api"
class=''
>Using SQL API</a>
</li>
<li>
<a href="/docs/latest/SQL/distributed-joins"
class=''
>Distributed Joins</a>
</li>
<li>
<a href="/docs/latest/SQL/sql-transactions"
class=''
>SQL Transactions</a>
</li>
<li>
<a href="/docs/latest/SQL/custom-sql-func"
class=''
>Custom SQL Functions</a>
</li>
<li>
<a href="/docs/latest/SQL/JDBC/jdbc-driver"
class=''
>JDBC Driver</a>
</li>
<li>
<a href="/docs/latest/SQL/JDBC/jdbc-client-driver"
class=''
>JDBC Client Driver</a>
</li>
<li>
<a href="/docs/latest/transactions/mvcc"
class=''
>Multiversion Concurrency Control</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Computing<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/distributed-computing/distributed-computing"
class=''
>Distributed Computing API</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/cluster-groups"
class=''
>Cluster Groups</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/executor-service"
class=''
>Executor Service</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/map-reduce"
class=''
>MapReduce API</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/load-balancing"
class=''
>Load Balancing</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/fault-tolerance"
class=''
>Fault Tolerance</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/job-scheduling"
class=''
>Job Scheduling</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/collocated-computations" class='' >Colocating Computations with Data</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with Events<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/events/listening-to-events"
class=''
>Enabling and Listenting to Events</a>
</li>
<li>
<a href="/docs/latest/events/events"
class=''
>Events</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/near-cache" class='' >Near Caches</a>
</li>
<li>
<a href="/docs/latest/platform-cache" class='' >.NET Platform Cache</a>
</li>
<li>
<a href="/docs/latest/services/services" class='' >Services</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Data Structures<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/data-structures/queue-and-set"
class=''
>Queue and Set</a>
</li>
<li>
<a href="/docs/latest/data-structures/atomic-types"
class=''
>Atomic Types</a>
</li>
<li>
<a href="/docs/latest/data-structures/countdownlatch"
class=''
>CountDownLatch</a>
</li>
<li>
<a href="/docs/latest/data-structures/atomic-sequence"
class=''
>Atomic Sequence</a>
</li>
<li>
<a href="/docs/latest/data-structures/semaphore"
class=''
>Semaphore</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Machine Learning<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/machine-learning/machine-learning"
class=''
>Machine Learning</a>
</li>
<li>
<a href="/docs/latest/machine-learning/partition-based-dataset"
class=''
>Partition Based Dataset</a>
</li>
<li>
<a href="/docs/latest/machine-learning/updating-trained-models"
class=''
>Updating Trained Models</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Classification<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/binary-classification/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/linear-svm" class=''>Linear SVM (Support Vector Machine)</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/decision-trees" class=''>Decision Trees</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/multilayer-perceptron" class=''>Multilayer Perceptron</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/logistic-regression" class=''>Logistic Regression</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/knn-classification" class=''>k-NN Classification</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/ann" class=''>ANN (Approximate Nearest Neighbor)</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/naive-bayes" class=''>Naive Bayes</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Regression<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/regression/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/regression/linear-regression" class=''>Linear Regression</a></li>
<li><a href="/docs/latest//machine-learning/regression/decision-trees-regression" class=''>Decision Trees Regression</a></li>
<li><a href="/docs/latest//machine-learning/regression/knn-regression" class=''>k-NN Regression</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/clustering/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/clustering/k-means-clustering" class=''>K-Means Clustering</a></li>
<li><a href="/docs/latest//machine-learning/clustering/gaussian-mixture" class=''>Gaussian mixture (GMM)</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/preprocessing"
class=''
>Preprocessing</a>
</li>
<li>
<button
type='button'
class='collapsed '>Model Selection<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/model-selection/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/evaluator" class=''>Evaluator</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/split-the-dataset-on-test-and-train-datasets" class=''>Split the dataset on test and train datasets</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/hyper-parameter-tuning" class=''>Hyper-parameter tuning</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/pipeline-api" class=''>Pipeline API</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/multiclass-classification"
class=''
>Multiclass Classification</a>
</li>
<li>
<button
type='button'
class='collapsed '>Ensemble Methods<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/ensemble-methods/introduction" class=''></a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/stacking" class=''>Stacking</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/baggin" class=''>Bagging</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/random-forest" class=''>Random Forest</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/gradient-boosting" class=''>Gradient Boosting</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/recommendation-systems"
class=''
>Recommendation Systems</a>
</li>
<li>
<button
type='button'
class='collapsed '>Importing Model<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/importing-model/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/importing-model/model-import-from-gxboost" class=''>Import Model from XGBoost</a></li>
<li><a href="/docs/latest//machine-learning/importing-model/model-import-from-apache-spark" class=''>Import Model from Apache Spark</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Monitoring<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/monitoring-metrics/intro"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/cluster-id"
class=''
>Cluster ID and Tag</a>
</li>
<li>
<button
type='button'
class='collapsed '>Metrics<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//monitoring-metrics/configuring-metrics" class=''>Configuring Metrics</a></li>
<li><a href="/docs/latest//monitoring-metrics/metrics" class=''>JMX Metrics</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>New Metrics System<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//monitoring-metrics/new-metrics-system" class=''>Introduction</a></li>
<li><a href="/docs/latest//monitoring-metrics/new-metrics" class=''>Metrics</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/system-views"
class=''
>System Views</a>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/tracing"
class=''
>Tracing</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/security" class='group-toggle collapsed '>Security<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/security/authentication"
class=''
>Authentication</a>
</li>
<li>
<a href="/docs/latest/security/ssl-tls"
class=''
>SSL/TLS</a>
</li>
<li>
<button
type='button'
class='collapsed '>Transparent Data Encryption<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//security/tde" class=''>Introduction</a></li>
<li><a href="/docs/latest//security/master-key-rotation" class=''>Master key rotation</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Thin Clients<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/thin-clients/getting-started-with-thin-clients"
class=''
>Thin Clients Overview</a>
</li>
<li>
<a href="/docs/latest/thin-clients/java-thin-client"
class=''
>Java Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/dotnet-thin-client"
class=''
>.NET Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/cpp-thin-client"
class=''
>C++ Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/python-thin-client"
class=''
>Python Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/php-thin-client"
class=''
>PHP Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/nodejs-thin-client"
class=''
>Node.js Thin Client</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Client Protocol<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//binary-client-protocol/binary-client-protocol" class=''>Binary Client Protocol</a></li>
<li><a href="/docs/latest//binary-client-protocol/data-format" class=''>Data Format</a></li>
<li><a href="/docs/latest//binary-client-protocol/key-value-queries" class=''>Key-Value Queries</a></li>
<li><a href="/docs/latest//binary-client-protocol/sql-and-scan-queries" class=''>SQL and Scan Queries</a></li>
<li><a href="/docs/latest//binary-client-protocol/binary-type-metadata" class=''>Binary Types Metadata</a></li>
<li><a href="/docs/latest//binary-client-protocol/cache-configuration" class=''>Cache Configuration</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>ODBC Driver<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/SQL/ODBC/odbc-driver"
class=''
>ODBC Driver</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/connection-string-dsn"
class=''
>Connection String and DSN</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/querying-modifying-data"
class=''
>Querying and Modifying Data</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/specification"
class=''
>Specification</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/data-types"
class=''
>Data Types</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/error-codes"
class=''
>Error Codes</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/restapi" class='' >REST API</a>
</li>
<li>
<a href="/docs/latest/control-script" class='' >Control Script</a>
</li>
<li>
<a href="/docs/latest/plugins" class='' >Plugins</a>
</li>
<li>
<a href="/docs/latest/sqlline" class='' >SQLLine</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Ignite for Spark<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/ignite-for-spark/overview"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/ignitecontext-and-rdd"
class=''
>IgniteContext and IgniteRDD</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/ignite-dataframe"
class=''
>Ignite DataFrame</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/installation"
class=''
>Installation</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/spark-shell"
class=''
>Test Ignite with Spark-shell</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/troubleshooting"
class=''
>Troubleshooting</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/sql-reference/sql-reference-overview" class='group-toggle collapsed '>SQL Reference<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/sql-reference/sql-conformance"
class=''
>SQL Conformance</a>
</li>
<li>
<a href="/docs/latest/sql-reference/ddl"
class=''
>Data Definition Language (DDL)</a>
</li>
<li>
<a href="/docs/latest/sql-reference/dml"
class=''
>Data Manipulation Language (DML)</a>
</li>
<li>
<a href="/docs/latest/sql-reference/transactions"
class=''
>Transactions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/operational-commands"
class=''
>Operational Commands</a>
</li>
<li>
<a href="/docs/latest/sql-reference/aggregate-functions"
class=''
>Aggregate functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/numeric-functions"
class=''
>Numeric Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/string-functions"
class=''
>String Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/date-time-functions"
class=''
>Data and Time Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/system-functions"
class=''
>System Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/data-types"
class=''
>Data Types</a>
</li>
</nav>
</li>
</nav>
<div class="left-nav__overlay"></div>
<article data-swiftype-index='true'>
<a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/sql-reference/sql-conformance.adoc" target="_blank">Edit</a>
<h1>SQL Conformance</h1>
<div class="paragraph">
<p>Apache Ignite supports most of the major features of ANSI-99 out-of-the-box. The following table shows Ignite compliance to <a href="https://en.wikipedia.org/wiki/SQL_compliance" target="_blank" rel="noopener">SQL:1999 (Core)</a>.</p>
</div>
<table class="tableblock frame-all grid-all stripes-even stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Feature ID, Name</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Support</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E011</code> Numeric data types</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E011–01</code> INTEGER and SMALLINT data types (including all spellings)</p>
</div>
<div class="paragraph">
<p><code>E011–02</code> REAL, DOUBLE PRECISON, and FLOAT data types</p>
</div>
<div class="paragraph">
<p><code>E011–05</code> Numeric comparison</p>
</div>
<div class="paragraph">
<p><code>E011–06</code> Implicit casting among the numeric data types</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E011–03</code> DECIMAL and NUMERIC data types. Fixed &lt;scale&gt; is not supported for DEC and NUMERIC, so there are violations for:</p>
</div>
<div class="paragraph">
<p>7) If a &lt;scale&gt; is omitted, then a &lt;scale&gt; of 0 (zero) is implicit (6.1 &lt;data type&gt;)</p>
</div>
<div class="paragraph">
<p>22) NUMERIC specifies the data type exact numeric, with the decimal precision and scale specified by the &lt;precision&gt; and &lt;scale&gt;.</p>
</div>
<div class="paragraph">
<p>23) DECIMAL specifies the data type exact numeric, with the decimal scale specified by the &lt;scale&gt; and the implementation-defined decimal precision equal to or greater than the value of the specified &lt;precision&gt;.</p>
</div>
<div class="paragraph">
<p><code>E011–04</code> Arithmetic operator. See issue for feature E011–03</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E021</code> Character string types</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E021–03</code> Character literals</p>
</div>
<div class="paragraph">
<p><code>E021–04</code> CHARACTER_LENGTH function</p>
</div>
<div class="paragraph">
<p><code>E021–05</code> OCTET_LENGTH function</p>
</div>
<div class="paragraph">
<p><code>E021–06</code> SUBSTRING function</p>
</div>
<div class="paragraph">
<p><code>E021–07</code> Character concatenation</p>
</div>
<div class="paragraph">
<p><code>E021–08</code> UPPER and LOWER functions</p>
</div>
<div class="paragraph">
<p><code>E021–09</code> TRIM function</p>
</div>
<div class="paragraph">
<p><code>E021–10</code> Implicit casting among the fixed-length and variable-length character string types</p>
</div>
<div class="paragraph">
<p><code>E021–11</code> POSITION function</p>
</div>
<div class="paragraph">
<p><code>E021–12</code> Character comparison</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p>E021–01 CHARACTER data type (including all its spellings).</p>
</div>
<div class="listingblock">
<div class="content">
<pre>&lt;character string type&gt; ::=
CHARACTER [ &lt;left paren&gt; &lt;length&gt; &lt;right paren&gt; ]
| CHAR [ &lt;left paren&gt; &lt;length&gt; &lt;right paren&gt; ]
| CHARACTER VARYING &lt;left paren&gt; &lt;length&gt; &lt;right paren&gt;
| CHAR VARYING &lt;left paren&gt; &lt;length&gt; &lt;right paren&gt;
| VARCHAR &lt;left paren&gt; &lt;length&gt; &lt;right paren&gt;</pre>
</div>
</div>
<div class="paragraph">
<p>&lt;length&gt; is not supported for CHARACTER and CHARACTER VARYING data type.</p>
</div>
<div class="paragraph">
<p><code>E021–02</code> CHARACTER VARYING data type (including all its spellings). See issue for feature E021–01</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E031</code> Identifiers</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E031–01</code> Delimited identifiers</p>
</div>
<div class="paragraph">
<p><code>E031–02</code> Lower case identifiers</p>
</div>
<div class="paragraph">
<p><code>E031–03</code> Trailing underscore</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E051</code> Basic query specification</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E051–01</code> SELECT DISTINCT</p>
</div>
<div class="paragraph">
<p><code>E051–04</code> GROUP BY can contain columns not in &lt;select-list&gt;</p>
</div>
<div class="paragraph">
<p><code>E051–05</code> Select list items can be renamed</p>
</div>
<div class="paragraph">
<p><code>E051–06</code> HAVING clause</p>
</div>
<div class="paragraph">
<p><code>E051–07</code> Qualified * in select list</p>
</div>
<div class="paragraph">
<p><code>E051–08</code> Correlation names in the FROM clause</p>
</div>
<div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E051–02</code> GROUP BY clause; No support for ROLLUP, CUBE, GROUPING SETS.</p>
</div>
<div class="paragraph">
<p><code>E051–09</code> Rename columns in the FROM clause. Some information about support from other products is <a href="http://modern-sql.com/feature/table-column-aliases" target="_blank" rel="noopener">here</a>.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E061</code> Basic predicates and search conditions</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E061–01</code> Comparison predicate</p>
</div>
<div class="paragraph">
<p><code>E061–02</code> BETWEEN predicate</p>
</div>
<div class="paragraph">
<p><code>E061–03</code> IN predicate with list of values</p>
</div>
<div class="paragraph">
<p><code>E061–06</code> NULL predicate</p>
</div>
<div class="paragraph">
<p><code>E061–08</code> EXISTS predicate</p>
</div>
<div class="paragraph">
<p><code>E061–09</code> Subqueries in comparison predicate</p>
</div>
<div class="paragraph">
<p><code>E061–11</code> Subqueries in IN predicate</p>
</div>
<div class="paragraph">
<p><code>E061–13</code> Correlated subqueries</p>
</div>
<div class="paragraph">
<p><code>E061–14</code> Search condition</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E061–04</code> LIKE predicate; There is support for &lt;character like predicate&gt;, but &lt;octet like predicate&gt; could not be checked because of <a href="https://issues.apache.org/jira/browse/IGNITE-7480" target="_blank" rel="noopener">this issue</a>.</p>
</div>
<div class="paragraph">
<p><code>E061–05</code> LIKE predicate: ESCAPE clause; There is support for &lt;character like predicate&gt;, but &lt;octet like predicate&gt; could not be checked because of <a href="https://issues.apache.org/jira/browse/IGNITE-7480" target="_blank" rel="noopener">this issue</a>.</p>
</div>
<div class="paragraph">
<p><code>E061–07</code> Quantified comparison predicate; Except ALL (see <a href="https://issues.apache.org/jira/browse/IGNITE-5749" target="_blank" rel="noopener">issue</a>).</p>
</div>
<div class="paragraph">
<p>Ignite does not support the following sub-feature:</p>
</div>
<div class="paragraph">
<p><code>E061–12</code> Subqueries in quantified comparison predicate.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E071</code> Basic query expressions</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E071–01</code> UNION DISTINCT table operator</p>
</div>
<div class="paragraph">
<p><code>E071–02</code> UNION ALL table operator</p>
</div>
<div class="paragraph">
<p><code>E071–03</code> EXCEPT DISTINCT table operator</p>
</div>
<div class="paragraph">
<p><code>E071–05</code> Columns combined via table operators need not have exactly the same data type</p>
</div>
<div class="paragraph">
<p><code>E071–06</code> Table operators in subqueries</p>
</div>
<div class="paragraph">
<p>Note that there is no support for non-recursive WITH clause in H2 and Ignite. According to <a href="http://www.h2database.com/html/grammar.html#with" target="_blank" rel="noopener">the H2 docs</a> there is support for recursive WITH clause, but it fails in Ignite.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">E081 Basic Privileges</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-feature:</p>
</div>
<div class="paragraph">
<p><code>E081–01</code> SELECT privilege at the table level</p>
</div>
<div class="paragraph">
<p><code>E081–02</code> DELETE privilege</p>
</div>
<div class="paragraph">
<p><code>E081–03</code> INSERT privilege at the table level</p>
</div>
<div class="paragraph">
<p><code>E081–04</code> UPDATE privilege at the table level</p>
</div>
<div class="paragraph">
<p><code>E081–05</code> UPDATE privilege at the column level</p>
</div>
<div class="paragraph">
<p><code>E081–06</code> REFERENCES privilege at the table</p>
</div>
<div class="paragraph">
<p><code>E081–07</code> REFERENCES privilege at the column</p>
</div>
<div class="paragraph">
<p><code>E081–08</code> WITH GRANT OPTION</p>
</div>
<div class="paragraph">
<p><code>E081–09</code> USAGE privilege</p>
</div>
<div class="paragraph">
<p><code>E081–10</code> EXECUTE privilege</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E091</code> Set functions</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E091–01</code> AVG</p>
</div>
<div class="paragraph">
<p><code>E091–02</code> COUNT</p>
</div>
<div class="paragraph">
<p><code>E091–03</code> MAX</p>
</div>
<div class="paragraph">
<p><code>E091–04</code> MIN</p>
</div>
<div class="paragraph">
<p><code>E091–05</code> SUM</p>
</div>
<div class="paragraph">
<p><code>E091–06</code> ALL quantifier</p>
</div>
<div class="paragraph">
<p><code>E091–07</code> DISTINCT quantifier</p>
</div>
<div class="paragraph">
<p>Note that there is no support for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>GROUPING and ANY (both in H2 and Ignite).</p>
</li>
<li>
<p>EVERY and SOME functions. There is support in H2, but fails in Ignite.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E101</code> Basic data manipulation</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E101–03</code> Searched UPDATE statement</p>
</div>
<div class="paragraph">
<p><code>E101–04</code> Searched DELETE statement</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E101–01</code> INSERT statement. No support for DEFAULT values in Ignite. Works in H2.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E111</code> Single row SELECT statement</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E121</code> Basic cursor support</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features</p>
</div>
<div class="paragraph">
<p><code>E121–01</code> DECLARE CURSOR</p>
</div>
<div class="paragraph">
<p><code>E121–02</code> ORDER BY columns need not be in select list</p>
</div>
<div class="paragraph">
<p><code>E121–03</code> Value expressions in ORDER BY clause</p>
</div>
<div class="paragraph">
<p><code>E121–04</code> OPEN statement</p>
</div>
<div class="paragraph">
<p><code>E121–06</code> Positioned UPDATE statement</p>
</div>
<div class="paragraph">
<p><code>E121–07</code> Positioned DELETE statement</p>
</div>
<div class="paragraph">
<p><code>E121–08</code> CLOSE statement</p>
</div>
<div class="paragraph">
<p><code>E121–10</code> FETCH statement: implicit NEXT</p>
</div>
<div class="paragraph">
<p><code>E121–17</code> WITH HOLD cursors</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E131</code> Null value support (nulls in lieu of values)</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E141</code> Basic integrity constraints</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-feature:</p>
</div>
<div class="paragraph">
<p><code>E141–01</code> NOT NULL constraints YES</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E141–03</code> PRIMARY KEY constraints. See <a href="https://issues.apache.org/jira/browse/IGNITE-7479" target="_blank" rel="noopener">IGNITE-7479</a></p>
</div>
<div class="paragraph">
<p><code>E141–08</code> NOT NULL inferred on PRIMARY KEY. See <a href="https://issues.apache.org/jira/browse/IGNITE-7479" target="_blank" rel="noopener">IGNITE-7479</a></p>
</div>
<div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E141–02</code> UNIQUE constraints of NOT NULL columns</p>
</div>
<div class="paragraph">
<p><code>E141–04</code> Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action</p>
</div>
<div class="paragraph">
<p><code>E141–06</code> CHECK constraints</p>
</div>
<div class="paragraph">
<p><code>E141–07</code> Column defaults</p>
</div>
<div class="paragraph">
<p><code>E141–10</code> Names in a foreign key can be specified in any order</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E151</code> Transaction support</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E151–01</code> COMMIT statement</p>
</div>
<div class="paragraph">
<p><code>E151–02</code> ROLLBACK statement</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E152</code> Basic SET TRANSACTION statement</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>E152–01</code> SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause</p>
</div>
<div class="paragraph">
<p><code>E152–02</code> SET TRANSACTION statement: READ ONLY and READ WRITE clauses</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E153</code> Updatable queries with subqueries</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E161</code> SQL comments using leading double minus</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E171</code> SQLSTATE support</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite provides partial support for this feature implementing a subset of standard error codes and introducing custom ones. A full list of errors​ supported by Ignite can be found here:</p>
</div>
<div class="paragraph">
<p><a href="/docs/latest/SQL/JDBC/jdbc-driver#error-codes">JDBC Error Codes</a></p>
</div>
<div class="paragraph">
<p><a href="/docs/latest/SQL/ODBC/error-codes">ODBC Error Codes</a></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>E182</code> Host language Binding (previously "Module Language")</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F021</code> Basic information schema</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F021–01</code> COLUMNS view</p>
</div>
<div class="paragraph">
<p><code>F021–02</code> TABLES view</p>
</div>
<div class="paragraph">
<p><code>F021–03</code> VIEWS view</p>
</div>
<div class="paragraph">
<p><code>F021–04</code> TABLE_CONSTRAINTS</p>
</div>
<div class="paragraph">
<p><code>F021–05</code> REFERENTIAL_CONSTRAINTS view</p>
</div>
<div class="paragraph">
<p><code>F021–06</code> CHECK_CONSTRAINTS view</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F031</code> Basic schema manipulation</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following feature:</p>
</div>
<div class="paragraph">
<p><code>F031–04</code> ALTER TABLE statement: ADD COLUMN clause</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-feature:</p>
</div>
<div class="paragraph">
<p><code>F031–01</code> CREATE TABLE statement to create persistent base tables.</p>
</div>
<div class="paragraph">
<p>Basic syntax is supported. 'AS' is supported in H2 but not in Ignite. No support for privileges (INSERT, SELECT, UPDATE, DELETE).</p>
</div>
<div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F031–02</code> CREATE VIEW statement</p>
</div>
<div class="paragraph">
<p><code>F031–03</code> GRANT statement</p>
</div>
<div class="paragraph">
<p><code>F031–13</code> DROP TABLE statement: RESTRICT clause</p>
</div>
<div class="paragraph">
<p><code>F031–16</code> DROP VIEW statement: RESTRICT clause</p>
</div>
<div class="paragraph">
<p><code>F031–19REVOKE</code> statement: RESTRICT clause</p>
</div>
<div class="paragraph">
<p>A <a href="/docs/latest/sql-reference/ddl" target="_blank" rel="noopener">DDL</a> is being actively developed; more features will be supported in upcoming releases.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F041</code> Basic joined table</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F041–01</code> Inner join (but not necessarily the INNER keyword)
<code>F041–02</code> INNER keyword</p>
</div>
<div class="paragraph">
<p><code>F041–03</code> LEFT OUTER JOIN</p>
</div>
<div class="paragraph">
<p><code>F041–04</code> RIGHT OUTER JOIN</p>
</div>
<div class="paragraph">
<p><code>F041–05</code> Outer joins can be nested</p>
</div>
<div class="paragraph">
<p><code>F041–07</code> The inner table in a left or right outer join can also be used in an inner join</p>
</div>
<div class="paragraph">
<p><code>F041–08</code> All comparison operators are supported (rather than just =)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F051</code> Basic date and time</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F051–04</code> Comparison predicate on DATE, TIME, and TIMESTAMP data types</p>
</div>
<div class="paragraph">
<p><code>F051–05</code> Explicit CAST between datetime types and character string types</p>
</div>
<div class="paragraph">
<p><code>F051–06</code> CURRENT_DATE</p>
</div>
<div class="paragraph">
<p><code>F051–07</code> LOCALTIME</p>
</div>
<div class="paragraph">
<p><code>F051–08</code> LOCALTIMESTAMP</p>
</div>
<div class="paragraph">
<p>Ignite provides partial support for the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F051–01</code> DATE data type (including support of DATE literal). See <a href="https://issues.apache.org/jira/browse/IGNITE-7360" target="_blank" rel="noopener">IGNITE-7360</a>.</p>
</div>
<div class="paragraph">
<p><code>F051–02</code> TIME data type (including support of TIME literal) with fractional seconds precision of at least 0. &lt;precision&gt; is not supported correctly for TIME data type. Also see <a href="https://issues.apache.org/jira/browse/IGNITE-7360" target="_blank" rel="noopener">IGNITE-7360</a>.</p>
</div>
<div class="paragraph">
<p><code>F051–03</code> TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6. &lt;precision&gt; is not supported correctly for TIME data type. Also see <a href="https://issues.apache.org/jira/browse/IGNITE-7360" target="_blank" rel="noopener">IGNITE-7360</a>.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F081</code> UNION and EXCEPT in views</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F131</code> Grouped operations</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F131–01</code> WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views</p>
</div>
<div class="paragraph">
<p><code>F131–02</code> Multiple tables supported in queries with grouped views</p>
</div>
<div class="paragraph">
<p><code>F131–03</code> Set functions supported in queries with grouped views</p>
</div>
<div class="paragraph">
<p><code>F131–04</code> Subqueries with GROUP BY and HAVING clauses and grouped views</p>
</div>
<div class="paragraph">
<p><code>F131–05</code> Single row SELECT with GROUP BY and HAVING clauses and grouped views</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F181</code> Multiple module support</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F201</code> CAST function</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F221</code> Explicit defaults</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F261</code> CASE expression</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F261–01</code> Simple CASE</p>
</div>
<div class="paragraph">
<p><code>F261–02</code> Searched CASE</p>
</div>
<div class="paragraph">
<p><code>F261–03</code> NULLIF</p>
</div>
<div class="paragraph">
<p><code>F261–04</code> COALESCE</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F311</code> Schema definition statement</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F311–01</code> CREATE SCHEMA</p>
</div>
<div class="paragraph">
<p><code>F311–02</code> CREATE TABLE for persistent base tables</p>
</div>
<div class="paragraph">
<p><code>F311–03</code> CREATE VIEW</p>
</div>
<div class="paragraph">
<p><code>F311–04</code> CREATE VIEW: WITH CHECK OPTION</p>
</div>
<div class="paragraph">
<p><code>F311–05</code> GRANT statement</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F471</code> Scalar subquery values</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F481</code> Expanded NULL predicate</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite fully supports this feature.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F501</code> Features and conformance views</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>F501–01</code> SQL_FEATURES view</p>
</div>
<div class="paragraph">
<p><code>F501–02</code> SQL_SIZING view</p>
</div>
<div class="paragraph">
<p><code>F501–03</code> SQL_LANGUAGES view</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>F812</code> Basic flagging</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support this feature.</p>
</div>
<div class="paragraph">
<p><code>S011</code> Distinct data types</p>
</div>
<div class="paragraph">
<p>Ignite does not support the following sub-feature:</p>
</div>
<div class="paragraph">
<p><code>S011–01</code> USER_DEFINED_TYPES view</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>T321</code> Basic SQL-invoked routines</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Ignite does not support the following sub-features:</p>
</div>
<div class="paragraph">
<p><code>T321–01</code> User-defined functions with no overloading</p>
</div>
<div class="paragraph">
<p><code>T321–02</code> User-defined stored procedures with no overloading</p>
</div>
<div class="paragraph">
<p><code>T321–03</code> Function invocation</p>
</div>
<div class="paragraph">
<p><code>T321–04</code> CALL statement</p>
</div>
<div class="paragraph">
<p><code>T321–05</code> RETURN statement</p>
</div>
<div class="paragraph">
<p><code>T321–06</code> ROUTINES view</p>
</div>
<div class="paragraph">
<p><code>T321–07</code> PARAMETERS view</p>
</div></div></td>
</tr>
</tbody>
</table>
<div class="copyright">
© 2020 The Apache Software Foundation.<br/>
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.
</div>
</article>
<nav class="right-nav" data-swiftype-index='false'>
<footer>
</footer>
</nav>
</section>
<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
<script>
// inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late
anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
anchors.options = {
placement: 'right',
visible: 'always'
};
</script>
<!-- load google fonts async -->
<script type="text/javascript">
WebFontConfig = {
google: { families: [ 'Open+Sans:300,400,600,700&display=swap' ] }
};
(function() {
var wf = document.createElement('script');
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})(); </script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
docsearch({
// Your apiKey and indexName will be given to you once
// we create your config
apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8',
indexName: 'apache_ignite',
// Replace inputSelector with a CSS selector
// matching your search input
inputSelector: '#search-input',
// algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
// Set debug to true to inspect the dropdown
debug: false,
});
</script>
<script type='module' src='/assets/js/index.js?1600382367' async crossorigin></script>
<script type='module' src='/assets/js/versioning.js?1600382367' async crossorigin></script>
</body>
</html>