LINUX.ORG.RU

PostgreSQL 8.0: начато бета-тестирование


0

0

Версия была изменена с 7.5 на 8.0 в связи с большим количеством изменений. Наиболее важные из них:

* Версия под Win32, не требующая Cygwin;
* Вложенные транзакции, они же Savepoints;
* Incremental backup, он же Point in time recovery: возможность архивирования логов транзакций для последующего восстановления базы;
* Поддержка Tablespaces: разнесение частей базы по разным дискам.

...и огромное количество прочих улучшений, читайте Changelog.

>>> объявление на сайте PostgreSQL



Проверено: l-xoid ()

едренть,
а incremental backup - это не point in time recovery.
Две совершенно независимые вещи вообще-то.

anonymous
()
Ответ на: комментарий от anonymous

> savepoint - это не вложенные транзакции.

принципиальная-то разница между ними есть?

> а incremental backup - это не point in time recovery. Две совершенно независимые вещи вообще-то.

может быть, в таком случае реализованы обе. :]

sad_spirit
() автор топика
Ответ на: комментарий от anonymous

То что возможностей достаточно это я слыхал, а вот по производительности в сравнении с MySQL кто-нить что-нит сказать может? Вообще плюсы/минусы?

Lautre ★★★★★
()
Ответ на: комментарий от Lautre

> а вот по производительности в сравнении с MySQL кто-нить что-нит сказать может?

щас есть реализация бенчмарка TPC-W (web-коммерция то бишь), работающая с PostgreSQL и MySQL: http://pgfoundry.org/projects/tpc-w-php/

меряется, естественно, не скорость работы сферического запроса в вакууме, а скорость всего приложения (база + Apache + PHP).

Опубликованных результатов пока не видел, но разработчики утверждают, что скорость работы систем на основе PostgreSQL и MySQL примерно одинакова. При этом кода для PostgreSQL читать несколько проще, по очевидным причинам...

sad_spirit
() автор топика
Ответ на: комментарий от anonymous

> savepoint - это не вложенные транзакции. 

цитата с http://developer.postgresql.org/beta-history.txt

Query Changes

     * Add savepoints (nested transactions) (Alvaro)

хотя конечно непонятно, это не похоже на вложенные транзакции:
   Savepoints Improve Transaction Control
          Savepoints allow specific parts of a transaction to be aborted
          without affecting the remainder of the transaction. Prior
          releases had no such capability; there was no way to recover
          from a statement failure within a transaction except by
          aborting the whole transaction. This feature is valuable for
          application writers who require error recovery within a complex
          transaction.

anonymous
()
Ответ на: комментарий от Sun-ch

>А чё правда в нём триггеры теперь на перле писать можно?

Саныч! А ты приколист! Тригеры на перле! Гыгыгыгыгыгыгыгыгы... Повеселил. :))) Может их лучше на заборе писать? :)))

vada ★★★★★
()
Ответ на: комментарий от vada

CREATE OR REPLACE FUNCTION valid_id() RETURNS trigger AS $$
if (($_TD->{new}{i}>=100) || ($_TD->{new}{i}<=0)) {
return "SKIP"; # Skip INSERT/UPDATE command
} elsif ($_TD->{new}{v} ne "immortal") {
$_TD->{new}{v} .= "(modified by trigger)";
return "MODIFY"; # Modify tuple and proceed INSERT/UPDATE command
} else {
return; # Proceed INSERT/UPDATE command
}
$$ LANGUAGE plperl;

CREATE TRIGGER "test_valid_id_trig" BEFORE INSERT OR UPDATE ON test
FOR EACH ROW EXECUTE PROCEDURE "valid_id"();

Если это не триггер, то можешь плюнуть мне на лысину

Sun-ch
()
Ответ на: комментарий от Sun-ch

Похож на тригер. А это что, на перле? А где же всякие ^///\.|//\() bla-bla-bla... :) Штиль не перловский :))


ЗЫ. Сейчас в меня какшки полетят! :))

vada ★★★★★
()

Ну а с русским оно будет когда-нибудь нормально работать? drd@badaboom:~$ psql --version psql (PostgreSQL) 7.4.3

