PostgreSQL

Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   PostgreSQL
RSS

PostgreSQL

Текущий рейтинг темы: Нет
Выводить сообщения
Правила раздела

<<Назад  Вперед>>Страницы: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 16 17 18
Модераторы: aerograf, wsx
Печать
 
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Вроде все работает. Осталась неисправленной ошибка с вынесением предупреждений/поощрений (подробности двумя постами выше) — не пойму, где формируется запрос...
В прикреплении — файлы, содержащие изменения по сравнению с текущим дистрибутивом.

P.S. На совместимость с MySQL эти изменения проверялись наспех — вроде работает нормально.

P.P.S. Рекомендация — не устанавливать файлы до их проверки XXXX Pro

Прикрепленный файл (ch_files.zip, 68993 байт, скачан: 630 раз)
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
DDL таблиц, снятый с рабочей базы

Прикрепленный файл (pssql.sql, 20708 байт, скачан: 707 раз)
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Вот это можно добавить в readme:
Требования при установке форума на PostgreSQL:
- Наличие установленного модуля полнотекстового поиска tsearch2
- Как минимум, привилегия CREATE на базу.
- Как минимум, привилегия SELECT на таблицы pg_ts_cfg, pg_ts_cfgmap, pg_ts_dict, pg_ts_parser модуля tseardch2.
- Желательна (но пока не обязательна) поддержка процедурного языка PL/pgSQL. При наличии прав это выполняется из АЦ  двумя запросами:

   CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler AS
         '$libdir/plpgsql' LANGUAGE C;

  CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql
        HANDLER plpgsql_call_handler
        VALIDATOR plpgsql_validator;


В зависимости от настроек сервера PostgreSQL, может потребоваться указать кодировку клиента и установить конфигурацию модуля полнотекстового поиска. Для этого в файлах index.php, agent.php, file.php, rss.php и admin/index.php найти строки:

      if ($DBpersist) $link=db_pconnect($DBhost,$DBusername,$DBpassword,$DBname);
      else $link=db_connect($DBhost,$DBusername,$DBpassword,$DBname);
и добавить сразу после них:
      pg_query("SET client_encoding='win1251'");            //кодировка клиента
      pg_query("SELECT set_curcfg('default_russian')");     //конфигурация поиска

В файле /admin/basic.php функция оптимизации (дефрагментации) базы данных для PostgreSQL отключена, для ее включения закомментировать всю функцию
function do_optimize() со строкой $sql = "SHOW TABLES";  (для MySQL)
и раскомментировать
function do_optimize() со строкой $sql = "VACUUM FULL ANALYZE";  (для PostgreSQL)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
М.б. сделать проще — выполнять эти две команды сразу внутри db_connect, но по умолчанию держать их закомментированными?

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Точно — так будет лучше. И, наверное, комментировать pg_query("SELECT set_curcfg('default_russian')"); не нужно. Вряд ли хостеры меняют конфигурацию 'default' наверняка остается 'latin-1'... Хотя могу ошибаться — никогда дел с хостингом не имел.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Все зависит от хостинга. Если хостер — российская компания, то ставят либо cp1251, либо utf8. Если же западная — то обычно utf8.

-KoT- написал:
[q]
- Желательна (но пока не обязательна) поддержка процедурного языка PL/pgSQL. При наличии прав это выполняется из АЦ двумя запросами:
[/q]

А вот это что такое и для чего оно надо?

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
В tsearch2 по умолчанию (во всяком случае, для PostgreSQL 8.0 и 8.1) три конфигурации — default (latin-1), default_russian (koi-8) и simple. И вряд ли кто это меняет, чтобы не терять универсальность.
В крайнем случае, можно закомментарить и ридми указать, что при появлении вопросительных знаков (или крокозяблов) вместо текста или при ошибке ERROR: could not find tsearch config by localeнужно эти строки раскомментировать.

PL/pgSQL, возможно, понадобится для реализации бекапа — похоже, для этого без хранимых процедур на PL/pgSQL не обойтись...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Слушай, а вот это ты зачем добавил:

  $query=preg_replace("/MOD\(FLOOR\(/is","MOD((",$query);

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
-KoT-
Почетный участник


Откуда: Красноярский край
Всего сообщений: 153
Рейтинг пользователя: 6

Репутация пользователя: 1

Ссылка


Дата регистрации на форуме:
26 апр. 2006
Победил последнюю известную ошибку. Лишнее поле порождалось скриптом, преобразующим запросы вида
"INSERT INTO table SET field=value" в "INSERT INTO table(field) VALUES(value)".
Такое поле появлялось, если в тексте сообщения встречается, например ".../index.php?t=17 Срок действия..." После доработки функции db_query заработало.
Доработка заключается в удалении подстрок, заключенных в неэкранированные двойные кавычки перед парсингом "незакавыченных" чисел:
function &db_query($query,$link,$debug=0) {
  $GLOBALS['query_count']++;
  $query=preg_replace("/MOD\(FLOOR\(/is","MOD((",$query);
  if (preg_match("/^\s*?INSERT\s+?INTO\s+?(\w+?)\s+?SET\s+?(.*)/is",$query,$match)) {
    preg_match_all("/([\w\d]+)\s*=\s*(\".*?(?<!\\\)\")/is",$match[2],$fields1);
    $tmp1=preg_replace("/([\w\d]+)\s*=\s*(\".*?(?<!\\\)\")/is","",$query);
  if (preg_match("/^\s*?INSERT\s+?INTO\s+?(\w+?)\s+?SET\s+?(.*)/is",$tmp1,$match1)) {
    preg_match_all("/([\w\d]+)\s*=\s*(\d+)\s*,/is",$match1[2]." ",$fields2); }
    $fnames=join(",",array_merge($fields1[1],$fields2[1]));
    $fdata=join(",",array_merge($fields1[2],$fields2[2]));
  $query="INSERT INTO ".$match[1]." (".$fnames.") VALUES (".$fdata.")";
  }
  $query=preg_replace("/(?<!\\\)\"/is","'",$query);
  if (preg_match("/^\s*?LOCK\s+?TABLE/is",$query)) return;
         .......... дальше без изменений ................


XXXX Pro написал:
[q]
Слушай, а вот это ты зачем добавил:
$query=preg_replace("/MOD\(FLOOR\(/is","MOD((",$query);
[/q]

Запрос....MOD(FLOOR(uo_time/".(24*60*60)."),7) в Postgre дает ошибку. Как оказалось, работает в таком виде:....MOD((uo_time/".(24*60*60)."),7)
Других ошибок пока не обнаружено, наверное можно рекомендовать к установке для тестирования...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Только что проверил под PostgreSQL, floor там работает нормально.
По крайней мере, такой вот запрос выполняется:
SELECT MOD(FLOOR(5.4),2)

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
<<Назад  Вперед>>Страницы: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 16 17 18
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   PostgreSQL
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0322. Количество выполненных запросов: 17, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!