The table below illustrates the features supported (S) and not
supported (N) in the MonetDB/SQL distribution.
Beware, some of the features are technically impossible to
support without major code changes or excessive performance
consequences.
| Feature ID
| Feature name
| S/N
|
| B011-B017
| Embedded Language support. Core SQL:1999 says that at least one of Embedded Ada, Embedded C, Embedded Cobol, Embedded Fortran, Embedded MUMPS, Embedded Pascal or Embedded PL/I 1 should be supported.
| N
|
| E011
| Numeric data types (FULL support)
| S
|
| E011-01
| INTEGER and SMALLINT data types (including all spellings)
| S
|
| E011-02
| REAL, DOUBLE PRECISON, and FLOAT data types
| S
|
| E011-03
| DECIMAL and NUMERIC data types
| S
|
| E011-04
| Arithmetic operators
| S
|
| E011-05
| Numeric comparison
| S
|
| E011-06
| Implicit casting among the numeric data types
| S
|
| E021
| Character data types
| S(PARTIAL support)
|
| E021-01
| CHARACTER data type (including all its spellings)
| S
|
| E021-02
| CHARACTER VARYING data type (including all its spellings)
| S
|
| E021-03
| Character literals
|
| E021-04
| CHARACTER_LENGTH function
| S
|
| E021-05
| OCTET_LENGTH function
| S
|
| E021-06
| SUBSTRING function
| S
|
| E021-07
| Character concatenation
| S
|
| E021-08
| UPPER and LOWER functions
| S
|
| E021-09
| TRIM function
| S
|
| E021-10
| Implicit casting among the character data types
| S
|
| E021-11
| POSITION function
| S
|
| E021-12
| Character comparison
| S
|
| E031
| Identifiers (FULL support)
| S
|
| E031-01
| Delimited identifiers
| S
|
| E031-02
| Lower case identifiers
| S
|
| E031-03
| Trailing underscore
| S
|
| E051
| Basic query specification (FULL support)
| S
|
| E051-01
| SELECT DISTINCT
| S
|
| E051-02
| GROUP BY clause
| S
|
| E051-04
| GROUP BY can contain columns not in select-list
| S
|
| E051-05
| Select list items can be renamed
| S
|
| E051-06
| HAVING clause
| S
|
| E051-07
| Qualified * in select list
| S
|
| E051-08
| Correlation names in the FROM clause
| S
|
| E051-09
| Rename columns in the FROM clause
| S
|
| E061
| Basic predicates and search conditions (FULL support)
| S
|
| E061-01
| Comparison predicate
| S
|
| E061-02
| BETWEEN predicate
| S
|
| E061-03
| IN predicate with list of values
| S
|
| E061-04
| LIKE predicate
| S
|
| E061-05
| LIKE predicate: ESCAPE clause
| S
|
| E061-06
| NULL predicate
| S
|
| E061-07
| Quantified comparison predicate
| S
|
| E061-08
| EXISTS predicate
| S
|
| E061-09
| Subqueries in comparison predicate
| S
|
| E061-11
| Subqueries in IN predicate
| S
|
| E061-12
| Subqueries in quantified comparison predicate
| S
|
| E061-13
| Correlated subqueries
| S
|
| E061-14
| Search condition
| S
|
| E071
| Basic query expressions
| S (FULL support)
|
| E071-01
| UNION DISTINCT table operator
| S
|
| E071-02
| UNION ALL table operator
| S
|
| E071-03
| EXCEPT DISTINCT table operator
| S
|
| E071-05
| Columns combined via table operators need not have exactly the same data type
| S
|
| E071-06
| Table operators in subqueries
| S
|
| E081
| Basic Privileges
| S
|
| E081-01
| SELECT privilege at the table level
| S
|
| E081-02
| DELETE privilege
| S
|
| E081-03
| INSERT privilege at the table level
| S
|
| E081-04
| UPDATE privilege at the table level
| S
|
| E081-05
| UPDATE privilege at the column level
| S
|
| E081-06
| REFERENCES privilege at the table level
| N (SELECT privilege is used)
|
| E081-07
| REFERENCES privilege at the column level
| N (SELECT privilege is used)
|
| E081-08
| WITH GRANT OPTION
| S
|
| E081-09
| USAGE privilege
| N
|
| E081-10
| EXECUTE privilege
| N
|
| E091
| Set functions (FULL support)
| S
|
| E091-01
| AVG
| S
|
| E091-02
| COUNT
| S
|
| E091-03
| MAX
| S
|
| E091-04
| MIN
| S
|
| E091-05
| SUM
| S
|
| E091-06
| ALL quantifier
| S
|
| E091-07
| DISTINCT quantifier
| S
|
| E101
| Basic data manipulation (FULL support)
| S
|
| E101-01
| INSERT statement
| S
|
| E101-03
| Searched UPDATE statement
| S
|
| E101-04
| Searched DELETE statement
| S
|
| E111
| Single row SELECT statement
| S
|
| E121
| Basic cursor support
| N (Cursors are not supported)
|
| E121-01
| DECLARE CURSOR
|
|
| E121-02
| ORDER BY columns need not be in select list
| S
|
| E121-03
| Value expressions in ORDER BY clause
| N
|
| E121-04
| OPEN statement
| N
|
| E121-06
| Positioned UPDATE statement
| N
|
| E121-07
| Positioned DELETE statement
| N
|
| E121-08
| CLOSE statement
| N
|
| E121-10
| FETCH statement: implicit NEXT
| N
|
| E121-17
| WITH HOLD cursors
| N
|
| E131
| Null value support (nulls in lieu of values)
| S
|
| E141
| Basic integrity constraints
| S
|
| E141-01
| NOT NULL constraints
| S
|
| E141-02
| UNIQUE constraints of NOT NULL columns
| S
|
| E141-03
| PRIMARY KEY constraints
| S
|
| E141-04
| Basic FOREIGN KEY constraint with the NO ACTION default
| S
|
| E141-06
| CHECK constraints
| N
|
| E141-07
| Column defaults
| S
|
| E141-08
| NOT NULL inferred on PRIMARY KEY
| S
|
| E141-10
| Names in a foreign key can be specified in any order (columns should be in the proper order)
| N
|
| E151
| Transaction support
| S
|
| E151-01
| COMMIT statement
| S
|
| E151-02
| ROLLBACK statement
| S
|
| E152
| Basic SET TRANSACTION statement
| S
|
| E152-01
| SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause
| S
|
| E152-02
| SET TRANSACTION statement: READ ONLY and READ WRITE clauses
| N
|
| E153
| Updatable queries with subqueries
| S
|
| E161
| SQL comments using leading double minus
| S
|
| E171
| SQLSTATE support
| N
|
| F021
| Basic information schema
| N
|
| F021-01
| COLUMNS view
|
|
| F021-02
| TABLES view
|
| F021-03
| VIEWS view
|
| F021-04
| TABLE_CONSTRAINTS view
|
| F021-05
| REFERENTIAL_CONSTRAINTS view
|
| F021-06
| CHECK_CONSTRAINTS view
|
| F031
| Basic schema manipulation
| S
|
| F031-01
| CREATE TABLE statement to create persistent base tables
| S
|
| F031-02
| CREATE VIEW statement
| S
|
| F031-03
| GRANT statement
| S
|
| F031-04
| ALTER TABLE statement: ADD COLUMN clause
| S
|
| F031-13
| DROP TABLE statement: RESTRICT clause
| S
|
| F031-16
| DROP VIEW statement: RESTRICT clause
| S
|
| F031-19
| REVOKE statement: RESTRICT clause
| S
|
| F041
| Basic joined table
| S
|
| F041-01
| Inner join (but not necessarily the INNER keyword)
| S
|
| F041-02
| INNER keyword
| S
|
| F041-03
| LEFT OUTER JOIN
| S
|
| F041-04
| RIGHT OUTER JOIN
| S
|
| F041-05
| Outer joins can be nested
| S
|
| F041-07
| The inner table in a left or right outer join can also be used in an inner join
| S
|
| F041-08
| All comparison operators are supported (rather than just =)
| S
|
| F051
| Basic date and time
| S
|
| F051-01
| DATE data type (including DATE literal)
| S
|
| F051-02
| TIME data type (including TIME literal) with fractional seconds precision of 0
| S
|
| F051-03
| TIMESTAMP data type (including TIMESTAMP literal) with fractional seconds precision of 0 and 6
| S
|
| F051-04
| Comparison predicate on DATE, TIME, and TIMESTAMP data types
| S
|
| F051-05
| Explicit CAST between datetime types and character types
| S
|
| F051-06
| CURRENT_DATE
| S
|
| F051-07
| LOCALTIME
| S
|
| F051-08
| LOCALTIMESTAMP
| S
|
| F081
| UNION and EXCEPT in views
| S
|
| F131
| Grouped operations
| S
|
| F131-01
| WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views
| S
|
| F131-02
| Multiple tables supported in queries with grouped views
| S
|
| F131-03
| Set functions supported in queries with grouped views
| S
|
| F131-04
| Subqueries with GROUP BY and HAVING clauses and grouped views
| S
|
| F131-05
| Single row SELECT with GROUP BY and HAVING clauses and grouped views
| S
|
| F181
| Multiple module support
| S (limited support)
|
| F201
| CAST function
| S
|
| F221
| Explicit defaults
| S
|
| F261
| CASE expression
| S
|
| F261-01
| Simple CASE
| S
|
| F261-02
| Searched CASE
| S
|
| F261_03
| NULLIF
| S
|
| F261-04
| COALESCE
| S
|
| F311
| Schema definition statement
| S
|
| F311-01
| CREATE SCHEMA
| S
|
| F311-02
| CREATE TABLE for persistent base tables
| S
|
| F311-03
| CREATE VIEW
| S
|
| F311-04
| CREATE VIEW: WITH CHECK OPTION
| N
|
| F311-05
| GRANT statement
| S
|
| F471
| Scalar subquery values
| S
|
| F481
| Expanded NULL predicate
| S
|
| F501
| Features and conformance views
| N
|
| F501-01
| SQL_FEATURES view
|
|
| F501-02
| SQL_SIZING view
|
| F501-03
| SQL_LANGUAGES view
|
| F812
| Basic flagging
| N
|
| S011
| Distinct data types
| S
|
| S011-01
| USER_DEFINED_TYPES view
| N
|
| T321
| Basic SQL-invoked routines
| S
|
| T321-01
| User-defined functions with no overloading
| S
|
| T321-02
| User-defined stored procedures with no overloading
| S
|
| T321-03
| Function invocation
| S
|
| T321-04
| CALL statement
| S
|
| T321-05
| RETURN statement
| S
|
| T321-06
| ROUTINES view
| N
|
| T321-07
| PARAMETERS view
| N
|