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 |
+ |
+ |
+ |
+ |
+ |
|