<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >SQL Conformance</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 8.3.1 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Appendixes" HREF="appendixes.html"><LINK REL="PREVIOUS" TITLE="SQL Key Words" HREF="sql-keywords-appendix.html"><LINK REL="NEXT" TITLE="Supported Features" HREF="features-sql-standard.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2008-03-15T03:19:10"></HEAD ><BODY CLASS="APPENDIX" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" >PostgreSQL 8.3.1 Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="sql-keywords-appendix.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="sql-keywords-appendix.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="release.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="features-sql-standard.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="APPENDIX" ><H1 ><A NAME="FEATURES" ></A >Appendix D. SQL Conformance</H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >D.1. <A HREF="features-sql-standard.html" >Supported Features</A ></DT ><DT >D.2. <A HREF="unsupported-features-sql-standard.html" >Unsupported Features</A ></DT ></DL ></DIV ><P > This section attempts to outline to what extent <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > conforms to the current SQL standard. The following information is not a full statement of conformance, but it presents the main topics in as much detail as is both reasonable and useful for users. </P ><P > The formal name of the SQL standard is ISO/IEC 9075 <SPAN CLASS="QUOTE" >"Database Language SQL"</SPAN >. A revised version of the standard is released from time to time; the most recent full update appearing in 2003, with a partial update appearing in 2006. The 2003 version is referred to as ISO/IEC 9075:2003, or simply as SQL:2003. The versions prior to that were SQL:1999 and SQL-92. Each version replaces the previous one, so claims of conformance to earlier versions have no official merit. <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > development aims for conformance with the latest official version of the standard where such conformance does not contradict traditional features or common sense. The PostgreSQL project is not represented in the ISO/IEC 9075 Working Group during the preparation of the SQL standard releases, but even so, many of the features required by the SQL standard are supported, though sometimes with slightly differing syntax or function. Further moves towards conformance can be expected over time. </P ><P > <ACRONYM CLASS="ACRONYM" >SQL-92</ACRONYM > defined three feature sets for conformance: Entry, Intermediate, and Full. Most database management systems claiming <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > standard conformance were conforming at only the Entry level, since the entire set of features in the Intermediate and Full levels was either too voluminous or in conflict with legacy behaviors. </P ><P > Starting with <ACRONYM CLASS="ACRONYM" >SQL:1999</ACRONYM >, the SQL standard defines a large set of individual features rather than the ineffectively broad three levels found in <ACRONYM CLASS="ACRONYM" >SQL-92</ACRONYM >. A large subset of these features represents the <SPAN CLASS="QUOTE" >"Core"</SPAN > features, which every conforming SQL implementation must supply. The rest of the features are purely optional. Some optional features are grouped together to form <SPAN CLASS="QUOTE" >"packages"</SPAN >, which SQL implementations can claim conformance to, thus claiming conformance to particular groups of features. </P ><P > The <ACRONYM CLASS="ACRONYM" >SQL:2003</ACRONYM > standard is also split into a number of parts. Each is known by a shorthand name. Note that these parts are not consecutively numbered. <P ></P ></P><UL ><LI ><P >ISO/IEC 9075-1 Framework (SQL/Framework)</P ></LI ><LI ><P >ISO/IEC 9075-2 Foundation (SQL/Foundation)</P ></LI ><LI ><P >ISO/IEC 9075-3 Call Level Interface (SQL/CLI)</P ></LI ><LI ><P >ISO/IEC 9075-4 Persistent Stored Modules (SQL/PSM)</P ></LI ><LI ><P >ISO/IEC 9075-9 Management of External Data (SQL/MED)</P ></LI ><LI ><P >ISO/IEC 9075-10 Object Language Bindings (SQL/OLB)</P ></LI ><LI ><P >ISO/IEC 9075-11 Information and Definition Schemas (SQL/Schemata)</P ></LI ><LI ><P >ISO/IEC 9075-13 Routines and Types using the Java Language (SQL/JRT)</P ></LI ><LI ><P >ISO/IEC 9075-14 XML-related specifications (SQL/XML)</P ></LI ></UL ><P> </P ><P > <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > covers parts 1, 2, 11, and 14. Part 3 is similar to the ODBC interface, and part 4 is similar to the <SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN > programming language, but exact conformance is not specifically intended or verified in either case. </P ><P > PostgreSQL supports most of the major features of SQL:2003. Out of 164 mandatory features required for full Core conformance, PostgreSQL conforms to at least 150. In addition, there is a long list of supported optional features. It might be worth noting that at the time of writing, no current version of any database management system claims full conformance to Core SQL:2003. </P ><P > In the following two sections, we provide a list of those features that <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > supports, followed by a list of the features defined in <ACRONYM CLASS="ACRONYM" >SQL:2003</ACRONYM > which are not yet supported in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >. Both of these lists are approximate: There might be minor details that are nonconforming for a feature that is listed as supported, and large parts of an unsupported feature might in fact be implemented. The main body of the documentation always contains the most accurate information about what does and does not work. </P ><DIV CLASS="NOTE" ><BLOCKQUOTE CLASS="NOTE" ><P ><B >Note: </B > Feature codes containing a hyphen are subfeatures. Therefore, if a particular subfeature is not supported, the main feature is listed as unsupported even if some other subfeatures are supported. </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sql-keywords-appendix.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="features-sql-standard.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > Key Words</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="appendixes.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Supported Features</TD ></TR ></TABLE ></DIV ></BODY ></HTML >