The next version of the ISO SQL Standard, SQL/2011, is due to go to FDIS (Final Draft International Standard) ballot for approval by ISO member countries in the next month or so. The international committee that manages the SQL standard’s development is ISO/IEC JTC 1/SC 32 Data Management and Interchange/WG 3 – Database Languages. In 2007, WG3 decided to freeze four of the nine parts of the SQL standard (such as SQL/CLI). The remaining five parts, namely SQL/Framework, SQL/Foundation, SQL/PSM, SQL/Schemata, and SQL/XML, all contain revisions that will be part of the SQL/2011 release.
ISO approval of SQL/2011 as an international standard (IS) is anticipated in Q4 2011 or Q1 2012.
Briefly, the enhancements made to SQL/2011 include:
- various extensions to
WINDOWqueries and window aggregate functions, some of which are already present in current versions of SQL Anywhere. These include the following optional language features:
- T614 – the
NTILEwindow aggregate function
- T615 – the
LAGwindow aggregate functions, along with feature T616, which is the NULL treatment option for the
- T617 – the
LAST_VALUEwindow aggregate functions, already supported in SQL Anywhere.
- T618 – the
NTH_VALUEwindow aggregate function
- T619 – support for nested window functions
- T620 – support for the
GROUPSoption in the
- T614 – the
- Optional SQL language feature T495, the ability to use the output of an
MERGEstatement as a derived table in an SQL query (or other SQL DML statement) – already supported by SQL Anywhere.
- the ability to use named parameters in a
CALLstatement (language feature T521), with or without default parameters (language feature T522). Both of these features are already supported by SQL Anywhere, though using slightly different syntax to denote a named parameter (“=” in SQL Anywhere, “=>” in the SQL standard).
- Optional SQL language feature F492, the ability to defer or not enforce uniqueness and foreign key constraints.
- various language features (F860 through F867) to better support the pagination of result sets, required by RESTFUL application paradigms including web-based applications developed using NHibernate or Hibernate. Pagination uses a
FETCHclause as part of a
SELECTstatement, rather than the
LIMIT/OFFSETsyntax variants supported by SQL Anywhere in existing releases.
- preliminary support for temporal tables, including system-time temporal tables (feature T180) and application-time temporal tables (feature T181). Comprehensive temporal query support is not included in SQL/2011.
- a wide array of other minor language extensions and a multitude of bug fixes that clarifies existing SQL semantics from SQL/2008.