Compliance with ANSI SQL

function

description

status

notes

E011

Numeric data types

E011-01

INTEGER and SMALLINT data types (including all spellings)

Yes

E011-02

REAL, DOUBLE PRECISION, and FLOAT data types

Yes

E011-03

DECIMAL and NUMERIC data types

No

E011-04

Arithmetic operators

Yes

E011-05

Numeric comparison

Yes

E011-06

Implicit casting among the numeric data types

Yes

E021

Character string types

E021-01

CHARACTER data type (including all its spellings)

Yes

E021-02

CHARACTER VARYING data type (including all its spellings)

Yes

E021-03

Character literals

Yes

E021-04

CHARACTER_LENGTH function

Yes

E021-05

OCTET_LENGTH function

Pending

E021-06

SUBSTRING function

Yes

E021-07

Character concatenation

Yes

E021-08

UPPER and LOWER functions

Yes

E021-09

TRIM function

Pending

E021-10

Implicit casting among the fixed-length and variable-length character string types

Yes

E021-11

POSITION function

Yes

E021-12

Character comparison

Yes

E031

Identifiers

E031-01

Delimited identifiers

Yes

E031-02

Lower case identifiers

Yes

E031-03

Trailing underscore

Yes

E051

Basic query specification

E051-01

SELECT DISTINCT

Yes

E051-02

GROUP BY clause

Yes

E051-04

GROUP BY can contain columns Not in

Yes

E051-05

Select list items can be renamed

Yes

E051-06

HAVING clause

Yes

E051-07

Qualified * in select list

Yes

E051-08

Correlation names in the FROM clause

Yes

E051-09

Rename columns in the FROM clause

No

E061

Basic predicates and search conditions

E061-01

Comparison predicate

Yes

E061-02

BETWEEN predicate

Yes

E061-03

IN predicate with list of values

Yes

E061-04

LIKE predicate

Partial

Uses q-like syntax, replacing % with *: No underscore

E061-05

LIKE predicate: ESCAPE clause

No

E061-06

NULL predicate

Yes

E061-07

Quantified comparison predicate

Pending

E061-08

EXISTS predicate

Yes

E061-09

Subqueries in comparison predicate

Yes

E061-11

Subqueries in IN predicate

Yes

E061-12

Subqueries in quantified comparison predicate

Pending

E061-13

Correlated subqueries

Yes

E061-14

Search condition

Yes

E071

Basic query expressions

E071-01

UNION DISTINCT table operator

Yes

E071-02

UNION ALL table operator

Yes

E071-03

EXCEPT DISTINCT table operator

Yes

E071-05

Columns combined via table operators need Not have exactly the same data type

Yes

E071-06

Table operators in subqueries

Yes

E081

Basic Privileges

No

E081-01

SELECT privilege at the table level

No

E081-02

DELETE privilege

No

E081-03

INSERT privilege at the table level

No

E081-04

UPDATE privilege at the table level

No

E081-05

UPDATE privilege at the column level

No

E081-06

REFERENCES privilege at the table level

No

E081-07

REFERENCES privilege at the column level

No

E081-08

WITH GRANT OPTION

No

E081-09

USAGE privilege

No

E081-10

EXECUTE privilege

No

E091

Set functions

E091-01

AVG

Yes

E091-02

COUNT

Yes

E091-03

MAX

Yes

E091-04

MIN

Yes

E091-05

SUM

Yes

E091-06

ALL quantifier

Pending

E091-07

DISTINCT quantifier

Yes

E101

Basic data manipulation

E101-01

INSERT statement

Yes

E101-03

Searched UPDATE statement

No

E101-04

Searched DELETE statement

No

E111

Single row SELECT statement

Yes

E121

Basic cursor support

No

E121-01

DECLARE CURSOR

No

E121-02

ORDER BY columns need Not be in select list

Yes

E121-03

Value expressions in ORDER BY clause

Yes

E121-04

OPEN statement

No

E121-06

Positioned UPDATE statement

No

E121-07

Positioned DELETE statement

No

E121-08

CLOSE statement

No

E121-10

FETCH statement: implicit NEXT

No

E121-17

WITH HOLD cursors

No

E131

Null value support (nulls in lieu of values)

Partial

See 'nulls' in compatibility Notes

E141

Basic integrity constraints

No

E141-01

NoT NULL constraints

No

E141-02

UNIQUE constraints of NoT NULL columns

No

