После четырнадцати месяцев разработки выпущена первая бета-версия СУБД PostgreSQL 8.4 (http://www.postgresql.org/docs/8.4/static/release-8-4.html). Версия 8.4 включает сотни изменений и десятки новых возможностей. Среди них:
- «Оконные» функции (Windowing Functions (http://www.postgresql.org/docs/8.4/static/functions-window.html)), позволяющие выполнить вычисления для определенного набора столбцов из общего объема выборки;
- Общие табличные выражения (Common Table Expression (http://www.postgresql.org/docs/8.4/static/queries-table-expr...)) и рекурсивные запросы;
- Функции с переменным числом аргументов (Variadic) и значения по умолчанию для параметров функций;
- Возможность восстановления дампа в несколько одновременных потоков;
- Привилегии на столбцы таблиц;
- Собственные параметры локали для каждой БД;
- Улучшенная производительность для запросов с EXISTS и NOT EXISTS;
- «Многоколоночные» GIN-индексы;
- Префиксный поиск с использова...URL: http://postgresqlrussia.org/news/view/149
Новость: http://www.opennet.me/opennews/art.shtml?num=21279
[quote]Привилегии на столбцы таблиц; [/quote]
Если у вас нет паранойи, то это еще не значит, что за вами не следят.
А бывают еще и права на значения столбцов в отдельных строках, прикинь?
Очень хорошо объясняли на РутКонфе, зачем это нужно. К примеру дать права на чтение таблицы учетных данных юзера, окромя столбца с хэшами паролей.
Это реализуется через view
Архаично. Для современных веб-систем управление доступом реализуется на уровне сервера приложений. Доля систем, где требуется доступ пользователя напрямую к БД, ничтожна.
Вот это ещё круче:# Support set-returning functions in SELECT result lists even for functions that return their result via a tuplestore (Tom)
In particular, this means that functions written in PL/PgSQL and other PL languages can now be called this way.# Support set-returning functions in the output of aggregation and grouping queries (Tom)
# Allow comparison of composite types and allow arrays of anonymous composite types (Tom)
This allows constructs such as row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)]). This is particularly useful in recursive queries.# Add support for column-level privileges (Stephen Frost, KaiGai Kohei)
# Allow CREATE OR REPLACE VIEW to add columns to the end of a view (Robert Haas)
# Support multi-column GIN indexes (Teodor Sigaev)
Вот ещё приятная вещь:
# Add new aggregate function array_agg(), which returns all aggregated values as a single array (Robert Haas, Jeff Davis, Peter)
# Add unnest(), which converts an array to individual row values (Tom)
This is the opposite of array_agg().# Add quote_nullable(), which behaves like quote_literal() but returns the string NULL for a null argument (Brendan Jurd)
# Add suppress_redundant_updates_trigger() trigger function to prevent non-data-changing updates (Andrew)
# Add TIMESTAMP and TIMESTAMPTZ versions of generate_series() (Hitoshi Harada)
А где же обещанная репликация?
"Более простой в использовании сервер «тёплого резерва» (Warm Standby) с возможность выполнения select запросов на запасном сервере"учимся читать.
"Обещанной" репликации в 8.4 всё же не будет, отложено до 8.5
Изачально говорилось, что к 8.4 шансов мало.
>"Более простой в использовании сервер «тёплого резерва» (Warm Standby) с возможность выполнения
>select запросов на запасном сервере"Это я напутал, оказалось, что добавление hot standby в конце февраля перенесли в 8.5. Уже исправил.