| B011 |
Embedded Ada |
+ |
+ |
+ |
+ |
+ |
|
| B012 |
Embedded C |
+ |
+ |
+ |
+ |
+ |
|
| B013 |
Embedded COBOL |
+ |
+ |
+ |
+ |
+ |
|
| B014 |
Embedded Fortran |
+ |
+ |
+ |
+ |
+ |
|
| B015 |
Embedded MUMPS |
− |
− |
− |
− |
− |
|
| B016 |
Embedded Pascal |
+ |
+ |
+ |
+ |
+ |
|
| B017 |
Embedded PL/I |
− |
− |
− |
− |
− |
|
| B021 |
Direct SQL |
+ |
+ |
+ |
+ |
+ |
|
| B031 |
Basic dynamic SQL |
* |
* |
* |
* |
* |
Not all standard features are supported |
| B032 |
Extended dynamic SQL |
− |
− |
− |
− |
− |
|
| B032-01 |
|
− |
− |
|
|
|
|
| B033 |
Untyped SQL-invoked function arguments |
− |
− |
− |
− |
− |
|
| B034 |
Dynamic specification of cursor attributes |
− |
− |
− |
− |
− |
|
| B041 |
Extensions to embedded SQL exception declarations |
− |
− |
− |
− |
− |
|
| B051 |
Enhanced execution rights |
− |
− |
− |
− |
− |
|
| B111 |
Module language Ada |
− |
− |
− |
− |
− |
|
| B112 |
Module language C |
− |
− |
− |
− |
− |
|
| B113 |
Module language COBOL |
− |
− |
− |
− |
− |
|
| B114 |
Module language Fortran |
− |
− |
− |
− |
− |
|
| B115 |
Module language MUMPS |
− |
− |
− |
− |
− |
|
| B116 |
Module language Pascal |
− |
− |
− |
− |
− |
|
| B117 |
Module language PL/I |
− |
− |
− |
− |
− |
|
| B121 |
Routine language Ada |
− |
− |
− |
− |
+ |
|
| B122 |
Routine language C |
+ |
+ |
+ |
+ |
+ |
|
| B123 |
Routine language COBOL |
− |
− |
− |
− |
+ |
|
| B124 |
Routine language Fortran |
− |
− |
− |
− |
+ |
|
| B125 |
Routine language MUMPS |
− |
− |
− |
− |
+ |
|
| B126 |
Routine language Pascal |
+ |
+ |
+ |
+ |
+ |
|
| B127 |
Routine language PL/I |
− |
− |
− |
− |
+ |
|
| B128 |
Routine language SQL |
+ |
+ |
+ |
+ |
+ |
|
| F032 |
CASCADE drop behavior |
− |
− |
− |
− |
− |
|
| F033 |
ALTER TABLE statement:
DROP COLUMN clause |
+ |
+ |
+ |
+ |
+ |
|
| F034 |
Extended REVOKE statement |
* |
* |
* |
* |
* |
REVOKE CASCADE is not supported |
| F034-01 |
REVOKE statement performed by other than the owner of a schema object |
+ |
+ |
+ |
+ |
+ |
|
| F034-02 |
REVOKE statement:
GRANT OPTION FOR clause |
+ |
+ |
+ |
+ |
+ |
|
| F034-03 |
REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION |
? |
? |
? |
? |
? |
|
| F052 |
Intervals and datetime arithmetic |
* |
* |
* |
* |
* |
Intervals are not supported |
| F053 |
OVERLAPS predicate |
− |
− |
− |
− |
− |
|
| F111 |
Isolation levels other than SERIALIZABLE |
* |
* |
* |
* |
* |
|
| F111-01 |
READ UNCOMMITTED isolation level |
− |
− |
− |
− |
− |
|
| F111-02 |
READ COMMITTED isolation level |
+ |
+ |
+ |
+ |
+ |
|
| F111-03 |
REPEATABLE READ isolation level |
+ |
+ |
+ |
+ |
+ |
Available as SNAPSHOT |
| F121 |
Basic diagnostics management |
− |
− |
− |
− |
− |
|
| F121-01 |
GET DIAGNOSTICS statement |
− |
− |
− |
− |
− |
|
| F121-02 |
SET TRANSACTION statement: DIAGNOSTICS SIZE clause |
− |
− |
− |
− |
− |
|
| F171 |
Multiple schemas per user |
− |
− |
− |
− |
− |
|
| F191 |
Referential delete actions |
+ |
+ |
+ |
+ |
+ |
|
| F222 |
INSERT statement:
DEFAULT VALUES clause |
− |
− |
+ |
+ |
+ |
|
| F231 |
Privilege tables |
− |
− |
− |
− |
− |
|
| F231-01 |
TABLE_PRIVILEGES view |
− |
− |
− |
− |
− |
|
| F231-02 |
COLUMN_PRIVILEGES view |
− |
− |
− |
− |
− |
|
| F231-03 |
USAGE_PRIVILEGES view |
− |
− |
− |
− |
− |
|
| F251 |
Domain support |
+ |
+ |
+ |
+ |
+ |
|
| F262 |
Extended CASE expression |
− |
− |
− |
− |
− |
|
| F263 |
Comma-separated predicates in simple CASE expression |
− |
− |
− |
− |
− |
|
| F271 |
Compound character literals |
− |
− |
− |
− |
− |
|
| F281 |
LIKE enhancements |
+ |
+ |
+ |
+ |
+ |
|
| F291 |
UNIQUE predicate |
− |
− |
|
− |
− |
|
| F301 |
CORRESPONDING in query expressions |
− |
− |
− |
− |
− |
|
| F302 |
INTERSECT table operator |
− |
− |
− |
− |
− |
|
| F302-01 |
INTERSECT DISTINCT table operator |
− |
− |
− |
− |
− |
|
| F302-02 |
INTERSECT ALL table operator |
− |
− |
− |
− |
− |
|
| F304 |
EXCEPT ALL table operator |
− |
− |
− |
− |
− |
|
| F312 |
MERGE statement |
− |
− |
+ |
+ |
+ |
|
| F321 |
User authorization |
* |
* |
* |
* |
* |
Only CURRENT_USER is supported |
| F341 |
Usage tables |
? |
? |
? |
? |
? |
|
| F361 |
Subprogram support |
? |
? |
? |
? |
? |
|
| 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 |
* |
* |
* |
* |
* |
Maximum identifier length is equal to 31 |
| F392 |
Unicode escapes in identifiers |
− |
− |
− |
− |
− |
|
| F393 |
Unicode escapes in literals |
− |
− |
− |
− |
− |
|
| F401 |
Extended joined table |
* |
* |
+ |
+ |
+ |
|
| F401-01 |
NATURAL JOIN |
− |
− |
+ |
+ |
+ |
|
| F401-02 |
FULL OUTER JOIN |
+ |
+ |
+ |
+ |
+ |
|
| F401-04 |
CROSS JOIN |
− |
+ |
+ |
+ |
+ |
|
| F402 |
Named column joins for LOBs, arrays, and multisets |
− |
− |
− |
− |
− |
|
| F411 |
Time zone specification |
− |
− |
− |
− |
− |
|
| F421 |
National character |
* |
* |
* |
* |
* |
Neither national string literals nor NCHAR VARYING datatype are supported |
| F431 |
Read-only scrollable cursors |
− |
− |
− |
− |
+ |
|
| F431-01 |
FETCH with explicit NEXT |
− |
− |
− |
− |
+ |
|
| F431-02 |
FETCH FIRST |
− |
− |
− |
− |
+ |
|
| F431-03 |
FETCH LAST |
− |
− |
− |
− |
+ |
|
| F431-04 |
FETCH PRIOR |
− |
− |
− |
− |
+ |
|
| F431-05 |
FETCH ABSOLUTE |
− |
− |
− |
− |
+ |
|
| F431-06 |
FETCH RELATIVE |
− |
− |
− |
− |
+ |
|
| F441 |
Extended set function support |
+ |
+ |
+ |
+ |
+ |
|
| F442 |
Mixed column references in set functions |
+ |
+ |
+ |
+ |
+ |
|
| F451 |
Character set definition |
− |
− |
− |
− |
− |
|
| F461 |
Named character sets |
+ |
+ |
+ |
+ |
+ |
|
| F491 |
Constraint management |
+ |
+ |
+ |
+ |
+ |
|
| F502 |
Enhanced documentation tables |
− |
− |
− |
− |
− |
|
| F502-01 |
SQL_SIZING_PROFILES view |
− |
− |
− |
− |
− |
|
| F502-02 |
SQL_IMPLEMENTATION_INFO view |
− |
− |
− |
− |
− |
|
| F502-03 |
SQL_PACKAGES view |
− |
− |
− |
− |
− |
|
| F521 |
Assertions |
− |
− |
− |
− |
− |
|
| F531 |
Temporary tables |
− |
− |
* |
* |
* |
Only global temporary tables are supported |
| F555 |
Enhanced seconds precision |
* |
* |
* |
* |
* |
Maximum supported precision is equal to 3, precision in datatype declarations are not supported |
| F561 |
Full value expressions |
+ |
+ |
+ |
+ |
+ |
|
| F571 |
Truth value tests |
− |
− |
− |
− |
+ |
|
| F591 |
Derived tables |
− |
+ |
+ |
+ |
+ |
|
| F611 |
Indicator data types |
− |
− |
− |
− |
− |
|
| F641 |
Row and table constructors |
− |
− |
− |
− |
− |
|
| F651 |
Catalog name qualifiers |
− |
− |
− |
− |
− |
|
| F661 |
Simple tables |
− |
− |
− |
− |
− |
|
| F671 |
Subqueries in CHECK |
+ |
+ |
+ |
+ |
+ |
|
| F672 |
Retrospective check constraints |
+ |
+ |
+ |
+ |
+ |
|
| F691 |
Collation and translation |
* |
* |
* |
+ |
+ |
Prior to Firebird 2.5, CREATE/DROP COLLATION was not supported |
| F692 |
Enhanced collation support |
+ |
+ |
+ |
+ |
+ |
|
| F693 |
SQL-session and client module collations |
− |
− |
− |
− |
− |
|
| F695 |
Translation support |
− |
− |
− |
− |
− |
|
| F696 |
Additional translation documentation |
− |
− |
− |
− |
− |
|
| F701 |
Referential update actions |
+ |
+ |
+ |
+ |
+ |
|
| F711 |
ALTER domain |
+ |
+ |
+ |
+ |
+ |
|
| F721 |
Deferrable constraints |
− |
− |
− |
− |
− |
| F731 |
INSERT column privileges |
− |
− |
− |
− |
− |
|
| F741 |
Referential MATCH types |
− |
− |
− |
− |
− |
|
| F751 |
View CHECK enhancements |
− |
− |
− |
− |
− |
|
| F761 |
Session management |
− |
− |
− |
− |
− |
|
| F771 |
Connection management |
− |
− |
− |
− |
− |
|
| F781 |
Self-referencing operations |
+ |
+ |
+ |
+ |
+ |
|
| F791 |
Insensitive cursors |
− |
− |
− |
− |
− |
|
| F801 |
Full set function |
− |
− |
− |
− |
− |
|
| F813 |
Extended flagging |
− |
− |
− |
− |
− |
|
| F821 |
Local table references |
− |
− |
− |
− |
− |
|
| F831 |
Full cursor update |
− |
− |
− |
− |
− |
|
| F831-01 |
Updateable scrollable cursors |
− |
− |
− |
− |
− |
|
| F831-02 |
Updateable ordered cursors |
− |
− |
− |
− |
− |
|
| S023 |
Basic structured types |
− |
− |
− |
− |
− |
|
| S024 |
Enhanced structured types |
− |
− |
− |
− |
− |
|
| S025 |
Final structured types |
− |
− |
− |
− |
− |
|
| S026 |
Self-referencing structured types |
− |
− |
− |
− |
− |
|
| S027 |
Create method by specific method name |
− |
− |
− |
− |
− |
|
| S028 |
Permutable UDT options list |
− |
− |
− |
− |
− |
|
| S041 |
Basic reference types |
− |
− |
− |
− |
− |
|
| S043 |
Enhanced reference types |
− |
− |
− |
− |
− |
|
| S051 |
Create table of type |
− |
− |
− |
− |
− |
|
| S071 |
SQL paths in function and type name resolution |
− |
− |
− |
− |
− |
|
| S081 |
Subtables |
− |
− |
− |
− |
− |
|
| S091 |
Basic array support |
* |
* |
* |
* |
* |
|
| S091-01 |
Arrays of built-in data types |
* |
* |
* |
* |
* |
Implementation is non-standard and limited to DSQL only |
| S091-02 |
Arrays of distinct types |
− |
− |
− |
− |
− |
|
| S091-03 |
Array expressions |
− |
− |
− |
− |
− |
|
| S092 |
Arrays of user-defined types |
− |
− |
− |
− |
− |
|
| S094 |
Arrays of reference types |
− |
− |
− |
− |
− |
|
| S095 |
Array constructors by query |
− |
− |
− |
− |
− |
|
| S096 |
Optional array bounds |
− |
− |
− |
− |
− |
|
| S097 |
Array element assignment |
− |
− |
− |
− |
− |
|
| S111 |
ONLY in query expressions |
− |
− |
− |
− |
− |
|
| S151 |
Type predicate |
− |
− |
− |
− |
− |
|
| S161 |
Subtype treatment |
− |
− |
− |
− |
− |
|
| S162 |
Subtype treatment for references |
− |
− |
− |
− |
− |
|
| S201 |
SQL-invoked routines on arrays |
− |
− |
− |
− |
− |
|
| S201-01 |
Array parameters |
− |
− |
− |
− |
− |
|
| S201-02 |
Array as result type of functions |
− |
− |
− |
− |
− |
|
| S202 |
SQL-invoked routines on multisets |
− |
− |
− |
− |
− |
|
| S211 |
User-defined cast functions |
− |
− |
− |
− |
− |
|
| S231 |
Structured type locators |
− |
− |
− |
− |
− |
|
| S232 |
Array locators |
− |
− |
− |
− |
− |
|
| S233 |
Multiset locators |
− |
− |
− |
− |
− |
|
| S241 |
Transform functions |
− |
− |
− |
− |
− |
|
| S242 |
Alter transform statement |
− |
− |
− |
− |
− |
|
| S251 |
User-defined orderings |
− |
− |
− |
− |
− |
|
| S261 |
Specific type method |
− |
− |
− |
− |
− |
|
| S271 |
Basic multiset support |
− |
− |
− |
− |
− |
|
| S272 |
Multisets of user-defined types |
− |
− |
− |
− |
− |
|
| S274 |
Multisets of reference types |
− |
− |
− |
− |
− |
|
| S275 |
Advanced multiset support |
− |
− |
− |
− |
− |
|
| S281 |
Nested collection types |
− |
− |
− |
− |
− |
|
| S291 |
Unique constraint on entire row |
− |
− |
− |
− |
− |
|
| T011 |
Timestamp in Information Schema |
− |
− |
− |
− |
− |
|
| T031 |
BOOLEAN data type |
− |
− |
− |
− |
+ |
|
| T041 |
Basic LOB data type support |
* |
* |
* |
* |
* |
|
| T041-01 |
BLOB data type |
+ |
+ |
+ |
+ |
+ |
|
| T041-02 |
CLOB data type |
* |
* |
* |
* |
* |
Available as BLOB SUB_TYPE TEXT |
| T041-03 |
POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types |
* |
* |
+ |
+ |
+ |
Partially supported |
| T041-04 |
Concatenation of LOB data types |
− |
− |
− |
− |
− |
| T041-05 |
LOB locator: non-holdable |
− |
− |
− |
− |
− |
|
| T042 |
Extended LOB data type support |
− |
− |
− |
− |
− |
|
| T051 |
Row types |
− |
− |
− |
− |
− |
|
| T052 |
MAX and MIN for row types |
− |
− |
− |
− |
− |
|
| T053 |
Explicit aliases for all-fields reference |
− |
− |
− |
− |
− |
|
| T061 |
UCS support |
− |
− |
− |
− |
− |
|
| T071 |
BIGINT data type |
+ |
+ |
+ |
+ |
+ |
|
| T111 |
Updatable joins, unions, and columns |
− |
− |
− |
− |
− |
|
| T121 |
WITH (excluding RECURSIVE) in query expression |
− |
− |
+ |
+ |
+ |
|
| T122 |
WITH (excluding RECURSIVE) in subquery |
− |
− |
− |
− |
− |
| T131 |
Recursive query |
− |
− |
+ |
+ |
+ |
|
| T132 |
Recursive query in subquery |
− |
− |
− |
− |
− |
|
| T141 |
SIMILAR predicate |
− |
− |
− |
+ |
+ |
|
| T151 |
DISTINCT predicate |
− |
+ |
+ |
+ |
+ |
|
| T152 |
DISTINCT predicate with negation |
− |
+ |
+ |
+ |
+ |
|
| T171 |
LIKE clause in table definition |
− |
− |
− |
− |
− |
|
| T172 |
AS subquery clause in table definition |
− |
− |
− |
− |
− |
|
| T173 |
Extended LIKE clause in table definition |
− |
− |
− |
− |
− |
|
| T174 |
Identity columns |
− |
− |
− |
− |
+ |
|
| T175 |
Generated columns |
* |
* |
* |
* |
+ |
Supported as computed columns |
| T176 |
Sequence generator support |
+ |
+ |
+ |
+ |
+ |
|
| T191 |
Referential action RESTRICT |
+ |
+ |
+ |
+ |
+ |
|
| T201 |
Comparable data types for referential constraints |
* |
* |
* |
* |
* |
Numerics, timestamps and strings are not considered comparable |
| T211 |
Basic trigger capability |
* |
* |
* |
* |
* |
|
| T211-01 |
Triggers activated on UPDATE, INSERT, or DELETE of one base table |
+ |
+ |
+ |
+ |
+ |
|
| T211-02 |
BEFORE triggers |
+ |
+ |
+ |
+ |
+ |
|
| T211-03 |
AFTER triggers |
+ |
+ |
+ |
+ |
+ |
|
| T211-04 |
FOR EACH ROW triggers |
+ |
+ |
+ |
+ |
+ |
|
| T211-05 |
Ability to specify a search condition that shall be True before the trigger is invoked |
− |
− |
− |
− |
− |
|
| T211-06 |
Support for run-time rules for the interaction of triggers and constraints |
? |
? |
? |
? |
? |
|
| T211-07 |
TRIGGER privilege |
− |
− |
− |
− |
− |
|
| T211-08 |
Multiple triggers for the same event are executed in the order in which they were
created in the catalog |
* |
* |
* |
* |
* |
Execution order is specified by the developer |
| T212 |
Enhanced trigger capability |
− |
− |
− |
− |
− |
|
| T231 |
Sensitive cursors |
− |
− |
− |
− |
− |
|
| T241 |
START TRANSACTION statement |
+ |
+ |
+ |
+ |
+ |
Available as SET TRANSACTION |
| T251 |
SET TRANSACTION statement: LOCAL option |
− |
− |
− |
− |
− |
|
| T261 |
Chained transactions |
− |
− |
− |
− |
− |
|
| T271 |
Savepoints |
+ |
+ |
+ |
+ |
+ |
|
| T272 |
Enhanced savepoint management |
− |
− |
− |
− |
− |
|
| T281 |
SELECT privilege with column granularity |
− |
− |
− |
− |
− |
|
| T301 |
Functional dependencies |
+ |
+ |
+ |
+ |
+ |
|
| T312 |
OVERLAY function |
− |
− |
− |
− |
− |
|
| T322 |
Overloading of SQL-invoked functions and procedures |
− |
− |
− |
− |
− |
|
| T323 |
Explicit security for external routines |
− |
− |
− |
− |
− |
|
| T324 |
Explicit security for SQL routines |
− |
− |
− |
− |
− |
|
| T325 |
Qualified SQL parameter references |
− |
− |
− |
− |
− |
|
| T326 |
Table functions |
− |
− |
− |
− |
− |
|
| T331 |
Basic roles |
* |
* |
* |
* |
+ |
Prior to Firebird 3.0, SET ROLE was not supported |
| T332 |
Extended roles |
* |
* |
* |
* |
* |
GRANTED BY CURRENT_ROLE is not supported |
| T351 |
Bracketed SQL comments (/*...*/ comments) |
+ |
+ |
+ |
+ |
+ |
|
| T431 |
Extended grouping capabilities |
− |
− |
− |
− |
− |
|
| T432 |
Nested and concatenated GROUPING SETS |
− |
− |
− |
− |
− |
|
| T433 |
Multi-argument GROUPING function |
− |
− |
− |
− |
− |
|
| T434 |
GROUP BY DISTINCT |
− |
− |
− |
− |
− |
|
| T441 |
ABS and MOD functions |
− |
− |
+ |
+ |
+ |
|
| T461 |
Symmetric BETWEEN predicate |
− |
− |
− |
− |
− |
|
| T471 |
Result sets return value |
− |
− |
− |
− |
− |
|
| T491 |
LATERAL derived table |
− |
− |
− |
− |
− |
|
| T501 |
Enhanced EXISTS predicate |
+ |
+ |
+ |
+ |
+ |
|
| T511 |
Transaction counts |
− |
− |
− |
− |
− |
|
| T551 |
Optional keywords for default syntax |
+ |
+ |
+ |
+ |
+ |
|
| T561 |
Holdable locators |
− |
− |
− |
− |
− |
|
| T571 |
Array-returning external SQL-invoked functions |
− |
− |
− |
− |
− |
|
| T572 |
Multiset-returning external SQL-invoked functions |
− |
− |
− |
− |
− |
|
| T581 |
Regular expression substring function |
− |
− |
− |
− |
+ |
|
| T591 |
UNIQUE constraints of possibly null columns |
+ |
+ |
+ |
+ |
+ |
|
| T601 |
Local cursor references |
− |
− |
− |
− |
− |
|
| T611 |
Elementary OLAP operations |
− |
− |
− |
− |
− |
|
| T612 |
Advanced OLAP operations |
− |
− |
− |
− |
− |
|
| T613 |
Sampling |
− |
− |
− |
− |
− |
|
| T621 |
Enhanced numeric functions |
− |
− |
− |
− |
− |
|
| T641 |
Multiple column assignment |
− |
− |
− |
− |
− |
|
| T651 |
SQL-schema statements in SQL routines |
− |
− |
− |
− |
− |
|
| T652 |
SQL-dynamic statements in SQL routines |
+ |
+ |
+ |
+ |
+ |
|
| T653 |
SQL-schema statements in external routines |
− |
− |
− |
− |
− |
|
| T654 |
SQL-dynamic statements in external routines |
− |
− |
− |
− |
+ |
|
| T655 |
Cyclically dependent routines |
+ |
+ |
+ |
+ |
+ |
|