ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.10.2024
Просмотров: 90
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1. Интерпретация данных даты и времени.
2. Ключевые слова для обозначения даты и времени.
3. Файлы конфигурации даты/времени.
4. История единиц измерения времени.
Дополнительно поставляемые модули.
Дополнительно поставляемые программы.
Недокументированные возможности.
Нетривиальное использование таблиц.
Добавление ограничений в существующую таблицу.
Использование производных таблиц.
Модификация производных таблиц.
Создание полей со значениями-массивами.
Вставка значений в поля-массивы.
Определение количества элементов.
Обновление данных в полях-массивах
Автоматизация стандартных процедур.
Операции с последовательностями.
Соответствие стандарту SQL.
В этом разделе в общих чертах отмечается, в какой степени PostgreSQL соответствует текущему стандарту SQL. Следующая информация не является официальным утверждением о соответствии, а представляет только основные аспекты на уровне детализации, достаточно полезном и целесообразном для пользователей.
Формально стандарт SQL называется ISO/IEC 9075 «Язык баз данных SQL». Время от времени выпускается обновлённая версия стандарта; последняя версия стандарта вышла в 2011 г. Эта версия получила обозначение ISO/IEC 9075:2011, или просто SQL:2011. До этого были выпущены версии SQL:2008, SQL:2003, SQL:1999 и SQL-92. Каждая следующая версия заменяет предыдущую, так что утверждение о совместимости с предыдущими версиями не имеет большой ценности. Разработчики PostgreSQL стремятся обеспечить совместимость с последней официальной версией стандарта, оставаясь при этом в рамках традиционной функциональности и здравого смысла. PostgreSQL реализует большую часть требуемой стандартом функциональности, хотя иногда с немного другими функциями или синтаксисом. Можно ожидать, что со временем степень совместимости будет
Описание стандарта, начиная с версии SQL:2003, разделяется на несколько частей. Каждая такая часть имеет короткое имя и номер. Заметьте, что нумерация этих частей непоследовательная.
ISO/IEC 9075-1 Структура (SQL/Framework)
ISO/IEC 9075-2 Основа (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/Schemata)
ISO/IEC 9075-13 Программы и типы, использующие язык Java (SQL/JRT)
ISO/IEC 9075-14 Спецификации, связанные с XML (SQL/XML)
Ядро PostgreSQL реализует части 1, 2, 9, 11 и 14. Часть 3 реализуется драйвером ODBC, а часть 13 — подключаемым расширением PL/Java, но точное соответствие этих компонентов стандарту на данный момент не проверено. Части 4 и 10 в PostgreSQL в настоящее время не реализованы.
PostgreSQL поддерживает почти все основные возможности стандарта SQL:2011. Из 179 обязательных возможностей, которые требуются для полного соответствия «Основной»функциональности, PostgreSQL обеспечивает совместимость как минимум для 160. Кроме того, он реализует длинный список необязательных возможностей. Следует отметить, что на время написания этой документации ни одна существующая СУБД не заявила о полном соответствии «Основной» функциональности SQL:2011.
В следующих двух разделах мы представляем список возможностей, которые поддерживает PostgreSQL, и список возможностей, определённых в SQL:2011, которые ещё не поддерживаются в PostgreSQL. Оба эти списка носят приблизительный характер: какая-то возможность, отмеченная как поддерживаемая, может отличаться от стандарта в деталях, и напротив, для какой-то неподдерживаемой возможности могут быть реализованы ключевые компоненты. Наиболее точная информация о том, что работает, а что нет, содержится в основной документации.
Замечания к выпуску.
В замечаниях к выпуску отмечаются значительные изменения, имевшие место в каждом выпуске PostgreSQL, при этом ключевые изменения и вопросы миграции освещаются в самом начале. В эти замечания не включаются изменения, затрагивающие лишь нескольких пользователей, как и изменения внутренние и поэтому пользователям не заметные. Например, оптимизатор усовершенствуется почти в каждом выпуске, но для пользователей эти улучшения проявляются обычно просто в ускорении запросов.
Полный список изменений каждого выпуска можно получить, просмотрев журналы Git для этого выпуска. Также все изменения в исходном коде отражаются в списке рассылки pgsql-committers. Кроме того, имеется веб-интерфейс, в котором можно просмотреть изменения в разрезе файлов.
Имя, указанное рядом с каждым пунктом, показывает, кто был основным разработчиком этого изменения. Но, конечно, с каждым из изменений связано обсуждение в сообществе и анализ предлагаемой правки, так что на самом деле каждый из этих пунктов — плод работы сообщества.
Дополнительно поставляемые модули.
В этом и следующем пунктах информация о модулях, которые можно найти в каталоге contrib дистрибутива PostgreSQL. В их число входят средства портирования, утилиты анализа и подключаемые функции, не включённые в состав основной системы PostgreSQL, в основном потому что они адресованы ограниченной аудитории или находятся в экспериментальном состоянии, неподходящем для основного дерева кода. Однако это всё не умаляет их полезность.
В этом пункте описываются расширения и другие подключаемые серверные модули, включённые в contrib.
При сборке сервера из дистрибутивного исходного кода эти компоненты собираются, только если выбрана цель "world". Вы можете собрать и установить их отдельно, выполнив:
make
make install
в каталоге contrib в настроенном дереве исходного кода; либо собрать и установить только один выбранный модуль, проделав то же самое в его подкаталоге. Для многих модулей имеются регрессионные тесты, которые можно выполнить, запустив:
make check
перед установкой или
make installcheck
, когда сервер PostgreSQL будет работать.
Если вы используете готовую собранную версию PostgreSQL, эти модули обычно поставляются в виде отдельного подпакета, например postgresql-contrib.
Многие модули предоставляют дополнительные пользовательские функции, операторы и типы. Чтобы использовать один из таких модулей, когда его исполняемый код установлен, вы должны зарегистрировать новые объекты SQL в СУБД. В PostgreSQL версии 9.1 и новее для этого нужно воспользоваться командой CREATE EXTENSION. В чистой базе данных вы можете просто выполнить:
CREATE EXTENSION имя_модуля;
Запускать эту команду должен суперпользователь баз данных. При этом новые объекты SQL будут зарегистрированы только в текущей базе данных, так что эту команду нужно выполнять в каждой базе данных, в которой вы хотите пользоваться функциональностью этого модуля. Вы также можете запустить её в template1, чтобы установленное расширение копировалось во все впоследствии создаваемые базы по умолчанию.
Многие модули позволяют устанавливать свои объекты в схему по выбору. Для этого нужно добавить SCHEMA имя_схемы в команду CREATE EXTENSION. По умолчанию объекты устанавливаются в текущую схему для создаваемых объектов, которой по умолчанию становится public.
Если ваша база данных была получена в результате выгрузки/перезагрузки данных PostgreSQL версии до 9.1, и вы ранее использовали версию этого модуля, рассчитанную на версию до 9.1, вместо этого вы должны выполнить:
CREATE EXTENSION имя_модуля FROM unpackaged;
Список расширений:adminpack, amcheck, auth_delay, auto_explain, bloom, btree_gin, btree_gist, chkpass, citext, cube, dblink, dict_int, dict_xsyn, earthdistance, file_fdw, fuzzystrmatch, hstore, intagg, intarray, isn, lo, ltree, pageinspect, passwordcheck, pg_buffercache, pgcrypto, pg_freespacemap, pg_prewarm, pgrowlocks, pg_stat_statements, pgstattuple, pg_trgm, pg_visibility, postgres_fdw, seg, sepgsql, spi, sslinfo, tablefunc, tcn, test_decoding, tsm_system_rows, tsm_system_time, unaccent, uuid-ossp, xml2.
Дополнительно поставляемые программы.
В этом пункте описываются вспомогательные программы, находящиеся в contrib. После установки из исходного кода или двоичного пакета их можно найти в подкаталоге bin инсталляции PostgreSQL и использовать как любую другую программу.
1. Клиентские приложения
В этом разделе рассматриваются клиентские приложения PostgreSQL, размещённые в contrib. Их можно запускать откуда угодно, независимо от того, где находится сервер баз данных. Некоторые из описанных приложений требуют особые привилегии. Основной отличительной особенностью этих приложений является возможность исполнения на любом компьютере, независимо от расположения сервера баз данных.
Имя пользователя и базы данных передаются из командной строки на сервер без изменения регистра — все пробельные и специальные символы необходимо экранировать с помощью кавычек. Имена таблиц и другие идентификаторы передаются регистр-независимо, за исключением отдельно описанных ситуаций, где может требоваться экранирование.
oid2name — преобразовать в имена OID и номера файловых узлов в каталоге данных PostgreSQL
vacuumlo — удалить потерянные большие объекты из базы данных PostgreSQL
clusterdb — кластеризовать базу данных PostgreSQL
createdb — создать базу данных PostgreSQL
createuser — создать новую учётную запись PostgreSQL
dropdb — удалить базу данных PostgreSQL
dropuser — удалить учётную запись пользователя PostgreSQL
ecpg — встроенный C-препроцессор SQL
pg_basebackup — создать резервную копию кластера PostgreSQL
pgbench — запустить тест производительности PostgreSQL
pg_config — вывести информацию об установленной версии PostgreSQL
pg_dump — выгрузить базу данных PostgreSQL в формате скрипта в файл или архив
pg_dumpall — выгрузить кластер баз данных PostgreSQL в формате скрипта