E141-03

PRIMARY KEY constraints

No

E141-04

Basic FOREIGN KEY constraint with the No ACTION default for both referential delete action and referential update action

No

E141-06

CHECK constraints

No

E141-07

Column defaults

No

E141-08

NoT NULL inferred on PRIMARY KEY

No

E141-10

Names in a foreign key can be specified in any order

No

E151

Transaction support

No

E151-01

COMMIT statement

No

E151-02

ROLLBACK statement

No

E152

Basic SET TRANSACTION statement

No

E152-01

SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause

No

E152-02

SET TRANSACTION statement: READ ONLY and READ WRITE clauses

No

E*

Other

E153

Updatable queries with subqueries

No

E161

SQL comments using leading double minus

Pending

E171

SQLSTATE support

No

E182

Host language binding (previously "Module Language")

Yes

Called from q, can call q

F021

Basic information schema

F021-01

COLUMNS view

Pending

F021-02

TABLES view

Yes

F021-03

VIEWS view

Pending

F021-04

TABLE_CONSTRAINTS view

No

F021-05

REFERENTIAL_CONSTRAINTS view

No

F021-06

CHECK_CONSTRAINTS view

No

F031

Basic schema manipulation

F031-01

CREATE TABLE statement to create persistent base tables

Partial

No persistence

F031-02

CREATE VIEW statement

No

F031-03

GRANT statement

No

F031-04

ALTER TABLE statement: ADD COLUMN clause

No

F031-13

DROP TABLE statement: RESTRICT clause

Partial

No restrict

F031-16

DROP VIEW statement: RESTRICT clause

No

F031-19

REVOKE statement: RESTRICT clause

No

F041

Basic joined table

F041-01

Inner join (but Not necessarily the INNER keyword)

Yes

F041-02

INNER keyword

Yes

F041-03

LEFT OUTER JOIN

Yes

F041-04

RIGHT OUTER JOIN

Yes

F041-05

Outer joins can be nested

Yes

F041-07

The inner table in a left or right outer join can also be used in an inner join

Yes

F041-08

All comparison operators are supported (rather than just =)

No

F051

Basic date and time

F051-01

DATE data type (including support of DATE literal)

Yes

F051-02

TIME data type (including support of TIME literal) with fractional seconds precision of at least 0

Yes

F051-03

TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6

Yes

F051-04

Comparison predicate on DATE, TIME, and TIMESTAMP data types

Yes

F051-05

Explicit CAST between datetime types and character string types

Yes

F051-06

CURRENT_DATE

Yes

F051-07

LOCALTIME

Yes

F051-08

LOCALTIMESTAMP

Yes

F081

UNION and EXCEPT in views

No

F131

Grouped operations

No

F131-01

WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views

No

F131-02

Multiple tables supported in queries with grouped views

No

F131-03

Set functions supported in queries with grouped views

No

F131-04

Subqueries with GROUP BY and HAVING clauses and grouped views

No

F131-05

Single row SELECT with GROUP BY and HAVING clauses and grouped views

No

F*

Other

F181

Multiple module support

No

F201

CAST function

Yes

F221

Explicit defaults

No

F261

CASE expression

F261-01

Simple CASE

Yes

F261-02

Searched CASE

Yes

F261-03

NULLIF

Yes

F261-04

COALESCE

Yes

F311

Schema definition statement

No

F311-01

CREATE SCHEMA

No

F311-02

CREATE TABLE for persistent base tables

No

F311-03

CREATE VIEW

No

F311-04

CREATE VIEW: WITH CHECK OPTION

No

F311-05

GRANT statement

No

F471

Scalar subquery values

Yes

F481

Expanded NULL predicate

No

F501

Features and conformance views

No

F501-01

SQL_FEATURES view

No

F501-02

SQL_SIZING view

No

F501-03

SQL_LANGUAGES view

No

F812

Basic flagging

No

S011

Distinct data types

No

S011-01

USER_DEFINED_TYPES view

No

T321

Basic SQL-invoked routines

T321-01

User-defined functions with No overloading

Yes

q fns can be converted to SQL fns with .s.fs and added to .s.F

T321-02

User-defined stored procedures with No overloading

No

T321-03

Function invocation

Yes

T321-04

CALL statement

No

T321-05

RETURN statement

No

T321-06

ROUTINES view

No

T321-07

PARAMETERS view

No

T631

IN predicate with one list element

Yes