SQL-99 and SQL-2003 features mapped to Derby
Introduction
This document shows the features as defined in SQL-99 (ANSI/ISO/IEC 9075-2-1999: for Information Technology – Database Languages – SQL – Part 2: Foundation (SQL/Foundation)) and SQL-2003 (ISO/IEC 9075-2: Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation)) and whether they are implemented in Derby.
Legend:
Yes |
The feature is supported. |
Yes* |
The feature is supported (e.g. through JDBC) but not according to the SQL standard. See explanatory comment. |
Partial |
The feature is partially supported. |
No |
The feature is not supported. |
N/A |
Does not apply. |
|
Not yet documented on this page (You may contribute). |
Map
|
|
SQL-99 Core / SQL-2003 Mandatory |
|
|
||
Feature ID |
Feature name |
SQL-99 Core |
SQL-2003 Mandatory |
Note |
||
E011 |
Numeric data types |
Yes |
Yes |
|
||
E011-01 |
INTEGER and SMALLINT data types (including all spellings) |
Yes |
Yes |
|
||
E011-02 |
REAL, DOUBLE PRECISON, and FLOAT data types |
Yes |
Yes |
|
||
E011-03 |
DECIMAL and NUMERIC data types |
Yes |
Yes |
|
||
E011-04 |
Arithmetic operators |
Yes |
Yes |
|
||
E011-05 |
Numeric comparison |
Yes |
Yes |
|
||
E011-06 |
Implicit casting among the numeric data types |
Yes |
Yes |
|
||
E021 |
Character data types |
Yes |
Yes |
|
||
E021-01 |
CHARACTER data type (including all its spellings) |
Yes |
Yes |
|
||
E021-02 |
CHARACTER VARYING data type (including all its spellings) |
Yes |
Yes |
|
||
E021-03 |
Character literals |
Yes |
Yes |
|
||
E021-04 |
CHARACTER_LENGTH function |
Yes* |
Yes* |
Called LENGTH. {fn LENGTH(...)} is according to JDBC specification. |
||
E021-05 |
OCTET_LENGTH function |
No |
No |
|
||
E021-06 |
SUBSTRING function |
Yes* |
Yes* |
Called SUBSTR. xNo FROM...FOR, just commas. {fn SUBSTRING(....)} is according to JDBC specification. |
||
E021-07 |
Character concatenation |
Yes |
Yes |
|
||
E021-08 |
UPPER and LOWER functions |
Yes |
Yes |
|
||
E021-09 |
TRIM function |
Yes (10.3) |
Yes (10.3) |
Earlier versions (10.0 - 10.2): Simple LTRIM and RTRIM. {fn LTRIM(...)} and {fn RTRIM(...)} is according to JDBC specification. |
||
E021-10 |
Implicit casting among the character data types |
Yes |
Yes |
|
||
E021-11 |
POSITION function |
Yes* |
Yes* |
Called LOCATE. {fn LOCATE(...)} is according to JDBC specification. |
||
E021-12 |
Character comparison |
Yes |
Yes |
|
||
E031 |
Identifiers |
Yes |
Yes |
|
||
E031-01 |
Delimited identifiers |
Yes |
Yes |
|
||
E031-02 |
Lower case identifiers |
Yes |
Yes |
|
||
E031-03 |
Trailing underscore |
Yes |
Yes |
|
||
E051 |
Basic query specification |
Yes |
Yes |
|
||
E051-01 |
SELECT DISTINCT |
Yes |
Yes |
|
||
E051-02 |
GROUP BY clause |
Yes |
Yes |
|
||
E051-04 |
GROUP BY can contain columns not in select-list |
Yes |
Yes |
|
||
E051-05 |
Select list items can be renamed |
Yes |
Yes |
|
||
E051-06 |
HAVING clause |
Yes |
Yes |
|
||
E051-07 |
Qualified * in select list |
Yes |
Yes |
|
||
E051-08 |
Correlation names in the FROM clause |
Yes |
Yes |
|
||
E051-09 |
Rename columns in the FROM clause |
Yes |
Yes |
|
||
E061 |
Basic predicates and search conditions |
Yes |
Yes |
|
||
E061-01 |
Comparison predicate |
Yes |
Yes |
|
||
E061-02 |
BETWEEN predicate |
Yes |
Yes |
|
||
E061-03 |
IN predicate with list of values |
Yes |
Yes |
|
||
E061-04 |
LIKE predicate |
Yes (10.3) |
Yes (10.3) |
In earlier versions (10-0 - 10.2): Direct column references in patterns was not supported. Issue DERBY-2147 |
||
E061-05 |
LIKE predicate: ESCAPE clause |
Yes (10.3) |
Yes (10.3) |
In earlier versions (10-0 - 10.2): Direct column references in escape clause was not supported. Issue DERBY-2147 |
||
E061-06 |
NULL predicate |
Yes |
Yes |
|
||
E061-07 |
Quantified comparison predicate |
Yes |
Yes |
|
||
E061-08 |
EXISTS predicate |
Yes |
Yes |
|
||
E061-09 |
Subqueries in comparison predicate |
Yes |
Yes |
|
||
E061-11 |
Subqueries in IN predicate |
Yes |
Yes |
|
||
E061-12 |
Subqueries in quantified comparison predicate |
Yes |
Yes |
|
||
E061-13 |
Correlated subqueries |
Yes |
Yes |
|
||
E061-14 |
Search condition |
Yes |
Yes |
|
||
E071 |
Basic query expressions |
Yes |
Yes |
|
||
E071-01 |
UNION DISTINCT table operator |
Yes |
Yes |
|
||
E071-02 |
UNION ALL table operator |
Yes |
Yes |
|
||
E071-03 |
EXCEPT DISTINCT table operator |
Yes (10.1) |
Yes (10.1) |
From 10.1 |
||
E071-05 |
Columns combined via table operators need not have exactly the same data type |
Yes |
Yes |
|
||
E071-06 |
Table operators in subqueries |
Yes |
Yes |
|
||
E081 |
Basic Privileges |
Partial (10.2) |
Partial (10.2) |
|
||
E081-01 |
SELECT privilege at the table level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-02 |
DELETE privilege |
Yes (10.2) |
Yes (10.2) |
|
||
E081-03 |
INSERT privilege at the table level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-04 |
UPDATE privilege at the table level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-05 |
UPDATE privilege at the column level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-06 |
REFERENCES privilege at the table level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-07 |
REFERENCES privilege at the column level |
Yes (10.2) |
Yes (10.2) |
|
||
E081-08 |
WITH GRANT OPTION |
No |
No |
|
||
E081-09 |
USAGE privilege |
No |
No |
|
||
E081-10 |
EXECUTE privilege |
Yes (10.2) |
Yes (10.2) |
|
||
E091 |
Set functions |
Yes |
Yes |
|
||
E091-01 |
AVG |
Yes |
Yes |
|
||
E091-02 |
COUNT |
Yes |
Yes |
|
||
E091-03 |
MAX |
Yes |
Yes |
|
||
E091-04 |
MIN |
Yes |
Yes |
|
||
E091-05 |
SUM |
Yes |
Yes |
|
||
E091-06 |
ALL quantifier |
Yes |
Yes |
|
||
E091-07 |
DISTINCT qualifier |
Yes |
Yes |
|
||
E101 |
Basic data manipulation |
Yes |
Yes |
|
||
E101-01 |
INSERT statement |
Yes |
Yes |
|
||
E101-03 |
Searched UPDATE statement |
Yes |
Partial |
correlation name not supported |
||
E101-04 |
Searched DELETE statement |
Yes |
Partial |
correlation name not supported |
||
E111 |
Single row select statement |
Yes |
Yes |
|
||
E121 |
Basic cursor support |
Yes* |
Yes* |
Through JDBC |
||
E121-01 |
Declare cursor |
No |
No |
|
||
E121-02 |
ORDER BY columns need not be in select list |
Yes |
Yes |
|
||
E121-03 |
Value expressions in ORDER BY clause |
Yes |
Yes |
|
||
E121-04 |
OPEN statement |
No |
No |
|
||
E121-06 |
Positioned UPDATE statement |
Yes |
Partial |
correlation name not supported |
||
E121-07 |
Positioned DELETE statement |
Yes |
Partial |
correlation name not supported |
||
E121-08 |
CLOSE statement |
No |
No |
|
||
E121-10 |
FETCH statement |
No |
No |
|
||
E121-17 |
WITH HOLD cursors |
No |
No |
|
||
E131 |
Null value support (nulls in lieu of values) |
Yes |
Yes |
|
||
E141 |
Basic integrity constraints |
Yes |
Yes |
|
||
E141-01 |
NOT NULL constraints |
Yes |
Yes |
|
||
E141-02 |
UNIQUE constraints of NOT NULL columns |
Yes |
Yes |
|
||
E141-03 |
PRIMARY KEY constraints |
Yes |
Yes |
|
||
E141-04 |
Basic FOREIGN KEY constraint with the NO ACTION default |
Yes |
Yes |
|
||
E141-06 |
CHECK constraints |
Yes |
Yes |
|
||
E141-07 |
Column defaults |
Yes |
Yes |
|
||
E141-08 |
NOT NULL inferred on PRIMARY KEY |
Yes (10.1) |
Yes (10.1) |
Implemented from 10.1. Issue DERBY-158 |
||
E141-10 |
Names in a foreign key can be specified in any order |
Yes |
Yes |
|
||
E151 |
Transaction support |
Yes |
Yes |
|
||
E151-01 |
COMMIT statement |
Yes* |
Yes* |
Through JDBC Connection.commit, ij supports COMMIT statement |
||
E151-02 |
ROLLBACK statement |
Yes* |
Yes* |
Through JDBC Connection.rollback, ij supports ROLLBACK statement |
||
E152 |
Basic SET TRANSACTION statement |
Yes*. |
Yes*. |
Se below. |
||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="af1fb66a-8fcc-47b9-bfb3-15df2b697bbe"><ac:plain-text-body><![CDATA[ |
E152-01 |
SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause |
Yes* |
Yes* |
SET [CURRENT] ISOLATION SERIALIZABLE. Connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE) is according to JDBC specification. |
]]></ac:plain-text-body></ac:structured-macro> |
E152-02 |
SET TRANSACTION statement: READ ONLY and READ WRITE clauses |
Yes* |
Yes* |
No SQL syntax. Connection.setReadWrite() is according to JDBC specification. |
||
E153 |
Updatable queries with subqueries |
No |
No |
|
||
E161 |
SQL comments using leading double minus |
Yes |
Yes |
|
||
E171 |
SQLSTATE support |
Yes |
Yes |
I think , have not checked all values) |
||
E182 |
Module language |
N/A |
No |
|
||
F021 |
Basic information schema |
No |
N/A |
Note: JDBC DatabaseMetadata is ok. |
||
F021-01 |
COLUMNS view |
No |
N/A |
|
||
F021-02 |
TABLES view |
No |
N/A |
|
||
F021-03 |
VIEWS view |
No |
N/A |
|
||
F021-04 |
TABLE_CONSTRAINTS view |
No |
N/A |
|
||
F021-05 |
REFERENTIAL_CONSTRAINTS |
No |
N/A |
|
||
F021-06 |
CHECK_CONSTRAINTS |
No |
N/A |
|
||
F031 |
Basic schema manipulation |
Yes |
Yes |
|
||
F031-01 |
CREATE TABLE statement to create persistent base tables |
Yes |
Yes |
|
||
F031-02 |
CREATE VIEW statement |
Yes |
Yes |
|
||
F031-03 |
GRANT statement |
Yes (10.2) |
Yes (10.2) |
|
||
F031-04 |
ALTER TABLE statement: ADD COLUMN clause |
Yes |
Yes |
|
||
F031-13 |
DROP TABLE statement: RESTRICT clause |
Yes (Implicit) |
Yes (Implicit) |
|
||
F031-16 |
DROP VIEW statement: RESTRICT clause |
Yes (Implicit) |
Yes (Implicit) |
|
||
F031-19 |
REVOKE statement: RESTRICT clause |
Yes (10.2) |
Yes (10.2) |
|
||
F041 |
Basic joined tables |
Yes |
Yes |
|
||
F041-01 |
Inner join (but not necessarily the INNER keyword) |
Yes |
Yes |
|
||
F041-02 |
INNER keyword |
Yes |
Yes |
|
||
F041-03 |
LEFT OUTER JOIN |
Yes |
Yes |
|
||
F041-04 |
RIGHT OUTER JOIN |
Yes |
Yes |
|
||
F041-05 |
Outer joins can be nested |
Yes |
Yes |
|
||
F041-07 |
The inner table in a left or right outer join can also be used in an inner join |
No |
No |
|
||
F041-08 |
All comparison operators are supported (rather than just =) |
Yes |
Yes |
|
||
F051 |
Basic date and time |
Yes* |
Yes* |
See below. |
||
F051-01 |
DATE data type (including DATE literal) |
Yes* |
Yes* |
DATE literal is implemented as built-in function. {d 'yyyy-mm-ff'} is according to JDBC specification. |
||
F051-02 |
TIME data type (including TIME literal) with fractional seconds precision of 0 |
Yes* |
Yes* |
TIME literal is implemented as built-in function. No precision in datatype. {t' hh:mm:ss'} is according to JDBC specification. |
||
F051-03 |
TIMESTAMP data type (including TIMESTAMP literal) with fractional seconds precision of 0 and 6 |
Yes* |
Yes* |
TIMESTAMP literal is implemented as built-in function. No precision spec in datatype. No timezone spec in datatype. {ts 'yyyy-mm-dd hh:mm:ss.f...'} is according to JDBC specification. |
||
F051-04 |
Comparison predicate on DATE, TIME, and TIMESTAMP data types |
Yes |
Yes |
|
||
F051-05 |
Explicit CAST between datetime types and character types |
Yes |
Yes |
|
||
F051-06 |
CURRENT_DATE |
Yes* |
Yes* |
No time zone in datetime value expression |
||
F051-07 |
LOCALTIME |
Yes*. |
Yes*. |
{fn CURTIME()} is according to JDBC specification. |
||
F051-08 |
LOCALTIMESTAMP |
No. |
No. |
|
||
F081 |
UNION and EXCEPT in views |
No |
No |
UNION in 10.0. I suppose EXCEPT in 10.1, but does not work when this is written |
||
F131 |
Grouped operations |
Yes |
Yes |
|
||
F131-01 |
WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views |
Yes |
Yes |
|
||
F131-02 |
Multiple tables supported in queries with grouped views |
Yes |
Yes |
|
||
F131-03 |
Set functions supported in queries with grouped views |
Yes |
Yes |
|
||
F131-04 |
Subqueries with GROUP BY and HAVING clauses and grouped views |
Yes |
Yes |
|
||
F131-05 |
Single row SELECT with GROUP BY and HAVING clauses and grouped views |
Yes |
Yes |
|
||
F181 |
Multiple module support |
No |
No |
|
||
F201 |
CAST function |
Yes |
Yes |
|
||
F221 |
Explicit defaults |
Yes |
Yes |
|
||
F261 |
CASE expression |
Yes* |
Yes* |
|
||
F261-01 |
Simple CASE |
No |
No |
|
||
F261-02 |
Searched CASE |
Yes |
Yes |
|
||
F261-03 |
NULLIF function |
Yes (10.1.3) |
Yes (10.1.3) |
Works only for CHAR types prior to 10.1.3. |
||
F261-04 |
COALESCE function |
Yes |
Yes |
|
||
F311 |
Schema definition statement |
Yes |
Yes |
|
||
F311-01 |
Create schema |
Yes |
Yes |
|
||
F311-02 |
CREATE TABLE for persistent base tables |
Yes |
Yes |
|
||
F311-03 |
CREATE VIEW |
Yes |
Yes |
|
||
F311-04 |
CREATE VIEW: WITH CHECK OPTION |
No |
No |
|
||
F311-05 |
GRANT statement |
Yes (10.2) |
Yes (10.2) |
|
||
F471 |
Scalar subquery values |
Yes |
Yes |
|
||
F481 |
Expanded NULL predicate |
Yes |
Yes |
|
||
F501 |
Features and conformance views |
No |
N/A |
|
||
F501-01 |
SQL_FEATURES view |
No |
N/A |
|
||
F501-02 |
SQL_SIZING view |
No |
N/A |
|
||
F501-03 |
SQL_LANGUAGES view |
No |
N/A |
|
||
F812 |
Basic flagging |
No |
No |
|
||
S011 |
Distinct data types |
No |
No |
|
||
S011-01 |
USER_DEFINED_TYPES view |
No |
N/A |
|
||
T321 |
Basic SQL invoked routines |
Yes |
Yes |
Language Java. Have not checked all the details |
||
T321-01 |
User-defined functions with no overloading |
Yes |
Yes |
|
||
T321-02 |
User-defined stored procedures with no overloading |
Yes |
Yes |
|
||
T321-03 |
Function invocation |
Yes |
Yes |
|
||
T321-04 |
CALL statement |
Yes |
Yes |
|
||
T321-05 |
RETURN statement |
No |
No |
|
||
T321-06 |
ROUTINES view |
No |
N/A |
|
||
T321-07 |
PARAMETERS view |
No |
N/A |
|
||
T631 |
IN predicate with one list element |
N/A |
Yes |
|
||
|
|
|
|
|
||
|
|
SQL-99 Outside Core / SQL-2003 Optional |
|
|
||
Feature ID |
Feature name |
SQL-99 Outside Core |
SQL-2003 Optional |
Note |
||
B011 |
Embedded Ada |
N/A |
No |
|
||
B012 |
Embedded C |
N/A |
No |
|
||
B013 |
Embedded COBOL |
N/A |
No |
|
||
B014 |
Embedded Fortran |
N/A |
No |
|
||
B015 |
Embedded MUMPS |
N/A |
No |
|
||
B016 |
Embedded Pascal |
N/A |
No |
|
||
B017 |
Embedded PL/I |
N/A |
No |
|
||
B021 |
Direct SQL |
N/A |
No |
|
||
B031 |
Basic dynamic SQL |
N/A |
No |
|
||
B032 |
Extended dynamic SQL |
N/A |
No |
|
||
B032-01 |
Expected "=" to follow "describe" |
N/A |
No |
|
||
B033 |
Untyped SQL-invoked function arguments |
N/A |
No |
|
||
B034 |
Dynamic specification of cursor attributes |
N/A |
No |
|
||
B041 |
Extensions to embedded SQL exception declarations |
N/A |
No |
|
||
B051 |
Enhanced execution rights |
N/A |
No |
|
||
B111 |
Module language Ada |
N/A |
No |
|
||
B112 |
Module language C |
N/A |
No |
|
||
B113 |
Module language COBOL |
N/A |
No |
|
||
B114 |
Module language Fortran |
N/A |
No |
|
||
B115 |
Module language MUMPS |
N/A |
No |
|
||
B116 |
Module language Pascal |
N/A |
No |
|
||
B117 |
Module language PL/I |
N/A |
No |
|
||
B121 |
Routine language Ada |
N/A |
No |
|
||
B122 |
Routine language C |
N/A |
No |
|
||
B123 |
Routine language COBOL |
N/A |
No |
|
||
B124 |
Routine language Fortran |
N/A |
No |
|
||
B125 |
Routine language MUMPS |
N/A |
No |
|
||
B126 |
Routine language Pascal |
N/A |
No |
|
||
B127 |
Routine language PL/I |
N/A |
No |
|
||
B128 |
Routine language SQL |
N/A |
No |
|
||
F032 |
CASCADE drop behavior |
No |
No |
|
||
F033 |
ALTER TABLE statement: DROP COLUMN clause |
Yes |
Yes |
From 10.3 |
||
F034 |
Extended REVOKE statement |
No |
No |
|||
F034-01 |
REVOKE statement performed by other than the owner of a schema object |
No |
No |
|
||
F034-02 |
REVOKE statement: GRANT OPTION FOR clause |
No |
No |
|
||
F034-03 |
REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION |
No |
No |
|
||
F052 |
Intervals and datetime arithmetic |
No |
No |
|
||
F053 |
OVERLAPS predicate |
N/A |
No |
|
||
F111 |
Isolation levels other than SERIALIZABLE |
Yes |
Yes |
|
||
F111-01 |
READ UNCOMMITTED isolation level |
Yes |
Yes |
|
||
F111-02 |
READ COMMITTED isolation level |
Yes |
Yes |
|
||
F111-03 |
REPEATABLE READ isolation level |
Yes |
Yes |
|
||
F121 |
Basic diagnostics management |
No |
No |
|
||
F121-01 |
GET DIAGNOSTICS statement |
No |
No |
|
||
F121-02 |
SET TRANSACTION statement: DIAGNOSTICS SIZE clause |
No |
No |
|
||
F171 |
Multiple schemas per user |
No |
No |
Derby does not support SQL users |
||
F191 |
Referential delete actions |
No |
No |
|
||
F222 |
INSERT statement: DEFAULT VALUES clause |
No |
No |
|
||
F231 |
Privilege tables |
No |
No |
|
||
F231-01 |
TABLE_PRIVILEGES view |
No |
No |
|
||
F231-02 |
COLUMN_PRIVILEGES view |
No |
No |
|
||
F231-03 |
USAGE_PRIVILEGES view |
No |
No |
|
||
F251 |
Domain support |
No |
No |
|
||
F262 |
Extended CASE expression |
N/A |
Yes |
From 10.11 |
||
F271 |
Compound character literals |
No |
No |
|
||
F281 |
LIKE enhancements |
Yes (10.3) |
Yes (10.3) |
In earlier versions (10-0 - 10.2): The <escape character> had to be a <value specification> |
||
F291 |
UNIQUE predicate |
No |
No |
|
||
F301 |
CORRESPONDING in query expressions |
No |
No |
|
||
F302 |
INTERSECT table operator |
Yes |
Yes |
|
||
F302-01 |
INTERSECT DISTINCT table operator |
Yes |
Yes |
|
||
F302-02 |
INTERSECT ALL table operator |
Yes |
Yes |
|
||
F304 |
EXCEPT ALL table operator |
Yes |
Yes |
|
||
F312 |
MERGE statement |
N/A |
No |
|
||
F321 |
User authorization |
No |
No |
|
||
F341 |
Usage tables |
No |
No |
|
||
F361 |
Subprogram support |
No |
No |
|
||
F381 |
Extended schema manipulation |
Partial |
Partial |
|
||
F381-01 |
ALTER TABLE statement: ALTER COLUMN clause |
Partial |
Partial |
|
||
F381-02 |
ALTER TABLE statement: ADD CONSTRAINT clause |
Partial |
Partial |
|
||
F381-03 |
ALTER TABLE statement: DROP CONSTRAINT clause |
Yes |
Yes |
|
||
F391 |
Long identifiers |
Yes |
Yes |
|
||
F392 |
Unicode escapes in identifiers |
N/A |
No |
|
||
F393 |
Unicode escapes in literals |
N/A |
No |
|
||
F401 |
Extended joined table |
Partial |
Partial |
|
||
F401-01 |
NATURAL JOIN |
Yes |
Yes |
Since 10.6 |
||
F401-02 |
FULL OUTER JOIN |
No |
No |
|
||
F401-04 |
CROSS JOIN |
Yes |
Yes |
Since 10.6 |
||
F402 |
Named column joins for LOBs, arrays, and multisets |
N/A |
Yes |
|
||
F411 |
Time zone specification |
No |
No |
|
||
F421 |
National character |
No |
No |
|
||
F431 |
Read-only scrollable cursors |
Yes* |
Yes* |
Through JDBC. (Only insensitive cursors. See T231) |
||
F431-01 |
FETCH with explicit NEXT |
No |
No |
|
||
F431-02 |
FETCH FIRST |
No |
No |
|
||
F431-03 |
FETCH LAST |
No |
No |
|
||
F431-04 |
FETCH PRIOR |
No |
No |
|
||
F431-05 |
FETCH ABSOLUTE |
No |
No |
|
||
F431-06 |
FETCH RELATIVE |
No |
No |
|
||
F441 |
Extended set function support |
No |
No |
|
||
F442 |
Mixed column references in set functions |
N/A |
No |
|
||
F451 |
Character set definition |
No |
No |
|
||
F461 |
Named character sets |
No |
No |
|
||
F491 |
Constraint management |
Yes |
Yes |
|
||
F502 |
Enhanced documentation tables |
No |
No |
|
||
F502-01 |
SQL_SIZING_PROFILES view |
No |
No |
|
||
F502-02 |
SQL_IMPLEMENTATION_INFO view |
No |
No |
|
||
F502-03 |
SQL_PACKAGES view |
No |
No |
|
||
F521 |
Assertions |
No |
No |
|
||
F531 |
Temporary tables |
Partial |
Partial |
Global tables |
||
F555 |
Enhanced seconds precision |
No |
No |
|
||
F561 |
Full value expressions |
No |
No |
|
||
F571 |
Truth value tests |
No |
No |
Due for 10.2? Issue DERBY-499 |
||
F591 |
Derived tables |
Yes |
Yes |
|
||
F611 |
Indicator data types |
No |
No |
|
||
F641 |
Row and table constructors |
Yes |
Yes |
|
||
F651 |
Catalog name qualifiers |
No |
No |
|
||
F661 |
Simple tables |
No |
No |
|
||
F671 |
Subqueries in CHECK |
No |
No |
|
||
F672 |
Retrospective check constraints |
N/A |
No |
|
||
F691 |
Collation and translation |
Partial |
Partial |
DERBY-1478 Starting Derby 10.3, user can create a database with territory based collation |
||
F692 |
Enhanced collation support |
N/A |
No |
|
||
F693 |
SQL-session and client module collations |
N/A |
No |
|
||
F695 |
Translation support |
N/A |
No |
|
||
F696 |
Additional translation documentation |
N/A |
No |
|
||
F701 |
Referential update actions |
Partial |
Partial |
|
||
F711 |
ALTER domain |
No |
No |
|
||
F721 |
Deferrable constraints |
Partial |
Partial |
From 10.11. Deferrable NOT NULL constraints are not supported. |
||
F731 |
INSERT column privileges |
No |
No |
|
||
F741 |
Referential MATCH types |
No |
No |
|
||
F751 |
View CHECK enhancements |
No |
No |
|
||
F761 |
Session management |
No |
No |
|
||
F771 |
Connection management |
No |
No |
|
||
F781 |
Self-referencing operations |
Yes |
Yes |
|
||
F791 |
Insensitive cursors |
Yes* |
Yes* |
Through JDBC |
||
F801 |
Full set function |
Partial |
Partial |
DISTINCT in more than one aggregate function will not work, but SELECT DISTINCT with DISTINCT in one aggregate function will work. |
||
F811 |
Extended flagging |
No |
N/A |
|
||
F813 |
Extended flagging – Part 1, Subclause 8.5, "SQL flagger": With "level of flagging" specified to be Core SQL Flagging and "extent of checking" specified to be Catalog Lookup |
No |
No |
|
||
F821 |
Local table references |
No |
No |
|
||
F831 |
Full cursor update |
Partial |
Partial |
|
||
F831-01 |
Updatable scrollable cursors |
Partial (10.2) |
Partial (10.2) |
Since 10.2: Insensitive result set cursors (Sensitive: See T231) |
||
F831-02 |
Updatable ordered cursors |
No |
No |
|
||
S023 |
Basic structured types |
No |
No |
|
||
S024 |
Enhanced structured types |
No |
No |
|
||
S025 |
Final structured types |
N/A |
No |
|
||
S026 |
Self-referencing structured types |
N/A |
No |
|
||
S027 |
Create method by specific method name |
N/A |
No |
|
||
S028 |
Permutable UDT options list |
N/A |
No |
|
||
S041 |
Basic reference types |
No |
No |
|
||
S043 |
Enhanced reference types |
No |
No |
|
||
S051 |
Create table of type |
No |
No |
|
||
S071 |
SQL paths in function and type name resolution |
No |
No |
|
||
S081 |
Subtables |
No |
No |
|
||
S091 |
Basic array support |
No |
No |
|
||
S091-01 |
Arrays of built-in data types |
No |
No |
|
||
S091-02 |
Arrays of distinct types |
No |
No |
|
||
S091-03 |
Array expressions |
No |
No |
|
||
S092 |
Arrays of user-defined types |
No |
No |
|
||
S094 |
Arrays of reference types |
No |
No |
|
||
S095 |
Array constructors by query |
N/A |
No |
|
||
S096 |
Optional array bounds |
N/A |
No |
|
||
S097 |
Array element assignment |
N/A |
No |
|
||
S111 |
ONLY in query expressions |
No |
No |
|
||
S151 |
Type predicate |
No |
No |
|
||
S161 |
Subtype treatment |
No |
No |
|
||
S162 |
Subtype treatment for references |
N/A |
No |
|
||
S201 |
SQL-invoked routines on arrays |
No |
No |
|
||
S201-01 |
Array parameters |
No |
No |
|
||
S201-02 |
Array as result type of functions |
No |
No |
|
||
S202 |
SQL-invoked routines on multisets |
N/A |
No |
|
||
S211 |
User-defined cast functions |
No |
No |
|
||
S231 |
Structured type locators |
No |
No |
|
||
S232 |
Array locators |
No |
No |
|
||
S233 |
Multiset locators |
N/A |
No |
|
||
S241 |
Transform functions |
No |
No |
|
||
S242 |
Alter transform statement |
N/A |
No |
|
||
S251 |
User-defined orderings |
No |
No |
|
||
S261 |
Specific type method |
No |
No |
|
||
S271 |
Basic multiset support |
N/A |
No |
|
||
S272 |
Multisets of user-defined types |
N/A |
No |
|
||
S274 |
Multisets of reference types |
N/A |
No |
|
||
S275 |
Advanced multiset support |
N/A |
No |
|
||
S281 |
Nested collection types |
N/A |
No |
|
||
S291 |
Unique constraint on entire row |
N/A |
No |
|
||
T011 |
Timestamp in Information Schema |
No |
No |
|
||
T031 |
BOOLEAN data type |
Yes |
Yes |
Since 10.7. |
||
T041 |
Basic LOB data type support |
Yes |
Yes |
|
||
T041-01 |
BLOB data type – Subclause 5.2, "<token> and <separator>": The <reserved word>s BINARY, BLOB, LARGE, and OBJECT – Subclause 5.3, "<literal>": <binary string literal> – Subclause 6.1, "<data type>": The BINARY LARGE OBJECT data type – Subclause 6.28, "<string value expression>": For values of type BINARY LARGE OBJECT – Subclause 13.6, "Data type correspondences": Type correspondences for BINARY LARGE OBJECT for all supported languages |
Yes |
Yes |
|
||
T041-02 |
CLOB data type – Subclause 5.2, "<token> and <separator>": The <reserved word>s CHARACTER, CLOB, LARGE, and OBJECT – Subclause 6.1, "<data type>": The CHARACTER LARGE OBJECT data type – Subclause 6.28, "<string value expression>": For values of type CHARACTER LARGE OBJECT – Subclause 13.6, "Data type correspondences": Type correspondences for CHARACTER LARGE OBJECT for all supported languages – The implicit casting among the fixed-length and variable-length character string types supported by subfeature E021-10 is extended to support the character large object type |
Yes |
Yes |
|
||
T041-03 |
POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types – Subclause 6.27, "<numeric value function>": The <position expression> for expressions of type BINARY LARGE OBJECT and CHARACTER LARGE OBJECT – Subclause 6.27, "<numeric value function>": The <char length expression> for expressions of type CHARACTER LARGE OBJECT – Subclause 6.27, "<numeric value function>": The <octet length expression> for expressions of type BINARY LARGE OBJECT and CHARACTER LARGE OBJECT – Subclause 6.29, "<string value function>": The <fold> function for expressions of type CHARACTER LARGE OBJECT – Subclause 6.29, "<string value function>": The <trim function> for expressions of type CHARACTER LARGE OBJECT – Subclause 6.29, "<string value function>": The <blob trim function> – Subclause 6.29, "<string value function>": The <character substring function> for expressions of type CHARACTER LARGE OBJECT – Subclause 6.29, "<string value function>": The <blob substring function> |
Yes* |
Yes* |
Not standard SQL syntax. See notes on features E021-04, E021-06, E021-09 and E021-11 |
||
T041-04 |
Concatenation of LOB data types – Subclause 6.28, "<string value expression>": The <concatenation> expression for expressions of type CHARACTER LARGE OBJECT – Subclause 6.28, "<string value expression>": The <blob concatenation> expression |
Yes |
Yes |
|
||
T041-05 |
LOB locator: non-holdable – Subclause 13.3, "<externally-invoked procedure>": <locator indication> – Subclause 14.14, "<free locator statement>" |
No |
No |
|
||
T042 |
Extended LOB data type support |
Partial |
Partial |
CAST and string value functions implemented. No comparision or ordering. |
||
T051 |
Row types |
No |
No |
|
||
T052 |
MAX and MIN for row types |
N/A |
No |
|
||
T053 |
Explicit aliases for all-fields reference |
N/A |
No |
|
||
T061 |
UCS support |
N/A |
No |
|
||
T071 |
BIGINT data type |
N/A |
Yes |
|
||
T111 |
Updatable joins, unions, and columns |
No |
No |
|
||
T121 |
WITH (excluding RECURSIVE) in query expression |
No |
No |
|
||
T122 |
WITH (excluding RECURSIVE) in subquery |
N/A |
No |
|
||
T131 |
Recursive query |
No |
No |
|
||
T132 |
Recursive query in subquery |
N/A |
No |
|
||
T141 |
SIMILAR predicate |
No |
No |
|
||
T151 |
DISTINCT predicate |
No |
No |
|
||
T152 |
DISTINCT predicate with negation |
N/A |
No |
|
||
T171 |
LIKE clause in table definition |
No |
No |
|
||
T172 |
AS subquery clause in table definition |
N/A |
No |
|
||
T173 |
Extended LIKE clause in table definition |
N/A |
No |
|
||
T174 |
Identity columns |
N/A |
Yes* |
MAXVALUE and CYCLE not supported. Deviation from standard: A comma (",") is required before INCREMENT. |
||
T175 |
Generated columns |
N/A |
Yes |
Since 10.5 |
||
T176 |
Sequence generator support |
N/A |
Yes* |
ALTER SEQUENCE not supported. Only one NEXT VALUE FOR clause per sequence in each statement (DERBY-4513). |
||
T191 |
Referential action RESTRICT |
Yes |
Yes |
|
||
T201 |
Comparable data types for referential constraints |
No |
No |
|
||
T211 |
Basic trigger capability |
Yes* |
Yes* |
10.2 and earlier: Need to specify non standard MODE DB2SQL (see DERBY-1770). Also, the REFERENCING part is not quite compliant. The optional ROW keyword is not allowed, and NEW TABLE/OLD TABLE must be written NEW_TABLE/OLD_TABLE |
||
T211-01 |
Triggers activated on UPDATE, INSERT, or DELETE of one base table. |
Yes |
Yes |
|
||
T211-02 |
BEFORE triggers |
Yes* |
Yes* |
Need to specify non-standard ON CASCADE BEFORE. Before triggers cannot have INSERT, UPDATE or DELETE statements as their action. |
||
T211-03 |
AFTER triggers |
Yes |
Yes |
|
||
T211-04 |
FOR EACH ROW triggers |
Yes |
Yes |
|
||
T211-05 |
Ability to specify a search condition that shall be True before the trigger is invoked. |
No |
No |
|
||
T211-06 |
Support for run-time rules for the interaction of triggers and constraints. |
No |
No |
|
||
T211-07 |
TRIGGER privilege |
Yes (10.2) |
Yes (10.2) |
|
||
T211-08 |
Multiple triggers for the same event are executed in the order in which they were created in the catalog. |
Yes |
Yes |
I think.... |
||
T212 |
Enhanced trigger capability |
Yes |
Yes |
|
||
T231 |
Sensitive cursors |
No |
No |
|
||
T241 |
START TRANSACTION statement |
No |
No |
|
||
T251 |
SET TRANSACTION statement: LOCAL option |
No |
No |
|
||
T261 |
Chained transactions |
No |
No |
|
||
T271 |
Savepoints |
Yes |
Yes |
|
||
T272 |
Enhanced savepoint management |
N/A |
No |
|
||
T281 |
SELECT privilege with column granularity |
Yes (10.2) |
Yes (10.2) |
|
||
T301 |
Functional dependencies |
No |
No |
|
||
T312 |
OVERLAY function |
No |
No |
|
||
T322 |
Overloading of SQL-invoked functions and procedures |
|
|
|
||
T323 |
Explicit security for external routines |
Yes |
Yes |
From 10.7 |
||
T324 |
Explicit security for SQL routines |
N/A |
No |
|
||
T325 |
Qualified SQL parameter references |
N/A |
No |
|
||
T326 |
Table functions |
N/A |
Partial |
|
||
T331 |
Basic roles |
Partial |
Partial |
|
||
T332 |
Extended roles |
Partial |
Partial |
Only CURRENT_ROLE |
||
T351 |
Bracketed SQL comments (/*...*/ comments) |
Yes |
Yes |
Ready for release 10.4 |
||
T431 |
Extended grouping capabilities |
|
Partial |
Partial support for GROUP BY ROLLUP since 10.6 |
||
T432 |
Nested and concatenated GROUPING SETS |
N/A |
No |
|
||
T433 |
Multiargument GROUPING function |
N/A |
No |
|
||
T434 |
GROUP BY DISTINCT |
N/A |
No |
|
||
T441 |
ABS and MOD functions |
Yes |
Yes |
|
||
T461 |
Symmetric BETWEEN predicate |
No |
No |
|
||
T471 |
Result sets return value |
No |
No |
|
||
T491 |
LATERAL derived table |
No |
No |
|
||
T501 |
Enhanced EXISTS predicate |
Yes |
Yes |
Since 10.9 |
||
T511 |
Transaction counts |
No |
No |
|
||
T541 |
Updatable table references |
No |
N/A |
|
||
T551 |
Optional key words for default syntax |
No |
No |
|
||
T561 |
Holdable locators |
No |
No |
|
||
T571 |
Array-returning external SQL-invoked functions |
No |
No |
|
||
T572 |
Multiset-returning external SQL-invoked functions |
N/A |
No |
|
||
T581 |
Regular expression substring function |
No |
No |
|
||
T591 |
UNIQUE constraints of possibly null columns |
Yes (10.4) |
Yes (10.4) |
|
||
T601 |
Local cursor references |
No |
No |
|
||
T611 |
Elementary OLAP operations |
N/A |
Partial |
Partial support for ROW_NUMBER since 10.4 |
||
T612 |
Advanced OLAP operations |
N/A |
No |
|
||
T613 |
Sampling |
N/A |
No |
|
||
T621 |
Enhanced numeric functions |
N/A |
No |
|
||
T641 |
Multiple column assignment |
N/A |
No |
|
||
T651 |
SQL-schema statements in SQL routines |
No |
No |
|
||
T652 |
SQL-dynamic statements in SQL routines |
No |
No |
|
||
T653 |
SQL-schema statements in external routines |
No |
No |
|
||
T654 |
SQL-dynamic statements in external routines |
No |
No |
|
||
T655 |
Cyclically dependent routines |
No |
No |
|