| Feature |
QED Supports? |
| DDL Statements | |
| ALTER TABLE ADD COLUMN | Yes |
| ALTER TABLE ADD CONSTRAINT | Yes |
| ALTER TABLE DROP CONSTRAINT | Yes |
| ALTER TABLE DROP COLUMN | Yes (since 2.3) |
| ALTER TABLE ALTER COLUMN | Yes |
| CREATE ASSERTION | No |
| CREATE INDEX | Yes |
| CREATE SCHEMA | Yes |
| CREATE TABLE | Yes |
| CREATE TYPE | No |
| CREATE VIEW | Yes |
| DROP ASSERTION | No |
| DROP INDEX | Yes |
| DROP SCHEMA | No |
| DROP TABLE | Yes |
| DROP VIEW | Yes |
| GRANT | No |
| REVOKE | No |
| DML Statements | |
| DELETE | Yes |
| INSERT | Yes |
| UPDATE | Yes |
| SELECT | Yes |
| Integrity Constraints | |
| NOT NULL | Yes |
| UNIQUE | Yes |
| WITH IDENTITY | Yes |
| PRIMARY KEY | Yes |
| FOREIGN KEY | Yes |
| CHECK | Yes |
| VIEW WITH CHECK OPTION | Yes |
| DEFAULT value | Yes |
| INITIALLY DEFERRED | No |
| INITIALLY IMMEDIATE | Yes |
| DEFERRABLE | No |
| NOT DEFERRABLE | Yes |
| DROP xxx RESTRICT | Yes |
| DROP xxx CASCADE | Yes |
| MATCH FULL | Yes |
| MATCH PARTIAL | Yes |
| ON UPDATE | No |
| ON DELETE | No |
| foreign key CASCADE | No |
| foreign key SET NULL | No |
| foreign key SET DEFAULT | No |
| foreign key NO ACTION | Yes |
| Transactions | |
| Transactions Supported | Yes |
| COMMIT | Yes, via JDBC |
| ROLLBACK | Yes, via JDBC |
| Isolation Level: READ_COMMITTED | No |
| Isolation Level: READ_UNCOMMITED | No |
| Isolation Level: REPEATABLE_READ | No |
| Isolation Level: SERIALIZABLE | Yes |
| Row-level locking | No |
| Automatic recovery | Yes |
| Recovery from media failure |
Yes (Log must be on separate physical drive) |
| Table types | |
| base table | Yes |
| updatable view | Yes |
| GLOBAL TEMPORARY | No |
| LOCAL TEMPORARY | Yes |
| ON COMMIT DELETE ROWS | No |
| ON COMMIT PRESERVE ROWS | No (but this is the default action) |
| Data Types | |
| INT, INTEGER | Yes |
| TINYINT | Yes |
| SMALLINT | Yes |
| BIGINT | Yes |
| VARCHAR | Yes |
| CHAR, CHARACTER | Yes |
| DEC, DECIMAL | Yes |
| NUMERIC | Yes |
| REAL | Yes |
| DOUBLE PRECISION | Yes |
| FLOAT | Yes |
| BIT VARYING, VARBINARY | Yes |
| BIT, BINARY | Yes |
| BOOLEAN | Yes |
| BLOB, BINARY LARGE OBJECT | Yes |
| CLOB, CHARACTER LARGE OBJECT | Yes |
| DATE | Yes |
| TIME | Yes |
| TIMESTAMP | Yes |
| INTERVAL | Yes |
| ARRAY | No |
| REF | No |
| LOCATOR | No |
| Query Clauses | |
| WHERE | Yes |
| GROUP BY | Yes |
| HAVING | Yes |
| ORDER BY | Yes |
| Correlated sub-queries | Yes |
| UNION | Yes |
| INTERSECT | Yes |
| EXCEPT | Yes |
| CORRESPONDING BY | Yes |
| TABLE | No |
| Aggregate Functions | |
| AVG | Yes |
| SUM | Yes |
| COUNT | Yes |
| COUNT DISTINCT | Yes |
| MIN | Yes |
| MAX | Yes |
| Join Operations | |
| CROSS JOIN | Yes |
| INNER JOIN | Yes |
| LEFT OUTER JOIN | Yes |
| RIGHT OUTER JOIN | Yes |
| NATURAL JOIN | Yes |
| JOIN ON | Yes |
| JOIN USING | Yes |
| UNION JOIN | Yes |
| FROM table-list | Yes |
| Quantified Comparisons | |
| ANY | Yes |
| ALL | Yes |
| SOME | Yes |
| EXISTS | Yes |
| Information Schema | |
| SYS.SYSTABLES | No, use DatabaseMetaData |
| SYS.SYSVIEWS | No, use DatabaseMetaData |
| SYS.SYSCOLUMNS | No, use DatabaseMetaData |
| String Operators | |
| || | Yes |
| Logical Operators | |
| OR | Yes |
| AND | Yes |
| NOT | Yes |
| IS (NOT) NULL | Yes |
| IS (NOT) TRUE | Yes |
| IS (NOT) FALSE | Yes |
| IS (NOT) UNKNOWN | Yes |
| Comparison Operators | |
| < | Yes |
| > | Yes |
| <= | Yes |
| >= | Yes |
| <> | Yes |
| = | Yes |
| BETWEEN | Yes |
| IN (values) | Yes |
| LIKE pattern | Yes |
| Arithmetic Operators | |
| ** | Yes |
| + | Yes |
| - | Yes |
| * | Yes |
| / | Yes |
| unary + | Yes |
| unary - | Yes |
| System variables | |
| USER | Yes |
| CURRENT_USER | Yes |
| SESSION_USER | Yes |
| SYSTEM_USER | Yes |
| CURRENT_DATE | Yes |
| CURRENT_TIME | Yes |
| CURRENT_TIMESTAMP | Yes |
| Open Group CLI Functions | |
| ABS | Yes |
| ASCII | Yes |
| ACOS | Yes |
| ASIN | Yes |
| ATAN | Yes |
| ATAN2 | Yes |
| BIT_LENGTH | Yes |
| CAST | Yes |
| CEILING | Yes |
| CHAR | Yes |
| CHAR_LENGTH, CHARACTER_LENGTH | Yes |
| COS | Yes |
| COT | Yes |
| CONCAT | Yes |
| CURDATE | Yes |
| CURTIME | Yes |
| DATABASE | Yes |
| DAYNAME | Yes |
| DAYOFMONTH | Yes |
| DAYOFWEEK | Yes |
| DAYOFYEAR | Yes |
| DEGREES | Yes |
| DIFFERENCE | Yes |
| EXP | Yes |
| FLOOR | Yes |
| HOUR | Yes |
| IFNULL | Yes |
| INSERT | Yes |
| LEFT | Yes |
| LENGTH | Yes |
| LOCATE | Yes |
| LOG | Yes |
| LOG10 | Yes |
| LOWER, LCASE | Yes |
| LTRIM | Yes |
| MINUTE | Yes |
| MOD | Yes |
| MONTH | Yes |
| MONTHNAME | Yes |
| NOW | Yes |
| OCTET_LENGTH | Yes |
| PI | Yes |
| POWER | Yes |
| QUARTER | Yes |
| RADIANS | Yes |
| RAND | Yes |
| REPEAT | Yes |
| REPLACE | Yes |
| RIGHT | Yes |
| ROUND | Yes |
| RTRIM | Yes |
| SECOND | Yes |
| SIGN | Yes |
| SIN | Yes |
| SOUNDEX | Yes |
| SPACE | Yes |
| SQRT | Yes |
| SUBSTRING | Yes |
| TAN | Yes |
| TIMESTAMPADD | Yes |
| TIMESTAMPDIFF | Yes |
| TRUNCATE | Yes |
| UPPER, UCASE | Yes |
| USER | Yes |
| WEEK | Yes |
| YEAR | Yes |
| Miscellanous SQL Functions | |
| POSITION(string1 IN string2) |
No, but function
LOCATE can be used instead. |
| SUBSTRING(string FROM pos FOR length) |
No, but function SUBSTRING can be used instead.
|
| TRIM( { {LEADING|TRAILING|BOTH}? {char}? FROM}? string )
|
No, but functions LTRIM and RTRIM
can be used instead. |
| CASE | Yes (Since 2.3) |
| EXTRACT datetime-field FROM expression |
No, but functions YEAR, MONTH,
DAY, HOUR, MINUTE,
SECOND, can be used instead. |
| OVERLAPS (binary operator?) | No. |
| TRANSLATE(string USING translation) |
No. |
| CONVERT(string USING conversion) |
No. |
| JDBC Escape Syntax | |
| {escape char} | Yes |
| {fn function} | Yes |
| {d date} | Yes |
| {t time} | Yes |
| {ts timestamp} | Yes |
| {call procedure} |
No, stored procedures not supported |
| {oj outer-join} | Yes |
| Yes |
| JDBC 1.2 | |
| java.sql.Driver | Yes (com.quadcap.jdbc.JdbcDriver) |
| java.sql.Connection |
Yes (multiple connections supported) |
| java.sql.Statement |
(Multiple statements per connection supported, but not threadsafe)
|
| java.sql.PreparedStatement | Yes |
| java.sql.CallableStatement | No |
| java.sql.ResultSet | Yes |
| java.sql.DatabaseMetaData | Yes |
| java.sql.ResultSetMetaData | Yes |
| JDBC 2.0 Core | |
| Scrollable result sets | Yes (since 3.1) |
| Programmatic insert | Yes |
| Programmatic update | Yes |
| Programmatic delete | Yes |
| Batch updates | No |
| Character Streams | Yes |
| java.sql.Array | No |
| java.sql.BatchUpdateException | No |
| java.sql.Blob | Yes |
| java.sql.Clob | Yes |
| java.sql.Ref | No |
| java.sql.SQLData | No |
| java.sql.SQLInput | No |
| java.sql.SQLOutput | No |
| java.sql.Struct | No |
| Connection.setTypeMap | No |
| JDBC 2.0 Standard Extension | |
| javax.sql.ConnectionEvent | No |
| javax.sql.ConnectionEventListener | No |
| javax.sql.ConnectionPoolDataSource | No |
| javax.sql.DataSource | No |
| javax.sql.PooledConnection | No |
| javax.sql.RowSet | No |
| javax.sql.RowSetEvent | No |
| javax.sql.RowSetInternal | No |
| javax.sql.RowSetListener | No |
| javax.sql.RowSetMetaData | No |
| javax.sql.RowSetReader | No |
| javax.sql.RowSetWriter | No |
| javax.sql.XAConnection | No |
| javax.sql.XADataSource | No |