Не работают конструкции upper, lower, ilike

badaboom=> select upper('тест'); upper ------- тест (1 row)

база создана с encoding='WIN':

badaboom=> \l List of databases Name | Owner | Encoding -----------+----------+---------- badaboom | badaboom | WIN

Скомпилированная локаль ru_RU.cp1251 в системе присутствует: drd@badaboom:~$ locale -a C en_US en_US.iso88591 en_US.iso885915 en_US.utf8 POSIX ru_RU ru_RU.cp1251 ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian

С utf-8 и koi8-r те же проблемы. Подскажите, куда копать?

drd ★★
()
Ответ на: комментарий от Sun-ch

Да, оказывается, на перле можно разборчивый код писать...

IMNSHO
()
Ответ на: комментарий от anonymous

> Наконец то постгрес под винду начнёт работать.

Это плюс. Несомненный. Цыгвин, хотя и неплох как идея, весьма тормозной в своей реализации (винда задумывается на секунду перед запуском нового процесса, так что скрипты на шелле, к примеру, превращаются в ходячий ужас, как и все, что балуется с fork и exec). Да и тащить за постгресом шлейф балласта, это тоже порой напрягает.

Молодцы и так держать!

IMNSHO
()
Ответ на: комментарий от drd

> Ну а с русским оно будет когда-нибудь нормально работать? ... Подскажите, куда копать?

Что говорит команда "SHOW lc_collate"?

Если не ru_RU.blah, то выставить пользователю postgres нужную локаль и сделать по новой initdb.

sad_spirit
() автор топика
Ответ на: комментарий от Sun-ch

> Не песди, раньше триггер нельзя было на перле написать

можно как минимум год назад

anonymous
()
Ответ на: комментарий от drd

Добро пожаловать в psql 7.4.3 - Интерактивный Терминал PostgreSQL.

Наберите: \copyright для условий распространения \h для подсказки по SQL командам \? для подсказки по внутренним slash-командам (\команда) \g или ";" для завершения и выполнения запроса \q для выхода

template1=# select upper('тест однако'); upper ------------- ТЕСТ ОДНАКО (1 запись)

Здается мне нужно просто следать $> LC_ALL=ru_RU.KOI8-R LC_LANG=ru_RU.KOI8-r psql ...

anonymous
()
Ответ на: комментарий от anonymous

template1=# select upper('тест однако');
    upper
-------------
 ТЕСТ ОДНАКО
(1 запись)

Так красивше будет

anonymous
()
Ответ на: комментарий от anonymous

> А объектная составляющая как была игрушкой, так и осталась :-(

А в других местах это разве не так? Ну, кроме Objectivity. В чём глубокий смысл пихать объекты где надо и не надо?

Evgueni ★★★★★
()
Ответ на: комментарий от Sun-ch

> Не, точно триггер, я пример из доки на 8 взял :)

Лучше бы взял пример из 7-ки.... Просто при сборке надо заенаблить перл. B это и там пойдет

dObryi
()
Ответ на: комментарий от SatanClaus

> В семерке blob небыло!

Пиздишь как Райкин. Было там всеЁ а главное возможность создания своих типов. Слоны рулят!

dObryi
()
Ответ на: комментарий от sad_spirit

>Если не ru_RU.blah, то выставить пользователю postgres нужную локаль и сделать по новой initdb.

Да! И еще базу создать с соответствующей локалью.

vada ★★★★★
()
Ответ на: комментарий от drd

drd (*) (12.08.2004 9:08:24):

> ru_RU.UTF-8 (1 row)

Так бы сразу и сказал. С Unicode были проблемы: либо делай апгрейд до 8.0 (хе-хе), либо initdb в локали типа ru_RU.CP1251

sad_spirit
() автор топика
Ответ на: комментарий от KRoN73

> А как у него с UTF-8 в плане регистров, поиска?

Release Notes от 8.0:

> Fix upper/lower/initcap functions to work with multibyte encodings (Tom)

> Ну и, наконец, в Postgre есть аналог FULLTEXT-индексов?

http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/ http://openfts.sourceforge.net

