Предметный указатель D. Соответствие SQL#

Предметный указатель D. Соответствие SQL

Предметный указатель D. Соответствие SQL

Этот раздел пытается описать, насколько Tantor BE соответствует текущему стандарту SQL. Следующая информация не является полным описанием соответствия, но она представляет основные темы с достаточной детализацией, которая является разумной и полезной для пользователей.

Официальное название стандарта SQL - ISO/IEC 9075 Database Language SQL. Пересмотренная версия стандарта выпускается время от времени; самое последнее обновление появилось в 2016 году. Версия 2016 года называется ISO/IEC 9075:2016 или просто SQL:2016. Предыдущие версии были SQL:2011, SQL:2008, SQL:2006, SQL:2003, SQL:1999 и SQL-92. Каждая версия заменяет предыдущую, поэтому заявления о соответствии более ранним версиям не имеют официального значения. Разработка PostgreSQL стремится к соответствию последней официальной версии стандарта, если такое соответствие не противоречит традиционным функциям или общему смыслу. Многие из функций, требуемых стандартом SQL, поддерживаются, хотя иногда с незначительно отличающимся синтаксисом или функционалом. Ожидается, что со временем будут предприняты дополнительные шаги в сторону соответствия.

SQL-92 определяет три набора функций для соответствия: Entry, Intermediate и Full. Большинство систем управления базами данных, утверждающих соответствие стандарту SQL, соответствуют только уровню Entry, так как весь набор функций уровней Intermediate и Full либо слишком объемный, либо противоречит устаревшим поведениям.

Начиная с SQL:1999, стандарт SQL определяет большой набор отдельных функций, а не неэффективно широкие три уровня, найденные в SQL-92. Большое подмножество этих функций представляет собой функции Core, которые должна предоставлять каждая соответствующая реализация SQL. Остальные функции являются чисто дополнительными.

Стандартные версии, начиная с SQL:2003, также разделены на несколько частей. Каждая из них известна по сокращенному имени. Обратите внимание, что эти части не нумеруются последовательно.

  • ISO/IEC 9075-1 Фреймворк (SQL/Framework)

  • ISO/IEC 9075-2 Foundation (SQL/Foundation)

  • Интерфейс уровня вызова ISO/IEC 9075-3 (SQL/CLI)

  • ISO/IEC 9075-4 Постоянные хранимые модули (SQL/PSM)

  • ISO/IEC 9075-9 Управление внешними данными (SQL/MED)

  • ISO/IEC 9075-10 Привязки объектного языка (SQL/OLB)

  • ISO/IEC 9075-11 Информационные и схемы определения (SQL/Схемы)

  • ISO/IEC 9075-13 Рутины и типы, использующие язык Java (SQL/JRT)

  • ISO/IEC 9075-14 XML-связанные спецификации (SQL/XML)

  • ISO/IEC 9075-15 Многомерные массивы (SQL/MDA)

Ядро Tantor BE охватывает части 1, 2, 9, 11 и 14. Часть 3 покрывается драйвером ODBC, а часть 13 - плагином PL/Java, но точное соответствие в настоящее время не проверяется для этих компонентов. В настоящее время нет реализаций частей 4, 10 и 15 для Tantor BE.

PostgreSQL поддерживает большинство основных функций SQL:2016. Из 177 обязательных функций, необходимых для полного соответствия Core, PostgreSQL соответствует как минимум 170. Кроме того, имеется длинный список поддерживаемых дополнительных функций. Стоит отметить, что на момент написания данного текста ни одна текущая версия системы управления базами данных не заявляет о полном соответствии Core SQL:2016.

В следующих двух разделах мы предоставляем список тех функций, которые поддерживает Tantor BE, а затем список функций, определенных в SQL:2016, которые пока не поддерживаются в Tantor BE. Оба этих списка являются приблизительными: могут быть незначительные детали, несоответствующие функции, которая указана как поддерживаемая, и большая часть неподдерживаемой функции на самом деле может быть реализована. Основная часть документации всегда содержит наиболее точную информацию о том, что работает и что не работает.

Примечание

Коды функций, содержащие дефис, являются подфункциями. Поэтому, если определенная подфункция не поддерживается, основная функция будет отмечена как неподдерживаемая, даже если некоторые другие подфункции поддерживаются.