Compliance to SQL Standard

This section lists the parts of the current SQL standard (ISO/IEC 9075:2008) supported by Exasol. The SQL standard distinguishes between mandatory and optional features.

SQL 2008 Standard Mandatory Features

The following table lists all of the mandatory features fully and partially supported by Exasol.

Features Exasol - Fully Supported Exasol- Partially supported
E011 Numeric data types  
E011-01 INTEGER and SMALLINT data types  
E011-02 REAL, DOUBLE PRECISION and FLOAT data types  
E011-03 DECIMAL and NUMERIC data types  
E011-04 Arithmetic operators  
E011-05 Numeric comparison  
E011-06 Implicit casting among numeric data types  
E021 Character string types  
E021-01 CHARACTER data type  
E021-02 CHARACTER VARYING data type  
E021-03 Character literals  
E021-04 CHARACTER_LENGTH function  
E021-05 OCTET_LENGTH function  
E021-06 SUBSTRING function  
E021-07 Character concatenation  
E021-08 UPPER and LOWER function  
E021-09 TRIM function  
E021-10 Implicit casting among the fixed-length and variable-length character string types  
E021-11 POSITION function  
E021-12 Character comparison  
E031 Identifiers  
E031-01 Delimited identifiers  
E031-02 lowercase identifiers  
E031-03 Trailing underscore  
E051 Basic query specification  
E051-02 GROUP BY clause  
E051-04 GROUP BY can contain columns not in <select list>  
E051-05 Select list items can be renamed  
E051-06 HAVING clause  
E051-07 Qualified * in select list  
E051-08 Correlation names in the FROM clause  
E051-09 Rename columns in the FROM clause  
E061 Basic predicates and search conditions  
E061-01 Comparison predicate  
E061-02 BETWEEN predicate  
E061-03 IN predicate with list of values  
E061-04 LIKE predicate  
E061-05 LIKE predicate: ESCAPE clause  
E061-06 NULL predicate  
E061-07 Quantified comparison predicate    
E061-08 EXISTS predicate  
E061-09 Subqueries in comparison predicate  
E061-11 Subqueries in IN predicate  
E061-12 Subqueries in quantified comparison predicate    
E061-13 Correlated Subqueries  
E061-14 Search condition  
E071 Basic query expressions  
E071-01 UNION DISTINCT table operator  
E071-02 UNION ALL table operator  
E071-03 EXCEPT DISTINCT table operator  
E071-05 Columns combined via table operators need not have exactly the same data type  
E071-06 Table operators in subqueries  
E081 Basic privileges  
E081-01 SELECT privilege at the table level  
E081-02 DELETE privilege  
E081-03 INSERT privilege at the table level  
E081-04 UPDATE privilege at the table level  
E081-05 UPDATE privilege at the column level    
E081-06 REFERENCES privilege at the table level  
E081-07 REFERENCES privilege at the column level    
E081-09 USAGE privilege    
E081-10 EXECUTE privilege  
E091 Set functions  
E091-01 AVG  
E091-02 COUNT  
E091-03 MAX  
E091-04 MIN  
E091-05 SUM  
E091-06 ALL quantifier  
E091-07 DISTINCT quantifier  
E101 Basic data manipulation  
E101-01 INSERT statement  
E101-03 Searched UPDATE statement  
E101-04 Searched DELETE statement  
E111 Single row SELECT statement    
E121 Basic cursor support    
E121-02 ORDER BY columns need not be in select list    
E121-03 Value expressions in ORDER BY clause    
E121-04 OPEN statement    
E121-06 Positioned UPDATE statement    
E121-07 Positioned DELETE statement    
E121-08 CLOSE statement    
E121-10 FETCH statement: implicit NEXT    
E121-17 WITH HOLD cursors    
E131 Null value support (nulls in lieu of values)  
E141 Basic integrity constraints  
E141-01 NOT NULL constraint  
E141-02 UNIQUE constraints of NOT NULL columns    
E141-03 PRIMARY KEY constraint  
E141-04 Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action.  
E141-06 CHECK constraint    
E141-07 Column defaults  
E141-08 NOT NULL inferred on PRIMARY KEY  
E141-10 Names in a foreign key can be specified in any order    
E151 Transaction support  
E151-01 COMMIT statement  
E151-02 ROLLBACK statement  
E152 Basic SET TRANSACTION statement    
E152-02 SET TRANSACTION statement: READ ONLY and READ WRITE clauses    
E153 Updatable queries with subqueries    
E161 SQL comments using leading double minus  
E171 SQLSTATE support    
E182 Module language    
F031 Basic schema manipulation  
F031-01 CREATE TABLE statement to create persistent base tables  
F031-02 CREATE VIEW statement  
F031-03 GRANT statement  
F031-04 ALTER TABLE statement: ADD COLUMN clause  
F031-13 DROP TABLE statement: RESTRICT clause  
F031-16 DROP VIEW statement: RESTRICT clause  
F031-19 REVOKE statement: RESTRICT clause  
F041 Basic joined table  
F041-01 Inner join (but not necessarily the INNER keyword)  
F041-02 INNER keyword  
F041-05 Outer joins can be nested  
F041-07 The inner table in a left or right outer join can also be used in an inner join  
F041-08 All comparison operators are supported (rather than just =)    
F051 Basic date and time  
F051-01 DATE data type (including support of DATE literal)  
F051-02 TIME data type (including the support of TIME literal) with fractional seconds precision of at least 0    
F051-03 TIMESTAMP data type (including the support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6  
F051-04 Comparison predicate on DATE, TIME and TIMESTAMP data types  
F051-05 Explicit CAST between datetime types and character string types  
F051-07 LOCALTIME    
F081 UNION and EXCEPT in views  
F131 Grouped operations  
F131-01 WHERE, GROUP BY and HAVING clauses supported in queries with grouped views  
F131-02 Multiple tables supported in queries with grouped views  
F131-03 Set functions supported in queries with grouped views  
F131-04 Subqueries with GROUP BY and HAVING clauses and grouped views  
F131-05 Single row SELECT with GROUP BY and HAVING clauses and grouped views    
F181 Multiple module support  
F201 CAST function  
F221 Explicit defaults  
F261 CASE expression  
F261-01 Simple CASE  
F261-02 Searched CASE  
F261-03 NULLIF  
F261-04 COALESCE  
F311 Schema definition statement  
F311-02 CREATE TABLE for persistent base tables (within CREATE SCHEMA)    
F311-03 CREATE VIEW (within CREATE SCHEMA)    
F471 Scalar subquery values  
F481 Expanded NULL predicate  
F812 Basic flagging    
S011 Distinct data types    
T321 Basic SQL-invoked routines  
T321-01 User-defined functions with no overloading  
T321-02 User-defined stored procedures with no overloading    
T321-03 Function invocation  
T321-04 CALL statement    
T321-05 RETURN statement  
T631 IN predicate with one list element  

SQL 2008 Standard Optional Features

The following table lists the optional features supported by Exasol.

Feature ID Feature
F033 ALTER TABLE statement: DROP COLUMN clause
F052 Intervals and datetime arithmetic
F171 Multiple schemas per user
F222 INSERT statement: DEFAULT VALUES clause
F302-01 INTERSECT DISTINCT table operator
F312 MERGE statement
F321 User authorization
F381 Extended schema manipulation
F381-01 ALTER TABLE statement: ALTER COLUMN clause
F381-02 ALTER TABLE statement: ADD CONSTRAINT clause
F381-03 ALTER TABLE statement: DROP CONSTRAINT clause
F391 Long identifiers
F401-02 Extended joined table: FULL OUTER JOIN
F401-04 Extended joined table: CROSS JOIN
F641 Row and table constructors
T031 BOOLEAN data type
T121 WITH (excluding RECURSIVE) in query expression
T171 LIKE clause in table definition
T172 AS subquery clause in table definition
T173 Extended LIKE clause in table definition
T174 Identity columns
T331 Basic roles
T351 Bracketed SQL comments (/* ... */ comments)
T431 Extended grouping capabilities
T432 Nested and concatenated GROUPING SETS
T433 Multiargument GROUPING function
T441 ABS and MOD functions
T461 Symmetric BETWEEN predicate
T551 Optional key words for default syntax
T621 Enhanced numeric functions