sad_spirit
() автор топика
Ответ на: комментарий от sad_spirit

Значится. Поставил 8.0. Посмотрел. Первые вспечатления - впечатляет.

Сегодня буду грузить 3Gb базу в нее. Посмотрю как будет вести себя под нагрузкой. Если все пучком, буду по маленьку переводить все проекты на эту версию - вкусностей уж больно много :)

Korwin ★★★
()
Ответ на: комментарий от Korwin

>Первые вспечатления - впечатляет.

Угу. Я пожалуй тоже поду посмотрю. Вроде как выходные впереди, можно и посмотреть.

ifconfig
()
Ответ на: комментарий от Korwin

>Сегодня буду грузить 3Gb базу в нее. Посмотрю как будет вести себя под нагрузкой. Если все пучком, буду по маленьку переводить все проекты на эту версию - вкусностей уж больно много :)

ну и результаты - в студию, есс-но.

AlexGor
()
Ответ на: комментарий от KRoN73

> Ну и, наконец, в Postgre есть аналог FULLTEXT-индексов? в сорцах contrib/tsearch2

Bolik
()
Ответ на: комментарий от anonymous

>FULLTEXT нет? а это

А это - сторонний экстеншин неизвестного качества, неизвестно как живущий под 8.0 и неизвестно как работающий с UTF-8. Синтаксис я на http://www.sai.msu.su/~megera/postgres/gist/doc/gist-inteface-r.shtml посмотрел - это вообще кошмар какой-то.

Вот потому и пишу, что в Postgre фуллтекста - НЕТ.

И в третий раз озвучиваю (ну не кошерно это качать и ставить толстую систему для одной проверки) - как в 8.0 с UTF-8? преобразования регистра, сортировка, преобразования из одной кодовой системы в другую и т.п.? Можно ли сделать одну таблицу, скажем, в cp-1251, а другую - _полноценно_ работающую с UTF-8? Если нет - то Postgre для не малого круга задач опять в пролёте.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>А это - сторонний экстеншин неизвестного качества, неизвестно как живущий под 8.0 и неизвестно как работающий с UTF-8. Синтаксис я на http://www.sai.msu.su/~megera/postgres/gist/doc/gist-inteface-r.shtml посмотрел - это вообще кошмар какой-то.

>Вот потому и пишу, что в Postgre фуллтекста - НЕТ.

Еще раз, для тех, кто на бронепоезде берем сорцы и смотрим в contrib/tsearch2

а то, что вы не удосужились даже разобраться, как с этим работать, говорит о том, что вам фуллтекст не нужен

Bolik
()
Ответ на: комментарий от KRoN73

И еще, насчет koi8

>А это - сторонний экстеншин неизвестного качества, неизвестно как живущий под 8.0 и неизвестно как работающий с UTF-8

Когда покажете мне ссылочку на полнотекст, нормально и БЫСТРО работающий с UTF-8 ( как насчет азиатских языков ? ), тогда и будете говорить, что в постгресе полнотекста нет

Bolik
()
Ответ на: комментарий от Bolik

>Когда покажете мне ссылочку на полнотекст, нормально и БЫСТРО работающий с UTF-8 ( как насчет азиатских языков ? ), тогда и будете говорить, что в постгресе полнотекста нет

У меня как бы в MySQL русский полнотекстовый UTF-8 работает нормально. Европейские, соответственно, тоже. Что там со всякой азией - не знаю, не проверял, надобности не было.

KRoN73 ★★★★★
()
Ответ на: комментарий от Bolik

И я по прежнему не получил ответа, работает ли в Postgre русский UTF-8. А качать и ставить такого монстра ради такой проверки желания нет. Тем более, что итак никто адекватный ответ дать не может. Что уже очень много говорит о системе.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>У меня как бы в MySQL русский полнотекстовый UTF-8 работает нормально

Ах, вы про это :) пожалуйста, бенчмарк этого поиска в студию желательно на запросе более чем из одного слова

кстати, вы европейские проверяли ? ну скажем, норвежский ?

кстати, а как у вашего поиска с морфологией ? внешние словари можно подключить ?

Bolik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.