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 Lower case identifiers | ||
E031-03 Trailing underscore | ||
E051 Basic query specification | ||
E051-01 SELECT DISTINCT | ||
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-08 WITH GRANT OPTION | ||
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-01 DECLARE CURSOR | ||
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-01 SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause | ||
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-03 LEFT OUTER JOIN | ||
F041-04 RIGHT OUTER JOIN | ||
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-06 CURRENT_DATE | ||
F051-07 LOCALTIME | ||
F051-08 LOCALTIMESTAMP | ||
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-01 CREATE SCHEMA | ||
F311-02 CREATE TABLE for persistent base tables (within CREATE SCHEMA) | ||
F311-03 CREATE VIEW (within CREATE SCHEMA) | ||
F311-04 CREATE VIEW: WITH CHECK OPTION (within CREATE SCHEMA) | ||
F311-05 GRANT STATEMENT (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 |
T434 | GROUP BY DISTINCT |
T441 | ABS and MOD functions |
T461 | Symmetric BETWEEN predicate |
T551 | Optional key words for default syntax |
T621 | Enhanced numeric functions |