Начальная поддержка XML-типа (SQL/XML) в PostgreSQL

Peter Eisentraut закоммитил в CVS Postgres-а дополненный и отшлифованный им патч начальной поддержки XML-типа и SQL/XML-функций публикации документов – функциональность, над которой я работал летом в рамках Google Summer of Code 2006. Стоит отметить, что очень-очень многое ещё предстоит сделать. Патч добавляет поддержку XML-типа (в простейшем виде, обёртка над VARCHAR-ом), основные SQL/XML-функции для публикации XML-документов и простую поддержку DTD-валидации. Для задач парсинга документов и фрагментов документов (в некотором роде эмуляция sequences из XDM) используется известная библиотека libxml2. Поддержка XPath временно убрана – сначала необходимо “разрулить” все вопросы, связанные с самим типом данных, причём, пока на логическом уровне.

В ближайшее время (хорошо всё-таки, что близится куча праздников) я собираюсь обновить и расширить TODО, как можно быстрее разрешить все известные мне проблемы/баги/недоделки и приступить к реализации эффективной поддержки XPath – на основе специального рода индексов, базирующихся на нумерующей схеме SLS и специальном GiST-типе.

Помимо индексов для XPath-выражений, существует огромное количество задач – это и поддержка XML Schema с её типами (очень важная задача, т.к. необходимо двигаться в направлении XQuery Data Model), XML Namespaces, различных кодировок (сейчас функицональность работает только для UTF-8) и т.д. и т.п. Надеюсь, функциональность будет востребована – только в этом случае возможна реализация действительно хорошей поддержки типа данных XML во всеми любимой ОРСУБД :-)

Все желающие могут ознакомиться с данными возможностями, скачав патч: xmltype.pgsql820.patch.tar.bz2. Любые комментарии можно отправлять по адресу xml4pgsql at samokhvalov dot com.